gpt4 book ai didi

powershell - 当项目存在时,Get-AzureRmRecoveryServicesBackupItem 不返回任何内容

转载 作者:行者123 更新时间:2023-12-03 03:08:23 25 4
gpt4 key购买 nike

我正在尝试使用“即用即付”订阅中的恢复服务保管库进行 Azure 资源管理器备份和还原。我使用的是非常简单的代码,据我所知,它是来自 MS 文档的。我可以获取保管库对象,也可以获取容器,但是当我尝试从任何容器中获取任何项目时,Get-AzureRmRecoveryServicesBackupItem 始终不会返回任何内容,即使我知道其中有项目并且 Azure RM GUI 也确认了这一点。 “不返回任何内容”意味着如果我将结果分配给一个变量,它是空/空,并且如果我尝试输出到控制台,则没有输出。

我使用两个不同的订阅、不同的保管库、虚拟机和备份项目以及来自两台不同的计算机得到了相同的结果。我在一台机器上重新安装了模块,并在另一台机器上从头开始安装了模块。使用 Get-AzureRmRecoveryServicesBackupItem 命令的 -Debug 开关似乎会显示返回的项目,结果正常且没有错误。 Powershell 代码显示在下面,-Debug 输出显示在其后。更重要的是,这个确切的代码在 2017 年 2 月 7 日有效,不是开玩笑。我现在已经没有想法了,所以任何帮助将不胜感激。

更新:我们发现,当我们对 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 - ;

最佳答案

遇到了同样的问题(也在不同的电脑上),并通过传递不同的参数集解决了这个问题。我没有使用 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,您将得到一个包含所有名称的列表。

关于powershell - 当项目存在时,Get-AzureRmRecoveryServicesBackupItem 不返回任何内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42180637/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com