很抱歉向大家詢問,但需要一些幫助才能得到這個。我在許多電腦上安裝了一些印表機,例如 \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
(and $_
) 表示“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
}
}