如何用PowerShell脚本从TXT读取需保留打印机并删除其余打印机
PowerShell脚本实现保留指定打印机、删除其余打印机的方案
步骤说明
准备保留列表文件
创建一个文本文件(比如命名为PrintersToKeep.txt),每行写入一个需要保留的打印机名称,确保名称和系统中显示的完全一致(包括空格、特殊字符)。如果需要注释,可以在注释行开头加#,脚本会自动忽略这些行和空行。编写PowerShell脚本
以下脚本会读取保留列表,过滤出不在列表中的打印机并删除:# 读取要保留的打印机名称,跳过空行和注释行 $printersToKeep = Get-Content -Path "C:\你的路径\PrintersToKeep.txt" | Where-Object { $_ -match '\S' -and $_ -notmatch '^#' } # 获取所有打印机,排除保留列表中的项,预览删除操作(去掉-WhatIf执行实际删除) Get-Printer | Where-Object { $printersToKeep -notcontains $_.Name } | Remove-Printer -WhatIf
注意事项
- 运行脚本需要管理员权限,否则会因权限不足无法删除打印机。
- 脚本中的
-WhatIf参数是安全预览模式,执行时只会显示要删除的打印机,不会实际操作。确认预览结果正确后,去掉该参数再运行脚本执行删除。 - 如果需要严格区分大小写匹配,把
-notcontains替换为-cnotcontains。 - 可以先运行
Get-Printer命令导出所有打印机名称,从中挑选需要保留的写入文本文件,避免因名称拼写错误导致误删。
对比原批处理方案
原批处理命令通过手动添加NOT name like条件来保留打印机,当保留数量多或变动频繁时维护成本极高。PowerShell方案通过读取外部文本文件,大幅降低了维护难度,更适合批量场景。
内容的提问来源于stack exchange,提问作者teq_7
相关产品推荐
相关产品推荐

