2017-02-11 1 views
1

"Pay-As-You-Go"구독에서 Recovery Services 볼트를 사용하여 Azure Resource Manager 백업 및 복원을 실험하고 있습니다. MS 문서에서 바로 알 수있는 아주 간단한 코드를 사용하고 있습니다. 볼트 객체를 가져올 수는 있지만 컨테이너를 얻을 수는 있지만 Get-AzureRmRecoveryServicesBackupItem은 아무 항목도 가져 오려고 할 때 아무 것도 반환하지 않습니다. 항목이 있고 Azure RM GUI가이를 확인하더라도 항상 아무것도 반환하지 않습니다. "Returns nothing"은 변수에 결과를 할당하면 비어 있음을 의미하고, 콘솔에 출력하려고하면 출력이 나오지 않습니다.Get-AzureRmRecoveryServicesBackupItem은 항목이있을 때 아무것도 반환하지 않습니다.

서로 다른 볼트, VM 및 백업 항목을 사용하는 두 개의 서로 다른 컴퓨터에서 동일한 결과가 나타납니다. 한 대의 컴퓨터에 모듈을 다시 설치하고 다른 컴퓨터에 모듈을 처음부터 설치했습니다. Get-AzureRmRecoveryServicesBackupItem 명령에 -Debug 스위치를 사용하면 OK 결과와 오류없이 반환되는 항목이 표시됩니다. Powershell 코드가 아래에 나타나고 그 다음에 -Debug 출력이 나타납니다. 키커는 2/7/17 일에 정확한 코드가 작동하고 농담이 아닙니다. 나는이 시점에서 아이디어가 나오기 때문에 어떤 도움을 주시면 감사하겠습니다.

업데이트 : 우리는 Get-AzureRmRecoveryServicesBackupContainer에 대해 -FriendlyName 매개 변수를 사용할 때 문제가 발생하지만 출력을 | Where-Object {$ _. FriendlyName -eq $ vmName} 문제가 발생하지 않습니다. MSFT로 사례를 열었습니다.

$vaultName = 'somevault' 
$resourceGroupName = 'somerg' 
$vmName = 'testvm' 

$vault = Get-AzureRmRecoveryServicesVault -Name $vaultName -ResourceGroupName $resourceGroupName; 
Set-AzureRmRecoveryServicesVaultContext -Vault $vault 

$container = Get-AzureRmRecoveryServicesBackupContainer -ContainerType AzureVM –Status Registered -FriendlyName $vmName 
#output of this cmdlet is empty 
Get-AzureRmRecoveryServicesBackupItem –Container $container -Debug 

디버그 출력 :

DEBUG: ============================ HTTP RESPONSE ============================ 

Status Code: 
OK 

Headers: 
Pragma      : no-cache 
x-ms-request-id    : xxx 
x-ms-client-request-id  : xxx 
Strict-Transport-Security  : max-age=31536000; includeSubDomains 
x-ms-ratelimit-remaining-subscription-reads: 14930 
x-ms-correlation-request-id : xxx 
x-ms-routing-request-id  : WESTUS:xxx 
Cache-Control     : no-cache 
Date       : Sat, 11 Feb 2017 19:39:07 GMT 
Server      : Microsoft-IIS/8.0 
X-Powered-By     : ASP.NET 

Body: 

{ 
    "value": [ 
    { 
     "id": "/Subscriptions/xxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/VS-xxxxxxxxxxxxx-Group/providers/Microsoft.RecoveryServices/vaults/vault273/backupFabrics/Azure/protectionContainers/IaasVM 
Container;iaasvmcontainerv2;VS-xxxxxxxxxxxxx-Group;testvm/protectedItems/VM;iaasvmcontainerv2;VS-xxxxxxxxxxxxx-Group;testvm", 
     "name": "iaasvmcontainerv2;VS-xxxxxxxxxxxxx-Group;testvm", 
     "type": "Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers/protectedItems", 
     "properties": { 
     "friendlyName": "testvm", 
     "virtualMachineId": "/subscriptions/xxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/VS-xxxxxxxxxxxxx-Group/providers/Microsoft.Compute/virtualMachines/testvm", 
     "protectionStatus": "Healthy", 
     "protectionState": "Protected", 
     "healthStatus": "Passed", 
     "healthDetails": [ 
      { 
      "code": 400239, 
      "title": "IaasVmHealthGreenDefault", 
      "message": "Backup pre-check status of this virtual machine is OK.", 
      "recommendations": [] 
      } 
     ], 
     "lastBackupStatus": "Completed", 
     "lastBackupTime": "2017-02-11T15:11:12.2071619Z", 
     "protectedItemDataId": "70368936803029", 
     "protectedItemType": "Microsoft.Compute/virtualMachines", 
     "backupManagementType": "AzureIaasVM", 
     "workloadType": "VM", 
     "containerName": "iaasvmcontainerv2;VS-xxxxxxxxxxxxx-Group;testvm", 
     "sourceResourceId": "/subscriptions/xxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/VS-xxxxxxxxxxxxx-Group/providers/Microsoft.Compute/virtualMachines/testvm", 
     "policyId": "/Subscriptions/xxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/VS-xxxxxxxxxxxxx-Group/providers/Microsoft.RecoveryServices/vaults/vault273/backupPolicies/DailyPolicy", 
     "policyName": "DailyPolicy", 
     "lastRecoveryPoint": "2017-02-11T15:12:16.7410628Z" 
     } 
    } 
    ] 
} 


DEBUG: AzureQoSEvent: CommandName - Get-AzureRmRecoveryServicesBackupItem; IsSuccess - True; Duration - 00:00:02.3527163; Exception - ; 
+0

다른 PC를 사용해 볼까요? azure 모듈을 다시 설치 하시겠습니까? – 4c74356b41

+0

동일한 코드를 두 개의 서로 다른 클라이언트 컴퓨터 (Windows 10과 Windows 8.1)에서 동일한 결과로 실행했다고 언급 했어야합니다. 후자의 경우 AzureRm 모듈을 모두 새로 설치했습니다. – Aurelio

+0

Azure Powershell 버전은 무엇입니까? 'Get-Module -ListAvailable -Name Azure-Refresh'를 사용하여 확인할 수 있습니다. 내 테스트 버전은'3.4.0'입니다. Get-AzureRmRecoveryServicesBackupItem -Container $ container [0] -WorkloadType "AzureVM"을 제외한 cmdlet을 사용합니다. –

답변

0

(또한 다양한 PC에서) 동일한 문제가 있었고, 다른 파라미터 세트를 전달하여 주변했다. Get-AzureRmRecoveryServicesBackupContainer를 사용하여 컨테이너에 대한 참조를 가져 오지 않았습니다. 대신 컨테이너 이름을 사용하여 Get-AzureRmRecoveryServicesBackupItem을 직접 호출합니다. 이는 -BackupManagementType AzureVM 매개 변수를 전달할 때만 작동합니다.

Login-AzureRmAccount 
Select-AzureRmSubscription -SubscriptionId <myguid> 

Get-AzureRmRecoveryServicesVault -Name "myvaultname" | Set-AzureRmRecoveryServicesVaultContext 
$item = Get-AzureRmRecoveryServicesBackupItem -BackupManagementType AzureVM -WorkloadType AzureVM -Name "myname" 
$latestRecoveryPoint = Get-AzureRmRecoveryServicesBackupRecoveryPoint -Item $item | Sort-Object RecoveryPointTime -Descending | Select-Object -First 1 

-Name을 생략하면 모든 이름과 함께 목록이 반환됩니다.

관련 문제