Fünf Exchange 2013 PowerShell-Techniken, die jeder Administrator kennen sollte

PowerShell ist zum bevorzugten Tool für die Verwaltung von Microsoft-Serverprodukten geworden. Daher ist es entscheidend, dass …

Jeder Exchange Server 2013-Administrator lernt PowerShell nicht nur, sondern beherrscht es auch. Zahlreiche Verwaltungsaufgaben in Exchange 2013 können einfach nicht über die grafische Benutzeroberfläche ausgeführt werden. Hier finden Sie fünf PowerShell-Verwaltungstechniken, die jeder Exchange 2013-Administrator bereithalten sollte.

Richten Sie eine Remote-Sitzung ein

Mit Windows Server 2012 kann eine PowerShell-Sitzung mit einem Remoteserver eingerichtet werden. Das heißt, Sie müssen nicht Geben Sie PowerShell-Befehle ein direkt auf den Server, den Sie verwalten. Verwenden Sie zum Einrichten einer Remote-PowerShell-Sitzung die Enter-PSSession Cmdlet, gefolgt vom Namen des Remote-Servers.
Wenn Sie beispielsweise eine Sitzung mit einem Server namens Exch3 einrichten möchten, verwenden Sie den folgenden Befehl:
Enter-PSSession Exch3
Sobald die Sitzung eingerichtet ist, werden alle von Ihnen eingegebenen PowerShell-Befehle auf dem Remoteserver ausgeführt. Wenn Sie mit der Sitzung fertig sind, trennen Sie sie mit der Exit-PSSession Cmdlet.

Führen Sie eine Aktion für mehrere Exchange 2013-Server aus

Möglicherweise müssen Sie einen einzelnen PowerShell-Befehl für mehrere Exchange 2013-Server ausführen. Glücklicherweise ist es einfach, dies mit dem zu tun Invoke-Befehl Cmdlet. Für dieses Cmdlet müssen Sie die Namen der Server angeben, auf denen Sie den Befehl ausführen möchten, sowie den Befehl, den Sie ausführen möchten.
Angenommen, Sie möchten das ausführen Get-Mailbox Befehl auf den Servern Exch1, Exch2 und Exch3. Der resultierende vollständige Befehl wäre der folgende:
Invoke-Command –ComputerName Exch1, Exch2, Exch3 {Get-Mailbox}
Wie Sie sehen, müssen Sie zuerst die Namen der Zielserver angeben und dann den Befehl, den Sie ausführen möchten, in zwei Klammern einfügen. Dies bringt uns zu einem weiteren wichtigen Tipp.

Führen Sie einen Befehl innerhalb eines Befehls aus

Manchmal besteht die einzige Möglichkeit, eine Verwaltungsaufgabe mit PowerShell auszuführen, darin, einen Befehl innerhalb eines Befehls einzugeben. Bei dieser Technik wird der sekundäre Befehl in Klammern ({}) eingeschlossen. Angenommen, Sie möchten Speicher für einen neuen Exchange 2013-Server bereitstellen und müssen einen Windows-Speicherpool erstellen. Das erforderliche Cmdlet ist hier New-StoragePool.
Das New-StoragePool Für das Cmdlet müssen Sie drei Informationen eingeben: einen Anzeigenamen, den Namen des Speichersubsystems und die physischen Datenträger, die Sie einschließen möchten. Das Problem hierbei ist, dass Sie möglicherweise den Namen des Speichersubsystems oder die Namen der physischen Datenträger nicht kennen, die für die Aufnahme in einen Speicherpool in Frage kommen. Angenommen, Sie können alle in Frage kommenden Datenträger in den neuen Speicherpool aufnehmen, können Sie den Pool mit dem folgenden Befehl erstellen:
New-StoragePool –FriendlyName “Mein Speicherpool” -StorageSubSystemFriendlyName {Get-StorageSubsystem –FriendlyName * space *} –PhysicalDisks {Get-PhysicalDisk –CanPool $ True}
Beachten Sie im obigen Befehl, dass es zwei Fälle gibt, in denen Code in Klammern eingeschlossen ist. Dies sind Unterbefehle. Wie Sie sehen können, gibt der letzte Teil des Befehls das aus PhysicalDisks Parameter. Da wir den Namen der physischen Festplatten nicht haben, können wir eine Klammer einfügen und die einfügen Get-PhysicalDisk Cmdlet zum Abrufen einer Liste der physischen Datenträger, die im Befehl verwendet werden sollen.

