Markus’ Messaging Blog

Ein Weblog rund um das Thema Messaging

Archiv für Mai 2008

Das kleine Exchange Powershell 1×1

Verfasst von Markus Mohmeyer am [22/05/2008]

Die "Exchange Powershell", oder im Fachjargon auch "Exchange Management Shell" genannt, ist aus dem Leben eines Exchange Administrator nicht mehr wirklich wegzudenken. Einige Einstellungen können in Exchange 2007 nicht mehr wie bei Exchange 2000/2003 über die Management Konsole gemacht werden, sondern ausschließlich mit der Powershell getätigt werden.

UNIX-Administratoren, die sich vielleicht auch mit der aktuellen Exchange Version beschäftigen müssen werden schmunzeln, dass auch Microsoft nun den Weg weg vom "Klicki Klacki" geht und die Welt der Text-Befehls-Administration öffnet. Die simple Definition von Befehlsparametern und die Möglichkeit der Kombination von Powershell-Befehlen mittels dem Pipe-Befehl (|) macht die Shell allerdings einzigartig und es entsteht fast eine Art Suchtgefahr, wenn man erst mal Blut geleckt hat :-)

In diesem Artikel möchte ich nach und nach die für einen Exchange Admin wichtigsten grundlegenden Powershell-Befehle sammeln. Wer selbst einen Exchange Powershell-Befehl entdeckt hat der anderen weiterhelfen könnte und den ich hier noch nicht aufgeführt habe, der darf mir diesen Befehl gerne schicken oder ihn direkt als Kommentar unter diesen Artikel posten ==> KLICK: zu den Kommentaren

Logbuch

Datum: Befehl: Funktion:
01.03.2008 [PS] get-Mailbox
[PS] get-MailboxStatistics
[PS] get-MailboxFolderStatistics
[PS] get-Mailbox mit "ft"
[PS] get-MailboxStatistics mit "where Abfrage"
[PS] get-LogonStatistics mit "ft"
alle Postfächer einer Datenbank anzeigen
Postfachgrößen (Gesamtgröße)
Postfachgröße und Details von Ordnern
Postfachgrenzen anzeigen
Postfächer mit überschrittenen Postfachgrenzen anzeigen
Zugriffsart der Postfächer einer Datenbank anzeigen
22.05.2008 [PS] move-Mailbox
[PS] set-Mailbox -languages
[PS] set-CASMailbox … -PopEnabled … -IMAPEnabled
[PS] new-StorageGroup
[PS] new-MailboxDatabase
[PS] export-Mailbox
[PS] import-Mailbox
Postfach ohne Nachfrage verschieben
Sprache aller Postfächer auf einem Server auf DEUTSCH setzen
Postfach für POP3/IMAP4 aktivieren
Neue StorageGroup erstellen
Neue Postfach-Datenbank erstellen
Postfach in PST-Datei exportieren
PST-Datei in Postfach importieren
12.08.2008 [PS] get-MailboxDatabase … | Add-ADPermission …
[PS] get-Mailbox … | whereObject … | set-Mailbox …
"SendAs"-Recht für einen Benutzer auf eine Datenbank vergeben
"Legacy Mailbox" in "User Mailbox" konvertieren (RUS Ersatz)
21.01.2009 [PS] get-MessageTrackingLog
[PS] get-ActiveSyncDeviceStatistics
Nachrichten-Tracking
Die Statistik eines ActiveSync Gerätes anzeigen

 

 
Alle Postfächer einer Datenbank

[PS] C:> get-Mailbox -database MDB-01

Name                      Alias                ServerName       ProhibitSendQuota
====                      =====                ==========       =================
Duck, Dagobert            DDUCK1               MAILSERVER       unlimited
Duck, Daisy               DDUCK2               MAILSERVER       unlimited
Gans, Gustav              GGANS                MAILSERVER       unlimited
Düsentrieb, Daniel        DDUESE               MAILSERVER       unlimited

 
Alle vorhandenen Postfächer

[PS] C:> get-Mailbox -ResultSize unlimited | ft alias,guid,servername -AutoSize

Alias             Guid                                  ServerName
=====             ====                                  ==========
dduck             5c260ef8-eaa7-4b33-ae1a-1e65d286ac0e  MAILSERVER
dduese            01a4c6c5-a48d-4635-8853-fc5ba2e924d1  MAILSERVER
ggans             7dbc94f8-ee2c-46ad-b323-b0b222acb764  MAILSERVER

 
Postfachgrößen (Gesamtgröße)

