【问题标题】:Writing User ObjectID to variable #Powershell将用户 ObjectID 写入变量#Powershell
【发布时间】:2019-03-06 21:47:23
【问题描述】:

我正在寻找一种通过 AzureAD 自动将用户的对象 ID 写入变量的方法。

Get-AzureAdUser -ObjectId "Contose@contoso.com"

会给出ObjectId、DisplayName、UPN、UserType的输出

我希望将用户的 ObjectId(例如 qwert_1232_trwwqe)写入 $UserId 等变量,以便在脚本中进一步使用。

【问题讨论】:

    标签: windows azure powershell properties


    【解决方案1】:

    Lee Dailey 提供了一个很好的指针:

    通常的方法是将内容保存在$Var 中,并在需要时简单地处理属性。因此,将调用分配给 $Var 并使用 $Var.ObjectID 获取值。

    也就是说,如果您确实希望将对象 ID 单独存储在 专用变量中,只需访问由返回的对象的 .ObjectId 属性Get-AzureAdUser

    $userId = (Get-AzureAdUser -ObjectId 'Contose@contoso.com').ObjectId
    

    在后续评论中你提到到达:

    $Var = Get-AzureAdUser -ObjectId "Contose@contoso.com" | Select ObjectId
    

    但是,Select-Object cmdlet(其内置别名为 select)的这种使用实际上是没有意义的,因为这仍然会返回一个(新的、自定义的)object,它需要您访问其.ObjectId property 以检索对象 ID 值 - 为此,您可以将 Get-AzureAdUser 返回的对象 直接 分配给 $Var,正如李建议的那样。

    可以使用Select-Object 提取单个属性,即通过
    @987654337 @参数

    $Var = Get-AzureAdUser -ObjectId 'Contose@contoso.com' | Select -ExpandProperty ObjectId
    

    但是,(...).ObjectId 语法(点表示法不仅更方便,而且更快 - 它甚至适用于多个对象(在PSv3+中),在这种情况下,数组的值是返回(称为member-access enumeration 的功能)。

    简而言之,Select-Object -ExpandProperty 仅在您处理非常大必须在管道中一个接一个处理的集合时才需要.

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-01-01
      • 2022-07-26
      • 2021-03-02
      • 2013-05-12
      • 1970-01-01
      • 2021-05-13
      • 1970-01-01
      • 2011-11-04
      相关资源
      最近更新 更多