如何只获取Azure密钥保管库的Powershell输出的一部分



我有这个PS脚本,我正在尝试获取Azure订阅中所有密钥保管库的用户访问信息。

所以我现在得到的是所有的密钥库信息;名称、位置、id、不同设置、网络规则,然后是每个有访问权限的用户的访问策略。是否有一种方法可以剥离此输出,只获取vault名称和访问策略?

$resourceGroup = $_ 
#Gets the key vaults for this resource group
$keyVaults =  Get-AzKeyVault -ResourceGroupName $resourceGroup
If ($keyVaults) {
Write-Host 'Resource Group : ' $resourceGroup
write-host "`n"
# Goes through the key vaults for this resource group and shows us the information for each
Foreach ($keyVault in $keyVaults) {
Get-AzKeyVault -VaultName $keyVault.VaultName
write-host "`n"
}    
} 
}

您可以使用Select Object(别名Select(来缩小对象的返回属性。属性AccessPolicies返回与每个访问策略相关联的Tenant ID值。属性AccessPoliciesText返回策略的文本。

Get-AzKeyVault -VaultName $keyVault.VaultName | Select VaultName,AccessPolicies
Get-AzKeyVault -VaultName $keyVault.VaultName | Select VaultName,AccessPoliciesText

请注意,由于您只选择了两个属性,因此默认的格式化输出将是表视图。AccessPoliciesText可能会在表视图中被截断。您可以(仅用于显示目的(使用列表格式显示所有内容:

Get-AzKeyVault -VaultName $keyVault.VaultName |
Select VaultName,AccessPoliciesText | Format-List

请注意,如果您计划将输出存储到一个变量中以便稍后处理,请不要使用Format-List,直到您需要在控制台上显示其值

最新更新