📌  相关文章
📜  Microsoft Azure – 使用 PowerShell 脚本删除快照

📅  最后修改于: 2022-05-13 01:56:12.400000             🧑  作者: Mango

Microsoft Azure – 使用 PowerShell 脚本删除快照

快照是 OS 磁盘或数据磁盘的现有 Azure VM 磁盘的一种只读副本。此快照用作 VM 的备份,以防万一发生崩溃时无法检索 VM 的备份。

在本文中,您将了解如何使用片段形式的 Azure PowerShell 命令一次从所有资源组中删除订阅中的所有快照。在实施该过程之前,让我们看看什么是快照。

为什么我们需要删除Azure 快照?

如果有不需要的资源,我们应该删除批量快照,因为它会消耗存储资源。因此在 azure 中删除不需要的快照将节省大量成本,因为它具有成本效益。

以下Remove-AzSnapshot cmdlet 删除 Azure 中的快照。

句法:

$Name = "Add_Snapshot_Name_here"
$ResourceGroupName = "Add_Resource_Group_Name_here"

Remove-AzSnapshot -ResourceGroupName $ResourceGroupName -SnapshotName $Name -Force;

这里的$Name代表 Azure 快照名称, $ResourceGroupName代表快照所在的资源组。

注意:将资源锁添加到快照以跳过删除。

执行:

步骤 1:登录Azure 门户

步骤 2:访问Azure Cloud Shell并选择PowerShell控制台

第 3 步:使用 touch 命令创建一个新文件

touch remove-snapshots.ps1

使用以下命令以编辑器模式打开文件

code ./remove-snapshots.ps1

然后,将以下 PowerShell Snippet 代码粘贴到该文件中并保存该文件。

$SubscriptionName = "_add_subscription_name"

Set-AzureRmContext -SubscriptionName "$SubscriptionName" | Out-Null

$RGs = Get-AzureRMResourceGroup

foreach ($RG in $RGs) {

    $Snapshots = Get-AzSnapshot -ResourceGroupName $RG.ResourceGroupName

    foreach ($Snapshot in $Snapshots) {

        $Name = $Snapshot.Name
        $ResourceGroupName = $Snapshot.ResourceGroupName
        
        Remove-AzSnapshot -ResourceGroupName $ResourceGroupName -SnapshotName $Name -Force;
        Write-Output "Deleted $Name - $ResourceGroupName"
    }
}

参考图片:

第 4 步:要运行上述 PowerShell 脚本,请使用以下命令

./remove-snapshots.ps1 

输出如下所示:

参考:

  • Microsoft Docs – 删除快照