makemydayy
Goto Top

Netzwerkdrucker auf Client ersetzen (von alt zu neu)

Hallo miteinander,
meine Powershellskills sind leider sehr basic und ich muss für unsere Firma folgendes Szenario abbilden, wofür es mir leider einfach an Verständnis fehlt.
Sicherlich ist das für jemanden mit regelmäßiger Erfahrung kein Problem.. ich versuche mein Glück face-smile

Szenario:
Wir haben einen alten Printserver dieser kommt weg und haben einen neuen Printserver hochgezogen mit neuer Namenskonvention für die einzelnen Drucker.
Somit sind "gemappede" Drucker an einem Clientpc obsolete und müssen durch neue ersetzt werden, die im Endeffekt die identischen Geräte sind aber erreichbar unter einem neuen Namen über einen neuen Printserver

Ziel: Nach dem Switch auf den neuen Printserver soll bei jedem User/Client geprüft werden welche alten Drucker er eingebunden hat und falls positiv dann der neue Drucker hinzugefügt werden + der alte Drucker entfernt werden.
Das Script würde ich über eine GPO oder Taskscheduler dann bei jedem anmelden ausführen lassen

Zum eigentlichen:
In einer CSV stehen in 2 Spalten die Werte von den alten Druckern und dann den neuen Druckern

Deshalb dachte ich sowas wäre möglich:
$NetPrinters = Import-csv C:\Script\Druckerbenennung.csv -Delimiter ";"

foreach ($printer in $NetPrinters)
{
$alt = $printer.Alte_Bezeichnung
$neu = $printer.Neue_Benennung

IF EXIST ($alt.gls-printserverOLD.local)
THEN (Add-Printer $neu.gls-printserverNEW.local
Remove-Printer $alt.gls-printserverOLD.local)
}

Jetzt bekomm ich aber gefühlt bzgl. fast jedem Wort & Zeichen Fehlermeldungen...
hat jemand eine Idee oder kann mir sagen ob der Ansatz komplett falsch ist?

Vielen Dank für die eingesetzten Gedanken und viele Grüße

Content-Key: 1300005609

Url: https://administrator.de/contentid/1300005609

Printed on: April 18, 2024 at 09:04 o'clock

Member: Doskias
Doskias Sep 24, 2021 updated at 09:57:44 (UTC)
Goto Top
Moin,

Wieso so umständlich?

Verteil die neuen Drucker doch einfach per GPO. Die alten Drucker wirst du recht einfach los via

 get-printer | ? Computername -like "alter_Server" | remove-printer   

ich würde die Umstellung nutzen um alte Drucker, die nicht mehr bei den Anwendern genutzt werden zu löschen. Auf deine Weise schleppst du die Altlasten ja mit.

Gruß
Doskias

Nachtrag:
Ansonsten hilft immer die Fehlermeldung, wobei eine fehlersuche schwer ist, wenn man nicht weiß wie deine CSV-Datei aufgebaut ist.
Member: makemydayy
makemydayy Sep 24, 2021 at 10:48:09 (UTC)
Goto Top
Hi Doskias, danke für die schnelle Antwort.
Das Problem das ich hier sehe ist dass nicht jeder User automatisch jeden Drucker gemapped bekommen soll sondern einfach nur die die er benötigt (da orientiere ich mich eben an den bisher "gemappeden").
Würde ich das via GPO machen könnte ich den Abgleich doch nicht machen oder?
"Kategorisieren" nach Abteilungen geht leider nicht

Falls das doch noch von Relevanz sein sollte hänge ich mal nen Screenshot der CSV an.
Da es sich hierbei auch um knapp 100 Drucker handelt will ich nicht jeden einzeln anpacken
2021-09-24 12_44_06-druckerbenennung.csv - excel
Mitglied: 149569
149569 Sep 24, 2021 updated at 12:18:08 (UTC)
Goto Top
$printers = Import-csv "C:\Script\Druckerbenennung.csv" -Delimiter ";"  
Get-Printer | ? Name -in $printers.Alte_Bezeichnung | %{
    $newprinter = $printers | ? Alte_Bezeichnung -eq $_.Name | %{$_.Neue_Benennung}
    Add-Printer -ConnectionName "\\MySuperDuperPrintServer\$newprinter"  
    $_ | Remove-Printer
}
Member: dertowa
dertowa Sep 24, 2021 at 13:18:17 (UTC)
Goto Top
Zitat von @makemydayy:

Das Problem das ich hier sehe ist dass nicht jeder User automatisch jeden Drucker gemapped bekommen soll sondern einfach nur die die er benötigt

...und du möchtest systemseitig entscheiden welche Drucker die Kollegen benötigen?
Würde ich mir zweimal überlegen die Kollegen da zu "bevormunden".

Warum nicht einfach die zentralen Drucker sinnvoll nach Räumen/Etagen zuordnen und die Arbeitsplatzdrucker kann sich jeder selbst drum kümmern? ;)
Member: Hubert.N
Hubert.N Sep 24, 2021 updated at 14:02:39 (UTC)
Goto Top
Moin