[PS] C:> get-MailboxStatistics | ft DisplayName,ItemCount,TotalItemSize -AutoSize

DisplayName               ItemCount TotalItemSize
===========               ========= =============
Duck, Dagobert            42908     453272415B
Düsentrieb, Daniel        50539     1411833851B

Postfachgrößen aller Postfächer auf einem bestimmten Server sortiert

[PS] C:> get-MailboxStatistics -Server SERVERNAME | Sort-Object -Property TotalItemSize | ft DisplayName, TotalItemSize

DisplayName               TotalItemSize
===========               =============
Duck, Dagobert            453272415B
Düsentrieb, Daniel        463172519B

 
Postfachgröße und Details von Ordnern

[PS] C:> get-MailboxFolderStatistics -identity “dduese” | ft folderpath,foldersize,itemsinfolder,FolderAndSubfoldersize -AutoSize

FolderPath                      FolderSize ItemsInFolder FolderAndSubfolderSize
==========                      ========== ============= ======================
/                               0B                     0 488773B  <== gesamte Postfachgröße
/Calendar                       156492B              378 156492B
/Contacts                       0B                     0 0B
/Deleted Items                  7800B                  6 7800B
/Drafts                         0B                     0 0B
/Inbox                          57337B                24 57337B
/Journal                        0B                     0 0B
/Junk-E-Mail                    0B                     0 0B
/Notes                          0B                     0 0B
/Outbox                         0B                     0 0B
/quarantine                     0B                     0 0B
/RSS                            0B                     0 167697B
/RSS/RSS Popper Errors          167697B              103 167697B
/Sent Items                     44698B                28 44698B
/Spam Mail                      54749B                 0 99112B
/Spam Mail/Approved Sender List 44363B                 1 44363B
/Tasks                          0B                     0 0B

 
Postfachgrenzen ausgeben

[PS] C:> get-Mailbox -identity "dduese" | ft name,IssueWarningQuota,ProhibitSendQuota,ProhibitSendReceiveQuota -AutoSize

Name                 IssueWarningQuota ProhibitSendQuota ProhibitSendReceiveQuota
====                 ================= ================= ========================
Düsentrieb, Daniel   unlimited         unlimited         unlimited

 
Postfächer mit überschrittenen Postfachgrenzen ausgeben
 

[PS] C:> get-MailboxStatistics | where {$_.StoragelimitStatus -ne "BelowLimit"} | ft display*,*limit* | out-file report.txt

DisplayName          StorageLimitStatus
===========          ==================
Duck, Dagobert       NoChecking
Duck, Daisy          IssueWarning
Düsentrieb, Daniel   NoChecking
Gans, Gustav         ProhibitSend

 
Zugriffsart der Postfächer einer Datenbank ausgeben

[PS] C:> get-LogonStatistics -database MDB-01 | ft UserName,ClientName,HostAddress

UserName                ClientName               HostAddress
========                ==========               ===========
Duck, Dagobert          PC-DDUCK1                IIS-HTTPDAV
Duck, Daisy             PC-DDUCK2
Düsentrieb, Daniel      PC-DDUESE
Gans, Gustav            PC-GGANS                 IIS-HTTPDAV

  
Postfach ohne Nachfrage verschieben

[PS] C:> move-mailbox -Identity "22102263" -TargetDatabase MAILSERVER\SG-01\MDB-01 -confirm:$false

501005006
   Moving messages. Posteingang [37/67]
   [oooooooooooooooooooooooooooooooooooooooo                        ]

 
Sprache aller Postfächer auf einem Server auf DEUTSCH setzen

[PS] C:> get-mailbox -Server SERVERNAME | Set-Mailbox -languages: de-DE

 
Postfach für POP3/IMAP4 aktivieren

[PS] C:> set-CASMailbox -Identity DDUESE -PopEnabled $true -IMAPEnabled $true

 
Neue StorageGroup erstellen

[PS] C:> new-StorageGroup -Server ‘SERVERNAME’ -Name ‘SG-01′ -LogFolderPath ‘C:\SG-01′ -SystemFolderPath ‘C:\SG-01′

 
Neue Postfach-Datenbank erstellen

