使用PowerShell筛选Azure中未使用/闲置存储账户的方法求助
筛选Azure中闲置存储账户的PowerShell脚本完善方案
你的脚本已经能获取存储账户的基础信息,要筛选未使用/闲置的账户,我们可以从容器最后修改时间和是否存在容器两个维度判断,以下是完善后的脚本:
& { # 设置闲置阈值:这里设为30天,可根据需求调整 $idleThreshold = (Get-Date).AddDays(-30) foreach ($storageAccount in Get-AzStorageAccount) { $storageAccountName = $storageAccount.StorageAccountName $resourceGroupName = $storageAccount.ResourceGroupName # 获取存储账户密钥并创建上下文 $storageAccountKey = (Get-AzStorageAccountKey -Name $storageAccountName -ResourceGroupName $resourceGroupName).Value[0] $context = New-AzStorageContext -StorageAccountName $storageAccountName -StorageAccountKey $storageAccountKey # 获取所有容器的最后修改时间,取最新的那个 $containers = Get-AzStorageContainer -Context $context $lastModified = $containers | Sort-Object -Property @{Expression = {$_.LastModified.DateTime}} | Select-Object -Last 1 -ExpandProperty LastModified # 判断是否为闲置账户:无容器 或 最后修改时间早于阈值 $isIdle = (-not $containers) -or ($lastModified -lt $idleThreshold) if ($isIdle) { New-Object psobject -Property @{ Name = $storageAccountName; LastModified = if ($lastModified) { $lastModified.DateTime } else { "从未使用" }; ResourceGroupName = $resourceGroupName } } } } | Format-Table Name, LastModified, ResourceGroupName -autosize
关键修改说明
- 闲置阈值自定义:
$idleThreshold可以根据你的需求调整天数,比如改成AddDays(-90)筛选90天未使用的账户 - 无容器判断:如果存储账户下没有任何容器,直接判定为闲置(这类账户大概率从未被使用)
- 时间筛选逻辑:有容器的账户,对比最新的容器修改时间是否早于阈值,符合则判定为闲置
- 友好输出:给从未使用的账户标注
从未使用,方便快速识别
内容的提问来源于stack exchange,提问作者DSH
相关产品推荐
相关产品推荐

