From f624456b1b76683402b83ae10c691e2ce50d39e3 Mon Sep 17 00:00:00 2001 From: Tim Eertmoed Date: Tue, 12 Nov 2024 11:38:45 +0100 Subject: [PATCH] scripts/AD_AIO.ps1 aktualisiert --- scripts/AD_AIO.ps1 | 93 ++++++++++++++++++++++++++++------------------ 1 file changed, 57 insertions(+), 36 deletions(-) diff --git a/scripts/AD_AIO.ps1 b/scripts/AD_AIO.ps1 index 92ca774..d6f931f 100644 --- a/scripts/AD_AIO.ps1 +++ b/scripts/AD_AIO.ps1 @@ -202,7 +202,7 @@ function Create-User { $groupOU = $masterGroupOUComboBox.SelectedItem - # Überprüfen, ob notwendige Felder ausgefüllt sind + # Überprüfen, ob notwendige Felder ausgefüllt sind if (-not $firstName -or -not $lastName) { $missingField = if (-not $firstName) { "Vorname" } elseif (-not $lastName) { "Nachname" } $outputTextBox.AppendText("Fehler bei der Erstellung des Benutzers '$firstName $lastName': $missingField fehlt.`r`n") @@ -219,44 +219,69 @@ function Create-User { try { # Versuchen, den Benutzer abzurufen (auch wenn er bereits existiert) $user = Get-ADUser -Filter { SamAccountName -eq $username } - if (-not $user) { - # Benutzer erstellen, falls er nicht existiert - try { - New-ADUser -Name "$firstName $lastName" ` - -GivenName "$firstName" ` - -Surname "$lastName" ` - -SamAccountName "$username" ` - -UserPrincipalName "$email" ` - -AccountPassword (ConvertTo-SecureString $password -AsPlainText -Force) ` - -Enabled $true ` - -Path "$ou" - - $outputTextBox.SelectionColor = 'Green' - $outputTextBox.AppendText("Benutzer $username wurde erfolgreich erstellt.`r`n") - } - catch { - $outputTextBox.SelectionColor = 'Red' - $outputTextBox.AppendText("Fehler bei der Erstellung des Benutzers '$firstName $lastName':`r`n") - $outputTextBox.AppendText("Fehlerdetails: $_`r`n") - } - } + # Versuchen, den Benutzer abzurufen (auch wenn er bereits existiert) + $user = Get-ADUser -Filter { SamAccountName -eq $username } + + if (-not $user) { + # Benutzer erstellen, falls er nicht existiert + try { + # Erstelle die Parameter für New-ADUser + $createUserParams = @{ + Name = "$firstName $lastName" + GivenName = "$firstName" + Surname = "$lastName" + SamAccountName = "$username" + UserPrincipalName = "$email" + AccountPassword = (ConvertTo-SecureString $password -AsPlainText -Force) + Enabled = $true + Path = "$ou" + } + + # Überprüfen, ob der Jobtitel gesetzt wurde und hinzufügen + if ($title) { + $createUserParams["Title"] = $title + } + + # Benutzer erstellen + New-ADUser @createUserParams + + # Erfolgsnachricht + $outputTextBox.SelectionColor = 'Green' + $outputTextBox.AppendText("Benutzer $username wurde erfolgreich erstellt.`r`n") + } + catch { + # Fehler bei der Benutzererstellung + $outputTextBox.SelectionColor = 'Red' + $outputTextBox.AppendText("Fehler bei der Erstellung des Benutzers '$firstName $lastName':`r`n") + $outputTextBox.AppendText("Fehlerdetails: $_`r`n") + } + } + else { + # Benutzer existiert bereits + $outputTextBox.SelectionColor = 'Orange' + $outputTextBox.AppendText("Benutzer $username existiert bereits.`r`n") + } else { # Erfolgsnachricht für vorhandenen Benutzer $outputTextBox.SelectionColor = 'Orange' $outputTextBox.AppendText("Benutzer $username existiert bereits.`r`n") - $outputTextBox.AppendText("Fehlerdetails: $_`r`n") } # Gruppenzuordnung durchführen, auch wenn der Benutzer schon existiert if ($globalGroup) { # Gruppen-OU immer auf die Master-OU setzen try { - # Überprüfen, ob die Gruppe existiert + # Überprüfen, ob die Gruppe bereits existiert $groupOU = $masterGroupOUComboBox.SelectedItem $group = Get-ADGroup -Filter { Name -eq $globalGroup } -ErrorAction SilentlyContinue - - # Wenn die Gruppe nicht existiert, wird sie erstellt - if (-not $group) { + + # Wenn die Gruppe bereits existiert + if ($group) { + # Erfolgsnachricht, falls die Gruppe bereits existiert + $outputTextBox.SelectionColor = 'Orange' + $outputTextBox.AppendText("Gruppe '$globalGroup' existiert bereits.`r`n") + } else { + # Wenn die Gruppe nicht existiert, wird sie erstellt try { $groupName = "GG_" + $globalGroup # Erstelle die Gruppe @@ -264,7 +289,7 @@ function Create-User { -GroupScope Global ` -Path $groupOU ` -Description "Globale Gruppe für $groupName" - + # Erfolgsnachricht für Gruppenerstellung $outputTextBox.SelectionColor = 'Green' $outputTextBox.AppendText("Globale Gruppe '$groupName' wurde erfolgreich erstellt.`r`n") @@ -274,19 +299,15 @@ function Create-User { $outputTextBox.SelectionColor = 'Red' $outputTextBox.AppendText("Fehler bei der Erstellung der Gruppe '$groupName':`r`n") $outputTextBox.AppendText("Fehlerdetails: $_`r`n") - return + return # Skript stoppen, wenn die Erstellung der Gruppe fehlschlägt } - } else { - # Erfolgsnachricht, falls die Gruppe bereits existiert - $outputTextBox.SelectionColor = 'Orange' - $outputTextBox.AppendText("Gruppe '$globalGroup' existiert bereits.`r`n") } - # Benutzer zur Gruppe hinzufügen + # Benutzer zur Gruppe hinzufügen (nur wenn der Benutzername definiert ist) if ($username) { try { Add-ADGroupMember -Identity $groupName -Members $username - + # Erfolgsnachricht für das Hinzufügen des Benutzers $outputTextBox.SelectionColor = 'Green' $outputTextBox.AppendText("Benutzer '$username' wurde erfolgreich zur Gruppe '$groupName' hinzugefügt.`r`n") @@ -799,7 +820,7 @@ function SMB-RIGHTS { } try { - # Überprüfen, ob der Ordner existiert + # Überprüfen, ob der Ordner existiert if (Test-Path $parentFolder) { # Hole alle Unterordner des aktuellen Ordners $subfolders = Get-ChildItem -Path $parentFolder -Directory -ErrorAction SilentlyContinue