Last active
August 29, 2015 14:09
-
-
Save jtuttas/cdf172c2cf6866b5c44b to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<# | |
.Synopsis | |
Anlegen von AD Benutzern und Gruppen | |
.DESCRIPTION | |
Dieses Script legt Gruppen an und weist diesen dann Gruppen zu, als Datenquelle dient eine CSV Datei mit folgenden Einträgen | |
Fistname,LastName, group | |
.EXAMPLE | |
Add-ADUsers -tablename users.csv | |
.EXAMPLE | |
Add-ADUsers -tablename users.csv -computername 192.168.12.132 | |
.EXAMPLE | |
Add-ADUsers -tablename users.csv -computername 192.168.12.132 -defaultPassword Tuttas1! | |
#> | |
function add-ADUsers | |
{ | |
Param | |
( | |
# Name (Pfad) der CSV-Datei | |
[Parameter(Mandatory=$true, | |
Position=0)] | |
$csv, | |
# Name oder IP des AD Computers, um via Remote Powershell die Benutzer anzulegen | |
$computer="127.0.0.1", | |
# default Kennwort für die neuen Benutzer (ansonsten ist es Test1!Test1!) | |
$passwd="Test1!Test1!" | |
) | |
Begin | |
{ | |
$add= { | |
Param | |
( | |
# Hilfebeschreibung zu Param1 | |
[Parameter(Mandatory=$true, | |
ValueFromPipeline=$true, | |
Position=0)] | |
$daten, | |
[Parameter(Mandatory=$true, | |
Position=1)] | |
$pwdtxt | |
) | |
Begin | |
{ | |
} | |
Process | |
{ | |
$groups=@{} | |
foreach ($row in $daten) { | |
if ($groups[$row.group] -eq $null) { | |
# Neue Gruppe Anlegen | |
$groups[$row.group]=$row.group | |
try { | |
New-ADGroup -Name $row.group -GroupScope Global | |
Write-Host "Neue Gruppe "($row.group)" angelegt" -ForegroundColor Green | |
} | |
catch { | |
write-host "Gruppe "($row.group)" konnte nicht angelegt werden" -ForegroundColor Red | |
} | |
} | |
# Neuen Benutzer Anlegen | |
try { | |
$pw = ConvertTo-SecureString -AsPlainText $pwdtxt -Force | |
New-ADUser -Name $row.Lastname -surname $row.Firstname -GivenName $row.lastname -UserPrincipalName $row.lastname -Enabled $true -AccountPassword $pw | |
# Neuen Benutzer in die Gruppe eintragen | |
Add-ADGroupMember -Identity $row.group -Members $row.lastname | |
Write-Host "Benutzer "($row.lastname)" angelegt und zur Gruppe "($row.group)" zugeordnet" -ForegroundColor Green | |
} | |
catch { | |
Write-Host "Benutzer "($row.lastname)" konnte nicht angelegt werden" -ForegroundColor Red | |
} | |
} | |
} | |
End | |
{ | |
} | |
} | |
} | |
Process | |
{ | |
$d=Import-Csv $csv | |
try { | |
Invoke-Command -ComputerName $computer -Credential Administrator -ScriptBlock $add -ArgumentList $d,$passwd | |
} | |
catch { | |
Write-Host "Kann ScriptBlock nicht auf Computer "$computer" ausführen" -ForegroundColor Red | |
} | |
} | |
End | |
{ | |
} | |
} | |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Firtsname | Lastname | group | |
---|---|---|---|
Joerg | Tuttas | Chef | |
Thomas | Berger | Angestellter | |
Carl | Freitag | Angestellter | |
Tobias | Ludwig | Chef | |
Simon | Betram | Angestellter |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment