woensdag 16 juli 2014

PowerShell Oneliner: Wanneer was de laatste backup van de Exchange mailbox databases?

Vraag de mailbox databases op met de -Status parameter, anders zijn properties als LastFullBackup leeg. Sorteer deze in omgekeerde volgorde en geef ze weer in een tabel:

Get-MailboxDatabase -Status | sort lastfullbackup -Descending | ft name,lastfullbackup

dinsdag 1 juli 2014

Nieuwe rollup update voor Forefront TMG

In de media lijkt TMG wel eens gone and forgotten maar in werkelijkheid maken zeer veel organisaties er nog gebruik van. Voor hen is het goed om te weten dat de TMG SP2 Update Rollup 5 is uitgebracht.

De volgende isseus zijn onder andere opgelost:

2963805 FIX: Account lockout alerts are not logged after you install Rollup 4 for TMG 2010 SP2
2963811 FIX: The TMG Firewall service (wspsrv.exe) may crash when the DiffServ filter is enabled
2963823 FIX: "1413 Invalid Index" after you enable cookie sharing across array members
2963834 FIX: HTTPS traffic may not be inspected when a user accesses a site
2967726 FIX: New connections are not accepted on a specific web proxy or web listener in Threat Management Gateway 2010
2965004

FIX: EnableSharedCookie option doesn't work if the Forefront TMG service runs under a specific account

2932469

FIX: An incorrect value is used for IPsec Main Mode key lifetime in Threat Management Gateway 2010

2966284

FIX: A zero value is always returned when an average counter of the "Forefront TMG Web Proxy" object is queried from the .NET Framework

2967763

FIX: The "Const SE_VPS_VALUE = 2" setting does not work for users if the UPN is not associated with a real domain

2973749

FIX: HTTP Connectivity verifiers return unexpected failures in TMG 2010

De rollup is uitgebracht als een aan te vragen hotfix, dat doe je hier. Zorg wel dat je Forefront TMG SP2 al geïnstalleerd hebt, dat is een vereiste.

woensdag 11 juni 2014

Het mailbox type aanpassen in Exchange en Office 365

In Exchange 2003 kenden we eigenlijk maar één type mailbox. Toch worden mailboxen heel verschillend gebruikt, door één persoon of meerdere, om mail of contacten op te slaan of juist om iets te reserveren. Tegenwoordig kennen we een aantal soorten mailboxen, bijvoorbeeld Shared, Room, Equipment of de gewone User mailbox.

In Office 365 heeft een Shared mailbox nog een voordeel, je hoeft hier namelijk geen licentie voor aan te schaffen. Dit heeft ook een aantal beperkingen, zo is deze beperkt tot 10 GB grootte en kun je er niet mee aanmelden, dat betekent dus ook dat je hem niet kunt benaderen met Exchange ActiveSync.

Om die redenen wil je soms een mailbox omzetten van het ene naar het andere type. Dat kan gelukkig eenvoudig met het Set-Mailbox cmdlet. Bijvoorbeeld:

Set-Mailbox GedeeldeMailbox -Type Regular

Hiermee hebben we een mailbox omgezet naar een normale mailbox. Andere geldige waardes voor -Type zijn Room, Equipment en Shared.

Meer informatie:

Exchange 2013 Recipients
Set-Mailbox

donderdag 5 juni 2014

Your message wasn't delivered due to a permission or security issue.

Bij het zenden van een mail aan een Distributiegroep (DG) kan het zijn dat je een NDR krijgt met de volgende foutomschrijving:

Your message wasn't delivered due to a permission or security issue. It may have been rejected by a moderator, the address may only accept email from certain senders, or another restriction may be preventing delivery.

image

Dit overkwam mij vandaag toen ik een testmailtje naar een net aangemaakt DG stuurde van een extern mailadres. De verklaring is simpel, standaard mag er alleen naar een DG gemaild worden door interne gebruikers. Je kunt dit in het EAC zien bij de eigenschappen van de DG onder bezorgingsbeheer:

image

De omschrijving bij de radio-buttons is heel gebruikersvriendelijk. De technische uitleg is dat we hiermee aangeven of authenticatie vereist is of ook niet-geauthoriseerde gebruikers aan deze groep mogen mailen. Dat blijkt ook uit het PowerShell cmdlet waarmee je dit in kunt stellen:

Set-DistributionGroup werkenbij@imara-ict.nl -RequireSenderAuthenticationEnabled $false

image

Uiteraard zien we de aangepaste instelling ook terugkomen in EAC:

image

Het is dus een goed idee om hier direct rekening mee te houden bij het aanmaken van de DG. Als je dat vergeet, zoals ik vandaag dus deed, dan levert je dat ongemak, ontevreden gebruikers en extra werk op.

woensdag 4 juni 2014

Exchange 2013 en de pagefile

In mooi Nederlands heet het een wisselbestand. Het is een deel van het werkgeheugen van de server dat weggeschreven wordt in een bestand op schijf. Wanneer de server nu tijdelijk meer werkgeheugen nodig heeft dan er beschikbaar is, dan kan de ruimte in dit bestand gebruikt worden. Maar een goed geconfigureerde server (en applicatie!) heeft de pagefile normaal gesproken helemaal niet nodig.

De aanbeveling voor Exchange 2003 was om dit wisselbestand 1,5 maal de grootte van het werkgeheugen te maken, met een maximum van 4095 MB. Voor Exchange 2007 en hoger is de aanbeveling gelijk aan de grootte van het werkgeheugen + 10 MB. Omdat servers met Exchange tegenwoordig zeer veel werkgeheugen hebben resulteert dit al snel in belachelijk grote bestanden. Daarom is de nieuwe aanbeveling voor Exchange 2013:

Grootte werkgeheugen + 10 MB tot maximaal 32.778 MB (32 GB + 10 MB)

Microsoft durft deze aanbeveling toe doen omdat ze hiermee zelf al langer werken in de eigen datacenters, dat wil zeggen dus met Exchange 2013. Het is de vraag of deze aanbeveling ook voor Exchange 2010 of 2007 gaat gelden, deze vraag heb ik bij Microsoft uitgezet.

Verder nog paar opmerkingen over dit onderwerp. Ten eerste is Exchange 2013 system requirements nog niet aangepast, een formeel statement kun je hier vinden: Ask The Perf Guy: Sizing Guidance Updates For Exchange 2013 SP1.

Verder kan Windows Server bij een BSOD alleen een volledige dump van het werkgeheugen maken als hiervoor een pagefile op het systeemvolume staat van minimaal de grootte van het werkgeheugen + 10 MB. Wanneer jouw server bijvoorbeeld 48 GB werkgeheugen heeft en je pagefile 32.778 MB groot is dan kan de server bij een crash geen volledige dump wegschrijven. Dit heeft tot gevolg dat het lastiger is om de oorzaak van de crash te onderzoeken. Uiteraard is dit argument alleen relevant als je de dumpfile ook daadwerkelijk zou gaan analyseren, maar voor de volledigheid wil ik dit toch even noemen.

Ten slotte, uiteraard stellen we de pagefile in met PowerShell, Hierover schreef ik al eerder: Server 2012: De pagefile configureren met PowerShell

woensdag 28 mei 2014

Exchange 2013 CU5 is uit, wat is nieuw?

Vandaag (28 mei 2013) is de vijfde grote update voor Exchange 2013 uitgekomen. Heb je CU4 gemist? Dat kan goed kloppen, want de vierde update is uitgebracht als SP1. We nummeren toch gewoon door dus hebben het hier over CU5. Een overzicht van Cumulative Updates en Service Packs voor Exchange 2013 tot nu toe:

Release Datum
Exchange 2013 11-10-2012
Exchange 2013 CU1 02-04-2013
Exchange 2013 CU2 09-07-2013
Exchange 2013 CU3 25-11-2013
Exchange 2013 SP1 (CU4) 24-02-2014
Exchange 2013 CU5 28-05-2014

In deze release geen schokkende dingen, behalve dan misschien deze: OAB Improvements in Exchange 2013 Cumulative Update 5. Verder is er een aardige lijst met issues die in CU5 verholpen zijn:

KB Article Description
2963590 Message routing latency if IPv6 is enabled in Exchange Server 2013
2963566 Outlook Web App accessibility improvement for UI appearance in Exchange Server 2013

2962439

You cannot sync contacts or tasks in Microsoft CRM client for Outlook in an Exchange Server 2013 environment
2962435 CRM synchronization fails if the time zone name of a meeting is not set in an Exchange Server 2013 environment
2962434 Slow performance in Outlook Web App when Lync is integrated with Exchange Server 2013

2958430

"Some or all Identity references could not be translated" error when you manage DAG in Exchange Server 2013 SP1 in a disjoint namespace domain
2957592 IME is disabled in Outlook Web App when you press Tab to move the focus in an email message in Exchange Server 2013
2942609 Exchange ActiveSync proxy does not work from Exchange Server 2013 to Exchange Server 2007
2941221 EWS integration for Lync works incorrectly in an Exchange Server 2013 and 2007 coexistence environment
2926742 Plain-text message body is cleared when writing in Outlook Web App by using Internet Explorer 8 in Exchange Server 2013
2926308 Sender's email address is broken after importing a PST file into an Exchange Server 2013 mailbox
2925559 Users always get the FBA page when they access OWA or ECP in Exchange Server 2013
2924519 "SyncHealth\Hub" folder is created unexpectedly after installing Cumulative Update 2 for Exchange Server 2013
2916113 Cannot open .tif files from email messages by using Windows-based applications in an Exchange Server 2013 environment
2592398 Email messages in the Sent Items folder have the same PR_INTERNET_MESSAGE_ID property in an Exchange Server 2010 environment

Twee wil ik er even uitlichten. Als eerste Exchange ActiveSync proxy does not work from Exchange Server 2013 to Exchange Server 2007:

“Assume that you have a coexistence environment that has Microsoft Exchange Server 2007 and Microsoft Exchange Server 2013 configured. An ActiveSync user in the environment has a mailbox that is hosted on Exchange Server 2007. In this situation, when the user accesses the mailbox, the ExchangeActiveSync application pool on the Microsoft Exchange Server 2013 Client Access server crashes frequently. 
Additionally, when the application pool is restarted, high CPU usage occurs on the Microsoft Exchange Server 2007 Client Access server, and then the system becomes unresponsive to user requests for all services on the Exchange Server 2007 host.”

Deze bug maakte het vrijwel onmogelijk om soepel en geleidelijk van Exchange 2007 naar Exchange 2013 te migreren. Iedere keer als de Exchange Mailbox server een ActiveSync request probeert te proxieën naar Exchange 2007 CAS (inderdaad, in dit scenario proxied Exchange 2013 CAS naar Exchange 2013 MB, Exchange 2013 MB proxied naar Exchange 2007 CAS) dan crasht de ExchangeActiveSync application pool. Waardoor het dus voor alle gebruikers, zowel op 2007 als 2013, even niet mogelijk is om te synchroniseren met je device. Fijn dat deze opgelost is!

Een andere storend maar minder ernstig issue is de volgende: Users always get the FBA page when they access OWA or ECP in Exchange Server 2013:

“Assume that you use the following command to enable Integrated Windows Authentication or Basic Authentication: [...] After you do this, FormsAuthentication is displayed as disabled in the Outlook Web Access (OWA) and Exchange Control Panel (ECP) virtual directories. However, clients keep encountering forms-based authentication (FBA) when they try to log on to OWA or ECP.”

Met andere woorden, je zet WIA of Basic Authentication aan en het lijkt er op dat vervolgens FBA uit staat. Toch blijft FBA werken, totdat je het expliciet uitzet. Bij het installeren van een nieuwe CU kwam dit issue opnieuw naar voren en moest je de aanpassing nogmaals doorvoeren.

Verder leert de praktijk dat er veel issues opgelost zijn die niet in bovenstaande lijst staan. Eén die in deze lijst mist maar wel verholpen zou moeten zijn is de volgende.

“Een Nederlandstalige mailbox op Exchange 2007 heeft een agenda met de naam Agenda. Wanneer je deze mailbox naar Exchange 2013 verplaats verschijnt op een bepaald moment een tweede agenda met de naam Kalender. Deze nieuwe agenda is nu actief geworden en de oude, waar alle bestaande afspraken in staan, is nu een extra agenda geworden.”

De oplossing is om dit per mailbox te herstellen:

Ik wacht nog op een bevestiging van Microsoft om zeker te weten dat deze in CU5 verholpen is.

Meer informatie en de download zelf vind je hier:

Cumulative Update 5 for Exchange Server 2013

Download Cumulative Update 5 for Exchange Server 2013 (KB2936880)

Released: Exchange Server 2013 Cumulative Update 5

vrijdag 23 mei 2014

Exchange 2013 Throttling Policy omzeilen

Bij een migratie met 3rd party tools kan Exchange 2013 het verkeer afknijpen vanwege de Throttling Policy, daarmee wordt de doorvoer beperkt en gaat je migratie dus langer duren. Normaal gesproken wil je voorkomen dat een enkele mailbox zeer veel verkeer genereert en hiermee de ervaring voor andere gebruikers zou kunnen beïnvloeden, maar in dit geval wil je hier voor je migratie-account(s) een uitzondering voor maken.

Dat kun je doen door een aangepaste Throttling Policy te maken en deze toe te passen op de migratiemailbox:

New-ThrottlingPolicy MijnPolicy
Set-ThrottlingPolicy MijnPolicy -RCAMaxConcurrency Unlimited -EWSMaxConcurrency Unlimited -EWSMaxSubscriptions Unlimited -CPAMaxConcurrency Unlimited -EwsCutoffBalance Unlimited -EwsMaxBurst Unlimited -EwsRechargeRate Unlimited
Set-Mailbox MigratieAccount -ThrottlingPolicy MijnPolicy

Meer informatie:

Change User Throttling Settings for Specific Users

Server health, monitoring, and performance cmdlets

maandag 19 mei 2014

Veel data in PowerShell? Stop het in een variabele