[PS] C:> new-MailboxDatabase -StorageGroup ‘SERVERNAME\SG-01′ -Name ‘MDB-01′ -EdbFilePath ‘F:\SG-01\MDB-01.edb’

 
Postfach in PST-Datei exportieren

[PS] C:> export-Mailbox -Identity DDUESE -PSTFolderPath D:\temp

 
PST-Datei in Postfach importieren

[PS] C:> import-Mailbox -Identity DDUESE -PSTFolderPath D:\temp\dduese.pst

 
"SendAs"-Recht für einen Benutzer auf eine Datenbank vergeben

[PS] C:> get-MailboxDatabase -id SERVERNAME\SG-01\MDB-01 | Add-ADPermission -User "dduese" -ExtendedRights Send-As
[PS] C:> get-MailboxDatabase -ser SERVERNAME | Add-ADPermission -User "dduese" -ExtendedRights Send-As

 
"Legacy Mailbox" in "User Mailbox" konvertieren (RUS Ersatz)

[PS] C:> get-Mailbox -DomainController SERVERNAME -ResultSize unlimited | where-Object {$_.RecipientTypeDetails -ilike "Legacy*"} | set-Mailbox –ApplyMandatoryProperties -verbose

 
Nachrichten-Tracking

[PS] C:> get-messagetrackinglog -Sender "daniel.duesentrieb@entenhausen.de" -Start "04.08.2008 12:00:00" -End "04.08.2008 15:00:00" | ft Timestamp,Source,TotalBytes,MessageSubject,Sender,Recipients –AutoSize | out-file c:\tracking.txt
 

[PS] C:> get-messagetrackinglog -Sender "daniel.duesentrieb@entenhausen.de" -Start "04.08.2008 12:00:00" -End "04.08.2008 15:00:00"

Die Statistik eines ActiveSync Gerätes anzeigen

[PS] C:> Get-ActiveSyncDeviceStatistics -mailbox donald.duck@entenhausen.de
 

FirstSyncTime         : 11.11.2008 10:06:37

LastPolicyUpdateTime  : 11.11.2008 10:06:56

LastSyncAttemptTime   : 21.01.2009 09:58:45

LastSuccessSync       : 21.01.2009 09:58:45

DeviceType            : PocketPC

DeviceID              : B107EF0A96ECEE4243CE62C7EAC76C75

DeviceUserAgent       :

DeviceWipeSentTime    :

DeviceWipeRequestTime :

DeviceWipeAckTime     :

LastPingHeartbeat     :

RecoveryPassword      : ********

DeviceModel           : MDA_compact_IV

DeviceIMEI            : 3531900321194501

DeviceFriendlyName    : HTC6

DeviceOS              : Windows CE 5.2.19591

DeviceOSLanguage      : German

DevicePhoneNumber     : +498154711

Identity              : Donald.Duck@Entenhausen.de\AirSync-PocketPC-B107EF0A96ECEE4243CE62C7EAC76C75

 
Postfach aus einer Recovery Storage Group in ein aktives Postfach (Unterordner) exportieren

[PS] C:> Restore-Mailbox -RSGMailbox ‘MAILBOXNAME1′ -RSGDatabase ‘MAILSERVERNAME\Recovery Storage Group\DATENBANKNAME’ -id ‘MAILBOXNAME2′ -TargetFolder ‘Restore’ 

 
CMS auf einem Exchange Cluster von Node A auf Node B schwenken

[PS] C:> stop-ClusteredMailboxServer -Identity MAILSERVERNAME -StopReason MM
 
[PS] C:> Move-ClusteredMailboxServer -Identity MAILSERVERNAME -TargetMachine MAIL06SZDN1 -MoveComment MM
 
[PS] C:> start-ClusteredMailboxServer -Identity MAILSERVERNAME

 
Alle Postfächer eines bestimmten Exchange Servers auflisten, dessen Postfachordner ”Synchronisierungsprobleme\Serverfehler” mehr als NULL Elemente beinhalten ;
die Anzahl Items und die Größe des Ordners ausgeben

[PS] C:> get-mailbox -Server MAILSERVERNAME -ResultSize unlimited | Get-MailboxfolderStatistics | where {$_.Folderpath -match "/Synchronisierungsprobleme/Serverfehler" -AND $_.ItemsInFolder -gt "0"} | ft identity,ItemsInFolder,foldersize -AutoSize 

  
… Liste wird noch weiter vervollständigt …

 

