Tool zum Anlegen von AD Gruppen gesucht
Hallo,
wir sind gerade dabei, alle Verzeichnisse für alle Abteilungen nach den Best Practice Regeln von Microsoft zu überarbeiten (Globale Gruppe in Lokale Gruppe, NTFS Rechte auf die Lokale Gruppe und die User in die Globale Gruppe).
Das funktioniert auch sehr gut, nur ist es ziemlich aufwendig, weil das pro unterordner 4 Gruppen sind (2x Local R+W und 2x Global R+W) und bedeutet ca. 50 Gruppen pro Verzeichnis und 30 Verzeichnisse.
Ich bin auf der Suche nach einem Tool, das mir genau das abnimmt. D.h. Nice-to-Have Lösung wäre: Ich würde eine Excel oder .txt anlegen, da reinschreiben, wie die Gruppen heißen, ob lokal oder global und dann in einer OU anlegen lassen und später diese dann innerhalb des ADs verschieben. Zwei Programme (einmal nur globale und einmal nur lokale Gruppen) wären auch OK.
Domäne ist komplett W2K3.
Kennt jemand so ein Tool?
Habt Dank.
wir sind gerade dabei, alle Verzeichnisse für alle Abteilungen nach den Best Practice Regeln von Microsoft zu überarbeiten (Globale Gruppe in Lokale Gruppe, NTFS Rechte auf die Lokale Gruppe und die User in die Globale Gruppe).
Das funktioniert auch sehr gut, nur ist es ziemlich aufwendig, weil das pro unterordner 4 Gruppen sind (2x Local R+W und 2x Global R+W) und bedeutet ca. 50 Gruppen pro Verzeichnis und 30 Verzeichnisse.
Ich bin auf der Suche nach einem Tool, das mir genau das abnimmt. D.h. Nice-to-Have Lösung wäre: Ich würde eine Excel oder .txt anlegen, da reinschreiben, wie die Gruppen heißen, ob lokal oder global und dann in einer OU anlegen lassen und später diese dann innerhalb des ADs verschieben. Zwei Programme (einmal nur globale und einmal nur lokale Gruppen) wären auch OK.
Domäne ist komplett W2K3.
Kennt jemand so ein Tool?
Habt Dank.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 44664
Url: https://administrator.de/contentid/44664
Ausgedruckt am: 05.11.2024 um 16:11 Uhr
3 Kommentare
Neuester Kommentar
Hallo limonadoo!
Aus MS-Materialien zusammengebastelt:
Das Script liest eine Listendatei "C:\Gruppenliste.txt" zeilenweise aus, erzeugt je Eintrag eine Lokale (mit Präfix "L") und eine Globale (Präfix "G") Sicherheitsgruppe in der OU "Users" und nimmt die Globale Gruppe in die Lokale Gruppe auf.
Die beiden "Const"-Einträge für Domäne und Listendatei sind an Deine Gegebenheiten anzupassen, desgleichen die Namenskonventionen für die Gruppen.
Errorhandling und Logging sind nicht implementiert.
HTH
bastla
Aus MS-Materialien zusammengebastelt:
'MakeGroups.vbs
Const ADS_GROUP_TYPE_LOCAL_GROUP = &h4
Const ADS_GROUP_TYPE_GLOBAL_GROUP = &h2
Const ADS_GROUP_TYPE_SECURITY_ENABLED = &h80000000
Const ADS_PROPERTY_APPEND = 3
Const sDomain = "dc=test,dc=local"
Const sList = "C:\Gruppenliste.txt"
Set fso = WScript.CreateObject("Scripting.FileSystemObject")
Set oGrpList = fso.OpenTextFile(sList, 1)
Do While Not oGrpList.AtEndOfStream
'Read GroupName
sGroupName = oGrpList.ReadLine
sGroupLocal = "L" & sGroupName 'Benennung Lokale Gruppe
sGroupGlobal = "G" & sGroupName 'Benennung Globale Gruppe
'Create Local Group
Set objOU = GetObject("LDAP://cn=users," & sDomain)
Set objGroup = objOU.Create("Group", "cn=" & sGroupLocal)
objGroup.Put "sAMAccountName", sGroupLocal
objGroup.Put "groupType", ADS_GROUP_TYPE_LOCAL_GROUP Or _
ADS_GROUP_TYPE_SECURITY_ENABLED
objGroup.SetInfo
'Create Global Group
Set objOU = GetObject("LDAP://cn=users," & sDomain)
Set objGroup = objOU.Create("Group", "cn=" & sGroupGlobal)
objGroup.Put "sAMAccountName", sGroupGlobal
objGroup.Put "groupType", ADS_GROUP_TYPE_GLOBAL_GROUP Or _
ADS_GROUP_TYPE_SECURITY_ENABLED
objGroup.SetInfo
'Add Global Group To Local Group
Set objGroup = GetObject("LDAP://cn=" & sGroupLocal & ",cn=Users," & sDomain)
objGroup.PutEx ADS_PROPERTY_APPEND, "member", _
Array("cn=" & sGroupGlobal & ",cn=Users," & sDomain)
objGroup.SetInfo
Loop
oGrpList.Close
Die beiden "Const"-Einträge für Domäne und Listendatei sind an Deine Gegebenheiten anzupassen, desgleichen die Namenskonventionen für die Gruppen.
Errorhandling und Logging sind nicht implementiert.
HTH
bastla
Hallo bastla,
Ich habe in meiner Liste 10 Einträge (Gruppen die im AD angelegt werden sollten! Das funktioniert, jetzt habe ich noch das Problem: Die Gruppe 3 aus dem Array müßte in die Gruppe 5 & 8 der Array Einträge, wie kann ich das lösen?
Ich hoffe du kannst mir helfen!
Const OU = "ou=Test,ou=Untergruppe,ou=Groups,dc=Firma,dc=corp"
Const List = "C:\Temp\Gruppenliste.txt"
Const ADS_GROUP_TYPE_LOCAL_GROUP = &h4
Const ADS_GROUP_TYPE_SECURITY_ENABLED = &h80000000
Set objOU = GetObject("LDAP://" & OU)
Set fso = CreateObject("Scripting.FileSystemObject")
If Not fso.FileExists(List) Then
WScript.Echo "Datei " & List & " nicht gefunden!"
WScript.Quit 1
End If
arrGruppen = Split(fso.OpenTextFile(List, 1, False).ReadAll, vbCrLF)
for each strGruppe In arrGruppen
MakeGroup strGruppe
wScript.Echo "Erstelle Gruppe: " & strGruppe & i
Next
WScript.Echo "Fertig."
Sub MakeGroup(strGrName)
Set objGroup = objOU.Create("Group", "cn=" & strGrName)
objGroup.Put "sAMAccountName", strGrName
objGroup.Put "groupType", ADS_GROUP_TYPE_LOCAL_GROUP Or _
ADS_GROUP_TYPE_SECURITY_ENABLED
objGroup.Put "description", "Beschreibung"
objGroup.SetInfo
End Sub
Ich habe in meiner Liste 10 Einträge (Gruppen die im AD angelegt werden sollten! Das funktioniert, jetzt habe ich noch das Problem: Die Gruppe 3 aus dem Array müßte in die Gruppe 5 & 8 der Array Einträge, wie kann ich das lösen?
Ich hoffe du kannst mir helfen!
Const OU = "ou=Test,ou=Untergruppe,ou=Groups,dc=Firma,dc=corp"
Const List = "C:\Temp\Gruppenliste.txt"
Const ADS_GROUP_TYPE_LOCAL_GROUP = &h4
Const ADS_GROUP_TYPE_SECURITY_ENABLED = &h80000000
Set objOU = GetObject("LDAP://" & OU)
Set fso = CreateObject("Scripting.FileSystemObject")
If Not fso.FileExists(List) Then
WScript.Echo "Datei " & List & " nicht gefunden!"
WScript.Quit 1
End If
arrGruppen = Split(fso.OpenTextFile(List, 1, False).ReadAll, vbCrLF)
for each strGruppe In arrGruppen
MakeGroup strGruppe
wScript.Echo "Erstelle Gruppe: " & strGruppe & i
Next
WScript.Echo "Fertig."
Sub MakeGroup(strGrName)
Set objGroup = objOU.Create("Group", "cn=" & strGrName)
objGroup.Put "sAMAccountName", strGrName
objGroup.Put "groupType", ADS_GROUP_TYPE_LOCAL_GROUP Or _
ADS_GROUP_TYPE_SECURITY_ENABLED
objGroup.Put "description", "Beschreibung"
objGroup.SetInfo
End Sub
Hallo wuwu!
Versuch es so:
Grüße
bastla
Versuch es so:
Const OU = "ou=Test,ou=Untergruppe,ou=Groups,dc=Firma,dc=corp"
Const List = "C:\Temp\Gruppenliste.txt"
intGr = 2 'Index der Gruppe, die hinzugefügt werden soll
arrHinzu = Array(4,7) 'Indizes der Gruppen, in denen obige Gruppe Mitglied werden soll
Const ADS_GROUP_TYPE_LOCAL_GROUP = &h4
Const ADS_GROUP_TYPE_SECURITY_ENABLED = &h80000000
Const ADS_PROPERTY_APPEND = 3
Set objOU = GetObject("LDAP://" & OU)
Set fso = CreateObject("Scripting.FileSystemObject")
If Not fso.FileExists(List) Then
WScript.Echo "Datei " & List & " nicht gefunden!"
WScript.Quit 1
End If
arrGruppen = Split(fso.OpenTextFile(List, 1, False).ReadAll, vbCrLF)
For Each strGruppe In arrGruppen
WScript.Echo "Erstelle Gruppe: " & strGruppe
MakeGroup strGruppe
Next
'Mitgliedschaften setzen
strGr = "cn=" & arrGruppen(intGr) & "," & OU
For Each intHinzu In arrHinzu
WScript.Echo "Füge """ & arrGruppen(intGr) & """ der Gruppe """ & arrGruppen(intHinzu) & """ hinzu"
Set objGroup = GetObject("LDAP://cn=" & arrGruppen(intHinzu) & "," & OU)
objGroup.PutEx ADS_PROPERTY_APPEND, "member", Array(strGr)
objGroup.SetInfo
Next
WScript.Echo "Fertig."
Sub MakeGroup(strGrName)
Set objGroup = objOU.Create("Group", "cn=" & strGrName)
objGroup.Put "sAMAccountName", strGrName
objGroup.Put "groupType", ADS_GROUP_TYPE_LOCAL_GROUP Or _
ADS_GROUP_TYPE_SECURITY_ENABLED
objGroup.Put "description", "Beschreibung"
objGroup.SetInfo
End Sub
bastla