【发布时间】:2017-06-29 02:24:42
【问题描述】:
我想要备份一个密钥保管库并将其还原到另一个。但是,据我所知,这个有据可查的 API 并不真正存在。有 Backup-AzureKeyVaultSecret 以及其他 KeyVault 项目的备份,它们似乎根本不存在于任何地方。我喜欢这个想法——它只能恢复到那个订阅——我需要复制一个密钥库。 (应该有一个 Backup-AzureKeyVault,但我找不到任何文档)
我已经尝试运行它 powershell - 我可以在其中运行命令来获取或设置密钥、证书等,并且所有其他命令都可以工作。
我尝试从门户的命令窗口运行它,但它也不在那里运行。
我尝试升级模块:AzureRM.KeyVault - 但它说它不是使用我尝试升级它的工具安装的,所以它失败了。
我刚刚在上个月安装了工具,包括 powershell,所以除非它在上个月出现,否则我认为它会正常工作。
谢谢。
更新:我手动输入命令以避免命令中出现任何“特殊字符”,然后我重新输入以确保大小写完全相同?
我错过了什么?
更新 2: 我列出了所有使用“get-command”的命令,将其存储在一个文件中,并为 AzureRM.KeyVault “grep”了它,这是输出(我可以备份/恢复密钥,但不能备份/恢复证书或机密??):
Cmdlet Add-AzureKeyVaultCertificate 2.1.0 AzureRM.KeyVault
Cmdlet Add-AzureKeyVaultCertificateContact 2.1.0 AzureRM.KeyVault
Cmdlet Add-AzureKeyVaultKey 2.1.0 AzureRM.KeyVault
Cmdlet Backup-AzureKeyVaultKey 2.1.0 AzureRM.KeyVault
Cmdlet Get-AzureKeyVaultCertificate 2.1.0 AzureRM.KeyVault
Cmdlet Get-AzureKeyVaultCertificateContact 2.1.0 AzureRM.KeyVault
Cmdlet Get-AzureKeyVaultCertificateIssuer 2.1.0 AzureRM.KeyVault
Cmdlet Get-AzureKeyVaultCertificateOperation 2.1.0 AzureRM.KeyVault
Cmdlet Get-AzureKeyVaultCertificatePolicy 2.1.0 AzureRM.KeyVault
Cmdlet Get-AzureKeyVaultKey 2.1.0 AzureRM.KeyVault
Cmdlet Get-AzureKeyVaultSecret 2.1.0 AzureRM.KeyVault
Cmdlet Get-AzureRmKeyVault 2.1.0 AzureRM.KeyVault
Cmdlet Import-AzureKeyVaultCertificate 2.1.0 AzureRM.KeyVault
Cmdlet New-AzureKeyVaultCertificateAdministratorDetails 2.1.0 AzureRM.KeyVault
Cmdlet New-AzureKeyVaultCertificateOrganizationDetails 2.1.0 AzureRM.KeyVault
Cmdlet New-AzureKeyVaultCertificatePolicy 2.1.0 AzureRM.KeyVault
Cmdlet New-AzureRmKeyVault 2.1.0 AzureRM.KeyVault
Cmdlet Remove-AzureKeyVaultCertificate 2.1.0 AzureRM.KeyVault
Cmdlet Remove-AzureKeyVaultCertificateContact 2.1.0 AzureRM.KeyVault
Cmdlet Remove-AzureKeyVaultCertificateIssuer 2.1.0 AzureRM.KeyVault
Cmdlet Remove-AzureKeyVaultCertificateOperation 2.1.0 AzureRM.KeyVault
Cmdlet Remove-AzureKeyVaultKey 2.1.0 AzureRM.KeyVault
Cmdlet Remove-AzureKeyVaultSecret 2.1.0 AzureRM.KeyVault
Cmdlet Remove-AzureRmKeyVault 2.1.0 AzureRM.KeyVault
Cmdlet Remove-AzureRmKeyVaultAccessPolicy 2.1.0 AzureRM.KeyVault
Cmdlet Restore-AzureKeyVaultKey 2.1.0 AzureRM.KeyVault
Cmdlet Set-AzureKeyVaultCertificateAttribute 2.1.0 AzureRM.KeyVault
Cmdlet Set-AzureKeyVaultCertificateIssuer 2.1.0 AzureRM.KeyVault
Cmdlet Set-AzureKeyVaultCertificatePolicy 2.1.0 AzureRM.KeyVault
Cmdlet Set-AzureKeyVaultKeyAttribute 2.1.0 AzureRM.KeyVault
Cmdlet Set-AzureKeyVaultSecret 2.1.0 AzureRM.KeyVault
Cmdlet Set-AzureKeyVaultSecretAttribute 2.1.0 AzureRM.KeyVault
Cmdlet Set-AzureRmKeyVaultAccessPolicy 2.1.0 AzureRM.KeyVault
Cmdlet Stop-AzureKeyVaultCertificateOperation 2.1.0 AzureRM.KeyVault
【问题讨论】:
-
该错误通常非常准确,因为 PS 找不到 cmdlet...可能是安装错误或路径不正确等...如果您运行
Get-Module AzureRM.KeyVault -ListAvailable它会返回什么? Backup-* 是导出的 cmd 之一吗? -
ModuleType 版本名称 ExportedCommands Manifest 2.1.0 AzureRM.KeyVault {Add-AzureKeyVaultCertificate, Set-AzureKeyVaultCertificateAttribute, Stop-AzureKeyVaultCertificateOperation, Get-AzureKeyVaultCertificateOperation...}
-
它切断了它,所以没有办法知道:-(它说它是2.1.0,这是问题吗?
-
我刚刚尝试了“Get-module -all”,它显示“Backup-AzureKeyVaultKey...”,我验证我能够运行该命令(备份密钥),但是秘密一似乎不存在。
-
我想我明白了。我跑了:Install-Module -Name AzureRM -allowclobber(需要AllowClobber,它也不受PowerShell Gallery的信任),然后当我运行命令时它问我是否要运行它,我说A,然后它给了我错误提示该命令不存在。我做了和管理员一样的事情,它运行了。它现在显示在列表中,并且可以运行(仅以管理员身份)我之前尝试以管理员身份运行但失败了。显然,最近安装了 Power Shell,它安装了 2.1 版,当前是 4.1 - 听起来需要更新安装。
标签: powershell azure azure-keyvault