Exchange-Verwaltungsshell – Tipps des Tages

 

Gilt für: Exchange Server 2007 SP3, Exchange Server 2007 SP2, Exchange Server 2007 SP1, Exchange Server 2007

Letztes Änderungsdatum des Themas: 2007-08-24

In diesem Thema werden alle Tipps des Tages der Exchange-Verwaltungsshell aufgeführt. Es enthält außerdem Verweise auf verwandte Themen der Microsoft Exchange Server 2007-Hilfe bzw. andere geeignete Microsoft-Dokumentation. Tipps des Tages werden bei jedem Öffnen der Exchange-Verwaltungsshell angezeigt.

Zum Anzeigen eines Tipps des Tages bei Bedarf öffnen Sie die Exchange-Verwaltungsshell und führen das Cmdlet Get-Tip aus.

Tipp Verwandte Themen

Wussten Sie, dass der Parameter Identity ein "Positionsparameter" ist? Dies bedeutet, dass Sie

Get-Mailbox "domain\user" anstelle von Get-Mailbox -Identity "domain\user"

Dies ist eine sinnvolle und Zeit sparende Abkürzung!

Geben Sie Folgendes ein, um alle Skripts zurückzugeben, die in Ihrem Pfad gefunden werden:

Get-Command -Type ExternalScript

Eine sinnvolle Verknüpfung ist die folgende Zuordnung in Ihrem Profil:

Function Get-Scripts { Get-Command -Type ExternalScript }

Finden Sie es anstrengend, lange Befehle eingeben zu müssen, wenn Sie eine Aufgabe erledigen möchten? Verwenden Sie einen Alias! Geben Sie Folgendes ein:

Set-Alias GetSg Get-StorageGroup

Geben Sie für alle aktuellen Aliase Folgendes ein:

Get-Alias

Möchten Sie Postfachdaten direkt in eine PST-Datei exportieren? Verwenden Sie das Cmdlet Export-Mailbox. Sie können sogar mehrere Postfächer mit einem Befehl exportieren. Geben Sie Folgendes ein:

Get-Mailbox | Export-Mailbox -PSTFolderPath <path to folder where data will be exported>

Sie können PST-Dateien auch in Postfächer importieren, indem Sie das Cmdlet Import-Mailbox verwenden. Geben Sie Folgendes ein:

Get-Mailbox | Import-Mailbox -PSTFolderPath <path to folder with <alias>.pst files to import>

Möchten Sie die Mitglieder einer dynamischen Verteilergruppe anzeigen, die über einen benutzerdefinierten Filter verfügt? Verwenden Sie einfach das Cmdlet Get-Recipient. Geben Sie Folgendes ein:

$DDG = Get-DynamicDistributionGroup "Contoso Marketing Managers"

Get-Recipient -RecipientPreviewFilter $DDG.RecipientFilter

Die Exchange-Verwaltungsshell ist auch ein Rechner! Testen Sie diese Funktion direkt in der Befehlszeile:

1.2343+3123 or (23/435)*2

 

Befehlszeilennotruf! Benötigen Sie Hilfe? Geben Sie Folgendes ein:

Help <cmdlet-name> or <cmdlet-name> -?

Sie können auch Platzhaltersuchen durchführen und Teilübereinstimmungen von Namen ermitteln:

Help *UM*

Und Sie können weitere Einzelheiten zu einem Cmdlet abrufen, indem Sie folgenden Befehl verwenden:

Get-Command <cmdlet-name>

Auf die folgende Weise können Sie schnell alle Parameter für ein Cmdlet abrufen:

Get-Command <cmdlet-name> | Format-List Definition

oder abgekürzt:

Gcm <cmdlet-name> | Fl Def*

Unix-Benutzern dürfte das Tildezeichen () vertraut sein. Es bietet schnellen Zugriff auf Ihr Stammverzeichnis. Geben Sie Folgendes ein, wenn Sie seine standardmäßige Auswertung anzeigen möchten:

Dir ~

Sie können es als sinnvolle Verknüpfung verwenden:

Cp SomeFile "~\My Documents"

Möchten Sie Postfächer verschieben? Geben Sie Folgendes ein:

Move-Mailbox

Sie können alle Benutzer von Server SRV1 auf Server SRV2 verschieben, indem Sie folgendermaßen vorgehen:

Get-Mailbox -Server SRV1 | Move-Mailbox -TargetDatabase SRV2

STRG+C entspricht dem Abbruchbefehl in der Exchange-Verwaltungsshell. Wenn die Ausführung eines Befehls zu lange dauert oder Sie einen Vorgang schnell abbrechen möchten, drücken Sie STRG+C, um die Ausführung zu beenden.

 

