Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Usererstellung für AD und Exchange mit ExchangeVerwaltungsShell und ActiveRolesManagementShell von Quest

Frage Entwicklung Batch & Shell

Mitglied: Binside

Binside (Level 1) - Jetzt verbinden

21.07.2010 um 10:46 Uhr, 7056 Aufrufe, 12 Kommentare

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
Mitglied: schuhmann
21.07.2010 um 10:56 Uhr
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[0] -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.
Bitte warten ..
Mitglied: Binside
21.07.2010 um 11:12 Uhr
Hi Schuhmann,

erstmal vielen Dank für deine Antwort.

Den Anfang mit "new-mailbox" habe ich eben so und auch der AD-User wird im AD erstellt. Welches Format die "-OrganizationalUnit" hat krieg ich noch raus. Soll hier nicht Thema sein.

Die AD-Attribute kann man dann scheinbar auch so setzen. Das sind ja keine ActiveRolesManagement-cmdlets, die du da verwendest. Könntest du mir noch kurz erklären, was sich hinter $i verbirgt? Ist das eine Standard-Variable oder hast du die vorher deklariert? Und wie verhält sich das mit -CustomAttribute1-13? Sind die Standard oder von dir deklariert? Gibt es zu denen eine Aufstellung? Ist $punktname der Displayname?

Wissbegierigst und mit freundlichen Grüßen

B_inside

/B_out
Bitte warten ..
Mitglied: schuhmann
21.07.2010 um 11:33 Uhr
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.
Bitte warten ..
Mitglied: Binside
23.07.2010 um 09:41 Uhr
Hi,

ok also ganz erschließt sich mir das Ganze noch nicht. $i ist also eine Person, die du in ein Objekt speicherst und zwar mit ihren Eigenschaften. Und darüber kannst du dann die weiteren Eigenschaften mit angeben?

Ich könnte aber auch alle Eigenschaften einzeln sammeln und sie dann auch ohne Laufvariable mit 'set-user' einlesen oder? Gibt es Vorteile, die eine Laufvariable hier prädestinieren?

Den set-Mailbox befehl scheinst du nur für die Custom-Attribute zu brauchen, die bei uns nicht genutzt werden.
set-user war tatsächlich der fehlende Punkt im Script. Ich danke dir dafür. Ich geb dann noch Bescheid obs so geklappt hat wie du gesagt hast und lade bei Bedarf meine Version des Scriptes hoch.
Vielen Dank für deine Geduld.

Mit freundlichen Grüße

B_inside

/B_out
Bitte warten ..
Mitglied: schuhmann
23.07.2010 um 10:16 Uhr
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ß
Bitte warten ..
Mitglied: Binside
23.07.2010 um 10:24 Uhr
Hi,

ok du verwendest das Script ein wenig anders als ich. Da bei uns immer nur vereinzelt Mitarbeiter dazu kommen, nutze ich das Script nur, um einzelne Leute in Exchange und AD aufzunehmen. Dabei fragt das Script zunächst verschiedene Daten ab (vorname, nachname, abteilung) und speichert diese um im zweiten Teil dann den User mit diesen Daten zu erstellen. Das Script ist damit pro durchlauf nur für eine Person gedacht.

Nochmal vielen Dank und das Script lade ich dann demnächst hoch, wenn es wirklich perfekt läuft.

Mit freundlichen Grüßen,

B_inside

/B_out
Bitte warten ..
Mitglied: Binside
27.07.2010 um 08:55 Uhr
Hi,

Ich hab im Script jetzt fast alles eingetragen, was unsere Firma fordert. Ich werd die gängigsten Einträge noch zufügen. Allerdings hab ich noch ne kleine Frage:

es geht um die Möglichkeit einem Account eine gewisse Lebensdauer zu geben. Im AD kann man unter Properties -> Account -> Account expires einstellen ob und wann er ausläuft. Is das auch über die Exchange Verwaltungsshell zu realisieren?

Mit freundlichen Grüßen,

B_inside

/B_out
Bitte warten ..
Mitglied: schuhmann
27.07.2010 um 09:18 Uhr
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ß
Bitte warten ..
Mitglied: Binside
27.07.2010 um 10:47 Uhr
Hi schuhmann,

ok das ist jetzt mit der Lösung von Quest. Gibt es auch noch eine ohne Active Roles zu nutzen? =) Bisher ging ja alles auch ohne. Und auf dem Exchange-Server ist ja kein WS2008 R2, was Acitve Roles aber voraussetzt.

Mit freundlichen Grüßen,

B_inside

/B_out
Bitte warten ..
Mitglied: schuhmann
27.07.2010 um 11:05 Uhr
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.
Bitte warten ..
Mitglied: Binside
29.07.2010 um 13:05 Uhr
Ok also so wie es aussieht, geht es tatsächlich nur so. Das von Quest läuft übrigens wirklich schon aufm 2003er ab SP 1. Das was ich meinte war die Active Directory Shell, ein Modul, dass nur ab Server 2008 R2 nutzbar ist. Demnächst dann hier das Script mit dem Stückchen noch dran.

Danke dir schuhmann

Mit freundlichen Grüßen,

B_inside

/B_out
Bitte warten ..
Mitglied: Binside
09.08.2010 um 09:39 Uhr
Hallo,

es gibt doch noch eine Möglichkeit das ohne Quests PowerShell-Modul zu machen:

Mit

$user = [ADSI]"LDAP://CN=Max Mustermann,OU=Berlin,DC=Bspdomain,DC=de"

liest man den User aus

$user | get-member

zeigt einem dann unter anderem

accountExpires property System.DirectoryService.PropertyValueCollection accountExpires {get;set;}

damit kann man dann den Wert ändern, wovor mir allerdings noch gruselt, denn "ADSI Edit" zeigt den AccountExpires-Wert als Dezimalzahl und nicht als Datum/Uhrzeit an.

Mit freundlichen Grüßen

/B_out
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(1)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Exchange Server
Exchange 2016 aus AD sauber entfernen (11)

Frage von JanGarbers zum Thema Exchange Server ...

Server-Hardware
gelöst DellT20 als Hyper-V host für Exchange 2013 und einer AD? (9)

Frage von bootloader zum Thema Server-Hardware ...

Windows Server
Entfernte Standorte miteinander verbinden AD und Exchange (8)

Frage von Z006 zum Thema Windows Server ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Outlook & Mail
Outlook 2010 findet ost datei nicht (18)

Frage von Floh21 zum Thema Outlook & Mail ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...