Files
User-Onboarding/Powershell_Skript/User-Erstellen.ps1
2025-07-10 09:46:44 +02:00

932 lines
39 KiB
PowerShell

#Disclaimer
#Testversion 1.5
#Skript für Benutzererstellung zur vereinfachung zum Anlegen von Benutzern
#Todos: Erweitung Felder nach Bedarf
#Umstrukturierung Gruppen auf Arrays die leichter editierbar sind und weit weniger überprüfungsplatz verwenden
#
# 13.04.2023 Zeile 618 Verteiler Festangestellte eingebaut. pr
#
# 22.04.2024 Zeile 765-786 Attribute für dynamische Verteiler eingerichtet TME
#
# 13.02.2025 Benutzerverzeichnisse von \\sfs02\vol4\user auf \\sfs03\user\ umgestellt und Laufwerksbuchstaben von P: auf U: geändert.
#
# 30.04.2025 Citrix Stanndardzuweisung auskommentiert
#
#=======================================================================================================================================================================================
#Definitionen von Inhalten
#=======================================================================================================================================================================================
#Initsialisierung von Variablen
$Fehlercounter = 0
#Feste Arrays (nicht dynamisch erweiterbar; Feste Struktur)
#Array für Drucker
$ArrayDrucker = @("Drucker Ottobeuren EG"; "Drucker Ottobeuren 1.OG"; "Drucker Ottobeuren 2.OG"; "Drucker Ottobeuren Empfang"; "Drucker CAD Plotter"; "Drucker Murnau"; "Drucker Berlin")
#Array Firmendaten
$ArrayOttobeurenUmgebung = @("Johannes-Gutenberg-Str. 1"; "87724"; "+49 8332 9598 "; "+49 8332 9598 999"; "logon.cmd")
$ArrayMurnauUmgebung = @("Weilheimer Str. 21"; "82418"; "+49 8841 4 0500 "; "+49 8841 40500 29"; "logon.cmd")
$ArrayBerlinUmgebung = @("Reinickendorfer Str. 113"; "13347"; "+49 30 9921 124 "; "+49 304 60 606 839"; "logon.cmd")
$ArrayGroßGerauUmgebung = @("Frankfurter Straße 74"; "64521"; "+49 6152 51087 "; "+49 6152 51087 99"; "logon-gmbh.cmd")
$ArrayAugsburgUmgebung = @("Döllgaststr. 9"; "86199"; "+49 821 899811 "; "+49 821 899811 99"; "logon.cmd")
$ArrayRheinRuhrUmgebung = @("Wittekindstraße 1a"; "45127"; "+49 201 82069 "; "+49 201 2024 08"; "logon-reinruhr.cmd")
#Dynamische Arrays (Dynamisch erweiter- und veränderbar, feste Struktur nicht nötig)
#Array für Wertezuweisung
$ArraySonderzeichen = @('!', '?', '"', ',')
#Arrays für Citrixgruppen
#$ArrayCTXGruppenStandard = @("CTX-PHYS-Desktop-User"; "CTX-SEC-Users"; "CTX-Sec-AllowClientDrives")
#$ArrayCTXGruppenStandard = @("CTX-SEC-Allgemein"; "CTX-SEC-Users"; "CTX-XA16P1-PROD-FullDesktop"; "CTX-XA16P1-PROD-DA-Chrome"; "CTX-XA16P1-PROD-DA-pdfxchange"; "CTX-XA16P1-PROD-DA-Office2016")
#$ArrayCTXGruppenCAD = @("Drucker CAD Plotter"; "CTX-XA16P1-PROD-DA-MEP2020"; "CTX-XA16P1-PROD-DA-NAVISMANAGE"; "CTX-XA16P1-PROD-DA-REVIT2020"; "CTX-XA16P1-PROD-DA-RELUX")
#$ArrayCTXGruppenSachbearbeiterHKSM = @("CTX-XA16P1-PROD-DA-NAVISFREEDOM"; "CTX-XA16P1-PROD-DA-MEP-SACHBEARBEITER")
#$ArrayCTXGruppenSachbearbeiterELT = @("CTX-XA16P1-PROD-DA-NAVISFREEDOM"; "CTX-XA16P1-PROD-DA-MEP-SACHBEARBEITER"; "CTX-XA16P1-PROD-DA-RELUX")
#$ArrayCTXGruppenBauueberwachung = @("CTX-XA16P1-PROD-DA-NAVISFREEDOM"; "CTX-XA16P1-PROD-DA-MEP-SACHBEARBEITER"; "CTX-XA16P1-PROD-DA-RELUX")
#Arrays für Standard Organisationsgruppen
#$ArrayGruppenOttobeuren = @(MA-Ott)
#$ArrayGruppenMurnau = @()
#$ArrayGruppenBerlin = @()
#$ArrayGruppenAugsburg = @("MA-Augsburg";"Augsburg Allgemein")
#$ArrayGruppenGroßGerau = @("MA-Groß-Gerau")
#Arrays für Anstellungsarten
$ArrayGruppenFestangestellt = @("CI-Sign"; "intra")
$ArrayGruppenExtern = @("ExterneMitarbeiter"; "CI-Sign")
$ArrayGruppenAzubis = @("AzuBis")
#=======================================================================================================================================================================================
#Bibliotheken
[void] [System.Reflection.Assembly]::LoadWithPartialName("System.Drawing")
[void] [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")
#Module überprüfen
Import-Module ActiveDirectory
if ($Error -eq $true) {
[System.Windows.Forms.MessageBox]::Show(Das Active Directory Modul ist auf diesem Rechner nicht vorhanden. Bitte installieren sie dieses um fortzufahren. Programm wird beendet, Fehler, 0, [System.Windows.Forms.MessageBoxIcon]::Exclamation)
Exit 0
}
#=======================================================================================================================================================================================
#aktive Ausführung
#=======================================================================================================================================================================================
#Fenster
$objForm = New-Object System.Windows.Forms.Form
#Startposition
$objForm.StartPosition = "CenterScreen"
#Fenstergröße
$objForm.Size = New-Object System.Drawing.Size(900, 800)
#Überschrifttext
$objForm.Text = "Benutzer anlegen"
#Beschreibungstexte
#.Location legt Position des Elements fest
#.Size legt Größe des Elements fest
#.Text legt Beschriftung fest
#.controls.add Verbindet das Element mit dem Fenster
#Textfeld Vorname
$VornameText = New-Object System.Windows.Forms.Label
$VornameText.Location = New-Object System.Drawing.size(50, 70)
$VornameText.Size = New-Object System.Drawing.Size(75, 40)
$VornameText.Text = "Vorname:"
$objForm.controls.Add($VornameText)
#Textfeld Nachname
$NachnameText = New-Object System.Windows.Forms.Label
$NachnameText.Location = New-Object System.Drawing.Size(50, 120)
$NachnameText.Size = New-Object System.Drawing.Size(75, 40)
$NachnameText.Text = "Nachname:"
$objForm.controls.Add($NachnameText)
#Textfeld Initialen
$InitialenText = New-Object System.Windows.Forms.Label
$InitialenText.Location = New-Object System.Drawing.Size(50, 170)
$InitialenText.Size = New-Object System.Drawing.Size(75, 40)
$InitialenText.Text = "Initialen:"
$objForm.controls.Add($InitialenText)
#Textfeld Platz
$PlatzText = New-Object System.Windows.Forms.Label
$PlatzText.Location = New-Object System.Drawing.Size(50, 220)
$PlatzText.Size = New-Object System.Drawing.Size(80, 40)
$PlatzText.Text = "Platznummer:"
$objForm.controls.Add($PlatzText)
#Textfeld Durchwahl
$DurchwahlText = New-Object System.Windows.Forms.Label
$DurchwahlText.Location = New-Object System.Drawing.Size(50, 280)
$DurchwahlText.Size = New-Object System.Drawing.Size(75, 40)
$DurchwahlText.Text = "Durchwahl:"
$objForm.controls.Add($DurchwahlText)
#Textfeld Standort
$StandortText = New-Object System.Windows.Forms.Label
$StandortText.Location = New-Object System.Drawing.Size(50, 340)
$StandortText.Size = New-Object System.Drawing.Size(75, 40)
$StandortText.Text = "Standort:"
$objForm.controls.Add($StandortText)
#Textfeld Firma
$FirmaText = New-Object System.Windows.Forms.Label
$FirmaText.Location = New-Object System.Drawing.Size(50, 400)
$FirmaText.Size = New-Object System.Drawing.Size(75, 40)
$FirmaText.Text = "Firma:"
$objForm.controls.Add($FirmaText)
#Textfeld Berufsgruppe
$BerufsgruppeText = New-Object System.Windows.Forms.Label
$BerufsgruppeText.Location = New-Object System.Drawing.Size(50, 460)
$BerufsgruppeText.Size = New-Object System.Drawing.Size(85, 40)
$BerufsgruppeText.Text = "Berufsgruppe:"
$objForm.controls.Add($BerufsgruppeText)
#Textfeld Vorgesetzter
$VorgesetzterText = New-Object System.Windows.Forms.Label
$VorgesetzterText.Location = New-Object System.Drawing.Size(500, 70)
$VorgesetzterText.Size = New-Object System.Drawing.Size(100, 30)
$VorgesetzterText.Text = "Vorgesetzter:"
$objForm.controls.Add($VorgesetzterText)
#Textfeld Festangestellt
$FestangestelltText = New-Object System.Windows.Forms.Label
$FestangestelltText.Location = New-Object System.Drawing.Size(500, 120)
$FestangestelltText.Size = New-Object System.Drawing.Size(100, 30)
$FestangestelltText.Text = "Festangestellt:"
$objForm.controls.Add($FestangestelltText)
#Textfeld Azubis
$AzubisText = New-Object System.Windows.Forms.Label
$AzubisText.Location = New-Object System.Drawing.Size(500, 170)
$AzubisText.Size = New-Object System.Drawing.Size(100, 30)
$AzubisText.Text = "Azubi:"
$objForm.controls.Add($AzubisText)
#Textfeld Drucker
$DruckerText = New-Object System.Windows.Forms.Label
$DruckerText.Location = New-Object System.Drawing.Size(500, 220)
$DruckerText.Size = New-Object System.Drawing.Size(100, 30)
$DruckerText.Text = "Druckerauswahl:"
$objForm.controls.Add($DruckerText)
#Textfeld extNummer
$extNummerText = New-Object System.Windows.Forms.Label
$extNummerText.Location = New-Object System.Drawing.Size(500, 270)
$extNummerText.Size = New-Object System.Drawing.Size(100, 30)
$extNummerText.Text = "ext. Nummer: (Nur NL)"
$objForm.controls.Add($extNummerText)
#Schriftfeld Vorname
$Vorname = New-Object System.Windows.Forms.Textbox
$Vorname.Location = New-Object System.Drawing.size(150, 70)
$Vorname.Size = New-Object System.Drawing.Size(200, 20)
$objForm.controls.Add($Vorname)
#Schriftfeld Nachname
$Nachname = New-Object System.Windows.Forms.TextBox
$Nachname.Location = New-Object System.Drawing.Size (150, 120)
$Nachname.Size = New-Object System.Drawing.Size (200, 20)
$objForm.controls.Add($Nachname)
#Schriftfeld Initialen
$Initialen = New-Object System.Windows.Forms.TextBox
$Initialen.Location = New-Object System.Drawing.Size (150, 170)
$Initialen.Size = New-Object System.Drawing.Size (200, 20)
$objForm.controls.Add($Initialen)
#Schriftfeld Platz
$Platz = New-Object System.Windows.Forms.TextBox
$Platz.Location = New-Object System.drawing.size(150, 220)
$Platz.Size = New-Object System.Drawing.Size(200, 20)
$objForm.controls.Add($Platz)
#Schriftfeld Durchwahl
$Durchwahl = New-Object System.Windows.Forms.TextBox
$Durchwahl.Location = New-Object System.drawing.size(150, 280)
$Durchwahl.Size = New-Object System.Drawing.Size(200, 20)
$objForm.controls.Add($Durchwahl)
#Combobox Standort
$Standort = New-Object System.Windows.Forms.Combobox
$Standort.Location = New-Object System.Drawing.Size(150, 340)
$Standort.Size = New-Object System.Drawing.Size (200, 20)
$Standort.Text = "Ottobeuren"
[void] $Standort.Items.Add("Berlin")
[void] $Standort.Items.Add("Groß-Gerau")
[void] $Standort.Items.Add("Murnau")
[void] $Standort.Items.Add("Ottobeuren")
[void] $Standort.Items.Add("Augsburg")
[void] $Standort.Items.Add("Rhein-Ruhr")
$Standort.Height = 50
$objForm.controls.Add($Standort)
#Combobox Firma
$Firma = New-Object System.Windows.Forms.Combobox
$Firma.Location = New-Object System.Drawing.Size(150, 400)
$Firma.Size = New-Object System.Drawing.Size (200, 20)
$Firma.Text = "Ingenieurbüro Mayer AG"
[void] $Firma.Items.Add("Ingenieurbüro Mayer AG")
[void] $Firma.Items.Add("Simtecto GmbH")
[void] $Firma.Items.Add("Ingenieurbüro Mayer GmbH")
[void] $Firma.Items.Add("Ingenieurbüro Mayer Rhein-Ruhr GmbH")
$Firma.Height = 30
$objForm.controls.Add($Firma)
#Combobox Beruf
$Berufsgruppe = New-Object System.Windows.Forms.Combobox
$Berufsgruppe.Location = New-Object System.Drawing.Size(150, 460)
$Berufsgruppe.Size = New-Object System.Drawing.Size (200, 20)
$Berufsgruppe.Text = "Kompetenzteam CAD"
[void] $Berufsgruppe.Items.Add("Administration, Bereich Büroassistenz")
[void] $Berufsgruppe.Items.Add("Administration, Bereich Finanzen und Controlling")
[void] $Berufsgruppe.Items.Add("Administration, Bereich IT")
[void] $Berufsgruppe.Items.Add("Administration, Bereich Personal")
[void] $Berufsgruppe.Items.Add("Kompetenzteam Bauüberwachung")
[void] $Berufsgruppe.Items.Add("Kompetenzteam CAD")
[void] $Berufsgruppe.Items.Add("Kompetenzteam ELT")
[void] $Berufsgruppe.Items.Add("Kompetenzteam Gebäudeautomation")
[void] $Berufsgruppe.Items.Add("Kompetenzteam HKSM")
[void] $Berufsgruppe.Items.Add("Kompetenzteam RLT")
$Berufsgruppe.Height = 100
$objForm.controls.Add($Berufsgruppe)
#Combobox Drucker
$Vorgesetzter = New-Object System.Windows.Forms.Combobox
$Vorgesetzter.Location = New-Object System.Drawing.Size(610, 70)
$Vorgesetzter.Size = New-Object System.Drawing.Size (120, 20)
$Vorgesetzter.Text = ""
[void] $Vorgesetzter.Items.Add("Alexander Klein")
[void] $Vorgesetzter.Items.Add("Daniel Angele")
[void] $Vorgesetzter.Items.Add("Eric Schröder")
[void] $Vorgesetzter.Items.Add("Florian Baum")
[void] $Vorgesetzter.Items.Add("Florian Hilpold")
[void] $Vorgesetzter.Items.Add("German Kufer")
[void] $Vorgesetzter.Items.Add("Jürgen Mayer")
[void] $Vorgesetzter.Items.Add("Jörg Obels")
[void] $Vorgesetzter.Items.Add("Josef Schwinger")
[void] $Vorgesetzter.Items.Add("Karl Schmiedt")
[void] $Vorgesetzter.Items.Add("Matthias Fendt")
[void] $Vorgesetzter.Items.Add("Peter Krassnitzer")
[void] $Vorgesetzter.Items.Add("Ralf Dohrmann")
[void] $Vorgesetzter.Items.Add("Reinhard Hörmann")
[void] $Vorgesetzter.Items.Add("René Meding")
[void] $Vorgesetzter.Items.Add("Sandra Sommer")
[void] $Vorgesetzter.Items.Add("Wolfgang Forth")
$Vorgesetzter.Height = 30
$objForm.controls.Add($Vorgesetzter)
#Checkbox Festangestellt
$Festangestellt = New-Object System.Windows.Forms.Checkbox
$Festangestellt.Location = New-Object System.drawing.size(610, 120)
$Festangestellt.Size = New-Object System.Drawing.Size(15, 20)
$objForm.controls.Add($Festangestellt)
#Checkbox Azubis
$Azubis = New-Object System.Windows.Forms.Checkbox
$Azubis.Location = New-Object System.drawing.size(610, 170)
$Azubis.Size = New-Object System.Drawing.Size(15, 20)
$objForm.controls.Add($Azubis)
#Combobox Drucker
$Drucker = New-Object System.Windows.Forms.Combobox
$Drucker.Location = New-Object System.Drawing.Size(610, 220)
$Drucker.Size = New-Object System.Drawing.Size (120, 20)
$Drucker.Text = ""
[void] $Drucker.Items.Add("Drucker EG")
[void] $Drucker.Items.Add("Drucker 1.OG")
[void] $Drucker.Items.Add("Drucker 2.OG")
[void] $Drucker.Items.Add("Drucker Berlin")
[void] $Drucker.Items.Add("Drucker Murnau")
[void] $Drucker.Items.Add("Drucker Verwaltung")
$Drucker.Height = 30
$objForm.controls.Add($Drucker)
#externe Rufnummer für Niederlassungen
$extNummer = New-Object System.Windows.Forms.TextBox
$extNummer.Location = New-Object System.Drawing.Size (610, 270)
$extNummer.Size = New-Object System.Drawing.Size (200, 20)
$objForm.controls.Add($extNummer)
#Abbruch Button
$Abbruchbutton = New-Object System.Windows.Forms.Button
$Abbruchbutton.Location = New-Object System.Drawing.Size(150, 640)
$Abbruchbutton.Size = New-Object System.Drawing.Size(75, 23)
$Abbruchbutton.Text = "Abbrechen"
$Abbruchbutton.Name = "Abbrechen"
$Abbruchbutton.DialogResult = "Cancel"
$Abbruchbutton.add_Click({ $objForm.Close() })
$objForm.controls.Add($Abbruchbutton)
#OK Button
$OKButton = New-Object System.Windows.Forms.Button
$OKButton.Location = New-Object System.Drawing.Size(50, 640)
$OKButton.Size = New-Object System.Drawing.Size(75, 23)
$OKButton.Text = "OK"
$OKButton.Name = "OK"
$OKButton.add_Click({
#Kombination Benutzername
$Benutzername = $Vorname.Text + "." + $Nachname.Text
$Benutzername = $Benutzername.ToLower()
$Initialen = $Initialen.Text.ToUpper()
#Überprüfung Vorname
if (!$Vorname.Text) {
[System.Windows.Forms.MessageBox]::Show(Bitte geben sie einen Vornamen ein, Fehler, 0, [System.Windows.Forms.MessageBoxIcon]::Exclamation)
$Fehlercounter ++
}
if ($Vorname.Text -contains $ArraySonderzeichen) {
[System.Windows.Forms.MessageBox]::Show(Bitte geben sie keine Sonderzeichen ein, Fehler, 0, [System.Windows.Forms.MessageBoxIcon]::Exclamation)
$Fehlercounter ++
}
#Überprüfung Nachname
if (!$Nachname.Text) {
[System.Windows.Forms.MessageBox]::Show(Bitte geben sie einen Nachnamen ein, Fehler, 0, [System.Windows.Forms.MessageBoxIcon]::Exclamation)
$Fehlercounter ++
}
if ($Nachname.Text -contains $ArraySonderzeichen) {
[System.Windows.Forms.MessageBox]::Show(Bitte geben sie keine Sonderzeichen ein, Fehler, 0, [System.Windows.Forms.MessageBoxIcon]::Exclamation)
$Fehlercounter ++
}
#Überprüfung Initialen
if ($Initialen.Text -contains $ArraySonderzeichen) {
[System.Windows.Forms.MessageBox]::Show(Bitte geben sie keine Sonderzeichen ein, Fehler, 0, [System.Windows.Forms.MessageBoxIcon]::Exclamation)
$Fehlercounter ++
}
#Überprüfung Standort
if (!$Standort.Text) {
[System.Windows.Forms.MessageBox]::Show(Bitte geben sie einen Standort an, Fehler, 0, [System.Windows.Forms.MessageBoxIcon]::Exclamation)
$Fehlercounter ++
}
#Überprüfung Firma
if (!$Firma.Text) {
[System.Windows.Forms.MessageBox]::Show(Bitte geben sie die Firma an bei der der Mitarbeiter angestellt wird, Fehler, 0, [System.Windows.Forms.MessageBoxIcon]::Exclamation)
$Fehlercounter ++
}
#Überprüfung Berufsgruppe
if (!$Berufsgruppe.Text) {
[System.Windows.Forms.MessageBox]::Show(Bitte geben sie die Berufsgruppe des Mitarbeiters an, Fehler, 0, [System.Windows.Forms.MessageBoxIcon]::Exclamation)
}
#Überprüfung ob Benutzer bereits vorhanden
$vorhanden = (Get-ADUser -Filter { SamAccountName -eq $Benutzername } | Measure-Object).count
if ($vorhanden -ne 0) {
[System.Windows.Forms.MessageBox]::Show(Benutzer ist schon vorhanden. Programm wird beendet, Fehler, 0, [System.Windows.Forms.MessageBoxIcon]::Exclamation)
$objForm.Close()
exit 0
}
if ($Fehlercounter -eq 0) {
#Standort Auswahl + Standortabhängige Parameter
if ($Standort.Text -eq "Ottobeuren") {
$ArrayStandort = $ArrayOttobeurenUmgebung
}
elseif ($Standort.Text -eq "Murnau") {
$ArrayStandort = $ArrayMurnauUmgebung
}
elseif ($Standort.Text -eq "Berlin") {
$ArrayStandort = $ArrayBerlinUmgebung
}
elseif ($Standort.Text -eq "Groß-Gerau") {
$ArrayStandort = $ArrayGroßGerauUmgebung
}
elseif ($Standort.Text -eq "Augsburg") {
$ArrayStandort = $ArrayAugsburgUmgebung
}
elseif ($Standort.Text -eq "Rhein-Ruhr") {
$ArrayStandort = $ArrayRheinRuhrUmgebung
}
$StraßeundHausnummer = $ArrayStandort[0]
$Postleitzahl = $ArrayStandort[1]
$Telefonnummer = $ArrayStandort[2]
$Fax = $ArrayStandort[3]
$Script = $ArrayStandort[4]
#Firma
if ($Firma.Text -eq "Ingenieurbüro Mayer AG") {
$Verwaltungsort = "User"
$Homepage = "https://www.ib-mayer.de"
}
elseif ($Firma.Text -eq "Simtecto GmbH") {
$Verwaltungsort = "Simtecto"
$Telefonnummer = "+49 8332 79 67 68-"
$Fax = "+49 8332 79 67 68-9"
$Script = "logon-simtecto.cmd"
$Homepage = "https://www.simtecto.de/"
}
elseif ($Firma.Text -eq "Ingenieurbüro Mayer GmbH") {
$Verwaltungsort = "User"
$Script = "logon-gmbh.cmd"
$Homepage = "https://www.ib-mayer.de"
}
elseif ($Firma.Text -eq "Ingenieurbüro Mayer Rhein-Ruhr GmbH") {
$Verwaltungsort = "User"
$Script = "logon-rheinruhr.cmd"
$Fax = "+49 201 202408"
$Homepage = "https://www.ib-mayer.de"
$AdresseCity = "Essen"
}
if ($Festangestellt.CheckState -eq "Unchecked") {
$Verwaltungsort = "Externe Mitarbeiter"
$Platz = ""
$Telefonnummer = "+49 8332 9598 0"
}
#Behebung ÜÄÖß Probleme
if ($Benutzername.contains("ö")) {
$Benutzername = $Benutzername.replace("ö", "oe")
}
if ($Benutzername.contains("ä")) {
$Benutzername = $Benutzername.replace("ä", "ae")
}
if ($Benutzername.contains("ü")) {
$Benutzername = $Benutzername.replace("ü", "ue")
}
if ($Benutzername.contains("ß")) {
$Benutzername = $Benutzername.replace("ß", "ss")
}
#Variable Passwort
$password = 20IbnbIBM&fmha25 | ConvertTo-SecureString -AsPlainText -Force
#Kommandozeile zur Benutzererstellung
if ($Firma.text -eq "Ingenieurbüro Mayer GmbH") {
New-ADUser -Name "$($Vorname.Text) $($Nachname.Text)"-Initials $Initialen -GivenName $Vorname.Text -Surname $Nachname.Text -Path "ou=$($Verwaltungsort),ou=$($Standort.Text),ou=IB-MAYER,dc=ib-mayer,dc=local" -UserPrincipalName "$Benutzername@ib-mayer.de" -DisplayName "$($Vorname.Text) $($Nachname.Text)" -AccountPassword $password -Description $Berufsgruppe.Text -title $Berufsgruppe.Text -Department $Department -StreetAddress $StraßeundHausnummer -Company $Firma.Text -City $Standort.Text -Country DE -SamAccountName $Benutzername -HomeDirectory "\\sfs02\vol8\user\$Benutzername" -HomeDrive P: -Office $Standort.Text -Fax "$Fax" -ScriptPath "$Script" -PostalCode $Postleitzahl -HomePage $Homepage
}
elseif ($Firma.text -eq "Ingenieurbüro Mayer Rhein-Ruhr GmbH") {
New-ADUser -Name "$($Vorname.Text) $($Nachname.Text)"-Initials $Initialen -GivenName $Vorname.Text -Surname $Nachname.Text -Path "ou=$($Verwaltungsort),ou=$($Standort.Text),ou=IB-MAYER,dc=ib-mayer,dc=local" -UserPrincipalName "$Benutzername@ib-mayer.de" -DisplayName "$($Vorname.Text) $($Nachname.Text)" -AccountPassword $password -Description $Berufsgruppe.Text -title $Berufsgruppe.Text -Department $Department -StreetAddress $StraßeundHausnummer -Company $Firma.Text -City $AdresseCity -Country DE -SamAccountName $Benutzername -HomeDirectory "\\sfs02\vol10\user\$Benutzername" -HomeDrive P: -Office $Standort.Text -Fax "$Fax" -ScriptPath "$Script" -PostalCode $Postleitzahl -HomePage $Homepage
}
else {
New-ADUser -Name "$($Vorname.Text) $($Nachname.Text)"-Initials $Initialen -GivenName $Vorname.Text -Surname $Nachname.Text -Path "ou=$($Verwaltungsort),ou=$($Standort.Text),ou=IB-MAYER,dc=ib-mayer,dc=local" -UserPrincipalName "$Benutzername@ib-mayer.de" -DisplayName "$($Vorname.Text) $($Nachname.Text)" -AccountPassword $password -Description $Berufsgruppe.Text -title $Berufsgruppe.Text -Department $Department -StreetAddress $StraßeundHausnummer -Company $Firma.Text -City $Standort.Text -Country DE -SamAccountName $Benutzername -HomeDirectory "\\sfs03\user\$Benutzername" -HomeDrive U: -Office $Standort.Text -Fax "$Fax" -ScriptPath "$Script" -PostalCode $Postleitzahl -HomePage $Homepage
}
#Setzen Wert Platz
if ( $Platz.Text -ne "") {
Set-ADUser -Identity $Benutzername -Add @{info = "$($Platz.Text)" }
}
#Setzen Wert ProxyAddresses
If ($Firma.Text -eq "Ingenieurbüro Mayer AG") {
Set-ADUser -Identity $Benutzername -Add @{proxyAddresses = "SMTP:$Benutzername@ib-mayer.de", "smtp:$Benutzername@ib-mayer.com", "smtp:$Benutzername@ib-mayer.local", "smtp:$Benutzername@ibmayer.mail.onmicrosoft.com" }
}
elseif ($Firma.Text -eq "Simtecto GmbH") {
Set-ADUser -Identity $Benutzername -Add @{proxyAddresses = "SMTP:$Benutzername@simtecto.de", "smtp:$Benutzername@simtecto.com", "smtp:$Benutzername@ib-mayer.de", " smtp:$Benutzername@ib-mayer.com", "smtp:$Benutzername@ib-mayer.local", "smtp:$Benutzername@ibmayer.mail.onmicrosoft.com" }
}
else { # ($Firma.Text -eq "Ingenieurbüro Mayer GmbH")
Set-ADUser -Identity $Benutzername -Add @{proxyAddresses = "SMTP:$Benutzername@ib-mayer.de", "smtp:$Benutzername@ib-mayer.com", "smtp:$Benutzername@ib-mayer.local", "smtp:$Benutzername@ibmayer.mail.onmicrosoft.com" }
}
#Setzen Wert TargetAddress
Set-ADUser -Identity $Benutzername -Add @{targetAddress = "smtp:$Benutzername@ibmayer.mail.onmicrosoft.com" }
#setzen E-Mail
Set-ADUser -Identity $Benutzername -Add @{mail = "$Benutzername@ib-mayer.de" }
#setzen Land
Set-ADUser -Identity $Benutzername -Replace @{c = "DE"; co = "Deutschland"; countrycode = "276" }
#Prüfen ob Durchwahl vorhanden
if ($Durchwahl -ne $null) {
#Setzen Durchwahl
Set-ADUser -Identity $Benutzername -Add @{ipPhone = "$($Durchwahl.Text)" }
#Setzen Büronummer
if ($standort.Text -ne "Ottobeuren") {
Set-aduser -Identity $Benutzername -OfficePhone "$($extNummer.Text)"
}
else {
Set-aduser -Identity $Benutzername -OfficePhone "$Telefonnummer$($Durchwahl.Text)"
}
}
#P Verzeichnis erstellen
if ($Firma.Text -eq "Ingenieurbüro Mayer GmbH") {
New-Item -Path "\\sfs02\vol8\user\" -Name "$Benutzername" -ItemType "directory"
#Setzen Rechte P Ordner
$acl = Get-Acl "\\sfs02\vol8\user\$Benutzername"
$AccessRule = New-Object System.Security.AccessControl.FileSystemAccessRule("$Benutzername", "FullControl", "ContainerInherit,ObjectInherit", "none", "Allow")
$acl.SetAccessRule($AccessRule)
Set-Acl "\\sfs02\vol8\user\$Benutzername" -AclObject $acl
}
elseif ($Firma.Text -eq "Ingenieurbüro Mayer Rhein-Ruhr GmbH") {
New-Item -Path "\\sfs02\vol10\user\" -Name "$Benutzername" -ItemType "directory"
#Setzen Rechte P Ordner
$acl = Get-Acl "\\sfs02\vol10\user\$Benutzername"
$AccessRule = New-Object System.Security.AccessControl.FileSystemAccessRule("$Benutzername", "FullControl", "ContainerInherit,ObjectInherit", "none", "Allow")
$acl.SetAccessRule($AccessRule)
Set-Acl "\\sfs02\vol10\user\$Benutzername" -AclObject $acl
}
else {
New-Item -Path "\\sfs03\user\" -Name "$Benutzername" -ItemType "directory"
#Setzen Rechte P Ordner
$acl = Get-Acl "\\sfs03\user\$Benutzername"
$AccessRule = New-Object System.Security.AccessControl.FileSystemAccessRule("$Benutzername", "FullControl", "ContainerInherit,ObjectInherit", "none", "Allow")
$acl.SetAccessRule($AccessRule)
Set-Acl "\\sfs03\user\$Benutzername" -AclObject $acl
}
#============================================================================================================================
#Standardgruppen
if ($Festangestellt.CheckState -eq "Checked") {
If ($Firma.Text -eq "Ingenieurbüro Mayer AG") {
Add-ADGroupMember -Identity CI-Sign -Members $Benutzername
Add-ADGroupMember -Identity MA-Ott -Members $Benutzername
Add-ADGroupMember -Identity "Verteiler Festangestellte" -Members $Benutzername
if ($Standort.Text -eq "Ottobeuren") {
Add-ADGroupMember -Identity SignOtt -Members $Benutzername
}
}
elseif ($Firma.Text -eq "Simtecto GmbH") {
Add-ADGroupMember -Identity MA-Ott -Members $Benutzername
Add-ADGroupMember -Identity Simtecto -Members $Benutzername
}
elseif ($Firma.Text -eq "Ingenieurbüro Mayer GmbH") {
Add-ADGroupMember -Identity MA-Groß-Gerau -Members $Benutzername
}
elseif ($Firma.Text -eq "Ingenieurbüro Mayer Rhein-Ruhr GmbH") {
Add-ADGroupMember -Identity MA-Rhein-Ruhr -Members $Benutzername
}
}
#==============================================================================================================================
#Gruppen für Rollen
if ($Berufsgruppe.Text -eq "Kompetenzteam CAD") {
Add-ADGroupMember -Identity "Drucker CAD Plotter" -Members $Benutzername
Add-ADGroupMember -Identity "CAD VST Ottobeuren" -Members $Benutzername
Add-ADGroupMember -Identity "CAD ELT Ottobeuren" -Members $Benutzername
}
if ($Benutzergruppe.Text -eq "Kompetenzteam HKSM") {
Add-ADGroupMember -Identity "Kompetenzteam HKSM" -Members $Benutzername
}
if ($Benutzergruppe.Text -eq "Kompetenzteam RLT") {
Add-ADGroupMember -Identity "Team-RLT" -Members $Benutzername
}
if ($Benutzergruppe.Text -eq "Kompetenzteam ELT") {
Add-ADGroupMember -Identity "Team-ELT" -Members $Benutzername
Add-ADGroupMember -Identity "Ing ELT Ottobeuren" -Members $Benutzername
}
if ($Benutzergruppe.Text -eq "Kompetenzteam Bauüberwachung") {
Add-ADGroupMember -Identity "Kompetenzteam Bauüberwachung" -Members $Benutzername
}
if ($Benutzergruppe.Text -eq "IT") {
Add-ADGroupMember -Identity "CTX-XA16P1-PROD-DA-BARAMUNDI" -Members $Benutzername
}
#=============================================================================================================================
#Vorgesetzter
if ($Vorgesetzter.Text -eq "Alexander Klein") {
Set-aduser -Identity $Benutzername -Manager Alexander.Klein
}
elseif ($Vorgesetzter.text -eq "Daniel Angele") {
Set-aduser -Identity $Benutzername -Manager Daniel.Angele
}
elseif ($Vorgesetzter.text -eq "Eric Schröder") {
Set-aduser -Identity $Benutzername -Manager Eric.Schroeder
}
elseif ($Vorgesetzter.text -eq "Florian Baum") {
Set-aduser -Identity $Benutzername -Manager Florian.Baum
}
elseif ($Vorgesetzter.text -eq "Florian Hilpold") {
Set-aduser -Identity $Benutzername -Manager Florian.Hilpold
}
elseif ($Vorgesetzter.text -eq "German Kufer") {
Set-aduser -Identity $Benutzername -Manager German.Kufer
}
elseif ($Vorgesetzter.text -eq "Jürgen Mayer") {
Set-aduser -Identity $Benutzername -Manager Juergen.Mayer
}
elseif ($Vorgesetzter.text -eq "Jörg Obels") {
Set-aduser -Identity $Benutzername -Manager Joerg.Obels
}
elseif ($Vorgesetzter.text -eq "Josef Schwinger") {
Set-aduser -Identity $Benutzername -Manager Josef.Schwinger
}
elseif ($Vorgesetzter.text -eq "Karl Schmiedt") {
Set-aduser -Identity $Benutzername -Manager Karl.Schmiedt
}
elseif ($Vorgesetzter.text -eq "Matthias Fendt") {
Set-aduser -Identity $Benutzername -Manager Matthias.Fendt
}
elseif ($Vorgesetzter.text -eq "Peter Krassnitzer") {
Set-aduser -Identity $Benutzername -Manager Peter.Krassnitzer
}
elseif ($Vorgesetzter.text -eq "Reinhard Hörmann") {
Set-aduser -Identity $Benutzername -Manager Reinhard.Hoermann
}
elseif ($Vorgesetzter.text -eq "René Meding") {
Set-aduser -Identity $Benutzername -Manager Rene.Meding
}
elseif ($Vorgesetzter.text -eq "Sandra Sommer") {
Set-aduser -Identity $Benutzername -Manager Sandra.Sommer
}
elseif ($Vorgesetzter.text -eq "Wolfgang Forth") {
Set-aduser -Identity $Benutzername -Manager Wolfgang.Forth
}
elseif ($Vorgesetzter.text -eq "Ralf Dohrmann") {
Set-aduser -Identity $Benutzername -Manager Ralf.Dohrmann
}
#=============================================================================================================================
#Dynamische Verteilergruppe Standort
if ($Standort.Text -eq "Ottobeuren") {
Set-ADUser -Identity $Benutzername -Add @{extensionAttribute1 = "IBMayer-AG-Ottobeuren" }
}
elseif ($Standort.Text -eq "Murnau") {
Set-ADUser -Identity $Benutzername -Add @{extensionAttribute1 = "IBMayer-AG-Murnau" }
}
elseif ($Standort.Text -eq "Berlin") {
Set-ADUser -Identity $Benutzername -Add @{extensionAttribute1 = "IBMayer-AG-Berlin" }
}
elseif ($Standort.Text -eq "Augsburg") {
Set-ADUser -Identity $Benutzername -Add @{extensionAttribute1 = "IBMayer-AG-Augsburg" }
}
elseif ($Firma.Text -eq "Simtecto GmbH") {
Set-ADUser -Identity $Benutzername -Add @{extensionAttribute1 = "Simtecto" }
}
elseif ($Standort.Text -eq "Groß-Gerau") {
Set-ADUser -Identity $Benutzername -Add @{extensionAttribute1 = "IBMayer-GmbH-Groß-Gerau" }
}
elseif ($Standort.Text -eq "Rhein-Ruhr") {
Set-ADUser -Identity $Benutzername -Add @{extensionAttribute1 = "IBMayer-GmbH-Rhein-Ruhr" }
}
#=============================================================================================================================
#Festangestellt
if ($Festangestellt.CheckState -eq "Checked") {
foreach ($item in $ArrayGruppenFestangestellt) { Add-ADGroupMember -identity $item -Members $Benutzername }
}
#=============================================================================================================================
#Extern
elseif ($Festangestellt.CheckState -eq "Unchecked") {
foreach ($item in $ArrayGruppenExtern) { Add-ADGroupMember -identity $item -Members $Benutzername }
}
#=============================================================================================================================
#Azubis
if ($Azubis.CheckState -eq "Checked") {
foreach ($item in $ArrayGruppenAzubis) { Add-ADGroupMember -identity $item -Members $Benutzername }
}
#=============================================================================================================================
#Citrix Standardgruppen Zuweisung
# foreach ($item in $ArrayCTXGruppenStandard) { Add-ADGroupMember -identity $item -Members $Benutzername }
#=============================================================================================================================
#Drucker zuordnen
if ($Drucker.Text -eq "Drucker EG") {
Add-ADGroupMember -Identity $ArrayDrucker[0] -Members $Benutzername
}
if ($Drucker.Text -eq "Drucker 1.OG") {
Add-ADGroupMember -Identity $ArrayDrucker[1] -Members $Benutzername
}
if ($Drucker.Text -eq "Drucker 2.OG") {
Add-ADGroupMember -Identity $ArrayDrucker[2] -Members $Benutzername
}
if ($Drucker.Text -eq "Drucker Berlin") {
Add-ADGroupMember -Identity $ArrayDrucker[7] -Members $Benutzername
}
if ($Drucker.Text -eq "Drucker Murnau") {
Add-ADGroupMember -Identity $ArrayDrucker[6] -Members $Benutzername
}
if ($Drucker.Text -eq "Drucker Verwaltung") {
Add-ADGroupMember -Identity $ArrayDrucker[5] -Members $Benutzername
}
}
#=============================================================================================================================
#Berufsgruppen
if ($Berufsgruppe.Text -eq "Kompetenzteam CAD") {
foreach ($item in $ArrayCTXGruppenCAD) { Add-ADGroupMember -identity $item -Members $Benutzername }
}
if ($Berufsgruppe.Text -eq "Kompetenzteam RLT") {
foreach ($item in $ArrayCTXGruppenSachbearbeiterHKSM) { Add-ADGroupMember -identity $item -Members $Benutzername }
}
if ($Berufsgruppe.Text -eq "Kompetenzteam HKSM") {
foreach ($item in $ArrayCTXGruppenSachbearbeiterHKSM) { Add-ADGroupMember -identity $item -Members $Benutzername }
}
if ($Berufsgruppe.Text -eq "Kompetenzteam Elektrotechnik") {
foreach ($item in $ArrayCTXGruppenSachbearbeiterELT) { Add-ADGroupMember -identity $item -Members $Benutzername }
}
if ($Berufsgruppe.Text -eq "Kompetenzteam Bauüberwachung") {
foreach ($item in $ArrayCTXGruppenBauueberwachung) { Add-ADGroupMember -identity $item -Members $Benutzername }
}
#Erfolgsprüfung
$erledigt = (Get-ADUser -Filter { SamAccountName -eq $Benutzername } | Measure-Object).count
if ($erledigt -ne 0) {
#Fenster
$Bestaetigung = New-Object System.Windows.Forms.Form
#Startposition
$Bestaetigung.StartPosition = "CenterScreen"
#Fenstergröße
$Bestaetigung.Size = New-Object System.Drawing.Size(400, 200)
#Textfeld Userbestätigung
$Userbestaetigung = New-Object System.Windows.Forms.Label
$Userbestaetigung.Location = New-Object System.Drawing.Size(25, 25)
$Userbestaetigung.Size = New-Object System.Drawing.Size(250, 15)
$Userbestaetigung.Text = "Benutzer erfolgreich erstellt!"
$Bestaetigung.controls.Add($Userbestaetigung)
#OK Button
$OKButton = New-Object System.Windows.Forms.Button
$OKButton.Location = New-Object System.Drawing.Size(60, 60)
$OKButton.Size = New-Object System.Drawing.Size(75, 23)
$OKButton.Text = "OK"
$OKButton.Name = "OK"
$OKButton.DialogResult = "OK"
$OKButton.add_Click({ $Bestaetigung.Close() })
$Bestaetigung.controls.Add($OKButton)
[void] $Bestaetigung.ShowDialog()
}
#}
$objForm.Close()
$Fehlercounter = 0
}
)
$objForm.controls.Add($OKButton)
[void] $objForm.ShowDialog()