Advertisement
Guest User

Untitled

a guest
Aug 28th, 2017
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.43 KB | None | 0 0
  1. #--Lade AD Modul und Domänennamen--
  2. Try
  3. {Import-Module ActiveDirectory -ErrorAction Stop
  4. }
  5. Catch
  6. {
  7. Import-Module ServerManager
  8. Add-WindowsFeature RSAT-AD-Powershell
  9. Import-Module ActiveDirectory -ErrorAction Stop
  10. }
  11.  
  12. $forest = Get-ADForest #Für die Registrierung der neuen Benutzer!
  13. foreach ($Domain in $forest.Domains)
  14. {
  15. $Domaene = "@$Domain"
  16. }
  17. #--Ende Laden--
  18.  
  19. #--Anfang Config-- Ab hier änderbar!
  20. $chars = [Char[]] "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!@$%&#*+-%~/\()=?ß1234567890"#Zeichen des zufälligen Passwortes
  21.  
  22.  
  23. #--Benutzer mit extra-Berechtigugnen--
  24. $task = "admin_task"
  25. $comlab = "admin_comlab" #Domänen-Admin der überprüft, und angelegt wird falls nicht vorhanden
  26. $backupuser = "admin_backup" #Domänen-Benutzer der für den Backup-Job vorgesehen ist. Bekommt die Gruppe DG_G_Backup
  27. $admin_not = "admin_not" #Domänen-Admin der in Notfällen eingesetzt wird
  28. $admin_bezeichnung = "Domänen-Admins" #Bezeichnung der Domänen-Admins (z.B. bei einer englischen Version anders)
  29.  
  30. #--Protector--
  31. $mailgate = "mailgate" #Benutzer für den Protector
  32. $backupgroup = "DG_G_Backup" #Gruppe für den Backup-User
  33. $Protector_Whitelist = "protector_whitelist" #Selbsterklärend
  34. $Protector_Blacklist = "protector_blacklist" #Selbsterklärend
  35.  
  36. #--Pfad--
  37. $path = Read-Host "Pfad zum Speichern der Kennwörter (z.B. C:\) ORDNER MUSS VORHANDEN SEIN!"
  38.  
  39. #--Ende Config--
  40.  
  41. #--| Achtung! ab hier bitte nichts mehr verändern! |--
  42. $passwordlist = $null
  43. if (!$path)
  44. {
  45. $path = $PSScriptRoot
  46. }
  47. else
  48. {
  49. }
  50.  
  51.  
  52. #--Benutzer in array $adminusers anlegen bzw. Kennwörter ändern--
  53. $adminusers = $task, $backupuser, $admin_not
  54. foreach($item in $adminusers)
  55. {
  56. if (Get-AdUser -Filter {SamAccountName -eq $item})
  57. {
  58. $password = ($chars | Get-Random -Count 16) -join ""
  59. $securepass = $password | ConvertTo-SecureString -AsPlainText -Force
  60.  
  61. Set-ADAccountPassword $item -NewPassword $securepass
  62. $passwordlist += $item + ":" + $password
  63. }
  64. #Kontos anlegen
  65. else
  66. {
  67. $password = ($chars | Get-Random -Count 16) -join ""
  68. $securepass = $password | ConvertTo-SecureString -AsPlainText -Force
  69. New-ADUser -Name $item -UserPrincipalName $item$Domaene -AccountPassword $securepass -Enabled $True
  70. $passwordlist += $item + ":" + $password
  71. }
  72. }
  73. if (Get-ADGroup -Filter {Name -eq $backupgroup})
  74. {
  75. Add-AdGroupMember -Identity $backupgroup -Members $backupuser
  76. }
  77. else
  78. {
  79. New-ADGroup -Name DG_G_Backup -GroupScope Global
  80. Add-AdGroupMember -Identity $backupgroup -Members $backupuser
  81. }
  82.  
  83. Write-Host "Kennwort für" $comlab "eingeben"
  84. $password = Read-Host
  85. $securepass = $password | ConvertTo-SecureString -AsPlainText -Force
  86.  
  87. if (Get-AdUser -Filter {SamAccountName -eq $comlab})
  88. {
  89. Set-ADAccountPassword $comlab -NewPassword $securepass
  90. }
  91. else
  92. {
  93. New-ADUser -Name $comlab -UserPrincipalName "$comlab$Domaene" -AccountPassword $securepass -Enabled $True
  94. }
  95. $passwordlist += $comlab + ":" + $password
  96. Add-AdGroupMember -Identity $admin_bezeichnung -Members $comlab
  97. Add-AdGroupMember -Identity $admin_bezeichnung -Members $admin_not
  98.  
  99.  
  100. #--Popup mittels WinForms mit JA/NEIN bestätigen--
  101. [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")
  102. $caption = "Protector!"
  103. $nachricht = "Protector im AD einrichten?"
  104. $yesNoButtons = 4
  105. $root = [adsi]"LDAP://rootdse"
  106. $un = $root.get("rootDomainNamingContext")
  107.  
  108. if ([System.Windows.Forms.MessageBox]::Show($nachricht, $caption, $yesNoButtons) -eq "NO"){
  109. }
  110. else{
  111. #--Protectorgruppen & Benutzer (blacklist, whitelist, mailgate) einrichten--
  112. New-ADOrganizationalUnit -Name "Protector"
  113. New-AdGroup -Name $protector_whitelist -path "ou=Protector,$un" -GroupScope Global
  114. New-AdGroup -Name $protector_blacklist -path "ou=Protector,$un" -GroupScope Global
  115. $password = ($chars | Get-Random -Count 16) -join ""
  116. $securepass = $password | ConvertTo-SecureString -AsPlainText -Force
  117. if (Get-AdUser -Filter {SamAccountName -eq $mailgate})
  118. {
  119. Set-ADAccountPassword $mailgate -NewPassword $securepass
  120. }
  121. else
  122. {
  123. New-ADUser -Name $mailgate -UserPrincipalName "$mailgate$Domaene" -AccountPassword $securepass -Enabled $True
  124. }
  125.  
  126. {
  127. if (Get-AdUser -Filter {SamAccountName -eq $mailgate})
  128. {
  129. Set-ADAccountPassword $mailgate -NewPassword $securepass
  130. }
  131. else
  132. {
  133. New-ADUser -Name $mailgate -UserPrincipalName "$mailgate$Domaene" -AccountPassword $securepass -Enabled $True
  134. }
  135. }
  136. #--Output nach Textdatei--
  137. $passwordlist += $mailgate + ":" + $password
  138. }
  139. $passwordlist | Out-File $path\Passwords.txt
  140. Read-Host
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement