使用PowerShell删除打印机

iyfjxgzm  于 2023-05-17  发布在  Shell
关注(0)|答案(1)|浏览(329)

首先,我的编码知识是非常基础的。
我们有一个公司的打印机,用户应该使用,但由于他们中的很多人是在家里工作,他们正在使用他们在家里的打印机。
我不希望用户使用其他打印机,因此创建了一个GPO来隐藏打印机设置。即使这工作正常,用户仍然可以在已经添加的打印机上打印。
我正在尝试使用PowerShell删除打印机。到目前为止,我得到的是:wmic printer where "NOT deviceid like '%PrinterName%'" delete。这将删除打印机名称不像PrinterName的所有打印机,但我不希望删除某些打印机,如Microsoft XPS Document WriterSnagit
如何定义例外列表?
先谢谢你了

gcuhipw9

gcuhipw91#

显然,我没有自己执行这个操作,但您可以从已安装的打印机列表中排除打印机并删除其余打印机,如下所示:

# determine the list of printers that should NOT be deleted
# this is a regex string where the matched parts are combined with a pipe symbol (regex 'OR')
$excludes = 'Print to PDF|OneNote|Snagit|Fax|XPS Document'

# get the printer names currently installed, excluding the printers in $excludes
(Get-Printer).Name -notmatch $excludes | ForEach-Object {
    # delete the remaining printers
    wmic printer where Name="$_" delete
}

当然,这里最主要的是你定义什么应该删除,什么应该非常小心地保留。正如评论的那样,你是否允许人们连接一个标签打印机,如Dymo,兄弟,布雷迪和什么有你或像这样的设备也应该被删除?
你可能最终会有像这样的愤怒的用户。

相关问题