Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # schuelerliste importieren,, Rows "Benutzername" und "Passwort hinzufügen"
- $schuelerliste = Import-Csv $PSScriptRoot\SchuelerListe.csv -Delimiter ';'
- #row "benutzername" hinzufügen
- $schuelerliste | Add-Member -MemberType NoteProperty "Benutzername" -Value $null
- #$row "Passwort" hinzufügen
- $schuelerliste | Add-Member -MemberType NoteProperty "Passwort" -Value $null
- # passwordgen
- function passwordgen
- {
- -join (33..126 | ForEach-Object { [char]$_ } | Get-Random -C 24)
- }
- # bentzername und umlaut weg
- $usernames = @()
- function usergen ($SingleUser)
- {
- $count = 1
- $lastname = $SingleUser.Familienname
- if ($lastname.length -gt 8)
- {
- $lastname = $lastname.Substring(0,8)
- }
- do
- {
- if ($SingleUser.Vorname.length -gt $count)
- {
- $usrname = $SingleUser.Vorname.Substring(0,$count) + $lastname
- $count++
- }
- else {
- $usrname = $SingleUser.Vorname + $lastname + ($count - $SingleUser.Vorname.length)
- }
- }
- while ($usernames -contains $usrname)
- $usernames +=,$usrname
- return $usrname
- }
- function replaceUmlaute ($name)
- {
- $name = $name.Replace("ä","ae")
- $name = $name.Replace("ü","ue")
- $name = $name.Replace("Ä","Ae")
- $name = $name.Replace("Ü","Ue")
- $name = $name.Replace("Ö","Oe")
- $name = $name.Replace("ö","oe")
- $name = $name.Replace("ß","ss")
- return $name
- }
- foreach ($row in $schuelerliste) {
- $row.Passwort = passwordgen;
- $row.Benutzername = usergen ($row);
- }
- function pop_folder
- {
- $class = $schuelerliste.Klasse | Get-Unique
- $class | ForEach-Object {
- $path = createFolder $_
- $aClass = $_
- $KlassenproUser = $schuelerliste | Where-Object -FilterScript { $_.Klasse -eq $aClass }
- $KlassenproUser | Export-Csv -Path "$PSScriptRoot\Export\$aClass\Exportfile.csv" -NoTypeInformation
- Write-Host $KlassenproUser.count $aClass
- }
- $schuelerliste | Export-Csv -Path "$PSScriptRoot\Export\SchuelerListe.csv" -NoTypeInformation
- }
- function createFolder ($folder)
- {
- if (-not (Test-Path "$PSScriptRoot\Export" -PathType Container))
- {
- New-Item -Path "$PSScriptRoot\" -Name "Export" -ItemType directory
- }
- $classfolder = "$PSScriptRoot\Export\" + $folder
- New-Item -Path "$PSScriptRoot\Export\" -Name $folder -ItemType directory
- return "$PSScriptRoot\Export\" + $folder
- }
- pop_folder
- foreach ($User in $schuelerliste)
- {
- $Displayname = $User.Vorname + " " + $User.Familienname
- $UserFirstname = $User.Vorname
- $UserLastname = $User.Familienname
- $Password_2 = $User.Passwort
- New-ADUser `
- -Name $Displayname `
- -Surname $UserLastname `
- -DisplayName $Displayname `
- -AccountPassword (ConvertTo-SecureString $Password_2 -AsPlainText -Force) `
- -Enabled $true `
- -ChangePasswordAtLogon $true `
- –PasswordNeverExpires $false `
- }
- <# deleter
- Import-Csv <csvpfad > | Foreach-Object {Remove-ADUser -Identity $_.SamAccountName -Confirm:$False }
- #>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement