Advertisement
Guest User

Untitled

a guest
Jun 23rd, 2017
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.98 KB | None | 0 0
  1.  
  2.  
  3.  
  4. # schuelerliste importieren,, Rows "Benutzername" und "Passwort hinzufügen"
  5. $schuelerliste = Import-Csv $PSScriptRoot\SchuelerListe.csv -Delimiter ';'
  6. #row "benutzername" hinzufügen
  7. $schuelerliste | Add-Member -MemberType NoteProperty "Benutzername" -Value $null
  8. #$row "Passwort" hinzufügen
  9. $schuelerliste | Add-Member -MemberType NoteProperty "Passwort" -Value $null
  10.  
  11.  
  12.  
  13. # passwordgen
  14. function passwordgen
  15. {
  16. -join (33..126 | ForEach-Object { [char]$_ } | Get-Random -C 24)
  17. }
  18.  
  19. # bentzername und umlaut weg
  20.  
  21. $usernames = @()
  22. function usergen ($SingleUser)
  23. {
  24. $count = 1
  25. $lastname = $SingleUser.Familienname
  26. if ($lastname.length -gt 8)
  27. {
  28. $lastname = $lastname.Substring(0,8)
  29. }
  30. do
  31. {
  32.  
  33. if ($SingleUser.Vorname.length -gt $count)
  34.  
  35. {
  36. $usrname = $SingleUser.Vorname.Substring(0,$count) + $lastname
  37. $count++
  38. }
  39. else {
  40. $usrname = $SingleUser.Vorname + $lastname + ($count - $SingleUser.Vorname.length)
  41. }
  42.  
  43. }
  44. while ($usernames -contains $usrname)
  45. $usernames +=,$usrname
  46.  
  47. return $usrname
  48. }
  49.  
  50. function replaceUmlaute ($name)
  51. {
  52. $name = $name.Replace("ä","ae")
  53. $name = $name.Replace("ü","ue")
  54. $name = $name.Replace("Ä","Ae")
  55. $name = $name.Replace("Ü","Ue")
  56. $name = $name.Replace("Ö","Oe")
  57. $name = $name.Replace("ö","oe")
  58. $name = $name.Replace("ß","ss")
  59. return $name
  60. }
  61.  
  62.  
  63. foreach ($row in $schuelerliste) {
  64. $row.Passwort = passwordgen;
  65. $row.Benutzername = usergen ($row);
  66.  
  67. }
  68.  
  69.  
  70.  
  71. function pop_folder
  72. {
  73. $class = $schuelerliste.Klasse | Get-Unique
  74. $class | ForEach-Object {
  75. $path = createFolder $_
  76. $aClass = $_
  77. $KlassenproUser = $schuelerliste | Where-Object -FilterScript { $_.Klasse -eq $aClass }
  78. $KlassenproUser | Export-Csv -Path "$PSScriptRoot\Export\$aClass\Exportfile.csv" -NoTypeInformation
  79. Write-Host $KlassenproUser.count $aClass
  80. }
  81. $schuelerliste | Export-Csv -Path "$PSScriptRoot\Export\SchuelerListe.csv" -NoTypeInformation
  82. }
  83. function createFolder ($folder)
  84. {
  85. if (-not (Test-Path "$PSScriptRoot\Export" -PathType Container))
  86. {
  87. New-Item -Path "$PSScriptRoot\" -Name "Export" -ItemType directory
  88. }
  89. $classfolder = "$PSScriptRoot\Export\" + $folder
  90. New-Item -Path "$PSScriptRoot\Export\" -Name $folder -ItemType directory
  91. return "$PSScriptRoot\Export\" + $folder
  92. }
  93. pop_folder
  94.  
  95.  
  96. foreach ($User in $schuelerliste)
  97. {
  98. $Displayname = $User.Vorname + " " + $User.Familienname
  99. $UserFirstname = $User.Vorname
  100. $UserLastname = $User.Familienname
  101. $Password_2 = $User.Passwort
  102.  
  103. New-ADUser `
  104. -Name $Displayname `
  105. -Surname $UserLastname `
  106. -DisplayName $Displayname `
  107. -AccountPassword (ConvertTo-SecureString $Password_2 -AsPlainText -Force) `
  108. -Enabled $true `
  109. -ChangePasswordAtLogon $true `
  110. –PasswordNeverExpires $false `
  111. }
  112.  
  113.  
  114.  
  115.  
  116. <# deleter
  117. Import-Csv <csvpfad > | Foreach-Object {Remove-ADUser -Identity $_.SamAccountName -Confirm:$False }
  118.  
  119.  
  120.  
  121. #>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement