scripts/AD_AIO.ps1 aktualisiert

This commit is contained in:
2024-11-08 08:40:14 +01:00
parent b26359ec60
commit 28169e10dd

View File

@@ -12,10 +12,19 @@ if (-not $myPrincipal.IsInRole([System.Security.Principal.WindowsBuiltInRole]::A
# Windows.Forms Assembly laden # Windows.Forms Assembly laden
Add-Type -AssemblyName System.Windows.Forms Add-Type -AssemblyName System.Windows.Forms
Import-Module ActiveDirectory
# Funktion, die beim Klick auf "Create User" ausgeführt wird # Funktion, die beim Klick auf "Create User" ausgeführt wird
function Create-User { function Create-User {
Write-Host "Erstelle Benutzer..." Write-Host "Erstelle Benutzer..."
$myWindowsIdentity = [System.Security.Principal.WindowsIdentity]::GetCurrent()
$myPrincipal = New-Object System.Security.Principal.WindowsPrincipal($myWindowsIdentity)
if (-not $myPrincipal.IsInRole([System.Security.Principal.WindowsBuiltInRole]::Administrator)) {
$arguments = "& '" + $myinvocation.mycommand.definition + "'"
Start-Process powershell -ArgumentList $arguments -Verb runAs
Exit
}
Add-Type -AssemblyName System.Windows.Forms Add-Type -AssemblyName System.Windows.Forms
Import-Module ActiveDirectory Import-Module ActiveDirectory
@@ -162,6 +171,9 @@ function Create-User {
$form.Controls.Add($okButton) $form.Controls.Add($okButton)
$form.Controls.Add($exitButton) $form.Controls.Add($exitButton)
# Importiere das Active Directory Modul, falls noch nicht geschehen
Import-Module ActiveDirectory
# Event-Handler für den OK-Button hinzufügen # Event-Handler für den OK-Button hinzufügen
$okButton.Add_Click({ $okButton.Add_Click({
$masterPassword = $masterPasswordTextBox.Text # Masterkennwort holen $masterPassword = $masterPasswordTextBox.Text # Masterkennwort holen
@@ -204,13 +216,13 @@ function Create-User {
if (-not $user) { if (-not $user) {
# Benutzer erstellen, falls er nicht existiert # Benutzer erstellen, falls er nicht existiert
try { try {
New-ADUser -Name "$firstName $lastName" ` New-ADUser -Name "$firstName $lastName" `
-GivenName "$firstName" ` -GivenName "$firstName" `
-Surname "$lastName" ` -Surname "$lastName" `
-SamAccountName "$username" ` -SamAccountName "$username" `
-UserPrincipalName "$email" ` -UserPrincipalName "$email" `
-AccountPassword (ConvertTo-SecureString $password -AsPlainText -Force) ` -AccountPassword (ConvertTo-SecureString $password -AsPlainText -Force) `
-Enabled $true ` -Enabled $true `
-Path "$ou" -Path "$ou"
$outputTextBox.SelectionColor = 'Green' $outputTextBox.SelectionColor = 'Green'
@@ -218,9 +230,9 @@ function Create-User {
} }
catch { catch {
$outputTextBox.SelectionColor = 'Red' $outputTextBox.SelectionColor = 'Red'
$outputTextBox.AppendText("Fehler bei der Erstellung des Benutzers '$firstName $lastName': $_.Exception.Message`r`n") $outputTextBox.AppendText("Fehler bei der Erstellung des Benutzers '$firstName $lastName':`r`n")
$outputTextBox.AppendText("Fehlerdetails: $_`r`n")
} }
} }
else { else {
# Erfolgsnachricht für vorhandenen Benutzer # Erfolgsnachricht für vorhandenen Benutzer
@@ -231,7 +243,7 @@ function Create-User {
# Gruppenzuordnung durchführen, auch wenn der Benutzer schon existiert # Gruppenzuordnung durchführen, auch wenn der Benutzer schon existiert
if ($globalGroup) { if ($globalGroup) {
# Gruppen-OU immer auf die Master-OU setzen # Gruppen-OU immer auf die Master-OU setzen
$groupOU = $masterGroupOU $groupOU = $masterGroupOUComboBox.SelectedItem
try { try {
# Überprüfen, ob die Gruppe existiert # Überprüfen, ob die Gruppe existiert
$group = Get-ADGroup -Filter { Name -eq $globalGroup } $group = Get-ADGroup -Filter { Name -eq $globalGroup }
@@ -241,29 +253,31 @@ function Create-User {
New-ADGroup -Name $groupName ` New-ADGroup -Name $groupName `
-GroupScope Global ` -GroupScope Global `
-Path $groupOU ` -Path $groupOU `
-Description "Globale Gruppe für $groupName" ` -Description "Globale Gruppe für $groupName"
-Enabled $true
# Erfolgsnachricht # Erfolgsnachricht
$outputTextBox.SelectionColor = 'Green' $outputTextBox.SelectionColor = 'Green'
$outputTextBox.AppendText("Globale Gruppe '$groupName' wurde erfolgreich erstellt.`r`n") $outputTextBox.AppendText("Globale Gruppe '$groupName' wurde erfolgreich erstellt.`r`n")
} }
catch { catch {
$outputTextBox.SelectionColor = 'Red' $outputTextBox.SelectionColor = 'Red'
$outputTextBox.AppendText("Fehler bei der Erstellung der Gruppe '$groupName': $_.Exception.Message`r`n") $outputTextBox.AppendText("Fehler bei der Erstellung der Gruppe '$groupName':`r`n")
$outputTextBox.AppendText("Fehlerdetails: $_`r`n") $outputTextBox.AppendText("Fehlerdetails: $_`r`n")
} }
} }
catch { catch {
# Fehler bei der Gruppenzuordnung # Fehler bei der Gruppenzuordnung
$outputTextBox.SelectionColor = 'Red' $outputTextBox.SelectionColor = 'Red'
$outputTextBox.AppendText("Fehler bei der Gruppenzuordnung für Benutzer '$username': $_.Exception.Message`r`n") $outputTextBox.AppendText("Fehler bei der Gruppenzuordnung für Benutzer '$username':`r`n")
$outputTextBox.AppendText("Fehlerdetails: $_`r`n")
} }
} }
} }
catch { catch {
# Fehler bei der Benutzererstellung # Fehler bei der Benutzererstellung
$outputTextBox.SelectionColor = 'Red' $outputTextBox.SelectionColor = 'Red'
$outputTextBox.AppendText("Fehler bei der Erstellung des Benutzers '$firstName $lastName': $_.Exception.Message`r`n") $outputTextBox.AppendText("Fehler bei der Erstellung des Benutzers '$firstName $lastName':`r`n")
$outputTextBox.AppendText("Fehlerdetails: $_`r`n")
} }
} }
} }