Usererstellung für AD und Exchange mit ExchangeVerwaltungsShell und ActiveRolesManagementShell von Quest
Es geht um ein Script, dass einen neuen User im AD und im Exchange erstellen soll. Problem dabei ist für mich, dass DC und Exchange-Server nicht dieselben sind.
Hallo liebe Community,
ich habe die Aufgabe, ein Script zu erstellen, dass das Erstellen eines Users in der Domäne also im Acitve Directory (Windows Server 2008 R2) und gleichzeitig ein Postfach für den User auf dem Exchange Server 2007 (Windows Server 2008) vereinfacht. Bisher wurde zunächst das Postfach erstellt und die Daten dazu abgefragt. Danach wurde das Active Directory aufgerufen und weitere Eigenschaften des Users eingetragen.
Bisher habe ich versucht, das Script mit der ExchangeVerwaltungsShell auf dem Exchange Server zu schreiben soweit es geht, dann die nötigen Variablen auf den Domain Controller zu exportieren und dort die restlichen Einstellungen mit der ActiveRolesManagementShell auszuführen. Allerdings erscheint mir dieses Vorgehen unnötig kompliziert. Auch auf dem Exchange Server 2007 - Server existiert ein Active Directory, allerdings ist die ActiveRolesManagementShell nicht mit Windows Server 2008 kompatibel (sondern nur mit WServer 2k8 R2). Gibt es eine andere Möglichkeit das Active Directory zu manipulieren und wo erlerne ich sie zum Beispiel? Ist mein Ansatz für das Script überhaupt richtig, oder habe ich einen Denkfehler gemacht?
Neugierigst und mit freundlichen Grüßen
B_inside
/B_out
Hallo liebe Community,
ich habe die Aufgabe, ein Script zu erstellen, dass das Erstellen eines Users in der Domäne also im Acitve Directory (Windows Server 2008 R2) und gleichzeitig ein Postfach für den User auf dem Exchange Server 2007 (Windows Server 2008) vereinfacht. Bisher wurde zunächst das Postfach erstellt und die Daten dazu abgefragt. Danach wurde das Active Directory aufgerufen und weitere Eigenschaften des Users eingetragen.
Bisher habe ich versucht, das Script mit der ExchangeVerwaltungsShell auf dem Exchange Server zu schreiben soweit es geht, dann die nötigen Variablen auf den Domain Controller zu exportieren und dort die restlichen Einstellungen mit der ActiveRolesManagementShell auszuführen. Allerdings erscheint mir dieses Vorgehen unnötig kompliziert. Auch auf dem Exchange Server 2007 - Server existiert ein Active Directory, allerdings ist die ActiveRolesManagementShell nicht mit Windows Server 2008 kompatibel (sondern nur mit WServer 2k8 R2). Gibt es eine andere Möglichkeit das Active Directory zu manipulieren und wo erlerne ich sie zum Beispiel? Ist mein Ansatz für das Script überhaupt richtig, oder habe ich einen Denkfehler gemacht?
Neugierigst und mit freundlichen Grüßen
B_inside
/B_out
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 147308
Url: https://administrator.de/contentid/147308
Ausgedruckt am: 26.11.2024 um 02:11 Uhr
12 Kommentare
Neuester Kommentar
Hi,
ich habe auf unserem Exchange quasi das selbe Skript laufen, funktioniert 1A.
Die ganzen Variablen beleg ich mir aus unserem Personalstamm und prüf anhand Einstellungsdaten ab ob der User aktiv ist, gelöscht werden soll,...
Neues Postfach anlegen (inkl. AD User):
new-mailbox -DomainController dc3 -Password $ss -Database $Database -UserPrincipalName $upn -Name $vollername -OrganizationalUnit $OU
AD Attribute setzen:
Set-User -Identity $punktname -DomainController dc3 -department $i.Organisationseinheit -FirstName $i.Vorname -Lastname $i.Nachname -Fax $i."Fax-Nummer" -MobilePhone $i.Handy -Phone $tel -Pager "" -Notes $i.KFZNummer -city $Ort -StreetAddress $Strasse -PostalCode $PLZ -HomePhone $tel[1]
Benutzerdefinierte Attribute am Exchange setzen:
set-mailbox $punktname -ErrorAction SilentlyContinue -CustomAttribute1 $i.BuKr -CustomAttribute2 $Kstneu -CustomAttribute3 $i.Kostenst -CustomAttribute4 $Region -CustomAttribute5 $i.Mitarbeiterkreis -CustomAttribute6 $i."Internet-Zugangsberechtigung" -CustomAttribute7 $i.Standort -CustomAttribute8 $i.Planstelle -CustomAttribute9 $Ort -CustomAttribute13 $Aktiv
Gruß
Nachtrag: Lad dir mal den Power GUI Script Editor runter. Der blendet direkt die Syntax ein sobald du einen Befehl schreibst.
ich habe auf unserem Exchange quasi das selbe Skript laufen, funktioniert 1A.
Die ganzen Variablen beleg ich mir aus unserem Personalstamm und prüf anhand Einstellungsdaten ab ob der User aktiv ist, gelöscht werden soll,...
Neues Postfach anlegen (inkl. AD User):
new-mailbox -DomainController dc3 -Password $ss -Database $Database -UserPrincipalName $upn -Name $vollername -OrganizationalUnit $OU
AD Attribute setzen:
Set-User -Identity $punktname -DomainController dc3 -department $i.Organisationseinheit -FirstName $i.Vorname -Lastname $i.Nachname -Fax $i."Fax-Nummer" -MobilePhone $i.Handy -Phone $tel -Pager "" -Notes $i.KFZNummer -city $Ort -StreetAddress $Strasse -PostalCode $PLZ -HomePhone $tel[1]
Benutzerdefinierte Attribute am Exchange setzen:
set-mailbox $punktname -ErrorAction SilentlyContinue -CustomAttribute1 $i.BuKr -CustomAttribute2 $Kstneu -CustomAttribute3 $i.Kostenst -CustomAttribute4 $Region -CustomAttribute5 $i.Mitarbeiterkreis -CustomAttribute6 $i."Internet-Zugangsberechtigung" -CustomAttribute7 $i.Standort -CustomAttribute8 $i.Planstelle -CustomAttribute9 $Ort -CustomAttribute13 $Aktiv
Gruß
Nachtrag: Lad dir mal den Power GUI Script Editor runter. Der blendet direkt die Syntax ein sobald du einen Befehl schreibst.
Hi,
$i ist meine Laufvariable. Ich les alle Personaldaten in ein Objekt ein und durchlaufe es dann mit $i. Es ist also immer ein Objekt einer Person.
Das Format der Organistationseinheit ist einfach "domain.de/Firma/Sortieren".
Die CustomAttributes sind Standardattribute vom Exchange. Schau mal auf dem Exchange in die Postfacheigenschaften unter Allgemein > Benutzerdefinierte Attribute, das sind die.
Den $Punktname hab ich selbst deklarierte, setzt sich bei mir aus Vorname.Nachname zusammen, weil unsere Mailadressen so aufgebaut sind.
In diesem Fall ist damit nur ein Bezeichner des Postfachs gemeint. Da kannste den Alias oder den Displayname nehmen.
Die erweiterten AD Attribute kannst du wie folgt setzen:
Set-QADUser -Identity $punktname -ObjectAttributes @{ipphone="$IPTel"}
Hierüber kannst du alles setzen, ist nur nicht so übersichtlich wie set-user, finde ich. Du kannst einfach die LDAP Feldnamen angeben.
Ansonsten kannst du eigentlich alles direkt mit set-user und set-mailbox belegen.
$i ist meine Laufvariable. Ich les alle Personaldaten in ein Objekt ein und durchlaufe es dann mit $i. Es ist also immer ein Objekt einer Person.
Das Format der Organistationseinheit ist einfach "domain.de/Firma/Sortieren".
Die CustomAttributes sind Standardattribute vom Exchange. Schau mal auf dem Exchange in die Postfacheigenschaften unter Allgemein > Benutzerdefinierte Attribute, das sind die.
Den $Punktname hab ich selbst deklarierte, setzt sich bei mir aus Vorname.Nachname zusammen, weil unsere Mailadressen so aufgebaut sind.
In diesem Fall ist damit nur ein Bezeichner des Postfachs gemeint. Da kannste den Alias oder den Displayname nehmen.
Die erweiterten AD Attribute kannst du wie folgt setzen:
Set-QADUser -Identity $punktname -ObjectAttributes @{ipphone="$IPTel"}
Hierüber kannst du alles setzen, ist nur nicht so übersichtlich wie set-user, finde ich. Du kannst einfach die LDAP Feldnamen angeben.
Ansonsten kannst du eigentlich alles direkt mit set-user und set-mailbox belegen.
Hi,
ich lese eine CSV Datei ein mit unseren Personaldaten:
$data = import-csv C:\datei.csv
Inhalt der CSV:
Nr,Name,.....
1,Max.Muster,.....
2,Melanie.Muster,...
Dann durchlauf ich mit der Laufvariable $i diese eingelesenen Daten.
foreach ($i in $data)
{
}
Ich kann jede Spalte direkt abgreifen, über die Spaltenüberschrift.
Im Durchgang1 liefert $i.Name Max.Muster, im 2. liefert es Melanie.Muster
Den Namen speicher ich in jedem Durchgang in $Punktname ab, um es dann im set-user zu verwenden.
Du könntest auch immer direkt den Namen angeben, set-user Max.Mustermann.
Dann führt er es aber nur für den einen User aus. Da ich aber eine CSV mit mehreren Personen hab, mach ichs in ner Schleife um alle zu erledigen.
Freut mich dass es läuft. Ansonsten lad dein Skript einfach mal hoch.
Gruß
ich lese eine CSV Datei ein mit unseren Personaldaten:
$data = import-csv C:\datei.csv
Inhalt der CSV:
Nr,Name,.....
1,Max.Muster,.....
2,Melanie.Muster,...
Dann durchlauf ich mit der Laufvariable $i diese eingelesenen Daten.
foreach ($i in $data)
{
}
Ich kann jede Spalte direkt abgreifen, über die Spaltenüberschrift.
Im Durchgang1 liefert $i.Name Max.Muster, im 2. liefert es Melanie.Muster
Den Namen speicher ich in jedem Durchgang in $Punktname ab, um es dann im set-user zu verwenden.
Du könntest auch immer direkt den Namen angeben, set-user Max.Mustermann.
Dann führt er es aber nur für den einen User aus. Da ich aber eine CSV mit mehreren Personen hab, mach ichs in ner Schleife um alle zu erledigen.
Freut mich dass es läuft. Ansonsten lad dein Skript einfach mal hoch.
Gruß
Hi,
klar ist das möglich.
Auslesen welches Datum gesetzt ist:
$user = get-qaduser $Username -includedproperties accountexpires | select accountexpires
$user.accountexpires
Datum setzen:
$datum=Get-Date 22.10.2010
Set-QADUser $Username -AccountExpires $datum
Datum deaktivieren:
Set-QADUser $Username -AccountExpires $Null
Gruß
klar ist das möglich.
Auslesen welches Datum gesetzt ist:
$user = get-qaduser $Username -includedproperties accountexpires | select accountexpires
$user.accountexpires
Datum setzen:
$datum=Get-Date 22.10.2010
Set-QADUser $Username -AccountExpires $datum
Datum deaktivieren:
Set-QADUser $Username -AccountExpires $Null
Gruß
Bist du dir da sicher? Bei mir läuft das ganze auf nem 2003 R2, dann solls doch auch wohl auf dem 2008er laufen.
Lads dir doch mal runter: http://www.quest.com/powershell/activeroles-server.aspx
Dann lad dir auch gleich den PowerGUI ScriptEditor: http://www.powergui.org/downloads.jspa
Eine andere Lösung hab ich sonst nicht parat.
Lads dir doch mal runter: http://www.quest.com/powershell/activeroles-server.aspx
Dann lad dir auch gleich den PowerGUI ScriptEditor: http://www.powergui.org/downloads.jspa
Eine andere Lösung hab ich sonst nicht parat.