Pushd und Popd funktionieren auf die gleiche Weise wie in cmd.exe in der Exchange-Verwaltungsshell. Geben Sie Folgendes ein:

Pushd <location>

XML ohne Grenzen! Die Exchange-Verwaltungsshell behandelt XML als systemeigenen Typ. Damit eröffnen sich interessante Möglichkeiten:

$Sample = [XML](Get-Content SomeXMLFile.xml)

Dieser Befehl weist $Sample dem tatsächlichen XML-Objekt zu. Geben Sie Folgendes ein, um das Ergebnis anzuzeigen:

$Sample

Geben Sie Folgendes ein, um im Ergebnis zu navigieren:

$Sample.Prop1.Prop2

Es ist keine Textanalyse erforderlich, wenn Sie XML-Daten laden möchten!

Cmdlets, die mit CONFIG enden, verwalten Singleton-Konfigurationen – eine Konfiguration pro Server oder pro Organisation. Für diese Aufgaben müssen Sie keine Identität angeben, weil nur eine Instanz der Konfiguration vorhanden ist. Sie müssen ggf. den Parameter Server angeben, wenn die Konfiguration pro Server erfolgt.

Verwenden Sie den folgenden Befehl, um eine Liste aller Benutzer auf einem Server mit Exchange 2007 abzurufen, die für Unified Messaging aktiviert sind:

Get-UmMailbox | ForEach { If($_.UmEnabled -Eq $False){$_.Name}}

Verwenden Sie den folgenden Befehl, um eine Liste aller Benutzer auf einem Server mit Exchange 2007 abzurufen, die vom Typ "für Unified Messaging aktiviert" sind:

Get-UmMailbox | ForEach { If($_.UmEnabled -Eq $True){$_.Name}}

Um den Alias des Benutzers in einer Tabelle zusammen mit dem Exchange 2007-Servernamen des Benutzers und seiner Telefondurchwahl anzuzeigen, geben Sie Folgendes ein:

Get-UmMailbox | Format-Table ServerName,@{e={$_.SamAccountName};Label="User Alias"},@{Expression="Extensions";Label="Telephone numbers"}

Um die Liste der UM-IP-Gatewayservernamen anzuzeigen, die für ausgehende Anrufe deaktiviert sind, sowie die Sammelanschlüsse, die einem UM-IP-Gatewayserver zugeordnet sind, verwenden Sie den folgenden Befehl:

Get-UMIPGateway | ForEach {If($_.OutCallsAllowed -Eq $False){ "Gateway Name = " +$_.Name;ForEach ($HuntGroup In $_.Huntgroups){"Huntgroups " + $Huntgroup}}}

Wenn Sie alle Anbieter für geblockte IP-Adressen testen möchten, müssen Sie einfach nur die Ausgabe des Cmdlets Get-IpBlockListProvider mittels Pipelining an das Cmdlet Test-IpBlockListProvider umleiten:

Get-IpBlockListProvider | Test-IpBlockListProvider -IpAddress 192.168.0.1

Bevor Sie ein Objekt mithilfe des Remove-Verbs entfernen, verwenden Sie den Parameter WhatIf, um zu überprüfen, ob die erwarteten Ergebnisse auftreten.

Manchmal ist es sinnvoll, die Ausgabe eines Cmdlets in eine Zeichenfolge umzuwandeln, um mit systemeigenen Cmdlets interoperieren zu können. Geben Sie z. B. Folgendes ein:

Get-Command | Out-String | Findstr "command"

Rufen Sie sämtliche Win32-WMI-Informationen ab, z. B. Leistungsindikatoren des Systemmonitors und lokale Computerkonfigurationen. Geben Sie z. B. Folgendes ein:

Get-WMIObject Win32_PerfRawData_PerfOS_Memory

Haben Sie genug von Spam? Auf wen trifft das nicht zu? Sie können mit der Exchange-Verwaltungsshell Anbieter für Echtzeitsperrlisten konfigurieren, indem Sie die beiden folgenden Befehle ausführen:

Set-IPBlockListProvidersConfig -Enabled $True -ExternalMailEnabled $True

und anschließend

Add-IPBlockListProvider -Name <Name of RBL Provider> -LookupDomain <FQDN of RBL Provider> -AnyMatch $True

Greifen Sie über die Exchange-Verwaltungsshell auf das Ereignisprotokoll zu. Um das gesamte Ereignisprotokoll abzurufen, führen Sie den folgenden Befehl aus:

Get-EventLog Application | Format-List

Um alle sich auf Exchange beziehenden Ereignisse abzurufen, führen Sie den folgenden Befehl aus:

