如何每10分钟删除托管磁盘快照

时间:2018-08-13 16:00:43

标签: azure powershell

我有以下脚本正在使用,以删除早于10分钟的快照并保留不早于10分钟的快照,我有以下脚本,但它无法正常工作,有人可以告诉我怎么了?

foreach($snapname in $snapshotnames)
{
    Get-AzureRmSnapshot -ResourceGroupName $rg  -SnapshotName $snapname |?{$_.Name -Like "*-Server1*"} | ?{($_.TimeCreated).ToString('yyyyMMdd') -lt ([datetime]::Now.AddMinutes(-10).tostring('yyyymmdd'))} | remove-azurermsnapshot -force
}

1 个答案:

答案 0 :(得分:0)

您应该使用[datetime]::UtcNow而不是[datetime]::Now,而不要使用.tostring('yyyymmdd')

所以您的命令应该是:

foreach($snapname in $snapshotnames)
{
    Get-AzureRmSnapshot -ResourceGroupName $rg -SnapshotName $snapname | ?{$_.Name -Like "*-Server1*"} | ?{($_.TimeCreated) -lt ([datetime]::UtcNow.AddMinutes(-10))} | remove-azurermsnapshot -force
}

我的特定测试命令:

Get-AzureRmSnapshot -ResourceGroupName "<ResourceGroupName>" -SnapshotName "<SnapshotName>" | ?{($_.TimeCreated) -lt ([datetime]::UtcNow.AddMinutes(-10))} | remove-azurermsnapshot -force

结果截图:

enter image description here