Even een handigheidje uit de praktijk. In Exchange of Exchange Online vraag je soms lijsten op van alle mailboxen, Public Folders of andere objecten. Afhankelijk van het aantal items en de performance van je omgeving kan het ruimte tijd duren om deze op te vragen. Als je deze data vervolgens meerdere keren wilt gebruiken om bijvoorbeeld statistieken op te vragen of een script voor te bereiden dan is het heel irritant om het commando een tweede keer uit te moeten voeren en vervolgens weer te zitten wachten.

Dan is het hand om de output direct de eerste keer in een variabele op te slaan. Vergelijk:

Get-PublicFolder \ -Recurse -ResultSize Unlimited | measure

En deze:

$pub = Get-PublicFolder \ -Recurse -ResultSize Unlimited
$pub | measure

Beide methoden geven je het aantal Public Folders in de hiërarchie, maar met de tweede optie kun je de $pub variabele nog een keer opvragen en de informatie sorteren, exporteren of doorvoeren naar een ander cmdlet zonder dat de Get-PublicFolder opnieuw uitgevoerd hoeft te worden. Dat scheelt tijd!

Gratis licentie voor de Exchange Hybrid Server? Addertje onder het gras

Voor een hybride migratie naar Office 365 Exchange Online heb je on-premises een Hybrid Server nodig, deze zorgt voor een naadloze samenwerking tussen beide platformen, bijvoorbeeld om mailboxen van en naar Exchange Online te moven en cross-premises free/busy informatie beschikbaar te maken. Hiervoor worden Exchange 2010 SP3 en Exchange 2013 (RTM of SP1) ondersteund. Wanneer je bijvoorbeeld migreert vanaf Exchange 2003 dan zal je een server met Exchange 2010 SP3 toevoegen voor de Hybride functionaliteit omdat Exchange 2013 niet compatible is met 2003, in alle andere gevallen wordt Exchange 2013 SP1 aanbevolen omdat deze veel verbeteringen op het vlak van de hybride setup bevat.

Om die reden zou een organisatie met Exchange 2010 SP3 ook kunnen kiezen om minimaal één server met Exchange 2013 SP1 in te zetten voor dit doel. Vaak wordt aangenomen dat met hiervoor geen licenties hoeft aan te schaffen omdat Microsoft hier een gratis licentiecode voor beschikbaar stelt. Hier zit echter een adder onder het gras: deze is alleen gratis voor organisaties die nog geen gelicentieerde Exchange 2010 SP3 of 2013 server in hun omgeving hebben.

Dus heb je Exchange 2003 of 2007 servers, dan krijg je een gratis licentie voor de toe te voegen Exchange Hybrid Server. Zit je al op Exchange 2010 SP3 of 2013 maar wil je toch aparte Hybrid Servers toevoegen? Dan zal hiervoor een licentie aan moeten schaffen. Afhankelijk van je scenario gaat het dan minimaal om een licentie voor Exchange Server 2013 Standard Edition, in een worst-case scenario ook nog Exchange 2013 Client Access Licenties. Dit geldt natuurlijk niet voor organisaties die met Software Assurance altijd al het recht hebben om de nieuwste versie van de software te gebruiken.

Meer informatie over de voorwaarden en de procedure om de licentiecode aan te vragen: How to obtain an Exchange Hybrid Edition product key for your on-premises Exchange 2007 or Exchange 2003 organization

dinsdag 29 april 2014

Download alle MEC 2014 sessies en presentaties in één keer

MEC 2014 was geweldig! Als je er niet geweest bent dan kun je de opgenomen sessies (alles behalve de Experts Unplugged sessies) en de presentaties downloaden op Channel 9: http://channel9.msdn.com/Events/MEC/2014 Maar ook als je wel geweest bent, zoals ik, dan was er veel meer te zien dan je in die paar dagen kon bijwonen.

Peter Schmidt heeft een bestaand script aangepast waarmee je alles opgenomen sessies en de presentaties kunt downloaden, iets wat ik je van harte aan kan bevelen. Het gaat in totaal om zo’n 20 GB aan data die standaard op C: komt te staan, vergeet dus niet om het standaard pad aan te passen voordat je het script start. Het script vind je hier: http://gallery.technet.microsoft.com/All-Videos-and-Slides-from-2f641dd2

Zelf heb ik al kort na MEC een groot aantal uitgebreide ‘recaps’ langs zien komen waar ik zelf weinig aan toe te voegen heb. Dave Stork kwam tot de zelfde conclusie en maakte in plaats van zijn eigen recap een overzicht van de recaps die anderen als geschreven hebben: MEC 2014 Meta recap. Leesvoer tijdens het wachten tot de MEC sessies gedownload zijn. :)

image

Woord van de dag: recap. :)