Im einfachsten Fall werden die Rechner im AD entsprechend in OUs gegliedert und mit den OUs werden entsprechende Richtlinien mit Loopbackverarbeitung zugewiesen in der die Drucker für diesen Bereich zugewiesen werden..
So mache ich das eigentlich immer bei meinen Kunden. Läuft zuverläsisg und ist in der Verarbeitung schnell.

Oder alternativ packt man die PCs in Gruppen und richtet die Druckerzuweisung mit Zielgruppenadressierung ein.

Bei vielen Druckern ist die Variante 2 aber sicher deutlich langsamer in der Verarbeitung, weil natürlich alle Objekte verarbeitet werden und die Zielgruppenadressierung jeweils relativ viel Zeit benötigt., obwohl dann unterm Strich nur ein, zwei davon angewendet werden.

Gruß
Member: Hubert.N
Hubert.N Sep 24, 2021 at 13:58:56 (UTC)
Goto Top
Zitat von @dertowa:
...und du möchtest systemseitig entscheiden welche Drucker die Kollegen benötigen?
Würde ich mir zweimal überlegen die Kollegen da zu "bevormunden".

Das ist doch kein Problem... Wenn es Abteilungsdrucker gibt, dann wollen die MA sicherlich den Drucker haben, der sich in Ihrer Nähe befindet!?

Warum nicht einfach die zentralen Drucker sinnvoll nach Räumen/Etagen zuordnen und die Arbeitsplatzdrucker kann sich jeder selbst drum kümmern? ;)

Vlt. weil viele MA das selber nicht auf die Reihe bekommen???

Gruß face-smile
Member: Doskias
Doskias Sep 27, 2021 at 07:30:27 (UTC)
Goto Top
Zitat von @makemydayy:
Hi Doskias, danke für die schnelle Antwort.
Gerne, die hier dauert länger face-smile

Das Problem das ich hier sehe ist dass nicht jeder User automatisch jeden Drucker gemapped bekommen soll sondern einfach nur die die er benötigt (da orientiere ich mich eben an den bisher "gemappeden").
Würde ich das via GPO machen könnte ich den Abgleich doch nicht machen oder?
Doch. Das ganze nennt sich "Zielgruppenadressierung". Du musst eine AD-Gruppe pro Drucker einrichten und dann in der Konfiguration zuweisen, dass nur diese Gruppe den Drucker bekommt. In die AD-Gruppe kommen dann die User. Fertig.

Das ganze kannst du dir ja recht einfach machen. Werte einfach für jeden User aus, welchen Drucker er hat (hast du ja schon) und schreibe das in eine Datei entweder pro User/pro Drucker. Dann legst du im AD die Gruppen für den Drucker an und fügst die User aus der Datei hinzu. Das ganze geht recht einfach mit add-adgroupmember via Powershell. Du musst dann händisch nur in der GPO die Drucker und Ad-Gruppen einmal verbinden. Fertig.

"Kategorisieren" nach Abteilungen geht leider nicht
Muss ja auch nicht

Da es sich hierbei auch um knapp 100 Drucker handelt will ich nicht jeden einzeln anpacken
Bei 100 Druckern sind das halt 100 Gruppen <-> Drucker Zuordnung im AD. Aber du hast danach im AD eine schöne Übersicht welcher User welchen Drucker hat und kannst das ganze recht einfach steuern. Ja, es ist mehr Aufwand als du mit einem lokal ausführbaren auslesen und mappen Skript hast, aber es ist einmalig und (anders als ein Skript) weniger Fehleranfällig. Das Mapping per GPO ist nicht von einer Datei abhängig und kann zentral gesteuert werden. Entweder es geht, oder es geht nicht. Skriptausführungsrichtlinien, etc. können die beim Drucker Mapping via GPO nicht dazwischen funken. Ich würde (bei 100 Druckern) und dem oben genannten Skript, einfach mal die 2 Stunden investieren um das auf GPO umzustellen.

Gruß
Doskias

PS: Die 2 Stunden sind einfach aus dem bauch geschätzt. Kann auch schneller gehen oder länger brauchen. Der Hauptaufwand ist aber Fleißarbeit bei der GPO-Zuordnung und die kannst du an einen Azubi abgeben. Wenn du keinen hast, musst du selbst mal fleißig sein face-smile
Member: makemydayy
makemydayy Sep 27, 2021 at 08:52:16 (UTC)
Goto Top
Danke das werde ich nachher mal probieren
Member: makemydayy
makemydayy Sep 27, 2021 at 09:39:59 (UTC)
Goto Top
Mein Vorgesetzter möchte die GPO Lösung umgesetzt haben im Rahmen eines neuen Druckerkonzepts - also hat sich das mit dem Script ohnehin erledigt.

Danke für eure Hilfe bzw. die Ideen
Member: Doskias
Doskias Sep 27, 2021 at 10:10:31 (UTC)
Goto Top
Zitat von @makemydayy:

Mein Vorgesetzter möchte die GPO Lösung umgesetzt haben im Rahmen eines neuen Druckerkonzepts - also hat sich das mit dem Script ohnehin erledigt.

Danke für eure Hilfe bzw. die Ideen

Das Skript kannst du ja dennoch teilweise nutzen um die derzeitigen Drucker zu ermitteln und zu dokumentieren, was du bei wem einrichten musst.

Freut mich aber, das wir dir helfen konnten.

Gruß
Doskias