Jump to content
rt1970

suche Script um Netzwerkdrucker mit "Drucker nicht gefunden" zu löschen

Recommended Posts

Hallo zusammen!

Nachdem Microsoft 2017(?) in den GPO´s die Zuweisung der Drucker per User gestrichen hat, musste ich Scripte anlegen, die mir die Netzwerkdrucker verbinden. (oder habe ich was verpasst?)

Die Richtlinie unter Computer funktioniert leider nicht für Drucker ohne IP (PDF-Creator z.B.).

Leider musste ich den Druckernamen ein paar mal ändern, so dass sich auf den Clients mehrere Netzwerk-Drucker befinden, die den Freigabenamen nicht mehr finden.

Diese würde ich gerne automatisch entfernen lassen ohne dass dabei der Standarddrucker gelöscht wird (es sei denn es ist ein Offline-Drucker).

Also ich möchte nach Möglichkeit nicht ALLE Drucker zuerst löschen um dann das Script abarbeiten zu lassen.

Ich dachte es mir so: durchsuche alle lokalen Netzwerkdrucker und finde die mit Status "Drucker nicht gefunden, keine Verbindung" - es sei denn es ist ein (ausgeschalteter) USB-Drucker... Diese lösche mir bitte.

Bis jetzt habe ich noch keine WMI-Abfrage gefunden, die mir diesen Status ausgeben könnte...

Verbunden werden die Drucker via Anmeldescript mit rundll32.exe printui.dll,PrintUIEntry /in /n "\\Server1\Printer1"

Als letzte Idee wäre ein Script, welches sich erst den Standarddrucker merkt, dann alle Netzwerkdrucker löscht, neu verbindet und den Standarddrucker wieder setzt. Da aber jeder zugewiesene Drucker ein eigenes Anmeldescript bekommen hat ist das eher Kontraproduktiv.

Gibt es hierfür eine Lösung?

Grüße René

 

Share this post


Link to post

Ich selbst habe da keine Erfahrung, aber hast Du denn schon mal danach gesucht? Hast Du denn schon ein paar Zeilen Code, die Du hier zeigen kannst? So ganz von Null auf Hundert wird Dir hier vermutlich auch niemand eine Lösung liefern können/wollen. 

 

Ich hab nach ganz kurzer Suche das hier gefunden ... damit kann man ja schon mal anfangen zu spielen

 

https://docs.microsoft.com/en-us/powershell/scripting/samples/working-with-printers?view=powershell-7

Edited by BOfH_666

Share this post


Link to post

Hi,

 

ggfs. kommst du schon mit Get-Printer zurecht:

Get-Printer | where { $_.PrinterStatus -eq "Offline" }

Da müsstest du eben nur ein wenig noch in Richtung USB bzw. lokalem Drucker oder Netzwerk filtern und dann entsprechend mit Remove-Printer löschen.

 

Generell würde ich Drucker weder per GPO verteilen noch per Script. Sowas sollte ein User sich selber und nach Bedarf einrichten bzw. verbinden können.

 

Gruß

Jan

Share this post


Link to post

@testpersonHatte ich auch gehofft. Aber der Drucker hat nicht den Status "Offline"..

@BOfH_666Damit ist auflisten aller Drucker möglich, aber mir fehlt der Status "Drucker nicht gefunden" von Windows 10...

 

Ich muss mich korrigieren. Habe es jetzt nach langer Zeit mit der Benutzer-GPP probiert. Mein Denkfehler war die Filterung. Die Richtlinie braucht den Zugriff "authentifizierte Benutzer". Da ich aber nur die entsprechenden User hier eingetragen hatte, war der Eintrag für die Drucker anscheinend wirkungslos. Die Filterung der User übernehme ich nun über Zielgruppen, was recht umständlich ist jeden User einzeln einzutragen und mit "Or" zu verknüpfen...

 

Bleibt nun noch die Bereinigung der alten Netzwerkdrucker mit dem Problem des Standarddruckers.

Share this post


Link to post
vor 3 Minuten schrieb rt1970:

@BOfH_666Damit ist auflisten aller Drucker möglich, aber mir fehlt der Status "Drucker nicht gefunden" von Windows 10...

... da muss ich dann wieder passen ... so einen Status kenne ich nicht.

vor 3 Minuten schrieb rt1970:

Bleibt nun noch die Bereinigung der alten Netzwerkdrucker mit dem Problem des Standarddruckers.

Bei einem meiner Kunden ist die Windows 10 Standard-Einstellung aktiv - "Windows verwaltet den Standard-Drucker". Da gibt es dann quasi keine Eigenschaft "Standard-Drucker", die man auslesen oder beeinflussen könnte.  Nur so als Hinweis.  ;-) 

Share this post


Link to post
vor 2 Stunden schrieb BOfH_666:

Bei einem meiner Kunden ist die Windows 10 Standard-Einstellung aktiv - "Windows verwaltet den Standard-Drucker". Da gibt es dann quasi keine Eigenschaft "Standard-Drucker", die man auslesen oder beeinflussen könnte.  Nur so als Hinweis.  ;-) 

Das habe ich als erstes deaktiviert... Verwirrt die Leute nur, da Anwendungen auf den Standard-Drucker drucken. Wenn der sich ändert (wollen) die Leute nicht wissen wie man den Standard-Drucker definiert...

