Zufallsgenerierte Benutzer mit Powershell erstellen


Wenn man ein Testsystem für SharePoint aufsetzt, benötigt man auch ein paar Testdaten und dazu gehören z.B. auch ein paar AD Benutzer und Gruppen. Wenn man nur ein paar Benutzer erstellen will, kann man dies einfach per “Hand” erledigen. Wenn man aber mehrere Duzend Benutzer anlegen möchte, dann ist es von Vorteil, wenn man dies per Poswershell Script erledigt.

Bei einem frisch installierten Windows Server 2008R2 ist das Ausführen von Powershell Scripten wahrscheinlich deaktiviert. Mit dem folgenden Befehel lässt sich das Ausführen von Powershell Scripten wieder aktivieren:

Set-ExecutionPolicy Unrestricted

Dieser Befehl muss einfach auf der Powershell Console ausgeführt werden und mit “Y” bestätigt werden und dann können auch wieder Powershell Scripte ausgeführt werden.

Das Folgende Script legt 200 Random AD Benutzer und 11 AD Gruppen an und weißt den jeweiligen Gruppen Random die Benutzer zu.

$title = @( 'Sr. NetEng', 'SR. NetEng', 'Senior NetEng', 'Sr. Network Engineer', 'sr. network engineer', 'sr. neteng', 'Senior Network Engineer', 'Sr. Net Eng', 'SR NET ENG', 'SR. NETENG')
$firstname = @('Johannes', 'Frank', 'Thomas', 'Kai', 'David', 'Franziska', 'Stefanie', 'Johannes', 'Denise', 'Erik', 'Jan')
$lastname = @('Becker', 'Müller', 'Maier', 'Kaiser', 'Fleischer', 'Kerker', 'Hübner', 'Franke', 'König', 'Munster')
$mail = @('gmx.de', 'hotmail.com', 'gmx.net', 'web.de', 'googlemail.com', 'outlook.com', 'test.de', 'myworktime.de', 'yahoo.com', 'strato.de')
   
$pass = "P@ssword"
$PassSec = ConvertTo-SecureString $($pass) -AsPlainText -Force


 IPMO *active*
 
# New-ADOrganizationalUnit -Name Testou -ProtectedFromAccidentalDeletion:$false

 1..11 | ForEach-Object {
		 NEW-ADGroup -name “TestAdGroup$_” -groupscope Global
	   }
	   
  1..200 | ForEach-Object {
		 $r = Get-Random -Minimum 0 -Maximum 10
   	    New-ADUser -Name "testuser$_" -OtherAttributes @{title=$title[$r]; Description=$title[$r]; mail=$firstname[$r] + '.' + $lastname[$r] + '@' + $mail[$r]} -Givenname $firstname[$r] -Surname $lastname[$r] -AccountPassword $PassSec -ChangePasswordAtLogon $false -Enabled $true -PasswordNeverExpires $true }
		
  1..200 | ForEach-Object {
  		$r = Get-Random -Minimum 1 -Maximum 10
		Add-ADGroupMember -Identity "TestAdGroup$r" -Member testuser$_  
		$r = $r+1
		Add-ADGroupMember -Identity "TestAdGroup$r" -Member testuser$_  } 

ACHTUNG: Beim Erstellen des Scripts muss darauf geachtet werden, das man beim Befehl “New-ADUser” das Flag für “-Enabled $true” verwendet, denn sonst werden die Benutzter automatisch “deaktiviert” und auf deaktivierte Benutzer kann man z.B. in der SharePoint Benutzersuche nicht zugreifen, bzw. die SharePoint suche für Benutzer findet einfach keinen Benutzer, obwohl diese im AD existieren.

image

Einen deaktivierten Benutzer im AD erkennt man auch an dem “Pfeil nach unten” der in seinem Icon mit dargestellt wird, daher ist “testuser91” auch ein deaktivierter AD Benutzer.

Zum Ausführen und Erstellen von Powershell Scripts verwende ich den PowerGUI Script Editor, dieser unterstützt ebenfalls das Debuggen von Powershell Scripts durch das setzen von Haltepunkten und Schritt für Schritt Debugging.

image

Advertisements

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s