Get-EventLog Application | Where { $_.Source -Ilike "*Exchange*" }

Ein Vorteil der Exchange-Verwaltungsshell besteht darin, dass Cmdlets Objekte an die Konsole ausgeben können. Sie können diese Ausgabe bearbeiten und auf interessante Arten anordnen. Um eine schnelle Ansicht im Tabellenformat zu erhalten, verwenden Sie z. B. Format-Table:

Get-Mailbox | Format-Table Name,Database,RulesQuota

Ist Ihnen der Name einer Eigenschaft entfallen? Kein Problem, weil Sie Platzhalterzeichen zum Abrufen aller Eigenschafen verwenden können, die dem Teil des Namens entsprechen, den Sie angeben:

Get-Mailbox | Format-Table Name,*SMTP*

Möchten Sie mit Daten arbeiten, die in einer CSV-Datei enthalten sind? Verwenden Sie Import-CSV, um die Daten einem Objekt zuzuweisen. Geben Sie z. B. Folgendes ein:

$MyCSV = Import-CSV TestFile.CSV

Anschließend können Sie die Daten auf einfache Weise in der Exchange-Verwaltungsshell bearbeiten. Wenn die CSV-Daten z. B. eine Spalte namens Mailboxes enthalten, können Sie die folgenden Befehle zum Sortieren oder Gruppieren der Daten nach der Spalte Mailboxes verwenden:

Sortieren: $MyCSV | Sort Mailboxes

Gruppieren: $MyCSV | Group Mailboxes

Dieser Befehl durchläuft alle Postfachserver und verbindet alle eindeutig identifizierten, jedoch getrennten Postfächer in allen Postfachspeichern erneut:

Get-ExchangeServer | `

Where { $_.IsMailboxServer -Eq '$True' } `

