OWA 2010 Kategorien bei mehreren eingebundenen Postfächern

Die Kategorien innerhalb des OWAs werden von der Mailbox geladen, die nach der Anmeldung als erstes selektiert (gelickt) wird. Die Kategorien gelten dann für alle anderen Mailboxen ebenfalls.

Wenn ein eingebundenes Postfach keine Kategorien hat – weil z.B. noch nie Outlook dafür verwendet wurde – und dieses als erstes angeklickt wird, dann gibt es keine Kategorien zur Auswahl.

Lösung:

  • Ab-/Anmelden und das Postfach mit den richtigen Kategorien zuerst anklicken
  • in den anderen Postfächern die Kategorien anlegen (lassen) mit z.B. Outlook

 

Exchange 2010 Mailbox Audit Logging: So wirds aktiviert und verwendet

Hin und wieder können sich Anwender nicht erklären, warum Mails verschwinden, verschoben oder hart gelöscht wurden obwohl keine Regeln existieren.
Tja, ich kann mir das auch nicht erklären 😀 aber ich weiß wie man herausfinden kann wer es war. Mailbox Audit Logging aktivieren und Ergebnisse auswerten.

Wichtig: Bei Exchange 2013/2016 gibts wohl ein Problem, wenn das SYSTEM nicht in en-us konfiguriert ist. Dann die Region&Sprache umstellen und nochmal versuchen. Hier der Link dazu: https://support.microsoft.com/en-us/help/3054391/search-adminauditlog-or-search-mailboxauditlog-with-parameter-returns

 

So wird’s gemacht:

Festlegen, auf welche Mailbox Audit Logging aktiviert wird:

set-mailbox <MailboxID> -AuditEnabled $true
set-mailbox <MailboxID> -AuditOwner Update, Move, SoftDelete, HardDelete, Create

Die Einstellungen auf der Mailbox sehen dann so aus:

AuditLoggingEinstellungen

Damit werden die Änderungen von Admins, Vertretern und dem Benutzer selbst protokolliert. Die Informationen werden max, 90 Tage aufbewahrt. Die Logging Informationen werden in der Benutzermailbox gespeichert.

AuditBypassEnabled muss auf $false gesetzt werden, damit die Änderungsvorgänge auch wirklich protokolliert werden.

Set-MailboxAuditBypassAssociation <MailboxID> -AuditBypassEnabled $false

Abfrage der Änderungen in einer Mailbox: (Natürlich muss man warten, bis die Aktionen auftreten!)

Search-MailboxAuditLog <MailboxID> -ShowDetails | ft Operation,LogonType,FolderPathName,
                ClientInfoString,SourceItemSubjectsList,DestFolderPathName,lastaccessed

Das Ergebnis sieht dann in etwa so aus:

Search-MailboxAuditLog

Wie man schön sehen kann werden die Vorgänge (SoftDelete/Move/…) und Quell- sowie Zielordner dokumentiert. In der Spalte ClientInfoString wird dazu noch dokumentiert, über welchen Client der Vorgang stattgefunden hat.

LogonType = Owner bedeutet, der User macht das selbst! Was ja zu erwarten war 😀

Matthias

 

Exchange 2010 CAS Network Load Balancing (NLB) Anzahl RPC und OWA Verbindungen ermitteln

Am CAS Server können die Performance Counter für RPC Client Access und OWA verwendet werden um die Anzahl der aktuellen Verbindungen (User) zu ermitteln.
Dazu gibt es verschiedene Counter. Hier ein Überblick der Counter die ich verwende um zu sehen, ob die Verbindungen von einem Drainstop NLB Knoten verschwunden sind.

 

Current Connections or users at cas nlb node
Current Connections or users at cas nlb node

Mit der Powershell kann man das auch abfragen:

(get-counter „\MSExchange RPCClientAccess\User Count“ -ComputerName <CAS Server Name>).counterSamples[0].CookedValue
(get-counter „\MSExchange OWA\Current Unique Users“ -ComputerName <CAS Server Name>).counterSamples[0].CookedValue

Die Liste kann um weitere Counter angepasst werden. Dazu einfach den Namen des Counters eintragen. z.B. „Current Unique Users Light“. Aber Achtung, die Counter sind Sprachabhängig und lauten auf deutschen Exchange-Servern anders.

Exchange 2010 Move Mailbox bricht nach 2h (Stunden) ab – große Anzahl Ordner im Postfach

Letztens bei einer Migration konnte ein Postfach nicht verschoben werden. Der Fortschrittsanzeiger blieb bei 10% hängen und bewegte sich über Stunden nicht weiter.

Nach ca. 2h brach der Job dann mit folgender Meldung ab:

Status: SyncSource
11.03.2013 21:25:20 [TargetServer] Der Microsoft Exchange-Postfachreplikationsdienst ‚TargetServer‘ (14.3.123.2 caps:07) überprüft die Anforderung.
11.03.2013 21:25:20 [TargetServer] Verbunden mit Zielpostfach ‚Primär (9344562e-8f36-447b-a3d6-6acb508d23f3)‘, Datenbank ‚DB_03‘, Postfachserver ‚Targetserver‘ Version 14.3 (Build 123.0).
11.03.2013 21:25:22 [TargetServer] Verbunden mit Quellpostfach ‚Primär (9344562e-8f36-447b-a3d6-6acb508d23f3)‘, Datenbank ‚DB01‘, Postfachserver ‚Sourceserver‘ Version 14.3 (Build 123.0).
11.03.2013 21:25:27 [TargetServer] Der vorübergehende Fehler SourceMailboxAlreadyBeingMovedTransientException ist aufgetreten. Das System wird (2/60) neu versuchen.
Fehlerdetails: Das Postfach konnte nicht in den Modus für die Quellsynchronisierung umgeschaltet werden.
Hierfür sind folgende Gründe möglich:
  Ein anderer Administrator verschiebt das Postfach zurzeit.
  Das Postfach ist gesperrt.
  Der Microsoft Exchange-Postfachreplikationsdienst (MRS) verfügt nicht über die richtigen Berechtigungen.
  Netzwerkfehler verhindern, dass MRS die Sitzung mit dem Postfachserver sauber abschließt. Wenn dies der Fall ist, kann dieser Fehler in MRS noch für bis zu 2 Stunden auftreten. Diese Dauer wird von den TCP-KeepAlive-Einstellungen auf dem Postfachserver gesteuert. Warten Sie, bis das Postfach freigegeben wurde, bevor Sie erneut versuchen, dieses Postfach zu verschieben.
   bei Microsoft.Exchange.MailboxReplicationService.LocalMailbox.Microsoft.Exchange.MailboxReplicationService.IMailbox.SetInTransitStatus(InTransitStatus status, Boolean& onlineMoveSupported)
   bei Microsoft.Exchange.MailboxReplicationService.MailboxWrapper.<>c__DisplayClass20.<Microsoft.Exchange.MailboxReplicationService.IMailbox.SetInTransitStatus>b__1f()
   bei Microsoft.Exchange.MailboxReplicationService.ExecutionContext.Execute(GenericCallDelegate operation)
   bei Microsoft.Exchange.MailboxReplicationService.MailboxWrapper.Microsoft.Exchange.MailboxReplicationService.IMailbox.SetInTransitStatus(InTransitStatus status, Boolean& onlineMoveSupported)
   bei Microsoft.Exchange.MailboxReplicationService.MoveBaseJob.<StartMove>b__1b(MailboxMover mbxCtx)
   bei Microsoft.Exchange.MailboxReplicationService.MoveBaseJob.ForeachMailboxContext(MailboxMoverDelegate del)
   bei Microsoft.Exchange.MailboxReplicationService.MoveBaseJob.StartMove(Object[] wiParams)
   bei Microsoft.Exchange.MailboxReplicationService.CommonUtils.CatchKnownExceptions(GenericCallDelegate del, FailureDelegate failureDelegate)

Diese Information war fast hilfreich.  🙂
Der Hinweis in der Fehlermeldung

Netzwerkfehler verhindern, dass MRS die Sitzung mit dem Postfachserver sauber abschließt. Wenn dies der Fall ist, kann dieser Fehler in MRS noch für bis zu 2 Stunden auftreten. Diese Dauer wird von den TCP-KeepAlive-Einstellungen auf dem Postfachserver gesteuert

brachte mich dann aber auf die Lösung.  Ein Blick in das Postfachverschiebeprotokoll brachte die Info, dass dieses Postfach weit über 5500 Ordner hat.

Die Ordnerhierarchie in Postfach ‚Primär (9344562e-8f36-447b-a3d6-6acb508d23f3)‘ wird initialisiert: 5575 Ordner gesamt.

