如何使用PowerShell删除C:\Users下除管理员目录外的选定目录
PowerShell 筛选删除C:\Users下指定目录操作方案
务必先执行筛选命令确认删除范围,避免误删重要数据
默认管理员目录名称为Administrator,如果你自定义过管理员账号名称,后续命令中对应替换成你的管理员目录名即可。
操作步骤
- 先验证筛选结果(必做)
你可以根据自己的需求调整筛选规则:
- 筛选除管理员目录外的所有用户目录:
Get-ChildItem -Path C:\Users -Directory | Where-Object {$_.Name -ne "Administrator"}
- 筛选指定要删除的多个用户目录,比如要删除test、user1、temp三个目录:
Get-ChildItem -Path C:\Users -Directory | Where-Object {$_.Name -in @("test","user1","temp")}
执行上述命令后,确认输出的目录列表完全是你需要删除的对象,再进行下一步。
- 模拟删除验证
确认筛选范围正确后,先执行带-WhatIf参数的命令模拟删除,再次确认操作范围:
# 示例为删除除管理员外所有目录的模拟命令,可替换成你自己的筛选规则 Get-ChildItem -Path C:\Users -Directory | Where-Object {$_.Name -ne "Administrator"} | Remove-Item -Recurse -Force -WhatIf
- 执行实际删除
模拟结果完全符合预期后,去掉命令中的-WhatIf参数执行,即可完成删除:
Get-ChildItem -Path C:\Users -Directory | Where-Object {$_.Name -ne "Administrator"} | Remove-Item -Recurse -Force
注意事项
- 所有操作需要以管理员身份启动PowerShell执行,否则会出现权限不足报错
- 如果需要同时排除多个目录,可将筛选条件调整为
$_.Name -notin @("Administrator","管理员目录2","管理员目录3") - 已登录的用户目录会被系统占用无法删除,需要先对应用户登出后再操作
内容的提问来源于stack exchange,提问作者useless-donkey
相关产品推荐
相关产品推荐

