【发布时间】:2021-08-14 04:35:27
【问题描述】:
我正在尝试将以下脚本作为 Azure DevOps 管道的一部分运行以从 Keyvault 检索访问策略,但是它在以下命令中失败
$keyVaultAccessPolicies = (Get-AzureRMKeyVault -VaultName $keyVaultName).accessPolicies
错误是:InvalidOperation: (:) [Get-AzureRmKeyVault], PSInvalidOperationException
非常感谢任何帮助。 谢谢
完整脚本如下:
param(
[string][parameter(Mandatory = $true)] $keyVaultName
)
$keyVaultAccessPolicies = (Get-AzureRMKeyVault -VaultName $keyVaultName).accessPolicies
$armAccessPolicies = @()
if($keyVaultAccessPolicies)
{
foreach($keyVaultAccessPolicy in $keyVaultAccessPolicies)
{
$armAccessPolicy = [pscustomobject]@{
tenantId = $keyVaultAccessPolicy.TenantId
objectId = $keyVaultAccessPolicy.ObjectId
}
$armAccessPolicyPermissions = [pscustomobject]@{
keys = $keyVaultAccessPolicy.PermissionsToKeys
secrets = $keyVaultAccessPolicy.PermissionsToSecrets
certificates = $keyVaultAccessPolicy.PermissionsToCertificates
storage = $keyVaultAccessPolicy.PermissionsToStorage
}
$armAccessPolicy | Add-Member -MemberType NoteProperty -Name permissions -Value $armAccessPolicyPermissions
$armAccessPolicies += $armAccessPolicy
}
}
$armAccessPoliciesParameter = [pscustomobject]@{
list = $armAccessPolicies
}
$armAccessPoliciesParameter = $armAccessPoliciesParameter | ConvertTo-Json -Depth 5 -Compress
Write-Host ("##vso[task.setvariable variable=Infra.KeyVault.AccessPolicies;]$armAccessPoliciesParameter")
【问题讨论】:
-
如何运行这个脚本?你用
Azure PowerShell task吗? -
是,在管道中使用 Azure Powershell 任务