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(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
    }
}

相關內容