{"id":264,"date":"2020-08-25T10:58:48","date_gmt":"2020-08-25T08:58:48","guid":{"rendered":"https:\/\/jet0jlh.de\/?p=264"},"modified":"2020-08-25T13:52:38","modified_gmt":"2020-08-25T11:52:38","slug":"powershell-automatische-druckerzuweisung-nach-gruppenmitgliedschaft","status":"publish","type":"post","link":"https:\/\/jet0jlh.de\/?p=264","title":{"rendered":"Powershell &#8211; Automatische Druckerzuweisung nach Gruppenmitgliedschaft"},"content":{"rendered":"\n<p>M\u00f6chte man Drucker automatisch anhand der Gruppenmitgliedschaft des PCs zuweisen, kann man mein Skript hierf\u00fcr verwenden. Einzige Voraussetzung. Die Druckergruppen m\u00fcssen den gleichen Namen Tragen wie der Drucker Ferigabenamen + die Druckergruppen sollten sich in einer OU befinden in der sich keine anderen Gruppen befinden + Sollten vom gleichen Druckserver kommen. Ansonsten m\u00fcsste man sich einen eigenen Filter \u00fcberlegen (Eventuell gibt es in eurer Umgebung ja eine Einheitliche Druckerbennenung nach der ihr filtern k\u00f6nnt)<\/p>\n\n\n\n<p>Ablauf des Skripts:<br>1. Suche nach dem eigenen PC in der AD<br>2. Lese die Gruppenmitgliedschaften des PCs aus<br>2.1 Suche nur die Druckergroupen anhand ihrer Organisationseinheit (OU) in der AD<br>3. Lese alle bereits vorhandenen Drucker aus<br>3.1 Suche nur nach den Druckern die vom gew\u00fcnschten Druckserver kommen<br>4. Pr\u00fcfe die Differenz und f\u00fcge die fehlenden Drucker hinzu<br>5. Pr\u00fcfe die Differenz und entferne die nicht mehr zugewiesenen Drucker<\/p>\n\n\n\n<p>Der Ablauf hat den Vorteil, dass nur die Differenzen ver\u00e4ndert werden und nicht bei jedem Start Drucker entfernt oder gel\u00f6scht werden. Somit bleib auch der Standarddrucker erhalten.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"powershell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">#OU in der der Druckergruppen in der AD vorkommt\n$printerOu = \"OU=Drucker\"\n\n#Druckserver hostname\n$printserver = \"servername\"\n\n#Suche den eigenen PC in der AD\nwrite-host \"Suche nach Ger\u00e4t $env:computername in AD...\"\n$myComputer = Get-ADComputer -Filter \"Name -like '$env:computername'\"\n\n#Lade die Gruppenmitgliedschaft des eigenen PCs\nwrite-host \"Suche nach Ger\u00e4te Gruppenmitgliedschaft...\"\n$myGroups = $myComputer | Get-ADPrincipalGroupMembership\n\n#Erstelle eine leere Liste mit allen Drucker Gruppenmitgliedschaften\n$myPrinterGroups = @()\n\n#Sortiere die Druckergruppen aus\nforeach($group in $myGroups) {\n\tif($group.distinguishedName.Contains(\"$printerOu\") {\n\t\t$myPrinterGroups += $group\n\t}\n}\n\n#Lade eine Liste meiner eigenen Drucker\nwrite-host \"Lese die eigenen Drucker aus...\"\n$myPrinters = Get-Printer *\n\n#Erstelle eine leere Liste f\u00fcr Drucker die vom eigentlichen Druckserver stammen\n$myOwnPrinters = @()\n\n#Sortiere die Drucker vom gew\u00e4hlten Printserver aus\nforeach($printer in $myPrinters) {\n\tif($printer.Shared -and $printer.ComputerName -eq $printserver) {\n\t\t$myOwnPrinters += $printer\n\t}\n}\n\n#Ermittle die Differenz und checke welche Drucker noch hinzugef\u00fcgt werden m\u00fcssen.\nwrite-host \"`nFolgende Drucker m\u00fcssen hinzugef\u00fcgt werden:\"\nforeach($group in $myPrinterGroups) {\n\t$found = $false\n\tforeach($printer in $myOwnPrinters) {\n\t\tif ($printer.ShareName -eq $group.SamAccountName) {$found = $true}\n\t}\n\tif (!$found) {\n\t\twrite-host -NoNewline $group.SamAccountName\n\t\ttry {\n\t\t\tAdd-Printer -ConnectionName \"\\\\$printserver\\$($group.SamAccountName)\"\n\t\t\twrite-host \" [OK]\"\n\t\t}\n\t\tcatch {\n\t\t\twrite-host \" [FAIL]\"\n\t\t}\n\t}\n}\n\n#Ermittle die Differenz und checke welche Drucker noch entfernt werden m\u00fcssen\n\ufeffwrite-host \"`nFolgende Drucker m\u00fcssen entfernt werden:\"\nforeach($printer in $myOwnPrinters) {\n\t$found = $false\n\tforeach($group in $myPrinterGroups) {\n\t\tif ($printer.ShareName -eq $group.SamAccountName) {$found = $true}\n\t}\n\tif (!$found) {\n\t\t$removePrinters += $printer\n\t\twrite-host -NoNewline $printer.ShareName\n\t\ttry {\n\t\t\tRemove-Printer -InputObject $printer\n\t\t\twrite-host \" [OK]\"\n\t\t}\n\t\tcatch {\n\t\t\twrite-host \" [FAIL]\"\n\t\t}\n\t}\n}<\/pre>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>M\u00f6chte man Drucker automatisch anhand der Gruppenmitgliedschaft des PCs zuweisen, kann man mein Skript hierf\u00fcr verwenden. Einzige Voraussetzung. Die Druckergruppen m\u00fcssen den gleichen Namen Tragen wie der Drucker Ferigabenamen + die Druckergruppen sollten sich in einer OU befinden in der sich keine anderen Gruppen befinden + Sollten vom gleichen Druckserver&#8230; <a href=\"https:\/\/jet0jlh.de\/?p=264\">Read more &raquo;<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[],"class_list":["post-264","post","type-post","status-publish","format-standard","hentry","category-powershell"],"_links":{"self":[{"href":"https:\/\/jet0jlh.de\/index.php?rest_route=\/wp\/v2\/posts\/264","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jet0jlh.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jet0jlh.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jet0jlh.de\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jet0jlh.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=264"}],"version-history":[{"count":11,"href":"https:\/\/jet0jlh.de\/index.php?rest_route=\/wp\/v2\/posts\/264\/revisions"}],"predecessor-version":[{"id":280,"href":"https:\/\/jet0jlh.de\/index.php?rest_route=\/wp\/v2\/posts\/264\/revisions\/280"}],"wp:attachment":[{"href":"https:\/\/jet0jlh.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=264"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jet0jlh.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=264"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jet0jlh.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=264"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}