Kategorie Exchange Server 2010

Exchange / IIS Log-Dateien regelmäßig löschen

Die Exchange Server und IIS Log-Dateien nehmen sehr schnell extreme Größen an. Daher ist es sinnvoll diese regelmäßig zu löschen. Hierfür habe ich ein Script geschrieben, dass alle Log-Dateien löscht, die älter als 3 Tage sind.

Get-ChildItem -Path "C:\Program Files\Microsoft\Exchange Server\V15\Logging" -Recurse *.log -force  | where {$_.lastwritetime -lt (get-date).adddays(-3)} | Remove-Item -force
Get-ChildItem -Path "C:\Program Files\Microsoft\Exchange Server\V15\TransportRoles\Logs" -Recurse *.log -force  | where {$_.lastwritetime -lt (get-date).adddays(-3)} | Remove-Item -force
Get-ChildItem -Path "E:\Logs IIS" -Recurse *.log -force  | where {$_.lastwritetime -lt (get-date).adddays(-3)} | Remove-Item -force

Die erste beiden Zeilen geben den Pfad und das Dateialter für die Exchange 2013 Log-Dateien an. Die dritte Zeile tut das gleiche für die ISS Log-Dateien, die bei mir in einem benutzerdefinierten Pfad liegen.

Dieses Script kann man dann täglich mit dem Aufgabenplaner ausführen und somit den Speicherplatz für Log-Dateien minimal halten.

von Manuel M. 6. Februar 2015 @ 14:03

Exchange Server 2003 – Migration der Adresslisten auf Exchange 2010

Damit die Exchange Adresslisten kompatibel mit der neuen Exchange Server Version sind, müssen die Recipient Filter angepasst werden:

Alle Benutzer

Set-AddressList “Alle Benutzer” –IncludedRecipients MailboxUsers

v

Alle Gruppen

Set-AddressList “Alle Gruppen” –IncludedRecipients Mailgroups

Alle Kontakte

Set-AddressList “Alle Kontakte” –IncludedRecipients MailContacts

Globale Standardadressliste

Set-GlobalAddressList "Globale Standardadressliste" -RecipientFilter {(Alias -ne $null -and (ObjectClass -eq 'user' -or ObjectClass -eq 'contact' -or ObjectClass -eq 'msExchSystemMailbox' -or ObjectClass -eq 'msExchDynamicDistributionList' -or ObjectClass -eq 'group' -or ObjectClass -eq 'publicFolder'))}

Öffentliche Ordner Adressliste

Folgende Befehl, der in vielen Anleitungen vorkommt, funktioniert nicht:

Set-AddressList -Name “Public Folder” -RecipientFilter {(RecipientType -eq ‘PublicFolder’)} 

Stattdessen sollte dieser Befehl verwendet werden:

Set-AddressList "Öffentliche Ordner" -RecipientFilter {Alias -ne $null -and ObjectCategory -like 'publicFolder'}
von Manuel M. 29. Oktober 2014 @ 22:28

Exchange Server 2003 – Migration der Hub-Transport Rolle auf Exchange 2010

Bei einer Exchange Server 2003 Migratione auf Exchange Server 2010 gab es Probleme bei der Migration der Hub-Transport Rolle. Daher nehme ich das zum Anlass eine Anleitung zu schreiben.

Routing Group Connector

Wenn die Exchange Server 2010 Installation feststellt das eine alte Exchange 2003 Organisation existiert, wird automatisch ein Routing Group Connector erstellt, der das Routing der E-Mails zwischen den verschiedenen Exchange Server Versionen ermöglicht. Sollte dies nicht automatisch geschehen, kann dies wie folgt gemacht werden:

New-RoutingGroupConnector -Name "Migrations Connector" -SourceTransportServers "exchange2003.contoso.com" -TargetTransportServers "exchange2010.contoso.com" -Cost 10 -Bidirectional $true

Mit diesem Befehl werden zwei Connectoren erstellt. Dies geschieht durch den Paramter „BiDirectional“. Einmal in die eine und einmal in die andere Richtung.

Empfangs Connector

Damit die Exchange 2003 Organisation E-Mails über den eben erstellten Routing Group Connector senden kann, muss ein passender Empfangs Connector erstellt werden. Dieser wird bvei der Installation automatisch angelegt. Es sollte ein zusätzlicher Connector erstellt werden, der die IP Adresse der alten Exchange Server 2003 beinhaltet und das Recht „Anonym“ erhält.

New-ReceiveConnector -Name "Exchange 2003" -Usage Custom -PermissionGroups AnonymousUsers -Bindings "IP des Exchange 2010 Servers:25" -RemoteIpRanges "Exchange Server 2003 IP"

Probleme beim Routing von Exchange 2003 zu Exchange 2010

Wenn die Warteschlagen zum Exchange 2010 Server nicht abgearbeitet werden, sollte überprüft werden, ob der virtuelle SMPT-Connector einen globalen Smarthost benutzt:

exchange 2003 v smtp smart host

Hier sollte nichts konfiguriert sein. Danach sollte das Routing funktionieren.

von Manuel M. 29. Oktober 2014 @ 21:46

Öffentliche Ordner migrieren

Um die Öffentlichen Ordner auf einen neuen Server zu verschieben, bzw. die Replikate auf den neuen Servern zusätzlich vorzuhalten, kann man die Exchange Scripte benutzen. Diese liegen auf C:\Program Files\Microsoft\Exchange Server\V14\Scripts

Öffentliche Ordner – Replikationen hinzufügen

Um einen neuen Server zusätzlich zu den alten Servern in der Replikation einzutragen:

Öffentliche Ordner

.\AddReplicaToPFRecursive.ps1 -TopPublicFolder "\" -ServerToAdd "Neuer Exchange Server"

System Ordner

.\AddReplicaToPFRecursive.ps1 -TopPublicFolder "\NON_IPM_Subtree" -ServerToAdd "Neuer Exchange Server"

Öffentliche Ordner – Replikationen verschieben

Um die Repplikationen auf den neuen Server zu verschieben und von dem alten Server zu entfernen:

.\MoveAllReplicas.ps1 -Server "Alter Server" -NewServer "Neuer Exchange Server"
von Manuel M. 29. Oktober 2014 @ 21:34

Active Directory – Adressliste generieren

Mit der Powershell kann man sehr einfach, auf Grundlage des Active Directorys, eine Adressliste des Unternehmens generieren. Im folgendem Beispiel werden die Spalten Name, Abteilung, Telefonnummer, Mobiltelefonnummer und E-Mail Adresse ausgelesen, die Mitarbeiter nach Namen sortiert und anschließend als CSV exportiert.

Powershell Beispiel

get-aduser -SearchBase 'ou=Mitarbeiter,Dc=domain,DC=local' -filter 'objectClass -eq "user"' -Properties * | Sort-Object surname | Select-Object name, department, officephone, mobilephone, emailaddress | Export-Csv adressliste.csv

Ergebnis

Active Directory - Adressliste export

von Manuel M. 7. Mai 2014 @ 16:15

Lync Server 2013 – Integration in Outlook WebApp

Der Lync Server 2013 kann in die Outlook WebApp integriert werden. So ist es möglich, nach der Anmeldung in Outlook WebApp, auch Instand Messaging zu nutzen oder seine Kontakte zu verwalten. Dieser Weg funktioniert zwischen Lync 2013 und Exchange 2013 nicht mehr. Hier wurdedas Design grundlegend geändert.

Exchange Server 2010

Vorraussetzungen

Für Lync 2013 steht kein eigenständiger WebServiceProvider zur Verfügung. Daher muss der Vorgänger des OCS 2007 R2 verwendet werden. Dieser wird auch offiziell von Microsoft supportet.

Auf den Exchange CAS Servern müssen einige Pakete/Updates nachinstalliert werden, um die Integration zu unterstützen.

Lync Server 2013

Vertrauenswürdiger Applikations Pool

Damit der Exchange Server mit dem Lync Server „reden“ darf, muss ein Vertrauensverhältnis aufgebaut werden. Hier müssen alle Exchange 2010 CAS Server definiert und der externe Outlook WebApp FQDN konfiguriert werden.

New-CsTrustedApplicationPool -Identity Name.local -ThrottleAsServer $true -TreatAsAuthenticated $true -ComputerFQDN ExchangeServerCAS.local -Site Berlin -Registrar LyncPoolFQDN.local -RequiresReplication $false

