UserWorkstations Attribut im Active Directory per Powershell anpassen

Wir hatten die Anforderung im Active Directory für mehrere Accounts das Attribut UserWorkstations anzupassen. Daher habe ich ein Script geschrieben das erst alle Personen aus dem Active Directory mit einem bestimmten Wert in usersWorkstations sucht und dieses anschließend überschreibt.

Get-ADUser  -Filter {userWorkstations -like 'alter-Wert'} -Properties userWorkstations |
Set-ADUser -LogonWorkstations 'neuer-Rechner1,neuer-Rechner2'

Der Übersicht halber habe ich das Script hier nun auf zwei Zeilen umgestellt. Wichtig ist auch das „Pipen“ des Befehls, dies wird mit dem Hochstrich am ende der ersten Zeile dargestellt.

Powershell: Active Directory Gruppen in Kleinbuchstaben wandeln

Ich habe ein kleines Script in Powershell geschrieben das Gruppen im Active Directory in Kleinschreibung umbenennt. In diesem Fall einfach den Filter anpassen  bzw. die OU anpassen.

Get-ADGroup -Filter * -SearchBase "OU=Test,DC=domain,DC=intern" | Select Name, DistinguishedName | Export-csv -path c:\temp\username.csv -NoTypeInformation

$csv= import-csv c:\temp\username.csv
foreach ($group in $csv)
{
 Set-ADGroup $group.Name -SamAccountName $group.Name.ToLower()
 Rename-ADObject -Identity $group.DistinguishedName -newname $group.Name.ToLower()
}

Infos zu den Befehlen:

Set-ADGroup
Rename-ADObject

VB.NET und Anlegen von Usern im Active Directory

Habe nun schon lange nichts mehr gepostet. Aber nun folgt mal etwas Code.

Ich habe eine Programm in VB.net geschrieben um User automatisiert anzulegen.

Diesen Code will ich hier posten:

Zuerst natürlich der Import

Imports System.DirectoryServices

Und dann das Anlegen

Try
 Dim objParent As New DirectoryEntry("LDAP://" & ouString & "dc=dasAD, dc=int,_
 ", strADUser & "@dasAD.int", strADPasswort, AuthenticationTypes.Secure)
 Dim objChild As DirectoryEntry = objParent.Children.Add("cn=" & Username, "user")
 objChild.Properties("sAMAccountName").Add(Username)
 objChild.Properties("mail").Add(email)
 objChild.CommitChanges()

 objChild.Invoke("SetPassword", New Object() {Passwort})
 objChild.NativeObject.AccountDisabled = False
 objChild.CommitChanges()
 objChild.Close()

Nun ist der User Angelegt. Nun fügen wir diesen Noch einer Gruppe hinzu.

 Dim objGroup As New DirectoryEntry("LDAP://cn=testgruppe, ou=people, ou=Gruppen,_
 dc=dasAD, dc=int", strADUser & "@hfwu.int", strADPasswort, AuthenticationTypes.Secure)
 objGroup.Invoke("Add", New Object() {objChild.Path.ToString()})

 Catch x As Exception
 MsgBox(x.Message)
 MsgBox("Programm wird beendet")
 Exit Sub
 End Try

Klappt Wunderbar bei mir und mehrere hundert User sind kein Problem. =)