Advertisement
Guest User

Untitled

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