Vertrauenswürdige Applikation

Jetzt wird die eigentliche Applikation in ein Vertrauensverhältnis gebracht.

New-CsTrustedApplication -ApplicationId OutlookWebApp -TrustedApplicationPoolFqdn ExchangeServerCAS.local -Port 4789

Topologie für Vertrauensverhältnisse

Nun können die eben getätigten Vertrauensverhältnisse aktiviert werden.

Enable-CsTopology

Konfiguration – Exchange Server 2010

Outlook WebApp – Virtuelles IIS Verzeichnis

Zertifikat

Damit keine erneute Authentifizierung nötig wird muss das Zertifikat, dass auf dem virtuellen OWA Verzeichnis liegt, definiert werden. Dazu muss man die ID auslesen:

Get-ExchangeCertificate | fl serial*,subject,issuer

Zertifikat festlegen

Get-OwaVirtualDirectory -server ServerName | Set-OwaVirtualDirectory -InstantMessagingCertificateThumbprint "Zertifikats ID"

Dies muss für jeden Exchange CAS Server getätigt werden.

Lync Server 2013 angeben

Jetzt muss dem Exchange Server mitgeteilt werden, welchen Pool er für die Integration von Lync benutzten soll.

Get-OwaVirtualDirectory | Set-OwaVirtualDirectory -InstantMessagingServerName LyncPoolFQDN

Instand Messaging Typ definieren

Es kann z.B. auch ein externe MSN oder Yahoo Server definiert werden. Wir integrieren natürlich unseren Lync Server 2013.

Get-OwaVirtualDirectory | Set-OwaVirtualDirectory -InstantMessagingType OCS

Instand Messanging Policy aktivieren

Set-OwaMailboxPolicy -Identity Hypoport -InstantMessagingType OCS

Pfad zur UCWeb.dll anpassen

Durch die Installation des OCS WebServiceProvider wurden alle nötigen Bibliotheken installiert. Die UCWeb.dll muss registriert werden.

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\MSExchange OWA\InstantMessaging\ImplementationDllPath"="C:\\Program Files\\Microsoft\\Exchange Server\\V14\\ClientAccess\\Owa\\Bin\\Microsoft.Rtc.UCWeb.dll"

Instand Messaging aktivieren

Get-OwaVirtualDirectory | Set-OwaVirtualDirectory -InstantMessagingEnabled $true
von Manuel M. 20. Mai 2013 @ 11:21

Lync 2013 – AutoDiscover und EWS

Lync AutoDiscover und Exchange AutoDiscover müssen von intern und extern richtig konfiguriert sein, damit der Lync 2013 Client alles automatisch konfigurieren kann.

Lync 2013 Client – Lync Autodiscover

Der Lync 2013 Client fragt folgende DNS Records in dieser Reihenfolge ab, um den Lync Server 2013 automatisch einzurichten:

  • lyncdiscover.domain.de Externer AutoDiscover Dienst
  • _sipinternaltls._tcp.domain.de Interne TLS Verbindungen
  • _sipinternal._tcp.domain.de Interne TCP Verbindungen
  • _sip._tls.domain.de Externe TLS Verbindungen
  • sipinternal.domain.de Interner Frontend Pool
  • sip.domain.de Interner Frontend Pool oder externe Edge Server
  • sipexternal.domain.de Externe Edge Server

Lync 2013 Client – Exchange Autodiscover

Der Lync 2013 Client fragt folgende DNS Records in dieser Reihenfolge ab, um Exchange EWS automatisch einzurichten:

  • autodiscover.primäre-exchange-smtp-domain-des-benutzers.de

Lync 2013 Client – Autodiscover Abfrage Fehler

Wenn der DNS A Record für die primäre Exchange SMTP Domain nicht gesetzt ist, kommt folgendes Login-Fenster:

asdasdasdasd

Lync 2013 Client – Autodiscover Fehler im Traffic

Im Netzwerk Traffic sieht man gut wie die Abfrage verläuft:

90ß90ß

Lync 2013 Client – Konfiguration

Danach sollten die Konfigurationinformationen so aussehen:

asd

