我希望找到一种方法通过AzureAD自动将用户的对象ID写入变量。 Get-AzureAdUser -ObjectId“Contose@contoso.com”将给出ObjectId的输出,…
李戴利 提供了一个好的指针:
通常的方法是把东西放进去 $Var 并在需要时简单地处理属性。所以,将呼叫分配给a $Var 并获得价值 $Var.ObjectID 。
$Var
$Var.ObjectID
那说, 的 如果您确实要存储对象ID 单独 在一个 专用变量 ,只需访问 .ObjectId 返回的对象的属性 Get-AzureAdUser 强> :
.ObjectId
Get-AzureAdUser
$userId = (Get-AzureAdUser -ObjectId 'Contose@contoso.com').ObjectId
在后续评论中,您提到到达:
$Var = Get-AzureAdUser -ObjectId "Contose@contoso.com" | Select ObjectId
但是,这个使用了 Select-Object cmdlet(其内置别名为 select )实际上是毫无意义的,因为它仍然返回(新的,定制的) 宾语 这需要你访问它 .ObjectId 属性 为了检索对象ID值 - 为此你可以刚刚分配了返回的对象 Get-AzureAdUser 直 至 $Var 正如李建议的那样。
Select-Object
select
的 它 是 可以使用 Select-Object 提取单个属性 值 强> ,即 的 通过 -ExpandProperty <propertyName> 参数 强> :
-ExpandProperty <propertyName>
$Var = Get-AzureAdUser -ObjectId 'Contose@contoso.com' | Select -ExpandProperty ObjectId
然而 的 (...).ObjectId 句法 ( 点符号 ) 强> 不仅仅是 的 更方便 , 但是也 快点 强> - 它 的 甚至可以工作 多 对象(在PSv3 +中) 强> ,在这种情况下 排列 返回值(一个名为 成员枚举 )。
(...).ObjectId
简而言之, 的 Select-Object -ExpandProperty 仅在您处理时才需要 很大 必须处理的集合 逐一 在管线中 强> 。
Select-Object -ExpandProperty