我已接近所需,但由于快照未删除而丢失了一些内容。我认为它的datetime字符串并非始终正确,因此我在这里需要一些帮助。这是我当前的PS代码。
rg = 'snapshots'
$snapshotnames = (Get-AzureRmSnapshot -ResourceGroupName $rg).name
foreach($snapname in $snapshotnames)
{
Get-AzureRmSnapshot -ResourceGroupName $rg -SnapshotName $snapname |
?{($_.TimeCreated).ToString('yyyy-MM-dd') -lt ([datetime]::Today.AddDays(-1).tostring('yyyy-MM-dd'))} |
remove-azurermsnapshot -force
}
快照名称的格式如下所示:Testvm --- 2018-09-20
$timestamp = Get-Date -f ---yyyy-MM-dd
$snapshotName = $vmInfo.Name + $timestamp
所以我认为我的问题所在是这部分
?{($_.TimeCreated).ToString('yyyy-MM-dd') -lt ([datetime]::Today.AddDays(-1).tostring('yyyy-MM-dd'))} | remove-azurermsnapshot -force
答案 0 :(得分:0)
请尝试以下命令,该示例删除早于10
天的快照。
rg = 'snapshots'
$snapshotnames = (Get-AzureRmSnapshot -ResourceGroupName $rg).name
foreach($snapname in $snapshotnames)
{
Get-AzureRmSnapshot -ResourceGroupName $rg -SnapshotName $snapname | ?{($_.TimeCreated) -lt ([datetime]::UtcNow.AddDays(-10))} | remove-azurermsnapshot -force
}
我的指定测试命令:
Get-AzureRmSnapshot -ResourceGroupName joywebapp -SnapshotName joytestss1 | ?{($_.TimeCreated) -lt ([datetime]::UtcNow.AddDays(-10))} | remove-azurermsnapshot -force
我的快照:
还要检查门户中的日志:
这是一个类似的问题,请参阅此link。