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 – 删除快照