Wie lösche ich die Druckwarteschlange unter Windows 10 beim START?

Wie lösche ich die Druckwarteschlange unter Windows 10 beim START?

Wir haben Windows 10-Rechner mit 1803. Wir müssen die Druckerwarteschlange bei JEDEM Start leeren.

Der Druckspooler ist auf manuell eingestellt. Wir haben ein Powershell-Skript über den Taskplaner geplant, um sowohl beim Start als auch bei der Benutzeranmeldung als NT AUTHORITY\SYSTEM ein Powershell-Skript auszuführen

Programm/Skript: Powershell Argumente hinzufügen (optional): -File "C:\production\Printer Queue Clear\printqueueClear.ps1"

Das fragliche Skript (Net Stop Spooler ist redundant, wenn der Dienst auf manuellen Start eingestellt ist, ich weiß)

net stop spooler

Remove-Item C:\Windows\System32\spool\PRINTERS\* -Force

net start spooler

Das Problem: Wenn ein Auftrag in die Warteschlange gestellt wird, während der über USB angeschlossene Drucker vom Computer getrennt ist, der Computer ausgeschaltet wird (wobei sich noch Druckaufträge in der Warteschlange befinden), der Drucker wieder angeschlossen wird und der Computer dann neu gestartet wird, werden alle Druckaufträge übermittelt, sobald der Benutzer mit der Anmeldung beginnt. Aus Compliance-Gründen können wir das nicht zulassen.

Die eigentliche Frage ist, warum der Druckspooler die in die Warteschlange gestellten Aufträge ausspuckt, wenn: 1. er auf manuell eingestellt ist und 2. der betreffende Code den Spooler erst startet, nachdem das Druckerspool-Laufwerk geleert wurde.

Antwort1

Ich bin mir nicht sicher, welche Bedeutung es hat, den Spooler-Dienst auf manuell einzustellen. Windows kann Dienste (bei Bedarf) ohne Ihr Eingreifen starten.

Es scheint, dass die einfachste Möglichkeit zur Lösung des beschriebenen Szenarios darin besteht, das Skript beim Herunterfahren oder Abmelden und nicht beim Starten oder Anmelden auszuführen.

Darüber hinaus können Sie den Druckerspoolerdienst beim Herunterfahren oder Abmelden deaktivieren und ihn erst aktivieren, nachdem Sie beim Start oder bei der Anmeldung eine Aufgabe ausgeführt haben, wenn es ein mir nicht bekanntes Szenario gibt.

Antwort2

Ihr Code funktioniert nicht. Versuchen Sie Folgendes, wenn er wirklich auf manuell eingestellt ist:

net stop spooler
Remove_Item $env:windir\System32\spool\PRINTERS\* -Force
net start spooler

Antwort3

Tippfehler im Code, sollte ein-minus kein_Unterstrich im Remove-Item funktionierenden Code: (aber in Powershell, nicht cmd):

net stop spooler
Remove-Item $env:windir\System32\spool\PRINTERS\* -Force
net start spooler

verwandte Informationen