Links zum Thema

Introduction in Exchange 2007 Management Shell
http://www.microsoft.com/downloads/details.aspx?FamilyID=1dc0f61b-d30f-44a2-882e-12ddd4ee09d2&DisplayLang=en

Exchange Management Shell Quick Reference
http://www.microsoft.com/downloads/details.aspx?familyid=01A441B9-4099-4C0F-B8E0-0831D4A2CA86&mg_id=10048&displaylang=en

Deutschsprachige Einführung
http://www.microsoft.com/technet/technetmag/issues/2006/12/HeyScriptingGuy/default.aspx?loc=de/

Powershell Blog
http://blogs.msdn.com/powershell/

PowerShell Plus – The Power Tool for PowerShell
http://www.powershellplus.com/

PowerGUI – Grafisches Interface und Skript-Editor für die Windows PowerShell
http://www.powergui.org/index.jspa

 

Keywords: Exchange 2007 Powershell Befehle Exchange Management Shell

Veröffentlicht in Exchange, PowerShell | Verschlagwortet mit : , , | 12 Kommentare »

Update Rollup 2 für Exchange 2007 SP1

Verfasst von Markus Mohmeyer am [09/05/2008]

Am 8. Mai 2008 bringt  Microsoft für Exchange 2007 SP1 das Update Rollup 2 heraus. Immerhin 27 Probleme werden dieses Mal behoben und wenn ich mir die Liste anschaue, dann kommt mir so einiges bekannt vor :-)

 
Was ist ein “Update Rollup”?

Ein “Update Rollup” Paket ist ein Software-Paket, in dem sich eine Sammlung von wichtigen Softwareaktualisierungen (Hotfixes) befindet, welche die Funktion und/oder die Stabilität einer Software verbessert.
Für Exchange gibt es seit der Version 5.5 in regelmäßigen Abständen Update Rollups. Ein Update Rollup Paket mit einer höheren Versionsnummer beinhaltet alle Hotfixe der Vorgängerversion. Um auf dem aktuellsten Stand hinsichtlich Funktion und Stabilität zu sein, muss also immer die letzte Version des ServicePacks und die letzte Version des Update Rollups installiert werden. Ältere Rollup Pakete müssen nicht deinstalliert werden
ABER: Wenn zwischenzeitlich ein spezieller Hotfix für Exchange 2007 (ein sogenanntes Interims Update) instelliert wurde, dann muss das vor der Installation des Updates Rollup 6 deinstalliert werden.
 
Ein “Update Rollup” beinhaltet in der Regel keine “Security Hotfixe”. Diese müssen separat über Microsoft-/Windows Update installiert werden!

 
Faustregeln zur Implementierung

Gerade in kritischen Umgebungen, wo Hochverfügbarkeit eine Rolle spielt, ist es genau wie bei der Implementierung von ServicePacks immer ratsam eine Weile Zeit ins Land gehen zu lassen, bis man das Paket installiert. Grund dafür ist, dass sich Fehler in das “Update Rollup” eingeschlichen haben könnten, die erst nach Veröffentlichung bekannt werden.

  • Installation in einer nicht produktiven Testumgebung
  • Durchführung aktiver Tests (Standardfunktionen, Outlook-basierende Applikationen)
  • 2 bis 4 Wochen auf eventuelle Microsoft Meldungen hinsichtlich Problemen warten und Newsgroups lesen
  • Installation in Produktion und dokumentieren des genauen Vorgehens (vor Beginn Datensicherung!)


Probleme die das Update Rollup 2 behebt

940462 The public folder store may take several minutes to mount on an Exchange 2007 server

944153 Exchange Server 2007 does not have Transport Neutral Encapsulation Format (TNEF) capabilities for POP and IMAP protocols

945917 You receive an error message when you try to access the Microsoft Office Outlook Web Access global address list in a Microsoft Exchange Server 2007 environment

947346 Exchange Server 2007 mailbox users cannot retrieve the free/busy information for Exchange Server 2003 mailbox users in a large Exchange Server organization that has more than 100 administrative groups

947360 Error message occurs, and users cannot access the free/busy information after you use the Import-Mailbox cmdlet to import data to a mailbox in Exchange Server 2007 Service Pack 1

947391 The contents of .pst files are not imported into Exchange Server 2007 mailboxes when you use the Import-Mailbox cmdlet

