From 28169e10dd3896fffd047d03a5828ba6ef2953ea Mon Sep 17 00:00:00 2001 From: Tim Eertmoed Date: Fri, 8 Nov 2024 08:40:14 +0100 Subject: [PATCH] scripts/AD_AIO.ps1 aktualisiert --- scripts/AD_AIO.ps1 | 44 +++++++++++++++++++++++++++++--------------- 1 file changed, 29 insertions(+), 15 deletions(-) diff --git a/scripts/AD_AIO.ps1 b/scripts/AD_AIO.ps1 index 262420a..82207f2 100644 --- a/scripts/AD_AIO.ps1 +++ b/scripts/AD_AIO.ps1 @@ -12,10 +12,19 @@ if (-not $myPrincipal.IsInRole([System.Security.Principal.WindowsBuiltInRole]::A # Windows.Forms Assembly laden Add-Type -AssemblyName System.Windows.Forms +Import-Module ActiveDirectory # Funktion, die beim Klick auf "Create User" ausgeführt wird function Create-User { 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 Import-Module ActiveDirectory @@ -162,6 +171,9 @@ function Create-User { $form.Controls.Add($okButton) $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 $okButton.Add_Click({ $masterPassword = $masterPasswordTextBox.Text # Masterkennwort holen @@ -204,13 +216,13 @@ function Create-User { 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 ` + 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' @@ -218,9 +230,9 @@ function Create-User { } catch { $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 { # Erfolgsnachricht für vorhandenen Benutzer @@ -231,7 +243,7 @@ function Create-User { # Gruppenzuordnung durchführen, auch wenn der Benutzer schon existiert if ($globalGroup) { # Gruppen-OU immer auf die Master-OU setzen - $groupOU = $masterGroupOU + $groupOU = $masterGroupOUComboBox.SelectedItem try { # Überprüfen, ob die Gruppe existiert $group = Get-ADGroup -Filter { Name -eq $globalGroup } @@ -241,29 +253,31 @@ function Create-User { New-ADGroup -Name $groupName ` -GroupScope Global ` -Path $groupOU ` - -Description "Globale Gruppe für $groupName" ` - -Enabled $true + -Description "Globale Gruppe für $groupName" + # Erfolgsnachricht $outputTextBox.SelectionColor = 'Green' $outputTextBox.AppendText("Globale Gruppe '$groupName' wurde erfolgreich erstellt.`r`n") } catch { $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") } } catch { # Fehler bei der Gruppenzuordnung $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 { # Fehler bei der Benutzererstellung $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") } } }