【问题标题】:Removing Brackets from powershell query从 powershell 查询中删除括号
【发布时间】:2021-04-12 08:07:26
【问题描述】:

我得到了一个与 Azure 相关的 powershell 查询,它创建了一个服务原则数组,然后使用这个数组,它查找每个服务原则的结束日期,并仅使用服务原则显示名称和结束日期创建一个新对象。到目前为止一切顺利,但格式已关闭,我有一种感觉,因为我试图将 2 个数组组合成一个对象而不是字符串,但我仍然不知道如何修复它:

$sp = get-azadserviceprinciple -DisplaynameBeginswith "new"

foreach($appid in $sp.ApplicationId){
$enddate += Get-azadAppCredential -applicationid $appid
}

New-Object psobject -property @{
Name = $sp.DisplayName
expiration = $enddate.EndDate
}

返回

@{newsp}, @{newsp2} {31,12,2022}, {31.12.2022}

理想情况下它会返回

    Name            expiration
newsp           31,12,2022 
newsp2          31.12.2022

【问题讨论】:

    标签: azure powershell azure-active-directory


    【解决方案1】:

    应该如下所示,脚本中的$test 就是你想要的。另请注意,您的命令中有错字,它是Get-AzADServicePrincipal(不区分大小写),而不是get-azadserviceprinciple

    $sp = Get-AzADServicePrincipal -DisplaynameBeginswith "new"
    $test = @()
    foreach($appid in $sp.ApplicationId){
        $enddate = Get-AzADAppCredential -applicationid $appid
        $displayname = (Get-AzADServicePrincipal -ApplicationId $appid).DisplayName
        $test += New-Object psobject -Property @{
            Name=$displayname
            expiration=$enddate.EndDate}
    }
    

    【讨论】:

      【解决方案2】:

      您应该在 foreach 循环中向对象添加成员

      这是一个例子:

      $sp = get-azadserviceprinciple -DisplaynameBeginswith "new"
      
      $obj = @()
      foreach($appid in $sp.ApplicationId){
        $enddate += Get-azadAppCredential -applicationid $appid
        
        $obj += New-Object -TypeName psobject -Property @{Name="$appid.DisplayName"; expiration="$enddate.EndDate"}
        }
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-11-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-09-20
        • 2021-09-12
        • 2016-08-18
        相关资源
        最近更新 更多