947451 A recipient sees unexpected text in the top of an e-mail message that you send in Exchange Server 2007

947458 The Edgetransport.exe process may crash on an Edge server that is running Exchange Server 2007 Service Pack 1

947551 The Edgetransport.exe process may crash intermittently on an Exchange Server 2007 Service Pack 1 Edge server

947577 If you try to connect a mobile device to a mailbox server through a server that is running Exchange Server 2007, the mobile device may be unable to connect

947646 Event ID 12011 is logged every time that the MSExchangeTransport service starts after you install Exchange Server 2007 Service Pack 1 on a computer that is running the German version of Windows Server 2003

948047 An event ID 1080 message is logged in the System log every three seconds after you run the Set-ExchangeServer command to set the static domain controllers on an Exchange 2007 cluster node

948297 The OOF template may be delivered as an attachment in an Exchange 2007 environment when you use the “Reply with Template” option in Microsoft Outlook

948332 Failover takes a long time to finish in an Exchange Server 2007 cluster continuous replication environment

948374 The EdgeTransport.exe process crashes intermittently, and event ID 1033 is logged in Exchange Server 2007

948666 When you try to migrate a mailbox from Exchange Server 2003 to Exchange Server 2007, the Exchange Management Shell may stop responding

948830 The MSExchangeSyncAppPool application pool crashes on a server that hosts an Exchange Server 2007 Client Access Server role

948831 A user may be unable to synchronize with an Exchange Server mailbox from a mobile device when a Client Access server has been upgraded to Exchange Server 2007 Service Pack 1

948844 An exception occurs, and event IDs 4999 and 5000 are logged when you modify the Outlook Web Access user interface

949186 When you try to run the Restore-mailbox cmdlet on a server that is running Exchange Server 2007, you receive an error message

949193 The address rewrite agent does not rewrite the address for Out of Office (OOF) messages in Exchange Server 2007

949463 An exception error is generated after you run a Set-AttachmentfilterListConfig command together with the ExceptionConnectors option on an Exchange 2007 S949463-based server

949541 You cannot log on to Outlook Web Access Light, and an error message occurs in Exchange Server 2007

949703 Error message in Outlook when you click the signature icon of a signed e-mail message that an Exchange Server 2007-based Edge server receives: “The digital signature is invalid”

949726 After you install Exchange Server 2007 Service Pack 1, the Set-ExcecutionPolicy task causes an error message, and event ID 103 is logged

949772 If you run the “isinteg -dump” command against a dismounted store on a server that is running Exchange Server 2007, the Store.exe process stops unexpectedly

950123 Error message after you apply Update Rollup 1 for Exchange Server 2007 Service Pack 1 in a Japanese environment: “Public Folder Management Console is not an allowed Snap-in”


Link zum Download

http://www.microsoft.com/downloads/details.aspx?displaylang=de&FamilyID=99da32e0-d9e3-4156-aabf-8369bf96e3e7

 
Weitere Informationen zum Update Rollup 2 bei Microsoft

http://support.microsoft.com/?kbid=948016 

 
Installation des Update Rollup 2

! Hinweis !

Wenn eine Exchange Cluster Installation vorliegt, dann muss vor der Installation folgendes sichergestellt werden:

  • das Setup sollte zuerst auf dem passiven Knoten (Node B) durchgeführt werden
  • auf dem aktiven Knoten müssen alle Exchange Cluster Ressourcen beendet werden und der Cluster Service muss angehalten und möglichst auf Startart “deaktiviert” gestellt werden
  • nach erfolgreicher Installation muss der Cluster Service wieder reaktiviert werden
  • die Installation auf dem aktiven Konoten kann nach einem Schwenk der Ressourcen erfolgen
  • auch hier sollte der Cluster Service während der Installation gestoppt und deaktiviert werden

Gerade und besonders wenn Exchange Im Cluster betrieben wird, sollte vorab die Installation des Update Rollups in einer Testumgebung durchgeführt werden!

Ein Neustart des Exchange Servers wird nach der Installation des Update Rollups nicht immer gefordert. Ich empfehle diesen aber auf jeden Fall.

 
Links zum Thema
aktuell noch keine

 
Keywords:
Exchange 2007 Update Rollup 1 Servicepack Hotfix KB945684

Veröffentlicht in Exchange, Hotfix, Service Pack | Verschlagwortet mit : | Kommentar schreiben »