estefania
Goto Top

AD-User einer AD-Gruppe auslesen und in ein File schreiben

Guten Abend.

Ich habe eine Frage an Experten.
Suche ein einfaches Script, wo mir AD-User einer von mir ausgewählten AD-Gruppe herausschreibt.
Um genauer zu sagen, soll folgendes passieren

1. Ich gebe den Namen der AD-Gruppe an
2. Die User dieser angegebenen AD-Gruppe werden in ein Textfile wie folgt aufgeschrieben

Domäne\User1;Domäne\User2;Domäne\User3 usw.

Es soll ganz vorne immer der Domänenname stehen, dann Backslash, dann Benutzername, und danach ein Semikolon

Sowas ist bestimmt realisierbar, oder?

Ich bedanke mich jetzt schon

Content-Key: 315751

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

Ausgedruckt am: 19.03.2024 um 14:03 Uhr

Mitglied: Knorkator
Knorkator 21.09.2016 aktualisiert um 08:20:37 Uhr
Goto Top
So in etwa?

function GruppenmitgliederExport($Domäne,$ADGruppe,$dateiname)
{
$Groupmember=Get-ADGroupMember $ADGruppe | select samaccountname
foreach ($User in $GroupMember.samaccountname)
{ write-output "$Domäne\$User;" | Out-File $dateiname -Append}  
}
GruppenmitgliederExport -Domäne "Domänenname" -ADGruppe "ADGruppe" -dateiname "c:\test.txt"   

Die Zeilenumbrüche kannst Du per Notepad++ entfernen.
Ansonsten hat bestimmt jemand nen replace Befehl zu hand.
face-smile
Mitglied: Estefania
Estefania 21.09.2016 um 09:00:26 Uhr
Goto Top
Hmm.. und wie führe ich es aus? Habe es als VBS Datei abgespeichert. Nach dem Ausführen bekomme ich aber immer Kompilierungsfehler
Mitglied: Knorkator
Knorkator 21.09.2016 um 09:56:06 Uhr
Goto Top
Speicher das Script als .ps1 Datei ab und starte es auf einem Domänencontroller in der Powershell_ISE Umgebung.
Mitglied: Estefania
Estefania 21.09.2016 um 10:06:02 Uhr
Goto Top
Habe es nun als .ps1 datei abgespeichert und dann ausprobiert

test.ps1 AD-GRUPPENNAME

Danach habe ich folgendes als Antwort erhalten

Die Zeichenfolge hat kein Abschlusszeichen: ".
Zeichen:97
Mitglied: colinardo
Lösung colinardo 21.09.2016 aktualisiert um 11:53:18 Uhr
Goto Top
Hallo Estefania,
er hat in der letzten Zeile ein doppeltes nicht abgeschlossenes Anführungszeichen face-wink "ADGruppe""

Für das gewünschte würde aber diese Zeile reichen:
(Get-AdGroupMember "GRUPPEXYZ" -Recursive | %{"$env:UserDomain\$($_.SamAccountName)"}) -join ';'  
Wenn das der gewünschten Ausgabe entspricht hängst du einfach noch den Befehl zu Schreiben in eine Textdatei via Pipe an:
(Get-AdGroupMember "GRUPPEXYZ" -Recursive | %{"$env:UserDomain\$($_.SamAccountName)"}) -join ';' | set-content 'C:\export.txt'  

Grüße Uwe
Mitglied: Estefania
Estefania 21.09.2016 um 11:38:53 Uhr
Goto Top
Vielen Dank

Habe nun das erste ausprobiert

(get-aduser -Filter * | %{"$env:UserDomain\$($_.SamAccountName)"}) -join ';'

Mir werden hierbei viel mehr Usernamen ausgegeben, als in dieser Gruppe stehen
Habe ich es auch richtig eingegeben?

datei.ps1 AD-Gruppenname
Mitglied: Knorkator
Knorkator 21.09.2016 um 11:39:34 Uhr
Goto Top
Zitat von @colinardo:
er hat in der letzten Zeile ein doppeltes nicht abgeschlossenes Anführungszeichen face-wink "ADGruppe""
Ups.. habe ich korrigiert