Der Postfach Verschiebedienst braucht scheinbar sehr lange, die Hierarchie zu ermitteln. (Im weiten Internet findet man Hinweise, dass der Job schon bei über 2000 Ordnern abbricht.)

Wenn nun die KeepAliveTime auf 2h steht (Default!), bricht der Job dann natürlich ab.
Ich habe den Wert mal auf 5 Minuten geändert (300.000ms). Dann funktionierts.

Auf dem „Source“ Server in der Registry unter

HKLM\System\CurrentControlSet\Services\TCPIP\Parameters den DWORD32 KeepALiveTime mit 300000 (dec) hinzufügen.

Alternativ kann der Job mittels „Resume“ wieder aufgenommen werden, dann klappt’s auch irgendwann….

 

Exchange 2003 Relay-IPs ermitteln und in Exchange 2010 Receive Connector importieren

Mit einem kleinen Script kann man die IPs oder IP Ranges des SMTP Dienstes vom Exchange 2003 auslesen und direkt in einen entsprechenden Receive Connector auf Exchange 2010 importieren.

Vor Verwendung des Scripts bitte an die eigene Umgebung anpassen und testen!

Dim objSMTP,objRelayIpList,objCurrentList,objIP
Dim objFSO,objTextFile,count,newIpList(),inputOption,IPTxtPath
Set objSMTP = GetObject("IIS://localhost/smtpsvc/1")
Set objRelayIpList = objSMTP.Get("RelayIpList")
'***objRelayIpList is of type IIsIPSecuritySetting 
'***http://msdn.microsoft.com/en-us/library/ms525725.aspx
if objRelayIpList.GrantByDefault = TRUE then
  objCurrentList = objRelayIPList.IPDeny
else
 objCurrentList = objRelayIPList.IPGrant
end if 
Set objRelay = GetObject("LDAP://CN=Relay Connector,CN=SMTP Receive Connectors," _
                           "CN=Protocols,CN=yourServer,CN=Servers," _
                           "CN=Exchange Administrative Group (FYDIBOHF23SPDLT)," _ 
                           "CN=Administrative Groups,CN=YourOrg,CN=Microsoft Exchange," _
                           "CN=Services,CN=Configuration,DC=YourDomain,DC=YourDomain,DC=net")
For each ip in objCurrentList
 aIP = split(ip,",")
 if aIP(1)=" 255.255.255.255" then '*** einzelne IP Adresse/Host
 cIP=trim(aIP(0))
 else
 cIP = trim(aIP(0)) & "(" & trim(aIP(1)) & ")" '*** sonst Subnetz
 end if
 '*** Debug Info: msgbox IP & vbCRLF & cIP
 objRelay.PutEx 3, "msExchSmtpReceiveRemoteIPRanges", array(cIP)
 objRelay.SetInfo
next

Exchange 2010 Message Tracking Event-IDs

Aus dem Microsoft Artikel http://technet.microsoft.com/en-us/library/bb124375.aspx ein Auszug zu den einzelnen Event IDs die im Messagetracking Log auftauchen können.

Deliver ist wohl die wichtigste ID, wenn’s mal wieder heißt: „…ich habe eine Mail nicht bekommen..“ 🙂

Event name Description
BADMAIL A message was submitted by the Pickup directory or the Replay directory that cannot be delivered or returned.
DELIVER A message was delivered to a mailbox.
DEFER Message delivery was delayed.
DSN A delivery status notification (DSN) was generated.
DUPLICATEDELIVER A duplicate message was delivered to the recipient. Duplication may occur if a recipient is a member of two distribution groups. Duplicate messages are detected and removed by the information store.
EXPAND A distribution group was expanded.
FAIL Message delivery failed.
POISONMESSAGE A message is put in the poison message queue or removed from the poison message queue.
RECEIVE A message was received and committed to the database. The RECEIVE event can be SMTP receive (Source: SMTP) or mail submitted by STOREDRIVER (Source: STOREDRIVER).SMTP RECEIVE can be from any source that submits a message by using SMTP. For example, it can be a Hub Transport server role, an Edge Transport server role, a third-party message transfer agent (MTA), or a POP/IMAP client.STOREDRIVER RECEIVE is logged by the EdgeTransport.exe process, and is the event that corresponds to a STOREDRIVER SUBMIT event. STOREDRIVER SUBMIT is logged by the Mail Submission process. These events can be on the same server if both server roles are installed locally, or they can be on different servers.

