Azure Key Vault:使用 PowerShell 备份机密

Azure Key Vault: Backup Secrets using PowerShell

我正在尝试 运行 以下 PS 脚本来备份特定 Azure Key Vault 中的所有机密:

$secret = Get-AzureKeyVaultSecret –VaultName 'testkeyvault-1' |
ForEach-Object {
$Name = $_."Name"
Backup-AzureKeyVaultSecret -Secret $Name -OutputFile 'C:\Backup.blob'
}

尽管失败并出现以下 PS 错误,我们将不胜感激:

Backup-AzureKeyVaultSecret : Cannot bind parameter 'Secret'. Cannot convert  the "SQLSecret" value of type "System.String" to type    "Microsoft.Azure.Commands.KeyVault.Models.Secret".
At line:4 char:36
+ Backup-AzureKeyVaultSecret -Secret $Name -OutputFile 'C:\Backup.blob'
+                                    ~~~~~
+ CategoryInfo          : InvalidArgument: (:) [Backup- AzureKeyVaultSecret], ParameterBindingException
+ FullyQualifiedErrorId :  CannotConvertArgumentNoMessage,Microsoft.Azure.Commands.KeyVault.BackupAzureKeyVaultSecret

试试这个:

[string]$VaultName = 'testkeyvault-1'
Get-AzureKeyVaultSecret –VaultName $VaultName |
    ForEach-Object {
        Backup-AzureKeyVaultSecret `
            –VaultName $VaultName `
            -Name $_."Name" `
            -OutputFile ('C:\Backup_{0}.blob' -f $_."Name")
    }

相关文档:

您在 LOOP

中缺少参数 "Vault Name"