![Powershell-Skript zum Entfernen freigegebener Drucker, falls vorhanden](https://rvso.com/image/789283/Powershell-Skript%20zum%20Entfernen%20freigegebener%20Drucker%2C%20falls%20vorhanden.png)
tut mir leid, dass ich frage, Leute, aber ich brauche Hilfe, um das zu bekommen. Ich habe einige Drucker auf vielen Computern installiert, wie \Server\Drucker. Ich dachte daran, sie mit einem Powershell-Skript zu entfernen, aber das klappt nicht. Ich dachte an so etwas wie das hier:
$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
}
}
Vielen Dank im Voraus an alle.
Antwort1
Das liegt daran, dass Sie dem Cmdlet Remove-Printer die gesamte Druckerliste bereitstellen. Sie müssen jeweils einen Drucker angeben.
[...]
Remove-Printer -Name $printers -Confirm:$false
# Error here------------/\
[...]
Sie befinden sich in der ForEach-Schleife. Sie können den aktuellen Drucker abrufen, indem Sie $PSItem
oder den Kurzalias verwenden $_
.
$PSItem
(und $_
) bedeutet „das aktuelle Objekt in der ForEach-Schleife“
Das sollte funktionieren:
$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
}
}