
{"id":15,"date":"2013-08-12T17:18:14","date_gmt":"2013-08-12T15:18:14","guid":{"rendered":"http:\/\/www.showerpell.de\/?p=15"},"modified":"2013-08-12T17:18:14","modified_gmt":"2013-08-12T15:18:14","slug":"ad-gruppenmitglieder-auslesen","status":"publish","type":"post","link":"https:\/\/www.showerpell.de\/?p=15","title":{"rendered":"Teil 1: AD-Gruppenmitglieder auslesen"},"content":{"rendered":"<p>Aufgabenstellung: Ein Umzug eines bzw. mehrerer Fileserver von einer Dom\u00e4ne in die andere inkl. \u00dcbernahme der bestehenden Berechtigungen. Die User sind in Dom\u00e4ne B Gruppen zugeordnet. Dom\u00e4ne B ist eine Unterdom\u00e4ne von Dom\u00e4ne A. Der Fileserver ist in Dom\u00e4ne C und in dessen lokalen Gruppen sind die globalen Berechtigungsgruppen der Dom\u00e4ne B. Dom\u00e4ne C f\u00e4llt weg und die Fileserver sollen zuk\u00fcnftig in Dom\u00e4ne A laufen und die Gruppen namenstechnisch aus Dom\u00e4ne C \u00fcbernehmen.<\/p>\n<p>Erster Schritt: Die Gruppenmitgliedschaft aus Dom\u00e4ne C (Vertrauensstellung zu Dom\u00e4ne A besteht) auslesen, um dort Leichen zu finden und zu bereinigen. Problem: Die Abtrennung in eine andere Dom\u00e4ne, erschwert den Zugriff, da in Dom\u00e4ne C keine Domainadminrechte vorhanden sind, lediglich Berechtigungen auf Fileebene und in bestimmte OU&#8217;s. Erster Versuch mit Get-ADGroupmember im Folgenden:<\/p>\n<div class=\"codecolorer-container text default\" style=\"overflow:auto;white-space:nowrap;width:800px;\"><div class=\"text codecolorer\">#Variablen definieren<br \/>\n$textfile=&quot;gruppen.txt&quot;<br \/>\n$output=&quot;gruppen.csv&quot;<br \/>\n<br \/>\n# Gruppen auslesen und in Textfile schreiben.<br \/>\nDSQuery * -d domain.de -Filter &quot;(&amp;(objectClass=group)(member=*))&quot; -Limit 0 &gt;$textfile<br \/>\n<br \/>\n#Textfile in Array<br \/>\n$gruppenhp = (Get-Content $textfile)<br \/>\n<br \/>\n#Ausgabe Gruppenmitglieder<br \/>\nforeach ($_ in $gruppenhp)<br \/>\n&nbsp; &nbsp; {<br \/>\n&nbsp; &nbsp; Get-ADGroupMember -Identity $_<br \/>\n&nbsp; &nbsp; }<\/div><\/div>\n<p>Ergebnis: Mit Get-ADGroupmember k\u00f6nnen keine Gruppen aus fremden Dom\u00e4nen ausgelesen werden, es werden Gruppen aus Dom\u00e4ne A erwartet.<\/p>\n<p>Zweiter Versuch mit DSQUERY und DSGET, der Abschnitt #Ausgabe Gruppenmitglieder wird ersetzt durch:<\/p>\n<div class=\"codecolorer-container text default\" style=\"overflow:auto;white-space:nowrap;width:800px;\"><div class=\"text codecolorer\">foreach ($a in $gruppenhp)<br \/>\n&nbsp; &nbsp; {<br \/>\n&nbsp; &nbsp; DSQUERY GROUP $a | DSGET GROUP -MEMBERS<br \/>\n&nbsp; &nbsp; }<\/div><\/div>\n<p>Hier klappt der Zugriff \u00fcber Dom\u00e4nengrenzen hinweg, Problem: Die Gruppen k\u00f6nnen nicht aufgel\u00f6st werden und anstatt dem Gruppennamen wird nur die SID mit dem Hinweis auf &#8222;ForeignSecurityPrincipals&#8220; ausgegeben. <del datetime=\"2013-08-12T14:39:17+00:00\">\u00dcberlegungen zur Nutzung von SID-Aufl\u00f6sung mittels System.Security.Principal.NTAccount  habe ich aufgrund fehlender Scripterfahrung wieder verworfen, eine Automatisierung gestaltete sich hier schwierig&#8230;<\/del><\/p>\n<p>L\u00f6sung daf\u00fcr w\u00e4re das optimierte Cmdlet von Quest, das vollst\u00e4ndige Script lautet:<\/p>\n<div class=\"codecolorer-container text default\" style=\"overflow:auto;white-space:nowrap;width:800px;\"><div class=\"text codecolorer\">#Questmodul laden<br \/>\nAdd-PSSnapin Quest.ActiveRoles.ADManagement<br \/>\n<br \/>\n#Variablen definieren<br \/>\n$textfile=&quot;gruppen.txt&quot;<br \/>\n$output=&quot;gruppen.csv&quot;<br \/>\n<br \/>\n# Gruppen auslesen und in Textfile schreiben.<br \/>\nDSQuery * -d domain.de -Filter &quot;(&amp;(objectClass=group)(member=*))&quot; -Limit 0 &gt;$textfile<br \/>\n<br \/>\n#Textfile in Array<br \/>\n$gruppenhp = (Get-Content $textfile)<br \/>\n<br \/>\n#Ausgabe Gruppenmitglieder<br \/>\nforeach ($_ in $gruppenhp)<br \/>\n&nbsp; &nbsp; {<br \/>\n&nbsp; &nbsp; Get-QADGroupMember -Identity $_<br \/>\n&nbsp; &nbsp; }<\/div><\/div>\n<p>Aber: Hier macht die Variablen\u00fcbergabe Probleme, was bei den erstgenannten Scripts funktioniert, meldet hier einen Fehler, anstatt Zeile f\u00fcr Zeile auszulesen und abzufragen, nimmt das Quest-Cmdlet die Variable nicht mit und meckert etwas \u00fcber falsche Parameter. Sobald ich eine L\u00f6sung habe, wird sie hier ver\u00f6ffentlicht.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Aufgabenstellung: Ein Umzug eines bzw. mehrerer Fileserver von einer Dom\u00e4ne in die andere inkl. \u00dcbernahme der bestehenden Berechtigungen. Die User sind in Dom\u00e4ne B Gruppen zugeordnet. Dom\u00e4ne B ist eine Unterdom\u00e4ne von Dom\u00e4ne A. Der Fileserver ist in Dom\u00e4ne C und in dessen lokalen Gruppen sind die globalen Berechtigungsgruppen der Dom\u00e4ne B. Dom\u00e4ne C f\u00e4llt [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[],"class_list":["post-15","post","type-post","status-publish","format-standard","hentry","category-fileserver"],"_links":{"self":[{"href":"https:\/\/www.showerpell.de\/index.php?rest_route=\/wp\/v2\/posts\/15","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.showerpell.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.showerpell.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.showerpell.de\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.showerpell.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=15"}],"version-history":[{"count":0,"href":"https:\/\/www.showerpell.de\/index.php?rest_route=\/wp\/v2\/posts\/15\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.showerpell.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=15"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.showerpell.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=15"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.showerpell.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=15"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}