Bb124375.note(en-us,EXCHG.141).gifNote:
EdgeTransport.exe and MSExchangeTransport.exe are the executable files that are used by the Microsoft Exchange Transport service. This service runs on every Hub Transport server or Edge Transport server.
REDIRECT A message was redirected to an alternative recipient after an Active Directory directory service lookup.
RESOLVE A message’s recipients were resolved to a different e-mail address after an Active Directory lookup.
SEND A message was sent by Simple Mail Transfer Protocol (SMTP) to a different server.
SUBMIT A SUBMIT event is logged by the Mail Submission service on an Exchange 2007 computer that is running the Mailbox server role. The SUBMIT event is logged when the service has successfully notified a Hub Transport server that a message is awaiting submission in the mailbox store.The SourceContext property provides the Messaging Database (MDB) GUID, Mailbox GUID, Event sequence number, Message class, Creation time stamp of the client submission to store, and Client type. The Client type can be User (Outlook direct MAPI), RPCHTTP (Outlook Anywhere), Outlook Web Access, Exchange Web Services (EWS), Exchange ActiveSync, Assistants, or Transport. The message tracking logs that are generated by the Mailbox server role contain only SUBMIT events.
TRANSFER Recipients were moved to a forked message because of content conversion, message recipient limits, or agents.

Exchange 2007 nach Exchange 2010 Migration FreeBusy-View-Option-Fehlermeldungen

Im Anwendungslog steht folgender Fehler:

Details
Product: Exchange
Event ID: 4002
Source: MSExchange Availability
Version: 8.0
Symbolic Name: ProxyWebRequestFailed
Message: Process %1: %2 failed. Caller SIDs: %3. The exception returned is %4. Make sure that Active Directory site/forest containing the user mailbox has at least one local Exchange 2007 server running Exchange Availability service. Turn up logging for MSExchange Availability service and test basic network connectivity.
 

Im Text kommt zus. folgender Text vor: FreeBusyViewOptions.TimeWindow is too long.

Auf den CAS 2007 Servern muss im IIS folgender Eintrag hinzugefügt werden:

Expand the Default Website
Select the EWS virtual directory.
Double click Applciation Settings
Add a new application value:
Name: maximumQueryIntervalDays
Value: 62
Click OK..

Make the change on all the 2007 CAS servers. You should see the 4002 event go away.

Exchange 2010 Restore Mailbox Step by Step

Als Gedächtnisstütze hier mal die vorgehensweise wie ein Postfach oder Postfachinhalte aus der RDB (Recovery Datenbank) wiederhergestellt wird:

  • Recovery DB anlegen:

http://technet.microsoft.com/en-us/library/ee332321.aspx

New-MailboxDatabase -Recovery -Name RDB2 -Server EX2010MBXServer  -EdbFilePath „D:\MDBDATA\RDB\DB\RDB2.EDB“ -LogFolderPath „D:\MDBDATA\RDB\LOG“

  • Restore der Datenbank mit dem Backup-Programm in die RDB durchführen (dauert je nach DB Größe sehr lange)

Vorgehen bei TSM:
Beim TSM muss das Restore-Ziel ausgewählt werden, sonst steht nämlich die original Datenbank drinnen, was nicht so gut ist. Passiert nichts, geht aber auch nicht und die Zeit kann man sich sparen.
Restore mit Logfiles (das TSM macht den RollForward in der RDB) und den ESEUtil um einen Cleantshutdown zu haben.
Andere Backuplösungen:
<wird bei Erfahrung gefüllt, bzw. lasst mich wissen, worauf bei anderen Lösungen geachtet werden muss>

  • Daten wiederherstellen

Restore Data Using a RDB:
http://technet.microsoft.com/en-us/library/ee332351.aspx
New-MailboxRestoreRequest: http://technet.microsoft.com/de-de/library/ff829875.aspx

Wichtig:
The database must be in a clean shutdown state. Because an RDB is an alternate restore location for all databases, all restored databases will be in a dirty shutdown state. You can use Eseutil /R to put the database in a clean shutdown state.
Get-MailboxStatistics -Database RecoveryDB.
–> Das hat TSM für uns erledigt, ansonsten von Hand die DB in einen Clean Shutdown versetzen.

  • Inhalt der RDB ansehen/Mailbox GUID ermitteln

