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
Comments