删除过期的虚拟机VHD快照
$retdays可以定义要删除多少天前的快照
脚本运行截图:
PowerShell脚本内容如下:
#------------------------------------------------------------------------------
# User own the risk, otherwise exit.
#
# Azure PowerShell Version: 3.6.0
#
# Create by Zeno.
#------------------------------------------------------------------------------
#登录订阅
Login-AzureRmAccount -EnvironmentName AzureChinaCloud -Credential $(Get-Credential -UserName admin@xxx.partner.onmschina.cn -Message Login_AzureChinaCloud) |Out-Null
#定义删除多少天前的快照
$retdays = "1"
$storages = Get-AzureRmStorageAccount
foreach ($storage in $storages)
{
# get storage containers
$containers = Get-AzureStorageContainer -Context $storage.Context
foreach ($container in $containers)
{
#get blobs under all containers
$blobs = Get-AzureStorageBlob -Context $storage.Context -Container $container.Name | Where-Object {$_.Name.EndsWith("vhd")}
foreach ($blob in $blobs)
{
$diff = [datetime]::FromBinary((Get-Date).Ticks - $blob.SnapshotTime.Ticks )
if($blob.ICloudBlob.IsSnapshot -eq "True" -and $diff.Day -gt $retdays )
{
$blob.ICloudBlob.Delete()
Write-Host ("`n`t[DELETED] The snapshot 【{0}】 is {1} days ago" -f $blob.Name,$diff.Day) -ForegroundColor Yellow
}
}
}
}