Filtern von Exchange 2013 PowerShell-Befehlsausgaben

Exchange Server-Administratoren verwenden häufig Erhalten Befehle zum Abrufen verschiedener Arten von Informationen. Get-Befehle geben jedoch häufig erheblich mehr Informationen zurück, als tatsächlich benötigt werden. Es ist schön, die Option zu haben, die Ergebnisliste einzugrenzen, insbesondere wenn die Ergebnisliste in ein anderes PowerShell-Cmdlet geleitet wird. Glücklicherweise können Sie dies mit PowerShell durch Filtern tun.
Angenommen, Sie möchten eine Liste der RBAC-Rollengruppen abrufen, zu denen ein Benutzer gehört. Wenn Sie die eingeben Get-RoleGroup Mit dem Cmdlet erhalten Sie eine Liste aller Rollengruppen, die in Ihrer Exchange 2013-Organisation vorhanden sind.
Der Trick, um die Liste einzugrenzen, besteht darin, die einzugeben Get-RoleGroup Befehl, gefolgt vom Namen einer Rollengruppe. Sie sollten das Ergebnis dann als Liste formatieren. Angenommen, eine der Rollengruppen heißt Organisationsverwaltung. Verwenden Sie daher den folgenden Befehl:
Get-RoleGroup 'Organisationsverwaltung' | FL
Wenn Sie die Ausgabe als Liste formatieren, werden die Parameter angezeigt, die für das Cmdlet gültig sind. In diesem Fall ist die Gruppenmitgliedschaft an die gebunden Mitglieder Parameter. Nehmen wir vor diesem Hintergrund an, Sie möchten die Ausgabe filtern, um das Members-Attribut mit einem bestimmten Mitgliedsnamen zu vergleichen. Dieser Befehl würde ungefähr so ​​aussehen:
Get-RoleGroup | Where-Object {$ _. Members –EQ 'Contoso / Users / User1'}
Im obigen Befehl wird der Parameter Members als Variable behandelt. Deshalb steht ein Dollarzeichen ($), ein Unterstrich (_) und ein Punkt (.) Davor. Das –EQ ist der Equals-Operator, auf den der Benutzername folgt.
Wenn diese Filtermethode kompliziert erscheint, gibt es einige gute Nachrichten. In Windows Server 2012 hat Microsoft die PowerShell-Syntax vereinfacht, indem die Anforderung entfernt wurde, dass Attribute bei der Ausführung als Variablen ausgedrückt werden müssen Wo-Objekt Filtern. Daher kann der Befehl in Windows Server 2012 wie folgt ausgedrückt werden:
Get-RoleGroup | Wobei Mitglieder –EQ 'Contoso / Users / User1'

Der Was-wäre-wenn-Parameter

Es besteht kein Zweifel, dass sich PowerShell als kompliziert erweisen kann, und manchmal kann die falsche Eingabe eines Exchange 2013 PowerShell-Befehls sehr unangenehme Folgen haben. Wenn Sie sich nicht sicher sind, was ein Befehl bewirken soll, sollten Sie das anhängen Was, wenn Parameter bis zum Ende des Befehls. Dies entspricht der Frage an PowerShell, was passieren würde, wenn Sie den Befehl tatsächlich ausführen würden.
Angenommen, Sie waren neugierig darauf, das zu betreiben Update-GlobalAddressList Cmdlet, war sich aber nicht sicher, wie sich dies auf Ihre Umgebung auswirken würde. Sie können anhängen -Was, wenn bis zum Ende der Befehlszeichenfolge, um herauszufinden, was passiert, wenn Sie den Befehl ausgeführt haben, ohne dies tatsächlich zu tun.
Hinweis: Es ist wichtig zu verstehen, dass der Was-wäre-wenn-Parameter nicht mit jedem PowerShell-Cmdlet funktioniert. Anzeigen einer Liste der Cmdlets, die Sie verwenden können Was, wenn Geben Sie mit den folgenden Befehl ein:
Get-Command | Wo Definition - Wie * whatif *
Über den Autor:
Brien Posey ist ein zehnmaliger Microsoft MVP mit zwei Jahrzehnten IT-Erfahrung. Bevor er freiberuflicher technischer Redakteur wurde, arbeitete Brien als Chief Information Officer in einer nationalen Kette von Krankenhäusern und Gesundheitseinrichtungen. Er war auch als Netzwerkadministrator für einige der größten Versicherungsunternehmen des Landes und für das Verteidigungsministerium in Fort Knox tätig.

Similar Posts

Leave a Reply