DNS Splitting

Es empfiehlt sich auf jeden Fall teilweise DNS Splitting zu betreiben.

  • _tcp.sipdomain.de DNS Zone erstellen und SRV Record (_sipinternaltls._tcp.sipdomain.de, _sipinternal._tcp.sipdomain.de, _sip._tcp.sipdomain.de) erstellen auf internen Pool weiterleiten
  • sip.sipdomain.de DNS Zone erstellen und A Record auf internen Pool anlegen
  • lyncdiscoverinternal.sipdomain.de DNS Zone erstellen und A Record auf internen Pool anlegen

Zertifikatswarnungen

Wenn man verschiedene Namespaces hat, wie z.B. domain.local und domain.de, wird eine Zertifikatswernung angezeigt. Die kann man mit diesem Registry Key umgehen:

HKEY_CURRENT_USER\SOFTWARE\Policies\Microsoft\Office\15.0\Lync\TrustModelData

TrustModelData muss in dem Fall den Wert domain.local erhalten, wenn das Zertifikat domain.local ausgestellt ist und die SIP Domäne domain.de heißt.

von Manuel M. 26. April 2013 @ 21:06

Lync 2013 – Exchange Server 2010 – EWS Probleme

Im Lync Client kann man kontrollieren, ob die EWS Verbindung zum Exchange erfolgreich hergestellt wurde:

asd

Bei diesem Beispiel war die Verbindung Fehlerhaft.

Problemlösung

Es muss eine neue DNS-Zone erstellt und zwei SRV Records angelegt werden. Diese Zone muss den Namen der externe Domäne haben.

Zonen-Namen: _tcp.hypoport.de

1. SRV Record: _autodiscover._tcp 0 0 443 fqdn des internen Exchange Client Access Server oder Array
2. SRV Record: _sipinternaltls._tcp 0 0 5061 fqdn des internen Lync FrontEnd Servers

von Manuel M. 7. März 2013 @ 23:11

Exchange Server 2010 – Throttling Policy Tutorial und iOS Bug in 6.1.1

Die Throttling Policy wacht über die Verbindungen eines Benutzers zum Exchange Server und erkennt Unregelmäßigkeiten. Wenn beispielsweise ein Postfach angegriffen wird und Unmengen an Last erzeugt werden soll, wird diese Verbindung von der Throttling Policy ausgebremst und beendet. Im Regelfall sorgt sie aber dafür, dass alle Benutzer eine stabile und schnelle Verbindung erhalten und niemand auf Kosten anderer, Ressourcen bindet.

Apple Iphone Bug in iOS 6.1.1

Ein Bug in iOS verursacht eine Schleife beim Synchronisieren von Kalendereinträgen und Einladungen. Bis Apple ein Update herausbringt, sollte man folgende Einstellungen ausrollen:

Fix

Set-ThrottlingPolicy -EASPercentTimeInCAS 10 -EASPercentTimeInMailboxRPC 10 -EASPercentTimeInAD 10

Offizielle Informationen von Microsoft: http://support.microsoft.com/kb/2814847

Exchange Server 2010 – Throttling Policy Konfigurations Möglichkeiten

Throttling Policy – Active Sync

Name Standard Beschreibung
EASMaxDevices 10 Max Anzahl angebundener Smartphones/Tablets eines Benutzers
EASMaxConcurrency 10 Max Anzahl gleichzeitiger Verbindungen zu Smartphones/Tablets
EASMaxDeviceDeletesPerMonth NULL Max Anzahl gelöschter Smartphones/Tablets im Monat
EASPercentTimeInAD NULL Prozentuale Anzahl an LDAP Anfragen aller Verbindungen
EASPercentTimeInCAS NULL Prozentuale Anzahl an Client Access Anfragen aller Verbindungen
EASPercentTimeInMailboxRPC NULL Prozentuale Anzahl an RPC Anfragen aller Verbindungen

Throttling Policy – Outlook WebApp

Name Standard Beschreibung
OWAMaxConcurrency 5 Max Anzahl geöffneter Outlook WebApp Sitzungen
OWAPercentTimeInAD 30 Prozentuale Anzahl an LDAP Anfragen aller Verbindungen
OWAPercentTimeInCAS 150 Prozentuale Anzahl an Client Access Anfragen aller Verbindungen
OWAPercentTimeInMailboxRPC 150 Prozentuale Anzahl an RPC Anfragen aller Verbindungen

