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

Azure 如何每10分钟删除一次托管磁盘快照,azure,powershell,Azure,Powershell,我有下面的脚本,我正在使用它来删除超过10分钟的快照,并保留不超过10分钟的快照。我有下面的脚本,但它没有按预期工作,有人能告诉我出了什么问题吗 foreach($snapname in $snapshotnames) { Get-AzureRmSnapshot -ResourceGroupName $rg -SnapshotName $snapname |?{$_.Name -Like "*-Server1*"} | ?{($_.TimeCreated).ToString('yyyy

我有下面的脚本,我正在使用它来删除超过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
}

您应该使用
[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
Get-AzureRmSnapshot-ResourceGroupName”“-SnapshotName”“?{($.TimeCreated)-lt([datetime]::UtcNow.AddMinutes(-10))}删除AzureRmSnapshot-force
结果截图:


在这里.tostring不重要吗?或者我们应该添加它吗?@testuser1我还没有测试它,即使它不重要,我也认为没有必要使用它,因为我们与分钟相比。好吧,如果我想删除14天以前的快照呢?我只想使用自动化帐户将其自动化,以确保不会出错。时区重要吗,我的服务器在东亚。@testuser1。尝试
UtcNow.AddDays(-14)
。2.不,该命令使用utc时间,无论服务器是什么。