scripts/AD_USER_CREATE.ps1 aktualisiert
This commit is contained in:
@@ -3,6 +3,7 @@ Import-Module ActiveDirectory
|
|||||||
|
|
||||||
# Master-OU und Domäne ermitteln
|
# Master-OU und Domäne ermitteln
|
||||||
$masterOU = "OU=Benutzer,DC=domain,DC=com" # Beispielwert, passe ihn an eure Umgebung an
|
$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
|
# Holen Sie sich die Domäne aus dem Active Directory
|
||||||
$domain = (Get-ADDomain).DNSRoot
|
$domain = (Get-ADDomain).DNSRoot
|
||||||
@@ -10,30 +11,49 @@ $domain = (Get-ADDomain).DNSRoot
|
|||||||
# GUI erstellen
|
# GUI erstellen
|
||||||
$form = New-Object System.Windows.Forms.Form
|
$form = New-Object System.Windows.Forms.Form
|
||||||
$form.Text = "Benutzererstellung"
|
$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 = 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.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)
|
$form.Controls.Add($masterOULabel)
|
||||||
|
|
||||||
# Master-OU ComboBox
|
# Master-OU ComboBox für Benutzer
|
||||||
$masterOUComboBox = New-Object System.Windows.Forms.ComboBox
|
$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.Size = New-Object System.Drawing.Size(250, 20) # ComboBox-Größe festgelegt
|
||||||
$masterOUComboBox.DropDownStyle = 'DropDownList'
|
$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
|
$ouList = Get-ADOrganizationalUnit -Filter * | Select-Object -ExpandProperty DistinguishedName
|
||||||
$masterOUComboBox.Items.AddRange($ouList)
|
$masterOUComboBox.Items.AddRange($ouList)
|
||||||
$masterOUComboBox.SelectedItem = $masterOU # Standardwerte setzen
|
$masterOUComboBox.SelectedItem = $masterOU # Standardwerte setzen
|
||||||
$form.Controls.Add($masterOUComboBox)
|
$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 erstellen
|
||||||
$dataGridView = New-Object System.Windows.Forms.DataGridView
|
$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.Location = New-Object System.Drawing.Point(10, 40) # Position des DataGridViews
|
||||||
$dataGridView.Anchor = [System.Windows.Forms.AnchorStyles]::Top
|
$dataGridView.Anchor = [System.Windows.Forms.AnchorStyles]::Top
|
||||||
$form.Controls.Add($dataGridView)
|
$form.Controls.Add($dataGridView)
|
||||||
@@ -72,7 +92,7 @@ $masterOUComboBox.Add_SelectedIndexChanged({
|
|||||||
$outputTextBox = New-Object System.Windows.Forms.RichTextBox
|
$outputTextBox = New-Object System.Windows.Forms.RichTextBox
|
||||||
$outputTextBox.Multiline = $true
|
$outputTextBox.Multiline = $true
|
||||||
$outputTextBox.Location = New-Object System.Drawing.Point(10, 350) # Position unterhalb des DataGridViews
|
$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'
|
$outputTextBox.ScrollBars = 'Vertical'
|
||||||
$form.Controls.Add($outputTextBox)
|
$form.Controls.Add($outputTextBox)
|
||||||
|
|
||||||
@@ -143,7 +163,23 @@ $okButton.Add_Click({
|
|||||||
|
|
||||||
# Gruppenzuordnung durchführen, auch wenn der Benutzer schon existiert
|
# Gruppenzuordnung durchführen, auch wenn der Benutzer schon existiert
|
||||||
if ($globalGroup) {
|
if ($globalGroup) {
|
||||||
|
# Gruppen-OU auswählen (aus der ComboBox für Gruppen)
|
||||||
|
$groupOU = $masterGroupOUComboBox.SelectedItem
|
||||||
try {
|
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
|
Add-ADGroupMember -Identity $globalGroup -Members $username
|
||||||
$outputTextBox.SelectionColor = 'Green'
|
$outputTextBox.SelectionColor = 'Green'
|
||||||
$outputTextBox.AppendText("Benutzer '$username' wurde erfolgreich der Gruppe '$globalGroup' zugeordnet.`r`n")
|
$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 = New-Object System.Windows.Forms.Button
|
||||||
$exitButton.Text = "Beenden"
|
$exitButton.Text = "Beenden"
|
||||||
$exitButton.Size = New-Object System.Drawing.Size(150, 30) # Größe des Buttons festgelegt
|
$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({
|
$exitButton.Add_Click({
|
||||||
$form.Close() # Formular schließen
|
$form.Close() # Formular schließen
|
||||||
})
|
})
|
||||||
|
|||||||
Reference in New Issue
Block a user