PowerShell脚本需求:删除C:\Users下24h以上Z开头文件夹(修正误删)
服务器磁盘空间清理脚本修复方案
需求背景
服务器磁盘满时,手动处理逻辑为:前往C:\Users目录,删除所有超过24小时且名称以“Z”开头的用户根文件夹——这类文件夹是离岸人员未遵循注销流程留下的旧配置文件。
原脚本问题
当前编写的脚本因使用-Recurse参数,会递归遍历C:\Users下所有层级的子目录,误删其他用户文件夹内所有以Z开头的内容,不符合需求:
Get-ChildItem -Path C:\Users -Recurse | Where-Object {$_.Name -ilike "z*"} | Remove-Item -Force
修复后的脚本
以下脚本严格匹配需求,只删除C:\Users根目录下符合条件的用户文件夹:
Get-ChildItem -Path C:\Users -Directory | Where-Object { $_.Name -ilike "z*" -and $_.LastWriteTime -lt (Get-Date).AddHours(-24) } | Remove-Item -Force -Recurse
脚本说明
-Directory:仅获取C:\Users下的一级子目录(即用户根文件夹),不深入遍历子内容$_.Name -ilike "z*":匹配名称以Z开头的文件夹(不区分大小写)$_.LastWriteTime -lt (Get-Date).AddHours(-24):筛选最后修改时间超过24小时的文件夹-Recurse:删除目标文件夹时连同内部所有内容一并清除(若需保留空文件夹可移除该参数)
内容的提问来源于stack exchange,提问作者Mulgrew
相关产品推荐
相关产品推荐

