抱歉,请教各位,但需要一些帮助才能解决此问题。我在许多计算机上安装了一些打印机,例如 \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
}
}