Die Mailbox-GUID ermitteln mit: Get-MailboxStatistics -Database „Archiving Database 1“ | list displayname,identity
(MailboxGUID in Zwischenablage kopieren)

  • Komplettes Postfach zurückspielen

New-MailboxRestoreRequest -SouceDatabase DB1 -SourceStoreMailbox 1d20855f-fd54-4681-98e6-e249f7326ddd -TargetMailbox Scott
(Hier die Mailbox GUID eintragen)

  • Oder Teile aus einem Postfach zurückspielen (Unterordner, Kalender, o.ä.)

New-MailboxRestoreRequest -SourceDatabase Recoverydb -SourceStoreMailbox „GUID for DB“ -TargetMailbox „usern name“ -TargetRootFolder „foldertorestoreto
Mailboxguid “801f870d-1ef2-4326-97f9-7bc475df055b”
(Exchange 2010 RTM:
Restore-Mailbox -Identity „Alex Heyne“ -RecoveryDatabase RecoveryDB -RecoveryMailbox „Alex Heyne“ -TargetFolder Restore
)

  • Beispiel um den Inhalt des Postfaches in einen Unterordner zurückspielen (Mailbox Limits beachten!)

New-MailboxRestoreRequest -SourceDatabase RDB2 -SourceStoreMailbox 801f870d-1ef2-4326-97f9-7bc475df055b –TargetMailbox thomas.mustermann@parmalat.nz.com -TargetRootFolder „Restore vom 27.01.2012“
“801f870d-1ef2-4326-97f9-7bc475df055b”

 

Exchange 2010/2013 Build Version ermitteln