Zitat von @colinardo:
Für das gewünschte würde aber diese Zeile reichen:
> (get-aduser -Filter * | %{"$env:UserDomain\$($_.SamAccountName)"}) -join ';'  
Gefällt mir gut und ist sicherlich besser/kürzer als meine Variante.
Aber sollte das nicht so aussehen?
(Get-ADGroupMember ADGruppe | % {"$env:USERDOMAIN\$($_.SamAccountName)"}) -join ';' | out-file c:\test.txt  
Mitglied: colinardo
colinardo 21.09.2016 aktualisiert um 11:43:48 Uhr
Goto Top
Ach sorry, das hatte ich vollkommen übersehen das du "Gruppenmitglieder" möchtest, ist oben aktualisiert ...
Mitglied: Estefania
Estefania 21.09.2016 um 18:02:43 Uhr
Goto Top
Vielen Dank. Eure Hilfe hat mir einiges an Arbeit erspart face-smile

Liebe Grüße
Estefania
Mitglied: Estefania
Estefania 29.09.2016 um 07:56:51 Uhr
Goto Top
Ah.. vielleicht doch noch eine Frage.

Ist es irgendwie möglich angemeldet auf einem Server die Gruppenmitglieder eines von mir vorgegebenen Verzeichnisses genauso auszugeben?
Das wäre für mich sehr hilfreich
Mitglied: colinardo
colinardo 29.09.2016 aktualisiert um 08:25:05 Uhr
Goto Top
Zitat von @Estefania:
Ist es irgendwie möglich angemeldet auf einem Server die Gruppenmitglieder eines von mir vorgegebenen Verzeichnisses genauso auszugeben?
Du meinst mit "Verzeichnis" eine OU ? D.h. du willst alle Mitglieder von allen Gruppen einer bestimmten OU?

Wenn ja dann hol dir die Gruppen der OU mit Get-AdGroup und dem Parameter -SearchBase, bei dem du die den DN der OU angibst, das ganze pipest du dann an Get-ADGroupMember und der Rest der Pipe bleibt dann wie oben. Fertig.

Bitte präzisiere deine Frage. Merci.
Mitglied: Estefania
Estefania 29.09.2016 um 08:30:21 Uhr
Goto Top
Nein das meinte ich nicht.
Ich möchte z.B. die Mitglieder eines Verzeichnisses ausgegeben haben
z.B. ich gebe das Verzeichnis D:\DATEN\POST an und bei der Ausgabe sollen dann alle User, Gruppen ausgegeben werden, die auf dieses Verzeichnis zugreifen. Ist sowas möglich?
Mitglied: colinardo
colinardo 29.09.2016 aktualisiert um 08:34:59 Uhr
Goto Top
Ach so, na das ist ja was ganz anderes als im obigen Thread, das sind keine Mitglieder eines Verz. sondern die NTFS ACLs des Verzeichnisses.

Die bekommst du ganz einfach mit Get-ACL
Mitglied: Estefania
Estefania 29.09.2016 um 08:39:58 Uhr
Goto Top
Leider kenn ich mich mit diesen Scripten nicht so aus. Wie müsste ich es denn genau aufschreiben und als PS1 Datei abspeichern, damit es nutzbar ist?
Mitglied: colinardo
colinardo 29.09.2016 aktualisiert um 09:01:58 Uhr
Goto Top
Och mönsch, benutz doch bitte mal die Suche dazu habe ich hier x Scripte bereits gepostet:
Z.B. hier
Vergebene Rechte dokumentieren - Gibt es hierfür ein anwenderfreundliches Tool?
AD User auslesen und in Datei mit Logo abspeichern

Wenn du dir die Eigenschaften der Ausgabe von Get-ACL mal angesehen hättest dann wäre schon alles klar gewesen welche Eigenschaft du brauchst ... face-confused

Get-ACL 'C:\Ordner' | gm *

Get-ACL 'C:\ordner' | select -Expand Access