Microsoft unternimmt alles, um PowerShell zur ersten Wahl für Power-User und Automatisierungsautoren zu machen. Die Zeiten, in denen Code in .NET kompiliert wurde, um dasselbe zu tun, sind vorbei. Jetzt benötigen Sie nur noch notepad.exe und google. Wir sind große Fans davon im Büro, zumal die Exchange 2007-Verwaltungskonsole NICHT alles enthält, was Sie in PowerShell tun können. Microsoft hat es absichtlich versäumt, Dinge zu implementieren, die nur von Zeit zu Zeit erledigt werden und die einfacher zu entwickeln sind. Dies erzwingt geradezu die Verwendung, wenn Sie etwas haben, das einer komplexen Umgebung ähnelt.
Das Verwalten der neueren Produktgeneration von Microsoft (Win7, Windows Server 2008, Exchange 2007/2010, SQL Server 2008) verfügt über umfangreiche PowerShell-Hooks. Sobald Remote Powershell (PowerShell 2.0 IIRC) mit Server 2008 R2 bereitgestellt wird, wird es für Automatisierungsautoren noch nützlicher.
Was wir damit gemacht haben:
- Erstellen Sie eine Webseite, um bestimmte Administratoraufgaben an Helpdesk-Benutzer zu delegieren. Die Webseite löst Befehle aus, die in PowerShell ausgeführt werden. Dinge, die es tut:
- Erstellen und Löschen von Benutzerkonten, einschließlich der Bereitstellung von Exchange 2007-Postfächern und Basisverzeichnissen
- Entsperrt gesperrte Konten
- Gruppen erstellen / löschen
- Hinzufügen / Entfernen von Benutzern zu Gruppen
- Benutzer zwischen Mail-Stores verschieben
- Passwörter setzen
- Nehmen Sie Auszüge aus dem ERP-System und übertragen Sie die Daten aus dem globalen Adressbuch nachts in Active Directory.
- Lösen Sie das LegacyExchangeDN-Problem, das bei unserer Migration von Exchange 2003 nach Exchange 2007 aufgetreten ist. Musste eine X500-Adresse für alle Benutzer hinzufügen, die zuvor mit Exchange 2003 gearbeitet haben. Ein relativ kurzes PowerShell-Skript hat dies behoben.
- Skriptgesteuerte Erstellung von "Gruppenpostfächern" (gemeinsam genutzte Postfächer in Exchange, in denen mehrere Benutzer Zugriff auf das Postfach haben), ein ansonsten manueller Vorgang aufgrund der Art der Daten, die wir vor dem Start benötigen. Die Einrichtung dieser Postfächer wurde stark standardisiert.
- Es wurde ein Skript erstellt, das alle domänierten Computer durchlief, einen bestimmten Registrierungsschlüssel zurücksetzte und einen Dienst neu startete. Die Fertigstellung dauerte 18 Stunden, aber die Aufgabe wurde erledigt.
Also ja, PowerShell wird noch einige Zeit bei uns sein.
BEARBEITEN : Hinzufügen eines Codebeispiels, da es angefordert wurde
$ list = import-csv ("groupusers.csv")
$ lastseengroup = $ list [0] .group
$ ADGroupPrefix = "grp.netware".
$ ADGroupSuffix = "{redigiert - im Format von, ou = groups, dc = domain, dc = domain, dc = domain}"
Clear-Variable Mitgliederliste
Clear-Variable unbekannte Benutzer
foreach ($ eintrag in $ liste) {
if ($ ($ entry.group) -ne $ lastseengroup) {
echo "ist über die neue Gruppe $ ($ entry.group) gestolpert und hat Änderungen an $ lastseengroup vorgenommen"
$ newgroup = $ ADgroupPrefix + $ lastseengroup
$ newgroupdn = '"' +" cn = $ newgroup $ ADGroupSuffix "+ '"'
echo "DN für $ newgroup erhalten"
$ existinggroup = dsquery group domainroot -name $ newgroup
if (($ existinggroup -ne $ null)) {
dsmod group $ newgroupdn -chmbr $ memberlist
} else {
dsadd group $ newgroupdn -scope u -secgrp yes -members $ memberlist -desc "Gruppe aus eDirectory importiert"
}
Clear-Variable Mitgliederliste
}
$ User = get-user $ ($ entry.member) -ErrorAction SilentlyContinue
if ($ User.isvalid) {
$ UserDN = $ User.distinguishedname
$ memberlist = $ memberlist + '"' +" $ UserDN "+ '"'
} else {
$ unknownusers = $ unknownusers + $ ($ entry.member)
}
$ lastseengroup = $ ($ entry.group)
}
dsadd group "cn = $ ADGroupPrefix $ lastseengroup $ ADGroupSuffix" -scope u -secgrp yes -members $ memberlist
Hierbei wird eine mit einem Perl-Skript erstellte CSV-Datei verwendet und eine Gruppe von Gruppen aktualisiert. Wenn die Gruppe bereits vorhanden ist, wird die Mitgliedschaft durch die in der Datei angegebene ersetzt. Wenn die Gruppe nicht existiert, wird sie erstellt. Dies ist eine Einweg-Synchronisierung. Auch noch nicht ganz in Produktion, aber knapp.