Für Exchange 2010 sind die Versionen hier aufgeführt: (http://social.technet.microsoft.com/wiki/contents/articles/exchange-server-and-update-rollups-builds-numbers.aspx)

Für Exchange 2013 sind die Versionen hier aufgeführt: (http://social.technet.microsoft.com/wiki/contents/articles/15776.exchange-server-2013-and-cumulative-updates-cus-build-numbers.aspx ) Mit diesem Statement kann die Version des Exchangeservers ermittelt werden (PowerShell)

GCM exsetup |%{$_.Fileversioninfo}

Alternativ können alle Server abgefragt werden:

Get-ExchangeServer | Sort-Object Name | ForEach{ Invoke-Command -ComputerName $_.Name -ScriptBlock { Get-Command ExSetup.exe | ForEach{$_.FileVersionInfo } } } | Format-Table -Auto

 

Exchange 2010 Out of Office / MailboxAutoReplyConfiguration

In Exchange 2010 gibt es nun die Möglichkeit, den Abwesenheitsassistenten (OOF Out of Office) zentral zu steuern. Das ist sehr hilfreich, wenn man sich nicht Vollzugriff auf das Benutzerpostfach aneigenen möchte – nur um den Abwesenheitsassistenten zu aktivieren.
Damit das auch durch den Helpdesk bedient werden kann, habe ich da mal eine GUI außen herum gebastelt….
Matthias

Exchange 2010 SP1 Auto Shared Postfach Mapping

Aus der Exchange 2010 EMC kann auf ein Postach relativ einfach das Recht Full Access gesetzt werden (Manage Full Access Permissions). Durch verwenden der Konsole wird in diesem Postfach das Attribut 

msExchDelegateListLink

mit dem DistinguishedNamen des Berechtigen Users gefüllt. Damit wird dem User beim Starten seines Outlooks automatisch dieses Postfach hinzugemappt, auf dem er Vollzugriff hat.

Feine Sache – wenn man es möchte. Durch entfernen des DN in diesem Attribut kann man steuern, ob das Postfach automatisch gemappt werden soll.

Steve Goodman hat auch einen ausführlichen Artikel dazu geschrieben.

Exchange 2010 SP1 Mailbox Move Statistics

Das Attribut „BytesTransferredPerMinute“ ist nur während eines Moves/Export gefüllt. Nach erfolgreichen Move/Export ist das Attribute wieder leer. Eine Statistic über die Performance der bereits verschobenen Mailboxen würde mich aber schon interessieren um daraus Rückschlüsse für weitere Move/Export-Requests ziehen zu können.

Ich habe mir dazu ein Script geschrieben, welches den Wert berechnet (Es kann natürlich beliebig erweitert werden):

Function Get-MailboxMoveStatistics {

$Requests = Get-MoveRequest|get-MoveRequestStatistics 
foreach($Request in $Requests ) {

$MBXSize  = $Request.BytesTransferred
$Duration = $Request.OverallDuration        
#-> Bei Werten kleiner 1 MB ist das Ergebnis immer 0. Deshalb neuer Ansatz
#     $MBAvg = $MBXSize.ToMB() / $Duration.TotalMinutes          
$MBAvg = ($MBXSize.ToBytes() / $Duration.TotalMinutes) / 1MB

New-Object PSObject -Property @{

Alias = $Request.Alias
MBXSize = $Request.BytesTransferred
OverallDuration = $Request.OverallDuration
„MBTransferredPerMinute“ = „{0:n2}“ -f $MBAvg   

         
}

}

}

Exchange 2010 Datenbankstatistik und Datenbank Größe ermitteln

Damit können die Größen der Datenbanken ermittelt werden. Wenn ein vordefiniertes Limit erreicht ist, dann wird ein Eventlog geschrieben, dass eine weitere Datenbank nötig ist.

Function Get-DatabaseStatistics { 
     $Databases = Get-MailboxDatabase -Status
     $Result = „“

     foreach($Database in $Databases) { 
         $DBSize = $Database.DatabaseSize 
         $MBCount = (Get-Mailbox -Database $Database.Name).Count 
         $MBAvg = $DBSize.ToBytes() / $MBCount            

 $Result += „Server`t`t`t: “ + $Database.Server.Name+[char]13+[char]10
 $Result += „Databasename`t`t: “ + $Database.Name+[char]13+[char]10
 $Result += „MailboxCount`t`t: “ + $MBCount +[char]13+[char]10
 $Result += „DatabaseSize (GB)`t`t: “ + „{0:n2}“ -f ($DBSize.ToBytes() / 1GB)  +[char]13+[char]10
 $Result += „WhiteSpace (MB)`t`t: “ + „{0:n2}“ -f ($Database.AvailableNewMailboxSpace.ToBytes() / 1MB)  +[char]13+[char]10
 $Result += „AverageMailboxSize (MB)`t: “ + „{0:n2}“ -f ($MBAvg / 1MB)  +[char]13+[char]10
 $Result += „LastFullBackup`t`t: “ + $Database.LastFullBackup        +[char]13+[char]10

 $result +=  [char]13+[char]10

     } 
     return $Result

 } 
  
Function Get-DBSize($SITE){
 $Faktor        = 1GB      # Darstellung in MB oder GB….
 $MaxDBSize     = (100 * $Faktor)    # Maximale Größe der Datenbank in MB oder GB je nach Faktor, Default 100 xB….
 $HighWaterMark = ($MaxDBSize * 0.8 / $Faktor)   # Ab wann soll gewarnt werden (80% default)
 $DBCounter     = 0
 $lNewDB=$TRUE
 $Result = „“
 
 $MaxDBSize     = (100 * $Faktor)/$Faktor

 
 #Sucht nur ZDx Datenbanken
 ForEach($Database in Get-MailboxDatabase ZD* -Status|Sort-Object Name)
 { $DBCounter = $DBCounter +1
  $DBSize        = ($Database.DatabaseSize.ToBytes() / $Faktor)
  # Passt in diese Datenbank noch eine Mailbox rein?
  
  write-host $Database.Name
  write-host $DBSize
  write-host $HighWaterMark
  if ($DBSize -lt $HighWaterMark)
  {              
   $lNewDB = $False   
   # Wenn noch eine reinpasst, dann muss keine NewDB angelegt werden ($False)
   break     
   # Schleife kann nun schon beendet werden
  }
 }
 # das neue Postfach hat in keine DB reingepasst, also muss eine neue DB angelegt werden
 if ($lNewDB -eq $True) {
  $Help= „Alle {2} -Datenbanken sind zu mehr als {0} % belegt. Maximale Datenbankgröße {1:n2} MB. Neue {2} -Datenbank wird benötigt.“ -f $HighWaterMark, $MaxDBSize, $Site
#write-host $Help
write-eventlog -logname Application -source „MSExchangeStatistic“ -eventID 997 -entrytype Warning -message $help

 }
}
Function SendMail($MessageBody){

 $emailFrom = From@domain.de
 $emailTo = Empfaenger@domain.de
 $subject = „Database Statistics“
 $body = $MessageBody
 $smtpServer = „Mailserver.domain.de“
 $smtp = new-object Net.Mail.SmtpClient($smtpServer)
 $smtp.Send($emailFrom, $emailTo, $subject, $body)
}

########################################################################################################################

$result = Get-DatabaseStatistics
write-eventlog -logname Application -source „MSExchangeStatistic“ -eventID 998 -entrytype Information -message $result
SendMail($result)

Get-DBSize(„ZD“)
Get-DBSize(„VB“)

 exit

Exchange 2010 MailTipsExternal und Group Metrics

Get-OrganizationConfig |fl *tips*
MailTipsExternalRecipientsTipsEnabled : False
MailTipsLargeAudienceThreshold        : 25
MailTipsMailboxSourcedTipsEnabled     : True
MailTipsGroupMetricsEnabled           : True
MailTipsAllTipsEnabled                : True

Um die GroupMetrics wird benötigt, um die Anzahl der Mitglieder in einer Mailgruppe zu ermitteln. Um keine Online-Abfrage der Gruppenmitglieder machen zu müssen, wird jeden Tag um xx:xx Uhr die Liste der Gruppenmitglieder neu generiert. Dazu muss der MBX-Server konfiguriert werden:

Set-MailboxServer EXCH2010-SRV1 -GroupMetricsGenerationEnabled:$true

Der Dienst „Microsoft Exchange Service Host“ ist dafür verantwortlich. Er kopiert das Ergebnis auf den/die CAS Server in das Verzeichnis %ProgramFiles%\Miccrosoft\Exchange Server\V14\ClientAccess\GroupMetrics.

Wenn man einem User das Recht genommen hat, an einen Empfänger Mails zu senden, erscheint dies ebenfalls als MailTips Meldung.
(Set-Mailbox UaserA -RejectMessageFromSendersOrMembers UserB bedeutet, dass UserB keine Mails mehr an UserA senden darf.)

Zusätzlich kann man sich selbst auch Custom MailTips erstellen:

(mit Set-Mailbox und Set-DistributionGroup)

Set-Mailbox UserB –Mailtip “Sind Sie sicher, dass sie mir eine Mail senden müssen ? :-)”

Exchange 2010 Relay für Anonyme Sender/Empfänger einrichten

Damit der durch die GUI angelegte Receive Connector auch wirklich nach extern relay macht, muss ein Recht „Accept any recipient“ am Connector hinzugefügt werden. Das geht nicht mittels GUI, sondern entweder mit ADSIEdit.msc (u.a. siehe hier: „Exchange 2007 Receive Connector Authentication“ ) oder  mit dem Powershellbefehl:

Get-ReceiveConnector „Anonymous Relay“ | Add-ADPermission -User „NT AUTHORITY\ANONYMOUS LOGON“ -ExtendedRights „Ms-Exch-SMTP-Accept-Any-Recipient“

Update: 2012.06.28: Oder in den Sicherheitseinstellungen des Anonymous-Relay-Receive-Connectors den Punkt „Submit Messages to any Recipients“ auf Allow setzen.

Update: 2012.09.28: in Deutsch:  „NT-AUTORITÄT\ANONYMOUS-ANMELDUNG“

Exchange 2010 mit Outlook 2003 Ordneransicht wird nicht aktualisiert

Die UDP Registrierung zwischen Exchange 2010 und Outlook 2003 wird nicht mehr unterstützt, so dass der Client auf sein Polling Verfahren zurück fällt. Das kann bis zu 1 Minute dauern. So lange wird die Ansicht in Outlook nicht aktualisiert.
Lösunge 1.) Outlook im Cached Mode verwenden, Lösung 2.) Die Pollzeit etwas heruntersetzen (Artikel von MS: http://support.microsoft.com/kb/2009942/en-us)

Exchange 2010 mit Outlook vor Version 2007 / RPC Verschlüsselung

Bei der Migration nach Exchange 2010 kann es bei älteren Outlook Clients zu Verbindungsproblemen kommen. Das liegt dann u.U. daran, dass die Verbindung über RPC vom CAS Server verschlüsselt angefordert wird, das per Default nicht aktiviert ist.
Es gibt mehrere Lösungsansätze, der schnellste Weg ist einfach die Verschlüsselungsanforderung auf allen CAS Serven zu deaktivieren.

Set-RpcClientAccess –Server –EncryptionRequired $False

Weitere Infos hier: http://support.microsoft.com/kb/2006508/en-us