![powershell腳本刪除共用印表機(如果存在)](https://rvso.com/image/789283/powershell%E8%85%B3%E6%9C%AC%E5%88%AA%E9%99%A4%E5%85%B1%E7%94%A8%E5%8D%B0%E8%A1%A8%E6%A9%9F%EF%BC%88%E5%A6%82%E6%9E%9C%E5%AD%98%E5%9C%A8%EF%BC%89.png)
很抱歉向大家詢問,但需要一些幫助才能得到這個。我在許多電腦上安裝了一些印表機,例如 \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
}
}