scripts/GGDL_GUI.ps1 aktualisiert

This commit is contained in:
2024-11-05 14:02:46 +01:00
parent e75dc876b8
commit 6b1f3714f2

View File

@@ -2,7 +2,7 @@
Add-Type -AssemblyName System.Windows.Forms Add-Type -AssemblyName System.Windows.Forms
Import-Module ActiveDirectory Import-Module ActiveDirectory
# Funktion zum Abrufen der aktuellen Domäne # Funktion zum Abrufen der aktuellen Dom#ne
function Get-DomainName { function Get-DomainName {
$domain = (Get-ADDomain).DNSRoot $domain = (Get-ADDomain).DNSRoot
return $domain return $domain
@@ -14,13 +14,14 @@ function Get-Groups {
return $groups | ForEach-Object { $_.Name } return $groups | ForEach-Object { $_.Name }
} }
$domain = Get-DomainName $domain = Get-DomainName
$ggList = Get-Groups $ggList = Get-ADGroup -Filter { GroupScope -eq 'Global' }
$ggList = $ggList | Select-Object -ExpandProperty Name
$dlList = Get-Groups $dlList = Get-Groups
# GUI zur Zuordnung von GG zu DL erstellen # GUI zur Zuordnung von GG zu DL erstellen
$form = New-Object System.Windows.Forms.Form $form = New-Object System.Windows.Forms.Form
$form.Text = "GG zu DL Zuordnung" $form.Text = "GG zu DL Zuordnung"
$form.Size = New-Object System.Drawing.Size(550, 400) # Großes komfortables Fenster $form.Size = New-Object System.Drawing.Size(550, 400) # Großes komfortables Fenster
# GG-Eingabe und Liste # GG-Eingabe und Liste
$ggLabel = New-Object System.Windows.Forms.Label $ggLabel = New-Object System.Windows.Forms.Label
@@ -38,7 +39,7 @@ $ggListBox = New-Object System.Windows.Forms.ListBox
$ggListBox.Location = New-Object System.Drawing.Point(10, 55) $ggListBox.Location = New-Object System.Drawing.Point(10, 55)
$ggListBox.Size = New-Object System.Drawing.Size(250, 200) $ggListBox.Size = New-Object System.Drawing.Size(250, 200)
$ggListBox.Items.AddRange($ggList) $ggListBox.Items.AddRange($ggList)
$ggListBox.SelectionMode = [System.Windows.Forms.SelectionMode]::One # Corrected this line $ggListBox.SelectionMode = [System.Windows.Forms.SelectionMode]::One
$form.Controls.Add($ggListBox) $form.Controls.Add($ggListBox)
$ggTextBox.Add_TextChanged({ $ggTextBox.Add_TextChanged({
@@ -63,7 +64,7 @@ $dlListBox = New-Object System.Windows.Forms.ListBox
$dlListBox.Location = New-Object System.Drawing.Point(270, 55) $dlListBox.Location = New-Object System.Drawing.Point(270, 55)
$dlListBox.Size = New-Object System.Drawing.Size(250, 200) $dlListBox.Size = New-Object System.Drawing.Size(250, 200)
$dlListBox.Items.AddRange($dlList) $dlListBox.Items.AddRange($dlList)
$dlListBox.SelectionMode = [System.Windows.Forms.SelectionMode]::MultiExtended # This is correct for multiple selections $dlListBox.SelectionMode = [System.Windows.Forms.SelectionMode]::MultiExtended
$form.Controls.Add($dlListBox) $form.Controls.Add($dlListBox)
$dlTextBox.Add_TextChanged({ $dlTextBox.Add_TextChanged({
@@ -84,7 +85,7 @@ $okButton.Add_Click({
foreach ($dlGroup in $dl) { foreach ($dlGroup in $dl) {
if (-not (Get-ADGroup -Filter "Name -eq '$dlGroup'")) { if (-not (Get-ADGroup -Filter "Name -eq '$dlGroup'")) {
New-ADGroup -Name $dlGroup -GroupScope DomainLocal -GroupCategory Security -Path "OU=DL_Groups,DC=deineDomäne,DC=local" New-ADGroup -Name $dlGroup -GroupScope DomainLocal -GroupCategory Security -Path "OU=DL_Groups,DC=deineDomäne,DC=local"
Write-Output "Gruppe $dlGroup wurde erstellt." Write-Output "Gruppe $dlGroup wurde erstellt."
} else { } else {
Write-Output "Gruppe $dlGroup existiert bereits." Write-Output "Gruppe $dlGroup existiert bereits."
@@ -92,9 +93,9 @@ $okButton.Add_Click({
if (-not (Get-ADGroupMember -Identity $dlGroup -Recursive | Where-Object { $_.SamAccountName -eq $gg })) { if (-not (Get-ADGroupMember -Identity $dlGroup -Recursive | Where-Object { $_.SamAccountName -eq $gg })) {
Add-ADGroupMember -Identity $dlGroup -Members $gg Add-ADGroupMember -Identity $dlGroup -Members $gg
Write-Output "Globalgruppe $gg wurde zur Domänenlokalen Gruppe $dlGroup hinzugefügt." Write-Output "Globalgruppe $gg wurde zur Domänenlokalen Gruppe $dlGroup hinzugefügt."
} else { } else {
Write-Output "Globalgruppe $gg ist bereits Mitglied der Domänenlokalen Gruppe $dlGroup." Write-Output "Globalgruppe $gg ist bereits Mitglied der Domänenlokalen Gruppe $dlGroup."
} }
} }