Throttling Policy – RPC

Name Standard Beschreibung
RCAMaxConcurrency 20 Max Anzahl gleichzeitiger Verbindungen zum Exchange Server per Benutzer
RCAPercentTimeInAD 50 Prozentuale Anzahl an LDAP Anfragen aller Verbindungen
RCAPercentTimeInCAS 205 Prozentuale Anzahl an Client Access Anfragen aller Verbindungen
RCAPercentTimeInMailboxRPC 200 Prozentuale Anzahl an RPC Anfragen aller Verbindungen

Throttling Policy – Allgemein

Name Standard Beschreibung
MessageRateLimit NULL Max Anzahl der E-Mails die ein Benutzer innerhalb von 24 Stunden verschicken kann

RecipientRateLimit NULL Max Anzahl von Empfängern innerhalb von 24 Stunden, die von diesem Benutzer angeschrieben werden können

ForwardeeLimit NULL Max Anzahl an Weiterleitungen von E-Mails innerhalb von 24 Stunden

Throttling Policy – Exchange Web Service

Name Standard Beschreibung
EWSMaxConcurrency 10 Max Anzahl gleichzeitiger Verbindungen eines Benutzers
EWSMaxSubscription 5000
EWSFindCountLimit 1000
EWSfastSearchTimeoutInSeconds 60
EWSPercentTimeInAD 50 Prozentuale Anzahl an LDAP Anfragen aller Verbindungen
EWSPercentTimeInCAS 90 Prozentuale Anzahl an Client Access Anfragen aller Verbindungen
EWSPercentTimeInMailboxRPC 60 Prozentuale Anzahl an RPC Anfragen aller Verbindungen

Throttling Policy – Blackberry Enterprise Server

Der Blackberry Server führt alle Syncronisationen unter seinem eigenen Benutzer aus. Dieser Benutzer syncronisiert daher alle Postfächer von den Benutzern und trifft regelmäßig an die Grenzen der Standard Throttling Policy. Darum muss für diesen Account eine eigene Policy erstellt werden, die keine Einschränkungen hat.

Throttling Policy – Blackberry Enterprise Server – Konfiguration

New-ThrottlingPolicy BES
Set-ThrottlingPolicy BES -RCAMaxConcurrency $null -RCAPercentTimeInAD $null -RCAPercentTimeInCAS $null -RCAPercentTimeInMailboxRPC $null -EWSMaxConcurrency $null -EWSPercentTimeInAD $null -EWSPercentTimeInCAS $null -EWSPercentTimeInMailboxRPC $null -EWSMaxSubscriptions $null -EWSFastSearchTimeoutInSeconds $null -EWSFindCountLimit $null
Set-Mailbox "BESAdmin" -ThrottlingPolicy BES
von Manuel M. 18. Februar 2013 @ 21:41

Exchange Server 2010 – Öffentliche Ordner – Zombie User entfernen

Wenn ein Benutzer vollständig gelöscht oder nur die Mailbox gelöscht wird, erscheint dieser als „NT User:xxxxxxxxxxxxxxxxxxxxxxxxxx“ in den Berechtigungen des Öffentliches Ordners. Diese Berechtigungen sind eigentlich nicht per Exchange Console oder Powershell entfernbar und verbleiben an dem Ordner. Mit ExFolders kann man diese händisch löschen, was aber sehr viel manueller Aufwand bedeutet. Ich habe ein Script geschrieben, dass diese Zombie Benutzer löschen kann:

Get-PublicFolder "\" -recurse -resultsize unlimited | Get-PublicFolderClientPermission | Where { $_.User.ToString().Contains("NT User:") -eq $true } | Remove-PublicFolderClientPermission -confirm:$false

Es werden alle Zombie User gelöscht, die Berechtigungen in der gesammten öffentlichen Ordner Struktur hatten.

von Manuel M. 15. Februar 2013 @ 16:34
  • RSS
  • manuel m. on E-Mail
  • manuel m. on Faceboo
  • manuel m. on Google+