CCCPaste

PowerShell Script: AD User anlegen Ordner-Rechte

Import-Module ActiveDirectory

# CSV Location
$filepath = "Path\to\NewUser.csv"

# CSV-Datei in Variable speichern
$users = Import-Csv $filepath

# Schleife durchlaufen und alle Benutzer erstellen
ForEach ($user in $users) {
    # Nutzer-Informationen in Variablen speichern
	$vorname = $user.'Vorname'
	$vornameFirstChar=$vorname.SubString(0,1) # 1. Buchstabe für Anmeldename und E-Mail
	$nachname = $user.'Nachname'
	$jobtitel = $user.'Jobtitel'

	# Passwort generieren
	function Get-RandomCharacters($length, $characters) {
		$random = 1..$length | ForEach-Object { Get-Random -Maximum $characters.length } 
		$private:ofs=""
		return [String]$characters[$random]
	}

	$PasswortLesbar = Get-RandomCharacters -length 4 -characters 'abcdefklmnoprtuvwxyz'
	$PasswortLesbar += Get-RandomCharacters -length 2 -characters 'ABCDEFGHKMNPRTUVWXYZ'
	$PasswortLesbar += Get-RandomCharacters -length 1 -characters '123456789'
	$PasswortLesbar += Get-RandomCharacters -length 1 -characters '!"§$%&=?@#*+'
	$Passwort = ConvertTo-SecureString $PasswortLesbar -AsPlainText -Force

	# AD-User erstellen
	New-ADUser -Name "$vornameFirstChar.$nachname" -GivenName $vorname -Surname $nachname -UserPrincipalName "$vorname.$nachname" -EmailAddress "[email protected]" -AccountPassword $Passwort -ChangePasswordAtLogon $True -Enabled $True

	# Verzeichnisse erstellen
	New-Item -ItemType directory -Path C:\Public\$vornameFirstChar.$nachname
	New-Item -ItemType directory -Path C:\Home\$vornameFirstChar.$nachname

	# Berechtigungen für Home-Laufwerk setzen
	$Acl = Get-Acl C:\Home\$vornameFirstChar.$nachname
	$Ar = New-Object System.Security.AccessControl.FileSystemAccessRule("$vornameFirstChar.$nachname", "FullControl", "ContainerInherit,ObjectInherit", "None", "Allow")
	$Acl.SetAccessRule($Ar)
	Set-Acl C:\Home\$vornameFirstChar.$nachname $Acl

	# Erfolgsmeldung ausgeben
	echo ""
	echo ""
	echo "Account für $vorname $nachname wurde erstellt! Passwort: $PasswortLesbar"
	echo ""
}
Pause