Ли Дейли обеспечивает хороший указатель:
обычный способ - это сохранять значения в $Var
и просто обращаться к свойствам при необходимости.Итак, присвойте вызов $Var
и получите значение с помощью $Var.ObjectID
.
При этом , если вы хотите сохранить идентификатор объекта в одиночку в выделенной переменной просто получите доступ к свойству .ObjectId
объекта, возвращаемого Get-AzureAdUser
:
$userId = (Get-AzureAdUser -ObjectId 'Contose@contoso.com').ObjectId
В последующем комментарии, который вы упомянулидостижение:
$Var = Get-AzureAdUser -ObjectId "Contose@contoso.com" | Select ObjectId
Однако такое использование командлета Select-Object
(со встроенным псевдонимом select
) практически бессмысленно, поскольку оно по-прежнему возвращает (новый, custom) объект , который требует от вас доступа к его .ObjectId
свойству , чтобы получить значение идентификатора объекта - и для этого вы могли просто назначить объект, возвращаемый Get-AzureAdUser
напрямую до $Var
, как предлагает Ли.
Это - это можно использовать Select-Object
для извлечения одного свойства значение , а именно через
-ExpandProperty <propertyName>
параметр :
$Var = Get-AzureAdUser -ObjectId 'Contose@contoso.com' | Select -ExpandProperty ObjectId
Однако синтаксис (...).ObjectId
( точечная запись ) естьне только более удобный , но также более быстрый - и он даже работает на нескольких объектах (в PSv3 +) , в этом случае возвращается массив значений (функция называется перечисление членов ).
Короче говоря, Select-Object -ExpandProperty
требуется, только если вы обрабатываете очень большие коллекции, которые должны обрабатываться одна за другой в конвейере .