Und mich verwirrt es auch, weil ich (noch) keine Ahnung habe, wie das funktionieren soll und ich darauf Einfluss nehmen kann... 😢

 

Gibt es tatsächlich keine Möglichkeit "Netzwerkdrucker-Leichen" zu entsorgen (zu lassen)?

Share this post


Link to post
vor 16 Minuten schrieb rt1970:

Gibt es tatsächlich keine Möglichkeit "Netzwerkdrucker-Leichen" zu entsorgen (zu lassen)?

Vielleicht fängst Du's falsch an. Wenn Du alle lokalen und korrekt verbundenen Netzwerkdrucker identifizieren kannst, dann muss der Rest ja zu den "Leichen" gehören .... oder?

Share this post


Link to post
vor 4 Stunden schrieb rt1970:

Nachdem Microsoft 2017(?) in den GPO´s die Zuweisung der Drucker per User gestrichen hat, musste ich Scripte anlegen, die mir die Netzwerkdrucker verbinden. (oder habe ich was verpasst?)

Bist Du sicher? Ich kann das nicht sehen und noch weniger glauben, dass MS das gestrichen haben soll. Welche genaue Einstellung meinst Du? Per GPP geht es immer noch.

Share this post


Link to post

@BOfH_666

Das kann gut sein. Aber alle Abfragen die ich bisher gemacht habe deuteten nicht darauf hin, dass es Unterschiede gibt. Status z.B. war bei beiden identisch

 

@Sunny61

Ich hatte mich schon weiter oben ☝ korrigiert.

MS hatte damals die Berechtigungen in der GPP auf Druckerzuweisungen geändert.

Ich hatte derzeit die Druckerzuweisungen mit dem Sicherheitsfilter der Richtlinie bewerkstelligt dann dort nur die entsprechenden User eingetragen und "authentifizierten Benutzer" gelöscht. Das ging dann nicht mehr und die Drucker wurden nicht mehr zugewiesen.

Share this post


Link to post

Die Computer müssen das Recht haben die GPO zu lesen. 
Das fügst du über Delegierung hinzu. 
Diese Änderung gab es schon 2016.

 

Share this post


Link to post

@tesso

Genau das meinte ich! War doch schon so lange her? Wie die Zeit vergeht...

vor 4 Minuten schrieb tesso:

Das fügst du über Delegierung hinzu. 

Oder belässt die Rechte auf Standard (wie ich jetzt)...

Share this post


Link to post
vor 4 Stunden schrieb BOfH_666:

Vielleicht fängst Du's falsch an. Wenn Du alle lokalen und korrekt verbundenen Netzwerkdrucker identifizieren kannst, dann muss der Rest ja zu den "Leichen" gehören .... oder?

Mir gefällt die Art wie Du denkst! Der Ansatz ist nicht schlecht!

Bekannt sind ja die Drucker, die es gibt und alle anderen Netzwerkdrucker auf dem PC können gelöscht werden...

Danke! Der Ansatz klingt Super!

Share this post


Link to post
vor 2 Stunden schrieb rt1970:

MS hatte damals die Berechtigungen in der GPP auf Druckerzuweisungen geändert.

Ich hatte derzeit die Druckerzuweisungen mit dem Sicherheitsfilter der Richtlinie bewerkstelligt dann dort nur die entsprechenden User eingetragen und "authentifizierten Benutzer" gelöscht. Das ging dann nicht mehr und die Drucker wurden nicht mehr zugewiesen.

Diese Änderung fand im Juni 2016 statt, es jährt sich in diesen Tagen schon wieder. ;) Aufmerksam lesen und das/die GPO(s) anpassen, schon läuft wieder alles wie vor Juni 2016. https://www.gruppenrichtlinien.de/artikel/sicherheitsfilterung-neu-erfunden-ms16-072-patchday-14062016/

 

Share this post


Link to post

Danke für den Link. Der beschreibt genau diese Umstellung. Und richtig: vor 4 Jahren und 6 Tagen war der besagte Patchday 😁 -> herzlichen Glückwunsch 😄

Das ist aber nicht mehr mein Problem nachdem ich mich nochmals in diese Änderung eingelesen hatte.

Danach habe ich entschieden, dass ich eine Richtlinie mit allen Druckern anlege und jeden Drucker über Zielgruppen filtere.

Geht - wie ich finde - super, wenn man entsprechende Security-User-Gruppen anlegt (pro Drucker eine), dann hält sich der Aufwand für die Einrichtung in Grenzen.

 

Bleibt nur noch: meinen Murks zwischendurch auf den Clients wieder zu bereinigen... 🤔

Share this post


Link to post

Geht doch IMO recht einfach.  Entweder per mittels Script in eine Freigabe alle Drucker pro User in eine Logdatei ausgeben oder gleich zu Beginn beim Login jeden Drucker auf dem Client löschen und im zweiten Schritt neu anlegen.

 

Wenn per Script, dann die Logdateien auslesen und gezielt die Drucker löschen. Sind es wirklich viele Drucker oder nur ein paar?

Share this post


Link to post

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


Werbepartner:



×
×
  • Create New...