| ForEach { Get-MailboxStatistics -Server $_.Name `

| Where { $_.DisconnectDate -NotLike '' } `

| ForEach { Connect-Mailbox -Identity `

$_.DisplayName -Database $_.DatabaseName} }

Die Tabulatorvervollständigung verringert die Anzahl der Tastenanschläge, die zum Eingeben eines Cmdlets erforderlich sind. Drücken Sie einfach die TABULATORTASTE, um das Cmdlet, das Sie eingeben, zu vervollständigen. Die Tabulatorvervollständigung funktioniert, sobald die Eingabe einen Bindestrich (-) enthält. Beispiel:

Get-Send<tab>

sollte zu Get-SendConnector ergänzt werden. Sie können sogar reguläre Ausdrücke verwenden. Beispiel:

Get-U*P*<tab>

Wenn Sie bei der Eingabe dieses Befehls die TABULATORTASTE drücken, werden nacheinander alle Cmdlets angezeigt, die dem Ausdruck entsprechen, z. B. Cmdlets für Unified Messaging-Posfachrichtlinien.

Möchten Sie eine Gruppe von Testbenutzern in Ihrer Testumgebung erstellen? Verwenden Sie zu diesem Zweck den folgenden Befehl:

1..100 | ForEach { Net User "User$_" MyPassword=01 /ADD /Domain; Enable-Mailbox "User$_" -Database <MailboxDatabaseName> }

Möchten Sie die Authentifizierungseinstellungen für ein virtuelles Outlook Web Access-Verzeichnis ändern? Probieren Sie den folgenden Befehl als Beispiel aus. Er ändert die Authentifizierung von formularbasierter Authentifizierung in Windows-Authentifizierung:

Set-OwaVirtualDirectory -Identity "OWA (Default Web Site)" -FormsAuthentication 0 -WindowsAuthentication 1

Möchten Sie die Eigenschaften für alle oder einige virtuelle Outlook Web Access-Verzeichnisse festlegen? Leiten Sie die Ausgabe von Get-OwaVirtualDirectory mittels Pipelining an das Cmdlet Set-OwaVirtualDirectory um. Der folgende Befehl legt z. B. den Gzip-Grad für alle virtuellen Outlook Web Access-Verzeichnisse fest:

Get-OwaVirtualDirectory | Set-OwaVirtualDirectory -GzipLevel High

Möchten Sie ein ActiveSync-Gerät aus der Geräteliste eines Benutzers entfernen? Geben Sie Folgendes ein:

Remove-ActiveSyncDevice

Dieses Cmdlet kann bei der Problembehandlung von Geräten hilfreich sein, die sich nicht mehr erfolgreich mit dem Server synchronisieren können.

Möchten Sie sämtliche Daten von einem mobilen Gerät löschen? Verwenden Sie den folgenden Befehl:

Clear-ActiveSyncDevice

Geben Sie eine Uhrzeit an, zu der das Gerät gelöscht werden soll, oder planen Sie die Aufgabe für die nächste Verbindung des Geräts mit dem Server.

Möchten Sie eine Liste aller Geräte anzeigen, die sich mit dem Postfach eines Benutzers synchronisieren? Geben Sie Folgendes ein:

Get-ActiveSyncDeviceStatistics

Es wird eine Vielzahl von Informationen einschließlich Gerätename, Betriebssystem und der letzten Synchronisierungszeit zurückgegeben.

Hat einer Ihrer Benutzer Sie gebeten, das Synchronisierungskennwort seines mobilen Geräts wiederherzustellen? Geben Sie Folgendes ein, um das Kennwort des Benutzers zurückzugeben:

Get-ActiveSyncDeviceStatistics -ShowRecoveryPassword

Möchten Sie den Pfad der Speichergruppe an einen anderen Speicherort verschieben? Geben Sie Folgendes ein:

Move-StorageGroupPath -LogFolderPath DestLogFolder

Um nur die Pfadeinstellung zu ändern, ohne Daten zu verschieben, verwenden Sie diesen Befehl zusammen mit dem Parameter ConfigurationOnly. Dieser Befehl eignet sich insbesondere für die Wiederherstellung nach Datenverlust.

CautionAchtung:
Die falsche Verwendung dieses Cmdlets führt zu Datenverlusten.

Möchten Sie den Datenbankpfad an einen anderen Speicherort verschieben? Geben Sie Folgendes ein:

Move-DatabasePath -EdbFilePath DestFileName

Um die Dateipfadeinstellung zu ändern, ohne Daten zu verschieben, verwenden Sie diesen Befehl zusammen mit dem Parameter ConfigurationOnly. Dieser Befehl eignet sich insbesondere für die Wiederherstellung nach Datenverlust.

CautionAchtung:
Die falsche Verwendung dieses Cmdlets führt zu Datenverlusten.

Um die Wähleinschränkungen für einen bestimmten Unified Messaging-Wählplan festzulegen, geben Sie Folgendes ein:

$Dp = Get-UmDialPlan -Identity <Your_DialPlan_Identity>

$Dp.ConfiguredInCountryGroups.Add("Group1,91xxxxxxxxxx,91xxxxxxxxxx")

$Dp.ConfiguredInCountryGroups.Add("Group1,9xxxxxxxxxx,91xxxxxxxxxx")

$Dp.ConfiguredInCountryGroups.Add("Group1,9xxxxxxx,9xxxxxxx")

$Dp.AllowedInCountryGroups.Add("Group1")

$Dp.OutsideLineAccessCode = 9

$Dp | Set-UmDialPlan

Benötigen Sie ein einfaches Verfahren zum Hinzufügen einer neuen primären SMTP-Adresse zu einer Gruppe von Postfächern? Der folgende Befehl erstellt eine neue Richtlinie für E-Mail-Adressen, die die Domäne @contoso.com der primären SMTP-Adresse aller Postfächer mit Contoso im Firmenfeld zuweist:

New-EmailAddressPolicy -Name Contoso -RecipientFilter {Company -Eq "Contoso"} -EnabledPrimarySMTPAddressTemplate "@contoso.com"

Möchten Sie eine Gruppe von Objekten abrufen, die ähnliche Identitäten besitzen? Sie können Platzhalterzeichen mit dem Parameter Identity verwenden, um mehrere Objekte zu ermitteln. Geben Sie Folgendes ein:

Get-Mailbox *John*

Get-ReceiveConnector *toso.com

Get-JournalRule *discovery*

Möchten Sie eine Gruppe von Objekten konfigurieren, die ähnliche Identitäten besitzen? Sie können Platzhalterzeichen mit dem Parameter Identity verwenden, wenn Sie ein Get-Cmdlet verwenden und die Ausgabe mittels Pipelining an ein Set-Cmdlet umleiten. Geben Sie Folgendes ein:

Get-Mailbox *John* | Set-Mailbox -ProhibitSendQuota 100MB

Dieser Befehl ermittelt alle Postfächer mit dem Namen "John" in der Identität des Postfachs und legt den Parameter ProhibitSendQuota auf 100MB fest.

Die meisten Cmdlets ermöglichen die Übergabe der Ausgabe des Subjekts an ein anderes Subjekt, um damit in Beziehung stehende Objekte anzuzeigen oder zu ändern. Möglicherweise möchten Sie z. B. den Postfachgrenzwert für alle Postfächer festlegen, die in einer bestimmten Postfachdatenbank auf einem Server gespeichert sind. Sie können zu diesem Zweck den folgenden Befehl verwenden:

Get-MailboxDatabase "Executives" | Get-Mailbox | Set-Mailbox -ProhibitSendQuota 300MB

Dieser Befehl ruft alle Postfächer ab, die sich in der Postfachdatenbank "Executives" befinden, und legt derenProhibitSendQuota-Wert auf 300MB fest.

Sie haben vergessen, welche Parameter für ein Cmdlet verfügbar sind? Verwenden Sie einfach die Tabulatorvervollständigung! Geben Sie Folgendes ein:

Set-Mailbox -<tab>

Wenn Sie einen Bindestrich (-) eingeben und dann die TAB-TASTE drücken, werden nacheinander alle verfügbaren Parameter für das Cmdlet angezeigt. Sie möchten Ihre Suche einschränken? Geben Sie einen Teil des Parameternamens ein, und drücken Sie die Tabulatortaste. Geben Sie Folgendes ein:

Set-Mailbox -Prohibit<tab>

Verabschieden Sie sich vom PING-Befehl. Verwenden Sie stattdessen Test-MapiConnectivity. Verwenden Sie Test-MapiConnectivity für die Behandlung von Verbindungsproblemen zwischen Ihren Benutzern und Servern. Kombinieren Sie Test-MapiConnectivity mit einer Vielzahl von Cmdlets, um Ihr besonderes Problem zu beheben, ohne manuell nach den Informationen suchen zu müssen:

Postfächer: Get-Mailbox <Mailbox Name> | Test-MapiConnectivity

Postfachdatenbanken: Get-MailboxDatabase <Database Name> | Test-MapiConnectivity

Server: Get-MailboxServer <Server Name> | Test-MapiConnectivity

Möchten Sie mehreren Verteilergruppen mit einem ähnlichen Namen einen Alias hinzufügen? Geben Sie Folgendes ein:

Get-DistributionGroup *Exchange* | Add-DistributionGroupMember -Member kim

Dieser Befehl fügt den Alias "kim" allen Verteilergruppen hinzu, die das Wort "Exchange" enthalten.

Möchten Sie aufzeichnen, was genau geschieht, wenn Sie die Exchange-Verwaltungsshell verwenden? Verwenden Sie das Cmdlet Start-Transcript. Alle Aktionen, die Sie durchführen, nachdem Sie dieses Cmdlet ausgeführt haben, werden in einer von Ihnen angegebenen Textdatei aufgezeichnet. Wenn Sie die Aufzeichnung der Sitzung beenden möchten, verwenden Sie das Cmdlet Stop-Transcript.

Beachten Sie, dass das Cmdlet Start-Transcript die Zieltextdatei standardmäßig überschreibt. Wenn Sie Ihre Sitzung an eine vorhandene Datei anfügen möchten, verwenden Sie den Parameter Append:

Start-Transcript c:\MySession.txt -Append

 

Der folgende nützliche Tipp bezieht sich auf das mehrfache Wiederholen eines Befehls. Verwenden Sie die folgende Syntax, anstatt eine For-Schleife zu schreiben:

1..10 | ForEach { "do something here" }

Der folgende Befehl erstellt z. B. 10 neue Speichergruppen mit den Namen sg1 bis sg10 auf dem Server TestServer:

1..10 | ForEach { New-StorageGroup -Name "sg$_" -server TestServer }

Möchten Sie wissen, wann Ihre Postfachdatenbanken zuletzt gesichert wurden? Geben Sie Folgendes ein:

Get-ExchangeServer | Get-MailboxDatabase -Status | Format-Table Name, *Back*

Möchten Sie alle Postfächer aus einer Postfachdatenbank in eine andere verschieben? Am einfachsten geschieht dies mit dem folgenden Befehl:

Get-MailboxDatabase <Source Mailbox Database> | Get-Mailbox | Move-Mailbox -TargetDatabase <Destination Mailbox Database>

Sie können sogar Platzhalterzeichen zusammen mit dem Cmdlet Get-MailboxDatabase zum Zusammenführen von Postfächern aus mehreren Quellpostfachdatenbanken in einer einzigen Zielpostfachdatenbank verwenden.

Müssen Sie einen Benutzer verwalten, der zwar über Netzwerkzugriff verfügt, jedoch auch ein externes E-Mail-Konto außerhalb Ihrer Exchange-Organisation besitzt? Mit Exchange Server 2007 können Sie nun E-Mail-aktivierte Benutzer erstellen, die reguläre Active Directory-Konten sind, sich aber auch als E-Mail-aktivierte Kontakte verhalten. Mithilfe des Cmdlets Enable-MailUser können Sie jedem vorhandenen Active Directory-Benutzer, der nicht bereits ein Postfach auf einem Server mit Exchange besitzt, E-Mail-Kontaktattribute hinzufügen. Anschließend sind die Benutzer in Ihrer Exchange-Organisation in der Lage, E-Mail-Nachrichten an das externe E-Mail-Konto dieses Benutzers zu senden. Geben Sie Folgendes ein:

Enable-MailUser -Identity <Active Directory Alias> -ExternalEmailAddress <Destination SMTP Address>

Möchten Sie das Standardkontingent für "Senden verbieten" für eine Postfachdatenbank ändern? Geben Sie Folgendes ein:

Set-MailboxDatabase <Mailbox Database Name> -ProhibitSendQuota <New Quota Size>

Sie können einen Bytequalifizierer angeben, wenn Sie den Parameter ProhibitSendQuota verwenden. Wenn Sie das Kontingent für "Senden verbieten" z. B. auf 200 MB festlegen möchten, geben Sie Folgendes ein:

ProhibitSendQuota 200MB

Sie können außerdem die Parameter IssueWarningQuota und ProhibitSendReceiveQuota auf die gleiche Weise konfigurieren.

Möchten Sie wissen, welche Version von Exchange Server jeder Ihrer Server ausführt? Geben Sie Folgendes ein:

Get-ExchangeServer | Format-Table Name, *Version*

Möchten Sie wissen, welche Servercomputer mit Exchange 2007 noch nicht mit einem gültigen Product Key konfiguriert wurden, und ob die Testzeit abgelaufen ist? Geben Sie Folgendes ein:

Get-ExchangeServer | Where { $_.IsExchange12TrialEdition -Eq $true } | Format-Table Name, *Trial*

Möchten Sie bestimmen, ob ein Server Exchange Server 2007 Standard Edition oder Exchange Server 2007 Enterprise Edition ausführt? Geben Sie Folgendes ein:

Get-ExchangeServer <Server Name> | Format-Table Name, Edition

Wenn Sie anzeigen möchten, welche Edition auf allen Ihren Servercomputern mit Exchange ausgeführt wird, lassen Sie den Parameter <Servername> aus.

Möchten Sie ein neues Ressourcenpostfach erstellen, das zum Buchen eines Besprechungsraums verwendet werden kann? Geben Sie Folgendes ein:

New-Mailbox -Name <Conference Room Name> -UserPrincipalName <SMTP Address> -Database <Mailbox Database> -OrganizationalUnit <Organizational Unit> -Room

Dieser Befehl erstellt einen deaktivierten Active Directory-Benutzer mit einem Postfach, das Besprechungsanfragen von Benutzern annimmt.

Möchten Sie allen ausgehenden E-Mail-Nachrichten eine Verzichtserklärung hinzufügen? Geben Sie Folgendes ein:

$Condition = Get-TransportRulePredicate FromScope

$Condition.Scope = "InOrganization"

$Condition2 = Get-TransportRulePredicate SentToScope

$Condition2.Scope = "NotInOrganization"

$Action = Get-TransportRuleAction ApplyDisclaimer

$Action.Text = "Sample disclaimer text"

New-TransportRule -Name "Sample disclaimer" -Condition @($Condition, $Condition2) -Action @($Action)

Möchten Sie die Eigenschaften von E-Mail-Nachrichten steuern, die an eine bestimmte Domäne gesendet werden? Verwenden Sie die RemoteDomain-Cmdlets. Erstellen Sie mithilfe des Cmdlets New-RemoteDomain eine neue Remotedomäne. Geben Sie Folgendes ein:

New-RemoteDomain -Name "Contoso.com Configuration" -DomainName contoso.com

Ändern Sie anschließend die für diese Remotedomäne gewünschten Eigenschaften mithilfe des Cmdlets Set-RemoteDomain:

Set-RemoteDomain "Contoso.com Configuration" -AutoReplyEnabled $True -AutoForwardEnabled $True

Sie können steuern, welche Features Benutzern von Outlook Web Access zur Verfügung stehen, indem Sie das Cmdlet Set-OwaVirtualDirectory verwenden. Geben Sie Folgendes ein:

Set-OwaVirtualDirectory "OWA (Default Web Site)" -ContactsEnabled $True -ChangePasswordEnabled $True

Boolesche Werte sind Parameter, die als $True oder $False ausgewertet werden können. Boolesche Werte werden normalerweise als ein Kennzeichen für ein Objekt verwendet, das das Verhalten dieses Objekts ändert. In der Exchange-Verwaltungsshell müssen Sie einen booleschen Parameter mit $True, $False, 1 oder 0 angeben. Andere Werte einschließlich True oder False werden nicht akzeptiert. Die folgenden Befehl legen z. B. beide den Parameter ExternalDsnSendHtml auf $True fest:

Set-TransportServer <Server Name> -ExternalDsnSendHtml $True

Set-TransportServer <Server Name> -ExternalDsnSendHtml 1

Möchten Sie alle E-Mail-Nachrichten entfernen, die von einem bestimmten Domänennamen aus den Warteschlangen des Servers gesendet wurden, ohne einen Unzustellbarkeitsbericht zu generieren? Geben Sie Folgendes ein:

Remove-Message -WithNDR $False -Filter { FromAddress -Like "*@contoso.com" }

Wünschen Sie sich ein einfaches Verfahren, um die Grenzwerte der Aufbewahrungszeit für gelöschte Elemente auf mehrere Datenbanken und Server anzuwenden? Verwenden Sie den folgenden Befehl zum Konfigurieren der Aufbewahrungszeit für gelöschte Elemente für alle Datenbanken auf einem angegebenen Server:

Get-MailboxDatabase -Server <Server Name> | Set-MailboxDatabase -ItemRetention 45.00:00:00

Sie können die gleichen Grenzwerte der Aufbewahrungszeit für gelöschte Elemente oder Postfächer auch auf alle Server in Ihrer Organisation anwenden:

Get-MailboxDatabase | Set-MailboxDatabase -ItemRetention 45.00:00:00 -MailboxRetention 120.00:00:00

Möchten Sie wissen, über welche Berechtigungen ein Active Directory-Benutzerkonto für ein bestimmtes Postfach verfügt? Verwenden Sie den folgenden Befehl:

Get-Mailbox <Mailbox to Check> | Get-MailboxPermission -User <Active Directory User>

Möchten Sie wissen, für welche Postfächer ein bestimmter Active Directory-Benutzer Berechtigungen besitzt? Geben Sie Folgendes ein:

Get-Mailbox -ResultSize Unlimited | Get-MailboxPermission -User <Active Directory User> | Format-Table Identity, AccessRights, Deny

Achtung: Dieser Befehl listet alle Postfächer in Ihrer Organisation auf. Wenn Sie über eine große Anzahl von Postfächern verfügen, können Sie sich auf bestimmte Postfächer beschränken.

Möchten Sie eine Liste des Sicherungsstatus aller Postfachdatenbanken in Ihrer Organisation abrufen? Geben Sie Folgendes ein:

Get-MailboxDatabase -Status | Format-Table Name, Server, *Backup*

Oder nur der Postfächer auf einem bestimmten Server? Geben Sie Folgendes ein:

Get-MailboxDatabase -Server <Server Name> -Status | Format-Table Name, *Backup*

Verwenden Sie zum Abrufen des aktuellen Status eines Servers mit Exchange oder einer Exchange-Datenbank den Parameter Status. Beispiel:

Get-ExchangeServer -Status | Format-List

Get-MailboxDatabase -Server <Server Name> -Status | Format-List

Möchten Sie den bereitgestellten Status aller Postfachdatenbanken anzeigen? Geben Sie Folgendes ein:

Get-MailboxDatabase -Status | Format-Table Name, Server, Mounted

Worin besteht der Unterschied zwischen serverseitiger Filterung und clientseitiger Filterung? Die serverseitige Filterung wird mit den Empfänger- und Warteschlangen-Cmdlets verwendet, die den Parameter Filter unterstützen, weil diese Cmdlets große Resultsets zurückgeben können. Der Server filtert die Ergebnisse mithilfe der von Ihnen angegebenen Kriterien und übersendet Ihnen dann die gefilterten Ergebnisse. Die clientseitige Filterung kann mit jedem beliebigen Cmdlet verwendet werden. Das gesamte Resultset wird an den Clientcomputer gesendet, der die Daten dann filtert und ein gefiltertes Resultset zur Verfügung stellt. Clientseitige Filterung verwendet das Cmdlet Where-Object, das zu Where verkürzt werden kann.

Bei Exchange Server 2007 Unified Messaging (UM) können Sie nicht authentifizierte Anrufer für bestimmte Telefondurchwahlen an eine Vermittlung statt an die gewählte Durchwahl umleiten. Geben Sie den folgenden Befehl ein, wenn Sie die Benutzer auflisten möchten, für die UM nicht authentifizierte Anrufer an den Operator statt an den Benutzer überträgt:

Get-UMMailbox | `

Where-Object { $_.AllowUMCallsFromNonUsers -eq `

[Microsoft.Exchange.Data.Directory.Recipient.AllowUMCallsFromNonUsersFlags] "None" }

Sie können die clientseitige Filterung verwenden, um nur die Daten zurückzugeben, die Sie anzeigen oder mit denen Sie arbeiten möchten. Das folgende Beispiel ruft alle Active Directory-Benutzerkonten aus der Abteilung "Engineering" ab und speichert die Ergebnisse in einer Tabelle mit zwei Spalten: Name und Department. Mithilfe des Parameters ResultSize beschränkt das Cmdlet Get-User das Resultset auf 2.000 Benutzer.

Get-User -ResultSize 2000 | Where { $_.Department -Eq "Engineering" } | Format-Table Name, Department

Die besondere Variable $_ stellt die Objekte dar, die in der Pipeline von einem Cmdlet an ein anderes Cmdlet übergeben werden. Die Variable $_ wird von der Shell automatisch initiiert und an das aktuelle Pipelineobjekt gebunden. Sie können auf die Eigenschaften, die der $_-Variable zugewiesen wurden, wie bei jedem anderen Objekt zugreifen. Das folgende Beispiel zeigt, wie Sie die Eigenschaft Name jedes Postfachobjekts anzeigen können, das durch die Pipeline übergeben wird:

Get-Mailbox | ForEach { $_.Name }

Sie können mithilfe des Cmdlets Import-Csv CSV-Dateien importieren und diese als Objekte behandeln. Jede Zeile in einer CSV-Datei wird zu einem Element in einem Array, und jede Spalte wird zu einer Eigenschaft. Sie können die CSV-Datei einer Variablen zuweisen, oder Sie können ihren Inhalt mithilfe von Pipelining direkt an ein anderes Cmdlet umleiten. Im folgenden Beispiel enthält die CSV-Datei drei Spalten (Name, Alias und EmailAddress) mit mehreren Zeilen, die das Cmdlet ForEach durchläuft. Die Daten in jeder Zeile werden zum Erstellen eines neuen E-Mail-Kontakts verwendet.

Import-Csv | ForEach { New-MailContact -Name $_.Name -Alias $_.Alias -ExternalEmailAddress $_.EmailAddress -OrganizationalUnit Users }

Möchten Sie Ihr Exchange-Verwaltungsshellprofil anpassen? Führen Sie den folgenden Befehl aus, um den Speicherort Ihrer Datei Microsoft.PowerShell_profile.ps1 zu bestimmen:

$Profile

Sie müssen möglicherweise den Ordner PSConfiguration und die Datei Microsoft.PowerShell_profile.ps1 erstellen. Nachdem dies geschehen ist, können Sie Ihre bevorzugten Funktionen und Aliase hinzufügen, die bei jedem Öffnen der Exchange-Verwaltungsshell geladen werden.

Verwenden Sie die folgenden Befehle, um eine Richtlinie für verwaltete Ordner zu konfigurieren, die eine maximale Größe des persönlichen E-Mail-Ordners von 10MB für alle Postfächer in Ihrer Organisation erzwingt.

New-ManagedFolder -Name "Reference e-mail folder with 10mb quota" -FolderName "Personal and Reference E-mail" -StorageQuota 10MB

New-ManagedFolderMailboxPolicy "Personal Folder Policy" -ManagedFolderLinks "Reference e-mail folder with 10mb quota"

Get-Mailbox -ResultSize Unlimited | Set-Mailbox -ManagedFolderMailboxPolicy "Personal Folder Policy"

Set-MailboxServer <Server Name> -ManagedFolderAssistantSchedule "Sun.12:00-Sun.11:00"

Möchten Sie alle Aktionen anzeigen, die beim Ausführen eines Befehls auftreten? Verwenden Sie den Parameter Verbose mit dem Befehl. Dieser Parameter weist die Exchange-Verwaltungsshell an, ausführliche Informationen zu allen Aktionen anzuzeigen, die der Server zum Durchführen des Befehls ausführt. Diese Informationen können sehr hilfreich bei der Behandlung von Problemen sein.

In jedem Cmdlet, das einen Größenwert annimmt, können Sie angeben, ob der ganzzahlige Wert in KB, MB, GB oder TB ausgedrückt wird. Beispiel:

Set-Mailbox "Kim Akers" -ProhibitSendQuota 200MB

In der Exchange-Verwaltungsshell können alle mit Exchange verbundenen Befehle protokolliert werden, mit denen Objekte auf irgendeine Weise geändert werden. Die Befehlsaktivität in Verbindung mit Exchange wird im PowerShell-Ereignisprotokoll aufgezeichnet. Führen Sie den folgenden Befehl aus, um die Protokollierung von mit Exchange verbundenen Befehlen zu aktivieren:

Set-ItemProperty HKLM:\SOFTWARE\Microsoft\PowerShell\1\PowerShellSnapIns\Microsoft.Exchange.Management.PowerShell.Admin -Name LogpipelineExecutionDetails -value 1