From 293b4ef9df516a48b87bdcb4aca82026710001c4 Mon Sep 17 00:00:00 2001 From: Tim Eertmoed Date: Wed, 6 Nov 2024 10:41:37 +0100 Subject: [PATCH] scripts/AD_USER_CREATE.ps1 aktualisiert --- scripts/AD_USER_CREATE.ps1 | 56 +++++++++++++++++++++++++++++++------- 1 file changed, 46 insertions(+), 10 deletions(-) diff --git a/scripts/AD_USER_CREATE.ps1 b/scripts/AD_USER_CREATE.ps1 index ca8cc97..6ca95d4 100644 --- a/scripts/AD_USER_CREATE.ps1 +++ b/scripts/AD_USER_CREATE.ps1 @@ -3,6 +3,7 @@ Import-Module ActiveDirectory # Master-OU und Domäne ermitteln $masterOU = "OU=Benutzer,DC=domain,DC=com" # Beispielwert, passe ihn an eure Umgebung an +$masterGroupOU = "OU=Gruppen,DC=domain,DC=com" # Beispielwert, passe ihn an eure Umgebung an # Holen Sie sich die Domäne aus dem Active Directory $domain = (Get-ADDomain).DNSRoot @@ -10,30 +11,49 @@ $domain = (Get-ADDomain).DNSRoot # GUI erstellen $form = New-Object System.Windows.Forms.Form $form.Text = "Benutzererstellung" -$form.Size = New-Object System.Drawing.Size(680, 600) # Gesamtgröße der Form anpassen +$form.Size = New-Object System.Drawing.Size(800, 600) # Gesamtgröße der Form anpassen -# Master-OU Auswahl oberhalb des DataGrid +# Master-OU für Benutzer Auswahl $masterOULabel = New-Object System.Windows.Forms.Label -$masterOULabel.Text = "Master-OU:" +$masterOULabel.Text = "Master-OU (Benutzer):" $masterOULabel.Location = New-Object System.Drawing.Point(10, 10) -$masterOULabel.Size = New-Object System.Drawing.Size(80, 20) +$masterOULabel.Size = New-Object System.Drawing.Size(120, 20) $form.Controls.Add($masterOULabel) -# Master-OU ComboBox +# Master-OU ComboBox für Benutzer $masterOUComboBox = New-Object System.Windows.Forms.ComboBox -$masterOUComboBox.Location = New-Object System.Drawing.Point(100, 10) +$masterOUComboBox.Location = New-Object System.Drawing.Point(130, 10) $masterOUComboBox.Size = New-Object System.Drawing.Size(250, 20) # ComboBox-Größe festgelegt $masterOUComboBox.DropDownStyle = 'DropDownList' -# OUs aus dem AD abrufen und in die ComboBox einfügen +# OUs aus dem AD für Benutzer abrufen und in die ComboBox einfügen $ouList = Get-ADOrganizationalUnit -Filter * | Select-Object -ExpandProperty DistinguishedName $masterOUComboBox.Items.AddRange($ouList) $masterOUComboBox.SelectedItem = $masterOU # Standardwerte setzen $form.Controls.Add($masterOUComboBox) +# Master-OU für Gruppen Auswahl (Rechts oben) +$masterGroupOULabel = New-Object System.Windows.Forms.Label +$masterGroupOULabel.Text = "Master-OU (Gruppen):" +$masterGroupOULabel.Location = New-Object System.Drawing.Point(400, 10) +$masterGroupOULabel.Size = New-Object System.Drawing.Size(120, 20) +$form.Controls.Add($masterGroupOULabel) + +# Master-OU ComboBox für Gruppen +$masterGroupOUComboBox = New-Object System.Windows.Forms.ComboBox +$masterGroupOUComboBox.Location = New-Object System.Drawing.Point(520, 10) +$masterGroupOUComboBox.Size = New-Object System.Drawing.Size(250, 20) # ComboBox-Größe für Gruppen +$masterGroupOUComboBox.DropDownStyle = 'DropDownList' + +# OUs aus dem AD für Gruppen abrufen und in die ComboBox einfügen +$groupOUList = Get-ADOrganizationalUnit -Filter * | Select-Object -ExpandProperty DistinguishedName +$masterGroupOUComboBox.Items.AddRange($groupOUList) +$masterGroupOUComboBox.SelectedItem = $masterGroupOU # Standardwerte setzen +$form.Controls.Add($masterGroupOUComboBox) + # DataGridView erstellen $dataGridView = New-Object System.Windows.Forms.DataGridView -$dataGridView.Size = New-Object System.Drawing.Size(644, 300) # Breite und Höhe des DataGridViews festgelegt +$dataGridView.Size = New-Object System.Drawing.Size(764, 300) # Breite und Höhe des DataGridViews festgelegt $dataGridView.Location = New-Object System.Drawing.Point(10, 40) # Position des DataGridViews $dataGridView.Anchor = [System.Windows.Forms.AnchorStyles]::Top $form.Controls.Add($dataGridView) @@ -72,7 +92,7 @@ $masterOUComboBox.Add_SelectedIndexChanged({ $outputTextBox = New-Object System.Windows.Forms.RichTextBox $outputTextBox.Multiline = $true $outputTextBox.Location = New-Object System.Drawing.Point(10, 350) # Position unterhalb des DataGridViews -$outputTextBox.Size = New-Object System.Drawing.Size(644, 150) # Größe der RichTextBox festgelegt +$outputTextBox.Size = New-Object System.Drawing.Size(764, 150) # Größe der RichTextBox festgelegt $outputTextBox.ScrollBars = 'Vertical' $form.Controls.Add($outputTextBox) @@ -143,7 +163,23 @@ $okButton.Add_Click({ # Gruppenzuordnung durchführen, auch wenn der Benutzer schon existiert if ($globalGroup) { + # Gruppen-OU auswählen (aus der ComboBox für Gruppen) + $groupOU = $masterGroupOUComboBox.SelectedItem try { + # Überprüfen, ob die Gruppe existiert, und gegebenenfalls erstellen + $group = Get-ADGroup -Filter { Name -eq $globalGroup } + if (-not $group) { + # Gruppe erstellen, falls sie nicht existiert + New-ADGroup -Name $globalGroup ` + -GroupScope Global ` + -Path $groupOU ` + -Description "Globale Gruppe für $globalGroup" + + # Erfolgsnachricht für Gruppenerstellung + $outputTextBox.SelectionColor = 'Green' + $outputTextBox.AppendText("Globale Gruppe '$globalGroup' wurde erfolgreich erstellt.`r`n") + } + # Benutzer der Gruppe zuordnen Add-ADGroupMember -Identity $globalGroup -Members $username $outputTextBox.SelectionColor = 'Green' $outputTextBox.AppendText("Benutzer '$username' wurde erfolgreich der Gruppe '$globalGroup' zugeordnet.`r`n") @@ -166,7 +202,7 @@ $okButton.Add_Click({ $exitButton = New-Object System.Windows.Forms.Button $exitButton.Text = "Beenden" $exitButton.Size = New-Object System.Drawing.Size(150, 30) # Größe des Buttons festgelegt -$exitButton.Location = New-Object System.Drawing.Point(504, 510) # Position des Beenden-Buttons +$exitButton.Location = New-Object System.Drawing.Point(624, 510) # Position des Beenden-Buttons $exitButton.Add_Click({ $form.Close() # Formular schließen })