powershell 脚本删除共享打印机(如果存在)

powershell 脚本删除共享打印机(如果存在)

抱歉,请教各位,但需要一些帮助才能解决此问题。我在许多计算机上安装了一些打印机,例如 \server\printer。我原本想使用 powershell 脚本删除它们,但无法完成。我当时的想法是这样的:

$printers=Get-Printer | where { $_.Type -eq 'Connection'} | select name /* this part show me only \\server\printers */
$printers | ForEach-Object {
    if ($printers) {
            Remove-Printer -Name $printers -Confirm:$false
    }
}

提前感谢大家。

答案1

这是因为您要向 Remove-Printer cmdlet 提供整个打印机列表。您必须一次提供一台打印机。

[...]
Remove-Printer -Name $printers -Confirm:$false
# Error here------------/\
[...]

您在 foreach 循环中,可以使用$PSItem或短别名来获取当前打印机$_$PSItem(和$_)表示“ForEach 循环中的当前对象”

这应该有效:

$printers=Get-Printer | where { $_.Type -eq 'Connection'} | select name /* this part show me only \\server\printers */
$printers | ForEach-Object {
    if ($_) {
            Remove-Printer -Name $_.Name -Confirm:$false
    }
}

相关内容