检查虚拟机是否已启用备份,如果未启用它(Azure)

问题描述 投票:0回答:1

我正在构建Azure Runbook(powershell),该命令检查vm是否启用了备份(如果未启用),它将启用它。我在添加和构建IF语句以使其变得更好时遇到问题。

这是我现在执行的方法,它可以工作,但是如果vm已启用备份,则runbook将打印很多红色,那不好。这是较大的runbook的一部分,所有这些都在foreach上运行。

$vault= Get-AzureRmRecoveryServicesVault -ResourceGroupName "RGName" -Name "VaultName"
Set-AzureRmRecoveryServicesVaultContext -Vault $vault

Write-Output "Configuring Azure backup to $($vm.Name)"
$policy = Get-AzureRmRecoveryServicesBackupProtectionPolicy -Name "PolicyName"
Enable-AzureRmRecoveryServicesBackupProtection `
-ResourceGroupName $vm.ResourceGroupName `
-Name $vm.Name `
-Policy $policy

然后,我想在其中添加IF语句,因此,如果在vm上启用了备份,它将跳过它。下面的命令将打印备份的结果(是或否),但是我不知道如何在if语句中实现该结果,因此如果结果为false,它将运行脚本块,如果结果为true,则只会跳过并打印$ vm。名称已配置为Azure备份。

Get-AzRecoveryServicesBackupStatus-名称'VmName'-ResourceGroupName'RgName'-类型AzureVM

Results of command

if ()
{

$vault= Get-AzureRmRecoveryServicesVault -ResourceGroupName "RgName" -Name "VaultName"
Set-AzureRmRecoveryServicesVaultContext -Vault $vault

Write-Output "Configuring Azure backup to $($vm.Name)"
$policy = Get-AzureRmRecoveryServicesBackupProtectionPolicy -Name "PolicyName"
Enable-AzureRmRecoveryServicesBackupProtection `
-ResourceGroupName $vm.ResourceGroupName `
-Name $vm.Name `
-Policy $policy
}
else {
Write-Output "$vm.Name has already configured to Azure backup"
}

那么有什么技巧吗?我可以这样做吗:如果(Get-AzRecoveryServicesBackupStatus-名称'vmanme'-ResourceGroupName'rgname'-类型AzureVM备份-match false)?

azure powershell backup azure-runbook
1个回答
0
投票

您可以在如下的if语句中使用命令Get-AzRecoveryServicesBackupStatus来检查是否为BackedUp:

(Get-AzRecoveryServicesBackupStatus -Name 'vmname' -ResourceGroupName 'rgname' -Type AzureVM).BackedUp

如果我们更新您的现有代码,例如如果不存在备份,它将执行备份,否则将显示已经配置了备份:

if (!(Get-AzRecoveryServicesBackupStatus -Name 'vmname' -ResourceGroupName 'rgname' -Type AzureVM).BackedUp) {
    $vault= Get-AzureRmRecoveryServicesVault -ResourceGroupName "RgName" -Name "VaultName"
    Set-AzureRmRecoveryServicesVaultContext -Vault $vault

    Write-Output "Configuring Azure backup to $($vm.Name)"
    $policy = Get-AzureRmRecoveryServicesBackupProtectionPolicy -Name "PolicyName"
    Enable-AzureRmRecoveryServicesBackupProtection `
    -ResourceGroupName $vm.ResourceGroupName `
    -Name $vm.Name `
    -Policy $policy
} else {
    Write-Output "$vm.Name has already configured to Azure backup"
}
© www.soinside.com 2019 - 2024. All rights reserved.