两个ForEach循环,最后一个未正确迭代

时间:2020-01-14 02:24:57

标签: powershell azure-powershell

基本上,我正在使用az模块来收集密钥仓库ID的列表,然后转储这些仓库。但是,第二个ForEach循环仅使用从第一个ForEach循环获得的变量中的最后一个条目。

If ($ListAllSecrets)
{
    $ErrorActionPreference = "SilentlyContinue"
    Write-Host "Gathering all keys from key vaults, this may take a moment"
    $vaults=az keyvault list --query '[].name' -o tsv
    ForEach ($vault in $vaults){
        $ids = az keyvault secret list --vault-name $vault --query '[].id' -o tsv
        $ids

        }
    ForEach ($i in $ids){
        $i
        az keyvault secret show --id $i | ConvertFrom-Json
        }

1 个答案:

答案 0 :(得分:1)

应该如下所示。

If ($ListAllSecrets)
{
    $ErrorActionPreference = "SilentlyContinue"
    Write-Host "Gathering all keys from key vaults, this may take a moment"
    $vaults=az keyvault list --query '[].name' -o tsv
    ForEach ($vault in $vaults){
        $ids = az keyvault secret list --vault-name $vault --query '[].id' -o tsv
        $ids
             ForEach ($i in $ids){
                $i
                az keyvault secret show --id $i | ConvertFrom-Json
            }
        } 
}