Alle Benutzer einer OU mit Namensfilter

Muss ein Administrator Anpassungen an bestimmten Benutzern einer OU machen, so könnte das folgende Skript bestimmt helfen. Dieses erlaubt alle Benutzer einer Organisational Unit anzuzeigen und zusätzlich mit einem Filter auf den Namen zu versehen. Das Ergebnis wird sortiert ausgegeben.

1
dir Testraum:/users | Where {($_.name -match "domänen")- and ($_.type -match "group")} | sort name

Das Beispiel oben zeigt alle Benutzer der OU “users” an die mit “domänen” beginnen.

ADSI-Provider ausgeben

In einer Active Directory-Umgebung kann man sich mit den folgenden Zeilen Code ganz einfach die ADSI-Provider ausgeben lassen.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
' Objekt setzen
Set ColProvider = GetObject("ADs:")
 
' Provider durchlaufen
For Each ObjProvider In ColProvider
	' Prüfen ob Doppelpunkt am Ende
  If Right(ObjProvider.Name, 1) = ":" Then
    ' Doppelpunkt entfernen und ausgeben
    Wscript.Echo Left(ObjProvider.Name, Len(ObjProvider.Name) - 1) & vbCr
  Else
    ' Ausgeben
    Wscript.Echo ObjProvider.Name & vbCr
  End If
Next

Viele Gruppen im AD anlegen

Die folgenden paar Zeilen legen beliebig viele Benutzergruppen im Active Directory an. Dies wird häufig in Testumgebungen benötigt.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
' Konstanten deklarieren
Const ADS_GROUP_TYPE_LOCAL_GROUP = &h4
Const ADS_GROUP_TYPE_SECURITY_ENABLED = &h80000000
 
' AD-Objekt festlegen
Set objOU = GetObject("LDAP://OU=Testgruppen,DC=Testing,DC=Domaene,DC=de")
 
For i = 1 to 200
  ' Gruppenname festlegen
  StrGrpName = right("00000" & left(Int(i),6),6)
 
  ' Gruppe erstellen
  Set objGroup = objOU.Create("Group", "cn=QS-Gruppe_" & StrGrpName)
 
  ' Eigenschaften festlegen
  objGroup.Put "sAMAccountName", "Grp_" & StrGrpName
  objGroup.Put "groupType", ADS_GROUP_TYPE_LOCAL_GROUP OR ADS_GROUP_TYPE_SECURITY_ENABLED
  objGroup.SetInfo
Next
 
' Meldung ausgeben, wenn fertig
Wscript.Echo "Gruppen wurden angelegt."

Achtung: Der LDAP-Pfad im Skript muss noch angepasst werden.