异常:“找不到'Connect-AzureVM'命令”

时间:2015-09-25 15:06:30

标签: azure azure-powershell azure-automation

我正在尝试通过从库中获取名为“使用Microsoft Azure Automation备份Azure VM”的Azure Runbook来“BackUp Azure VM”。但是在测试它时会抛出异常,如下所示 “例外: 在行:75 char:8 + $ Uri = Connect-AzureVM -AzureConnectionName $ AzureConnectionName -serviceName $ S ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~找不到'Connect-AzureVM'命令。如果将此命令定义为工作流,请确保在调用它的工作流之前定义它。如果它是一个旨在直接在Windows PowerShell中运行的命令(或在此系统上不可用),请将其放在InlineScript中:'InlineScript {Connect-AzureVM}'。所以来自另一端的任何人都可以帮助我。谢谢你。

1 个答案:

答案 0 :(得分:3)

首先从库中获取“Connect-AzureVM”Runbook并发布它... 然后你会得到另一个例外:

  

在第159行:char:8 + $ Uri = Connect-AzureVM -AzureConnectionName $ AzureConnectionName -serviceName $ S ... + ~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~找不到名为'AzureConnectionName'的参数。   “   可以通过以下步骤删除异常:

看起来“BackupAzureVM”使用了此Runbook的过时版本。

进行更新:

  1. 编辑BackupAzureVM Runbook
  2. 将$ AzureConnectionName参数替换为$ AzureAdOrgIdName参数
  3. 从资产商店中检索Azure OrgID
  4. 点击插入> Runbook> Connect-AzureVM获取正确的参数以获取$ URI并更新变量(这将取代现有的Connect-AzureVM调用)。将包括正确的参数。
  5. 以下是按照上述步骤更新版BackupAzureVM的示例:

    workflow BackupAzureVM
    {
    Param
    (
    [parameter(Mandatory=$true)]
    [String]
    $AzureOrgIdCredentialName,
    
    [parameter(Mandatory=$true)]
    [String]
    $ServiceName,
    
    [parameter(Mandatory=$true)]
    [String]
    $VMName,
    
    [parameter(Mandatory=$true)]
    [String]
    $StorageAccountName,
    
    [parameter(Mandatory=$true)]
    [String]
    $backupContainerName
    
    )
    
    $Cred = Get-AutomationPSCredential -Name $AzureOrgIdCredentialName
    $Uri = Connect-AzureVM ` -AzureOrgIdCredential $Cred ` -     AzureSubscriptionName "MySubscription" ` -ServiceName $ServiceName ` -VMName    $VMName
    
    // Stop Azure VM
    
    Stop-AzureVM -ServiceName $ServiceName -Name $VMName –StayProvisioned
    
    // Backup Azure VM
    
     Backup-AzureVM -serviceName $ServiceName -VMName $VMName -backupContainerName $backupContainerName -backupStorageAccountName $StorageAccountName –includeDataDisks
    
    // Start Azure VM
    
    Start-AzureVM -ServiceName $ServiceName -Name $VMName
    
    }