【问题标题】:Check if vm has backup enabled, if not enable it (Azure)检查 vm 是否启用了备份,如果没有启用它(Azure)
【发布时间】:2020-09-14 09:06:10
【问题描述】:

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

这就是我现在的做法,它可以工作,但是如果 vm 启用了备份,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 语句中实现它,所以如果结果为假,它将运行脚本块,如果结果为真,它只会跳过并打印出 $vm.Name 已配置为 Azure 备份。

Get-AzRecoveryServicesBackupStatus -Name 'VmName' -ResourceGroupName 'RgName' -Type 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"
}

那么有什么技巧可以做到吗?我可以这样做吗: if (Get-AzRecoveryServicesBackupStatus -Name 'vmanme' -ResourceGroupName 'rgname' -Type AzureVM backedup -match false) ?

【问题讨论】:

    标签: azure powershell backup azure-runbook


    【解决方案1】:

    您可以在下面的 if 语句中使用命令Get-AzRecoveryServicesBackupStatus 来检查是否已备份:

    (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"
    }
    

    【讨论】:

      猜你喜欢
      • 2012-04-10
      • 2016-05-06
      • 2014-12-22
      • 2021-10-11
      • 2015-03-20
      • 2011-10-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多