Wednesday, December 31, 2014

Nieuwe baan!

Vandaag neem ik afscheid van Imara ICT en kijk ik terug op een ontzettend leuke, leerzame en uitdagende tijd waarin ik samen met Peter Noorderijk mooie successen behaald heb. Als ik nu terugkijk naar de onderneming die we opgebouwd hebben kan ik alleen maar trots zijn. Toch heb ik er voor gekozen om 1 januari 2015 verder te gaan als onafhankelijk consultant onder de naam Mellema ICT B.V., hier kan ik me weer 100% focussen op consultancy op het gebied van Microsoft Messaging en Cloud Computing.

image

Voor de meeste van mijn relaties verandert er niet veel en blijf ik ook in 2015 beschikbaar voor opdrachten, zij het onder een nieuwe naam. Mijn mobiele nummer en postadres blijft gelijk, mijn nieuwe mail- en Lyncadres is jetze@mellema-ict.nl. Overige contactgegevens vind je op www.mellema-ict.nl waar binnenkort een mooie website verschijnt.

Verder wil ik Peter bedanken voor de mooie manier waarop we één en ander geregeld hebben en hem veel succes wensen met het voortzetten van Imara ICT. En natuurlijk wens ik iedereen een goed en succesvol 2015, zakelijk maar vooral privé!

Wednesday, December 10, 2014

UR8 voor Exchange 2010 SP3? Wacht nog maar even

Nadat Microsoft gisteren de nieuwe verzamelupdates voor Exchange 2007, 2010 en 2013 uitbracht is het altijd even spannend. Wie installeer ze als eerste, wie loopt tegen problemen aan?

Op dit moment melden twee afzonderlijke gebruikers op Tweakers.net dat zij een issue zien na installatie van RU8 op Exchange 2010 SP3. Het gaat hierbij om Outlook 2010, niet 2013 en alleen in online mode. Gebruikers zien Outlook vastslaan na het aanmaken van een nieuw item, bijvoorbeeld in de agenda.

In de event logs van de servers word een event gemeld die vergelijkbaar is met deze:

Watson report about to be sent for process id: xxxx, with parameters: E12, c-RTL-AMD64, 14.03.0224.001, M.E.RpcClientAccess.Service, M.E.RpcClientAccess.Handler, M.E.R.H.ViewCache.IsRowWithinUnreadCache, System.IndexOutOfRangeException, 8e38, 14.03.0224.001.
ErrorReportingEnabled: False

Een call is geopend bij Microsoft en ik ben aan het kijken of ik dit issue kan reproduceren. Totdat meer duidelijk is zou ik even wachten met de installatie van de laatst updates... Maar dat advies geef ik eigenlijk iedere keer.

Tuesday, December 9, 2014

Security-update beschikbaar voor Exchange 2007, 2010 en 2013

Microsoft heeft een fix uitgebracht voor Outlook Web App in alle ondersteunde versies van Exchange. Het gaat om vier verschillende issues, drie daarvan komen alleen in Exchange 2013 voor en de vierde ook in Exchange 2007 SP3 en 2010 SP3. In alle gevallen gaat het om beveiligingsproblemen die zijn aangemerkt als Important.

Zoals alle beveiligingsupdates worden ook deze aangeboden via Microsoft Update, maar wie dit voor wil zijn kan ze handmatig downloaden:

Exchange 2007 SP3
Exchange 2010 SP3
Exchange 2013 SP1
Exchange 2013 CU6

Versies die hier niet bij staan worden niet meer ondersteund of zijn niet kwetsbaar. Lees voor meer informatie het security bulletin MS14-075: Vulnerabilities in Microsoft Exchange Server Could Allow Elevation of Privilege (3009712)

Thursday, December 4, 2014

Autodiscover testen met Outlook

Outlook die zijn eigen profiel configureert zonder dat de gebruiker hier iets aan hoeft te doen, en het werkt ook voor ActiveSync! Het kan sinds Exchange 2007 en Outlook 2007, maar Autodiscover heeft van het begin af voor verwarring gezorgd. In dit artikel ga ik niet in over de exacte werking maar laat ik een 'client-side' troubleshooting tool zien die ons zowel de werking van het proces laat zien, als de daadwerkelijke informatie die de client van de Autodiscover Service krijgt.

Je hebt nodig:

  • Outlook 2007 of hoger
  • Een Outlook profiel

Dat Outlook profiel mag een leeg profiel zijn of eentje met nepgegevens, bijvoorbeeld voor POP3 en SMTP.

Zoek het Outlook icoontje in de System Tray, klik er met de rechtermuisknop op terwijl je CRTL ingedrukt houdt. Kies nu Test E-mail AutoConfiguration:

image

Wanneer je als AD gebruiker op een AD member computer ingelogd bent leest Outlook het windowsEmailAddress attribuut uit en vult deze alvast in. In alle andere gevallen vul je je mailadres en wachtwoord in. Haal de vinkjes voor Guessmart weg.

image

Klik nu op Test, waarna Outlook een Autodiscover lookup gaat doen met de hierboven ingevulde gegevens. Afhankelijk van de configuratie kan dit even duren, het is dan ook interessant om tijdens het uitvoeren direct het tabblad Log in de gaten te houden, hier kunnen we de voortgang van het proces volgen:

image

In dit geval gaat het om een Office 365 mailbox waarbij het proces wat complexer is, maar het belangrijkste is dat de laatste regels aangeven dat het proces geslaagd is. Bij een ander resultaat betekent dit dat je de stappen doorleest en na gaat of ze overeenkomen met de wijze waarop je Autodiscover geconfigureerd hebt.

Dan terug naar het tabblad Results, deze geeft het ontvangen resultaat netjes weer maar bevat feitelijk dezelfde informatie als de ruwe XML die we op het derde tabblad kunnen zien.

image

Op deze plek controleren we de daadwerkelijk ontvangen informatie, grotendeels bepaald door wat we als InternalURL en ExternalURL waardes hebben geconfigureerd in Exchange.

Met dit handige hulpmiddel wordt het troubleshooten van Autodiscover een stuk eenvoudiger.

Friday, November 7, 2014

Apple iOS 8.x en issues met vergaderverzoeken

Het was een tijdje rustig op dit front maar in de nieuwste versie van de software voor Apple's iPhone en iPad zit een bug die vergaderverzoeken verminkt. Dit gebeurt wanneer de gebruiker eerst eigenschappen aanpast, zoals het veranderen van de Show As status, aanpassen van de Alert value of het toevoegen van een commentaar voor de organisator, en het verzoek pas daarna accepteert.

In deze gevallen kapt iOS de body van het bericht af na 500 karakters. Zo kan het gebeuren dat HTML of RTF berichten opeens als plain-text weer worden gegeven of dat de url in een invite voor een Lync meeting halverwege afgekapt wordt.

Workarounds:

  • Accepteer het verzoek eerst, pas dan pas de eigenschappen aan
  • Zet het syncen van de agenda uit
  • Stap over op de OWA app voor iPhone/iPad

Meer informatie in het volgende KB-artikel: Known calendaring issues with iOS 8.x devices

Belangrijke security-update voor Exchange

Op 11 november brengt Microsoft een aantal Security Bulletins uit, dit keer gaat het om 16 gemiddelde tot ernstige beveiligingsproblemen waarvoor een fix gemaakt is. Ditmaal zit er ook een security update bij voor alle recente en ondersteunde versies van Exchange: 2007 SP3, 2010 SP3, 2013 SP1 en CU6.

Het issue is geclassificeerd als Important en lost een probleem op waarbij een aanvaller zich rechten zou kunnen verschaffen op een server. Het advies is om Important updates bij de eerstvolgende gelegenheid te installeren. Dan weet je het alvast...

Meer informatie hier: Microsoft Security Bulletin Advance Notification for November 2014

Friday, October 3, 2014

Het Startmenu vervangen door Startscherm in Windows Server Technical Preview

Windows 10 is leuk, maar wij zijn natuurlijk veel meer geïnteresseerd in wat er op servergebied komen gaat. Eén van de dingen die als eerste opvalt is dat het startscherm vervangen is door een startmenu.

image

Gelukkig kun je dat eenvoudig herstellen. Klik met de rechtermuisknop de de taakbalk en kies Properties. Kies voor het tabblad Start Menu en haal het vinkje weg voor de optie Use the Start menu instead of the Start screen:

image

Om deze aanpassing door te voeren moet je uit- en weer inloggen.

Thursday, September 25, 2014

Spamhaus RBL werkt niet met Google DNS

In mijn Exchange 2013 lab heb ik een Edge Transport server geconfigureerd om de Spamhaus Real-time Block List te gebruiken. Door een IP Block List Provider toe te voegen en de Connection Filtering agent in te schakelen test Exchange of de mailserver die een bericht wil afleveren niet op een RBL staat.

Helaas bleek dat bij mij niet te werken, dit werd bevestigd door een test met behulp van de Crynwr Spamhaus test. Raar, want het is een eenvoudige configuratie:

Add-IPBlockListProvider -Name Spamhaus -LookupDomain zen.spamhaus.org

De Connection Filtering transport agent staat standaard ingeschakeld, dat was het probleem dus ook niet. De volgende stap is het handmatig controleren of je een DNS query naar de servers van Spamhaus kunt doen. Dit kun je doen door een IP-adres te kiezen, bijvoorbeeld 127.0.0.2, en hiermee een query te construeren. Zet het IP-adres in omgekeerde volgorde en laat deze eindigen op .zen.spamhaus.org. In dit geval moeten we dus een DNS query doen voor 2.0.0.127.zen.spamhaus.org, het antwoord bevat een code die aangeeft of het IP wel of niet op de blocklist staat. En in dit geval zijn we niet geïnteresseerd in het antwoord maar willen we in eerste instantie controleren of de query überhaupt mogelijk is.

nslookup 2.0.0.127.zen.spamhaus.org

image

In dit voorbeeld gebruik ik een interne DNS-server waarvan ik de naam verborgen heb, maar in mijn lab mislukte deze test. De oorzaak bleek te liggen in de publieke Google DNS servers die ik als forwarder had geconfigureerd, dit zijn de populaire 8.8.8.8 en 8.8.4.4 adressen. Wanneer we dezelfde query uitvoeren tegen één van deze DNS-servers dan mislukt deze:

nslookup 2.0.0.127.zen.spamhaus.org 8.8.8.8

image

Bij nader onderzoek blijkt dat Spamhaus dit ook vermeldt in hun FAQ:

Check what DNS resolvers you are using: If you are using a free "open DNS resolver" service such as the Google Public DNS or large cloud/outsourced public DNS servers, such as Level3's or Verizon's, to resolve your DNSBL requests, in most cases you will receive a "not listed" (NXDOMAIN) reply from Spamhaus' public DNSBL servers. We recommend using your own DNS servers when doing DNSBL queries to Spamhaus.

In andere gevallen kan er natuurlijk een andere oorzaak zijn, maar deze troubelshooting methode kan een eerste stap zijn om te controleren of je de servers van Spamhaus kunt raadplegen.

Bron

Tuesday, September 16, 2014

Exchange 2013 en meerdere OWA/ECP virtual directories

Soms kunnen er redenen zijn om op één Exchange 2013 CAS server meerdere /owa (en bijbehorende /ecp) virtual directories te hebben. Bijvoorbeeld voor één van de volgende scenario's.

Afwijkende authenticatie-instellingen

Interne gebruikers landen voor OWA op de /owa virtual directory op de CAS server. Forms-based Authentication (FBA) is geconfigureerd gebruiksvriendelijk in te kunnen loggen op de webpagina.
Externe gebruikers benaderen OWA via een reverse proxy, bijvoorbeeld een KEMP LoadMaster, Forefront TMG of UAG server.

Gebruikers authenticeren tegen de reverse proxy met een webpagina, de reverse proxy gebruikt deze credentials vervolgens om tegen Exchange te authenticeren. De reverse proxy vereist dat Basic authentication ingeschakeld is op de /owa en /ecp virtual directory.
image

Beheerinterface

Een organisatie vereist dat beheerinterfaces niet vanaf het internet beschikbaar is, intern moeten alle mogelijkheden wel volledig benut worden. Het op de reverse proxy blokkeren van /ecp is geen optie omdat normale gebruikers die virtual directory ook benaderen om hun eigen persoonlijke instellingen te configureren.

Het is mogelijk om toegang tot het beheerdeel, het Exchange Admin Center, uit te schakelen op virtual directory niveau:

Set-ECPVirtualDirectory -Identity "InternalCAS\ecp (default web site)" -AdminEnabled $false

Verkeer vanaf internet zou dus op een /ecp virtual directory moeten landen waarbij het EAC uitgeschakeld is, voor intern verkeer zou deze functionaliteit wel beschikbaar moeten zijn.

Segmentatie

Een derde voorbeeld is de noodzaak voor segmentatie, dat is het in- of uitschakelen van bepaalde functionaliteit. Net als bij de voorgaande twee scenario's is dit iets wat je per virtual directory instelt. Bijvoorbeeld om toegang tot functionaliteit voor een bepaalde groep gebruikers uit te schakelen:

Set-OwaVirtualDirectory -Identity "Contoso\owa (default Web site)" -InstantMessagingEnabled $false -PublicFoldersEnabled $false -ActiveSyncIntegrationEnabled $false

Meerdere sites of meerdere servers?

Een manier om aan bovenstaande eisen te voldoen is een CAS server uit te rollen voor elk scenario. Omwille van redundantie worden dat uiteraard twee CAS servers, dus om zowel OWA met als zonder IM client aan te kunnen bieden hebben we vier CAS servers nodig:


image


Op Exchange 2007 en 2010 was een alternatief, namelijk het aanmaken van één of meerdere extra /owa virtual directories. Zie bijvoorbeeld de volgende artikelen:

Supportability for multiple OWA/ Exchange Web Sites on Client Access Servers in Exchange Server 2007 and Exchange Server 2007 Service Pack 1
Configuring Multiple OWA/ECP Virtual Directories on Exchange 2010 Client Access Server

Exchange 2013

Vreemd genoeg is het plaatsen van dedicated CAS servers momenteel de enige door Microsoft ondersteunde manier om dit te doen met Exchange 2013. En dat is raar, want de methode voor Exchange 2010 werkt ook in Exchange 2013. En de noodzaak voor een dergelijke opstelling is er nog onverminderd, zie ook diverse discussies over dit onderwerp in de communities:

Multiple owa sites on a single server 2012 with exchange 2013 (mailbox, cas)
Exchange 2013, multiple IIS OWA sites with different authentication
Enable second OWA site with form based authentication

Maar wacht even, zei ik dat het werkte? Bij een klant van mij die ik overgenomen hebt draait een dergelijke opstelling al om zowel Basic als FBA aan te kunnen bieden. Dit werkte goed totdat CU5 werd geïnstalleerd, nu wil de tweede /owa geen Basic authentication meer aanbieden maar alleen FBA. En dan zit je dus "mooi" in een niet-ondersteunde situatie, heel vervelend.

Inmiddels heb ik wat lijntjes uitgegooid om een formele uitspraak van Microsoft te krijgen. Wetende dat mijn klant niet de enige is die dit scenario ingericht heeft en de noodzaak er overduidelijk is lijkt het mij goed dat er snel een duidelijke uitspraak komt. Ofwel dat dit ondersteund is, ofwel een bevestiging dat dit niet zo is alhoewel het ontbreken van het eerste ook al zodanig geïnterpreteerd kan worden.

Tot die tijd raad ik aan om dit scenario niet te implementeren tenzij je gedekt bent door Premier Support of anderszins weet dat je ondersteund bent. Zodra ik meer weet laat ik dit zeker horen.

Friday, September 12, 2014

Google Chrome 37 en Exchange: 9 vragen en antwoorden

Gisteren schreef ik over een paar features in Exchange 2013 EAC die niet meer werken in Chrome 37. Inmiddels zie ik ook berichten van mensen waarbij bepaalde knoppen in Exchange 2010 OWA niet meer werken, dit blijkt te herleiden naar dezelfde oorzaak. In dit artikel leg ik uit wat het probleem is, schets de context en leg uit of we hier wat aan kunnen doen.

Wat is het issue dan?

Microsoft maakt in OWA en ECP/EAC gebruik van de showModalDialog method, deze methode wordt gebruikt om een dialog box te openen met daarin een specifieke HTML-pagina. Voorbeelden van plaatsen waar deze methode gebruikt wordt zijn de From: en To: buttons in OWA 2010 en het + en potlood icoon in Exchange 2013 EAC. Het volgende scherm is een voorbeeld van een dialog box die op deze manier wordt aangeroepen:

image

In Chrome 37 werkt de showModalDialog method niet meer en verschijnen deze dialog boxes dus niet. Overigens raakt dit niet alleen Microsoft applicaties zoals Exchange, SharePoint en Dynamics maar ook verschillende producten van andere leveranciers en een grote hoeveelheid (interne) websites die van deze methode gebruik maken.

Waarom werkt dit niet?

De ontwikkelaars van Google Chrome hebben er voor gekozen om showModalDialog standaard uit te schakelen in Chrome 37. In een volgende release zal showModalDialog compleet verwijderd worden.

Zou het moeten werken?

Als je het aan de ontwikkelaars van Chrome vraagt dan wordt uitgelegd dat deze feature ooit in IE4 zat en sindsdien is bijgehouden in andere browsers maar eigenlijk nooit had mogen bestaan. Als je het aan Microsoft vraagt dan zullen die antwoorden dat ze Chrome 37 ondersteunen als client voor OWA in de premium versie:

image

Waarom is deze keuze gemaakt?

Volgens de ontwikkelaars van Blink, de rendering engine van Chromium waar ook Chrome op gebaseerd is, kost het bijhouden van deze methode erg veel moeite, de code is erg complex geworden en er zijn afhankelijkheden van andere twijfelachtige code. Verder is een kenmerk van deze methode dat hij a) een pop-up geeft, wat niet goed werkt op mobiele platformen en b) de rest van de browser bevriest zolang de pop-up actief is. Dit heeft zelfs al tot een aantal security vulnerabilities geleid.

Als deze methode maar weinig gebruikt wordt en uiteindelijk geheel uit de code verwijderd kan worden dan zou dat veel voordeel brengen voor de programmeurs.

Sinds wanneer?

Aangezien het lijkt dat de hele wereld, inclusief Microsoft, verrast is door deze aanpassing is het goed om eens naar de tijdlijn te kijken. In oktober 2013 is onder Chromium ontwikkelaars voorgesteld om een teller toe te voegen om het gebruik van showModalDialog te meten en een waarschuwing te geven aan website-ontwikkelaars. Hiermee wordt showModalDialog 'deprecated' verklaard, ofwel een feature die uitgefaseerd gaat worden. Op 1 oktober 2013 is dit voorstel verwerkt in de code en op 10 april 2010 beland in de Chrome 35 Beta. Op hetzelfde moment is aangekondigd om showModalDialog in Chrome 36 geheel te verwijderen.

Door het toevoegen van de teller werd vastgesteld dat slechts 0,006% van de pageviews deze methode gebruikt:

image

Voor de ontwikkelaars werd dit gezien als bevestiging dat bijna niemand dit gebruikt. In de hierop volgende discussie kwam er wel wat tegengas maar werd er vooral met het voorstel ingestemd. Ik betwijfel of iemand zich realiseert hoe groot de impact is om de functionaliteit van 0,006% van de pageviews stuk te maken, heeft iemand dat percentage omgerekend naar absoute aantallen? Is er een inventarisatie gemaakt van bekende applicaties die in deze categorie vallen om de impact beter te kunnen begrijpen?

De definitieve versie van Chrome 35 verscheen op 20 mei van dit jaar, Chrome 36 volgde al op 16 juli en Chrome 37 een maand later, op 26 augustus. In tegenstelling tot wat eerder aangekondigd was is showModalDialog in Chrome 36 nog steeds aanwezig maar in 37 is deze uitgeschakeld. In verschillende blogposts is de keuze om showModalDialog te verwijderen verder toegelicht en beargumenteerd.

Uitgeschakeld of verwijderd?

In Chrome 37 is de feature uitgeschakeld maar weer in te schakelen tot 15 mei 2015, daarna wordt de feature echt verwijderd. En hier wordt het interessant. Chrome kent een policymodel waarmee bepaalde features geconfigureerd kunnen worden, bedoeld om Chrome geschikt te maken voor de zakelijke markt. We kunnen de policy EnableDeprecatedWebPlatformFeatures gebruiken om een uitgefaseerde maar nog niet verwijderde features weer aan te zetten.

Hoe zet ik het weer aan?

Met (een elevated instance van) PowerShell zouden we dit als volgt doen:

New-Item HKLM:\SOFTWARE\Policies\Google\Chrome\EnableDeprecatedWebPlatformFeatures
Set-ItemProperty HKLM:\SOFTWARE\Policies\Google\Chrome\EnableDeprecatedWebPlatformFeatures 1 ShowModalDialog_EffectiveUntil20150430 -type string

image

Bij het testen van deze code bleek HKLM:\SOFTWARE\Policies\Google\Chrome op mijn computer niet te bestaan:

image

En ook na het handmatig toevoegen van de hyve bleek de instelling niet doorgevoerd te worden in Chrome, zo bevestigd een bezoek aan chrome://policy/.

Om te begrijpen waarom moeten we weer even terug naar het ontwikkelproces van Chrome. De policies konden nu geconfigureerd worden door middel van registry keys of een GPO policy template. Nadat Chrome registry keys ging gebruiken om de configuratie te managen bleek al snel dat deze registry settings ook aangepast konden worden door andere programma's, denk bijvoorbeeld aan malware. Als reactie ging Chrome 28 de registry keys negeren en kon alleen nog het GPO template gebruikt worden om Chrome te configureren. Wat uiteraard tot veel klachten leidde van beheerders die geen AD gebruiken, geen GPO's of beheer standaard op basis van registry keys uitvoeren.

De verandering in Chrome 28 werden nu deels teruggedraaid en vanaf Chrome 35 worden de registry keys ook weer gebruikt, alleen als de computer lid is van een Active Directory domein.

Wat nu dan?

Beheerders van werkplekken in een AD domein kunnen de registry key of het GPO template gebruiken. Voor losstaande werkplekken kan de GPO template ook in de Loacal Group Policy (gpedit.msc) gelezen worden:

  1. Download de policy templates hier.
  2. Open gpedit.msc en ga naar "Computer Configuration" -> rechtsklik "Administrative Templates" -> "Add/Remove templates" -> klik "Add..." -> selecteer "windows/adm/en-US/chrome.adm" uit de policy_templates.zip download
  3. In "Computer Configuration" -> "Administrative Templates" -> "Classic Administrative Templates" -> "Google" -> "Google Chrome" configureer je nu de policy settings.
  4. Open nu Chrome en ga naar chrome://policy/, hier moet de aangepaste policy nu zichtbaar zijn.

Ontwikkelaars van website zullen alle instances van showModalDialog moeten vervangen door een alternatief.

Wat vinden we hier van?

Het hele verhaal roept de vraag op in hoeverre Chrome klaar is voor de zakelijke markt. De razendsnelle ontwikkelingscyclus van dit open-source project verrast beheerders en ontwikkelaars van websites door features uit te schakelen. Hetzelfde geldt voor het uitschakelen van het beheer door middel van registry keys, zoiets kun je niet doen zonder de zakelijke markt zorgvuldig te informeren en een alternatief te bieden.

Maar ook de afwezigheid van Microsoft in deze discussie valt op. Bij mijn onderzoek viel me op dat er uitgebreide discussies plaatsvinden en hebben gevonden binnen de Chromium, Chrome en Opera communities maar ook bij Mozilla Firefox waar de zelfde discussie speelt. Is er dan geen enkele developer bij Microsoft geweest die zich realiseerde dat zijn applicatie volop gebruik maakt van deze feature? En dat juist nu Microsoft OWA duidelijk positioneert als de primaire client om te werken met e-mail.

Zakelijke klanten zullen zich afhankelijk van hun contract tot Premier Support richten of een case openen via de reguliere supportkanalen. Gebruiker van Office 365, ofwel hun beheerders, kunnen een support request openen In het Office 365 admin center. Ik verwacht een bericht op het Exchange Team Blog één dezer dagen en volg de discussies in de communities met veel interesse.

Geen updates kunnen selecteren in Server 2012 R2

Op een aantal Server 2012 R2 servers valt mij het volgende issue op. In het Windows Update scherm klik op je op het aantal important of optional updates, normaal gesproken verschijnt nu de lijst met updtaes die je kunt selecteren, de-selecteren, verbergen of links voor meer informatie aanklikken. In dit geval gebeurt er niets.

image

Een work-around is om in het linker deel op Change settings te klikken en vervolgens op Cancel. Dan eindig je uiteindelijk hier, het scherm waarin we updates kunnen selecteren:

image

Een irritant probleempje met gelukkig een eenvoudige work-around.

Thursday, September 11, 2014

LoadMaster VLM-10G het nieuwe vlaggenschip van KEMP

Nog niet zo heel lang geleden had KEMP Technologies de LoadMaster VLM-100 en VLM-1000 in het portfolio. De bekende LoadMaster software die nu op virtuele hardware kon draaien. Inmiddels bestaan de virtuele load balancers voor onder andere Hyper-V, VMware, KVM, Xen, Oracle VirtualBox en cloudplatformen als Microsoft Azure, VMware vCloud Air en Amazon Web Services.
Enige tijd geleden zijn deze oudgedienden vervangen door de (nu 64-bits) VLM-200 en VLM-2000 en is de VLM-5000 toegevoegd voor nog zwaardere omgevingen. Alle edities beschikken over dezelfde software als de fysieke uitvoeringen en updates zijn beschikbaar voor alle klanten met een geldig supportcontract, nieuwe features zijn er dus voor organisaties die net een nieuwe load balancer aangeschaft hebben maar ook voor een oudere VLM-1000.
Om ook een antwoord te hebben voor de meest veeleisende toepassingen is daar nu de VLM-10G aan toegevoegd waarbij 10G voor een maximale doorvoer van 10.000 Mbps staat. De VLM-10G ondersteunt tot 12.000 SSL TPS. Met de komst van dit nieuwe vlaggenschip is de prijs van de VLM-5000 verlaagd, goed nieuws voor klanten die de ruwe power van de VLM-10G niet nodig hebben maar net wat meer verlangen dan de VLM-2000.
Hiermee bestaat het aanbod aan virtuele load balancers nu uit de volgende uitvoeringen:
Model
VLM-200
VLM-2000
VLM-5000
VLM-10G
Doorvoer (licentie)
200 Mbps
2 Gbps
5 Gbps
10 Gbps
SSL TPS (licentie)
200
1.000
10.000
12.000
Voor allemaal geldt dat ze over het Edge Security Pack beschikken, de reverse proxy functionaliteit die bedoeld is om Forefront TMG te kunnen vervangen, en de Geo Load Balancing add-on ondersteunen. Interessante ontwikkelingen!

Werken met (legacy) Public Folders

Op dit moment heb ik het genoegen om te mogen werken met een grote hoeveelheid Public Folder data. Het doel is om deze te repliceren naar nieuwe databases. Hierbij gebruik ik een aantal scripts en tools die misschien handig zijn om te delen.

Overzicht

Als eerste heb ik een Excel-file gemaakt met een overzicht van alle folders, het aantal items hierin en de grootte in MB. Dit is weliswaar een momentopname maar het geeft je een goed beeld van de structuur en de grootste folders.

Get-PublicFolder -Recurse -ResultSize Unlimited | Get-PublicFolderStatistics | Select-Object Name,FolderPath,CreationTime,LastAccessTime,LastModificationTime,LastUserModificationTime,LastUserAccessTime,@{expression={$_.totalitemsize.value.ToMB()};label=”Size(MB)”},ItemCount | Export-CSV "C:\data\pfstats.csv"

Denk aan de -ResultSize parameter, anders krijg je met Get-PublicFolder alleen de eerste 10.000 resultaten. Dit bestand heb ik in Excel geopend, conditional formatting gebruikt om folders met veel items of data snel te kunnen herkennen en uiteraard opgeslagen als xlsx-bestand.

Aan de hand van dit bestand heb ik de top-level folder kunnen kiezen waarmee ik de replicatie wil starten. Ook heb ik kolommen toegevoegd voor de nieuwe databases zodat ik een check kan zetten als ik deze als replica toegevoegd heb. Dit helpt mij om overzicht te houden gedurende het proces.

Replica's toevoegen of verwijderen

Op de locatie waar Exchange geïnstalleerd is staat een \scripts directory. Omdat het installatiepad per server verschilt is er de $exscripts een variabele die we in Exchange Management Shell kunnen gebruiken om de scripts te lokaliseren.

image

In dit geval gebruik ik het AddReplicaToPFRecursive.ps1 script om de nieuwe database als replica toe te voegen op een toplevel folder en alle onderliggende folders:

cd $exscripts
./AddReplicaToPFRecursive.ps1 -TopPublicFolder "\MyFolder" -ServerToAdd NewServer1

Op een later moment gebruik ik het RemoveReplicaFromPFRecursive.ps1 om de oude replica te verwijderen. Een alternatief zou het gebruik van het MoveAllReplicas.ps1 script die beide stappen in één keer doet. Meer informatie over deze scripts vind je hier: Scripts for Managing Public Folders in the Exchange Management Shell

Rapportage en monitoring

Om op hoofdlijnen te zien op de replicatie plaats vindt, gebruik ik het volgende commando die de grootte van het .edb-bestand geeft:

Get-PublicFolderDatabase | Select Server, Name, @{Name="Size (GB)";Expression={$objitem = (Get-PublicFolderDatabase $_.Identity); $path = "`\`\" + $objitem.server + "`\" + $objItem.EdbFilePath.DriveName.Remove(1).ToString() + "$"+ $objItem.EdbFilePath.PathName.Remove(0,2); $size = ((Get-ChildItem $path).length)/1048576KB; [math]::round($size, 2)}}, @{Name="Size (MB)";Expression={$objitem = (Get-PublicFolderDatabase $_.Identity); $path = "`\`\" + $objitem.server + "`\" + $objItem.EdbFilePath.DriveName.Remove(1).ToString() + "$"+ $objItem.EdbFilePath.PathName.Remove(0,2); $size = ((Get-ChildItem $path).length)/1024KB; [math]::round($size, 2)}}

Deze one-liner ziet er misschien complexer uit dan hij is, dat komt omdat we het UNC pad moeten samenstellen om de grootte van het bestand te kunnen meten. Een andere stukje code is om de grootte om te rekenen naar GB en MB.

Door dit commando af en toe te herhalen zie je al snel dat het aantal GB's van de nieuwe databases toeneemt. Dit is natuurlijk niet voldoende om een goed beeld van de status te krijgen. Dus na enige tijd heb ik het Exchange 2010 Public Folder Replication Report van Mike Walker gebruikt.

Dit script gebruikt Get-PublicFolder en Get-PublicFolderSatistics om informatie over de public folders te vergaren. Omdat dit zeer lang kan duren, al snel enkele uren bij een paar duizend folders, beperkt ik het rapport tot een specifieke top-level folder:

.\Get-PublicFolderReplicationReport.ps1 -FolderPath "\MyFolder" -Recurse -ComputerName @("OldServer1", "OldServer2", "NewServer1", "NewServer2") -AsHTML -Filename report.html

Het resultaat is een zeer bruikbaar rapport in HTML-vorm.

Troubleshooting

Op basis van de bestandsgrootte was al duidelijk dat één van de nieuwe databases niet volledig gevuld werd en het HTML-rapport bevestigt dat. Om uit te vinden of er een probleem is heb ik het logging level voor een aantal relevante bronnen op de bron- en doelserver aangepast van Lowest naar High:

Set-eventloglevel -Identity "OldServer1\MSExchangeIS\9001 Public\Replication Incoming Messages" -level high
Set-eventloglevel -Identity "OldServer1\MSExchangeIS\9001 Public\Replication Outgoing Messages" -level high
Set-eventloglevel -Identity "OldServer1\MSExchangeIS\9001 Public\Replication NDRs" -level high
Set-eventloglevel -Identity "OldServer1\MSExchangeIS\9001 Public\Replication Backfill" -level high
Set-eventloglevel -Identity "OldServer1\MSExchangeIS\9001 Public\Replication Errors" -level high
Set-eventloglevel -Identity "OldServer1\MSExchangeIS\9001 Public\Replication General" -level high
Set-eventloglevel -Identity "NewServer1\MSExchangeIS\9001 Public\Replication Incoming Messages" -level high
Set-eventloglevel -Identity "NewServer1\MSExchangeIS\9001 Public\Replication Outgoing Messages" -level high
Set-eventloglevel -Identity "NewServer1\MSExchangeIS\9001 Public\Replication NDRs" -level high
Set-eventloglevel -Identity "NewServer1\MSExchangeIS\9001 Public\Replication Backfill" -level high
Set-eventloglevel -Identity "NewServer1\MSExchangeIS\9001 Public\Replication Errors" -level high
Set-eventloglevel -Identity "NewServer1\MSExchangeIS\9001 Public\Replication General" -level high

Na enige tijd verschijnen er in het Application eventlog allerlei meldingen van source MSExchangeIS Public Store. Op zich zou ik die met PowerShell kunnen analyseren (Get-EventLog) maar voor een snel overzicht heb ik de Event Viewer gemaakt en een filter op source MSExchangeIS Public Store gezet.

image

De grote hoeveelheid errors bleken vals alarm te zijn, deze waren onschuldig en geen indicatie voor een daadwerkelijk probleem.

Om eventuele fouten te repliceren heb ik de replicatie voor een (op de nieuwe server niet gevulde) folder handmatig gestart:

Update-PublicFolder "MyFolder\SubFolder" -Server OldServer1

Op dit moment zie je direct de bijbehorende replicatie-events verschijnen op de bron- en doelserver. Vervolgende de statistieken voor deze folder opgevraagd op de oude en nieuwe server:

Get-PublicFolderStatistics "MyFolder\SubFolder" -Server OldServer1
Get-PublicFolderStatistics "MyFolder\SubFolder" -Server NewServer1

Na een paar minuten gaf de folder op de nieuwe server het zelfde aantal items als de oude. Daarom ook de rest van de folders nogmaals laten updaten:

Get-PublicFolder "MyFolder\SubFolder" -Recurse -ResultSize Unlimited | Update-PublicFolder -Server OldServer1

Daarna het Public Folder Replication Report nogmaals uitgevoerd en uitsluitend groene vlakjes gezien.

Tips

Met name bij het werken met grote hoeveelheden folders duren eenvoudige taken als het opvragen van folders of statistieken zeer lang. Plan dus vooruit en voorkom dat je langlopende taken opnieuw moet uitvoeren. Sla het resultaat van een query op in een CSV-bestand of variabele.

Deel de hoeveelheid data op in behapbare blokken, bijvoorbeeld een toplevelfolder met onderliggende mappen die voldoende items bevatten maar pakweg een paar GB groot zijn. Selecteer hiervoor desnoods een dieper gelegen folderstructuur. Besteed aandacht aan het verloop en zorg dat je goed inzicht hebt in het verloop of eventuele problemen. Los die eerst op en ga dan verder met de rest van de data.

Dit artikel heeft betrekking op Exchange 2010 maar is ook bruikbaar voor Exchange 2007. Om Public Folder replicatie goed te begrijpen moeten we terugvallen op documentatie voor Exchange 2003, afgezien van de gebruikte tools is er in Exchange 2007 en 2010 namelijk weinig veranderd. Een goed stuk documentatie is: Controlling Exchange Server 2003 Public Folder Replication

Exchange 2013 EAC werkt niet goed in Chrome 37

Hoewel één van de ondersteunde browsers, valt mij op dat Chrome versie 37.xxx problemen heeft met een paar onderdelen van het ECP van mijn Exchange 2013 CU6 servers. Zo is het bijvoorbeeld niet mogelijk om een smarthost toe te voegen aan een Send Connector:

image

Na een druk op de + gebeurt er niets. In IE11 en voorheen ook in Chrome verschijnt een nieuwe pop-up. Hetzelfde probleem treed ook op bij andere schermen waar je na een klik op + (Add) of de potlood (Edit) een nieuwe pop-up verwacht. Dat maakt de huidige versie van Chrome op dit moment minder geschikt om Exchange 2013 mee te beheren.

Web browsers supported for use with the premium version of Outlook Web App or Outlook Web Access

Wednesday, September 10, 2014

En daar is het derde issue met Exchange 2013 CU6...

Ik krijg nog wel eens het verwijt dat ik te kritisch ben en ook de positieve kant van de zaak moet belichten in mijn artikeltjes. Daar ga ik eens even goed over nadenken en zodra ik het ontdekt heb dan laat ik het direct weten. Maar nu kan ik niet anders dan diep zuchten en vertellen dat een derde serieus issue is opgedoken in Exchange 2013 CU6.

You cannot route ActiveSync traffic to Exchange 2007 mailboxes after you upgrade to Exchange 2013 CU6

Deze komt dus naast de al bekende issues:

En laat ik voor de volledigheid ook verwijzen naar de fix voor de fix in dat laatste artikel: Exchange2013-KB2997355-FixIt-v2 (Michel de Rooij)

Het issue waar het ditmaal om gaat is dat Exchange 2013 CAS een ActiveSync verzoek voor een gebruiker op Exchange 2007 niet correct kan authentiseren, laat staan verder verwerken.

Even een reminder, je weet waarschijnlijk dat Exchange 2013 CAS alle verzoeken voor mailboxen op Exchange 20007, 2010 ofwel Exchange 2013 servers in een andere site 'proxied' naar een andere CAS server. Een uitzondering is EAS voor Exchange 2007 mailboxen, deze wordt geproxied naar Exchange 2013 Mailbox die het verzoek vervolgens proxied naar Exchange 2007 CAS. Zie Client Connectivity in an Exchange 2013 Coexistence Environment

image

Bij eerdere issues traden er al problemen op met de EAS Application Pool op de 2013 Mailbox server wanneer hij een verzoek wil proxien naar 2007 CAS. Bij dit meest recente issue komt het probleem dus al voor op Exchange 2013 CAS.

Er is inmiddels een hotfix beschikbaar met de naam Exchange2013-KB2997209_2997847-x64-en.msp. Zoals de naam al verklapt verhelpt deze update beide Exchange 2007 coexistence issues.

Windows Phone 8.1 en het geheim van de verdwenen komma

De meeste gebruikers met een geschikte telefoon hebben inmiddels de Windows Phone 8.1 update gekregen. Die zit bomvol kleine en grote verbeteringen maar bracht ook een nadeel met zich mee: op het toetsenbord staat naast de punt geen komma meer. Het is maar een kleinigheid maar iedere keer wisselen tussen het numerieke en normale deel van het toetsenbord is erg onhandig om alleen een komma te kunnen gebruiken.

wp_ss_20140910_0001

Gelukkig kunnen we die weer terugzetten. Ga hiervoor naar Instellingen, Toetsenbord, Geavanceerd en zet een vinkje voor 'Een kommatoets weergeven indien beschikbaar'.

wp_ss_20140910_0002

En viola, hier is de komma weer terug:

wp_ss_20140910_0004

Tuesday, September 9, 2014

Office 365 ProPlus nu ook op Terminal Server/RDS hosts!

Office 356 ProPlus is de versie van de welbekende Office-suite die je af kunt nemen als onderdeel van een Office 365 abonnement. Eens opgestart verschillen de losse applicaties niet van de versies die je kent uit Office Professional Plus 2013 maar onder de motorkap zijn er wel verschillen. Zo wordt Office aangeboden op basis van Click-to-Run (C2R), dit is een applicatievirtualisatietechnologie die we al langer kennen als App-V. Een ander verschil is het mechanisme waarmee de software geactiveerd kan worden, dit is bij Office 365 ProPlus vergelijkbaar met zoals dit in de Home abonnementen al langer gebeurt. De gebruiker krijgt de vraag om credentials in te geven en hiermee kan worden gecontroleerd of er een geldige Office 365 ProPlus licentie aan deze gebruiker toegewezen is.

Screen shot of the Office software page in the Office 365 portal

Dit kleine technologische verschil had tot voor kort wel tot gevolg dat je deze versie niet kon installeren danwel activeren op een Remote Desktop Services (RDS) host ofwel een Terminal Server. Voor klanten met een Volume License Agreement zoals EA, Select of Open was er in 2013 al een mogelijkheid om de Office 365 ProPlus licentie te laten gelden voor een Volume Activation versie van Office 2013. Maar de regels hiervoor zijn al even complex als de daadwerkelijke uitvoering.

Daarom is het goed om te weten dat je Office 365 ProPlus nu ook ook op een RDS host mag installeren. Dit is mogelijk gemaakt door een nieuwe feature: shared computer activation. Met deze feature kan een beheerder Office 365 ProPlus installeren op een computer die door meerdere personen gebruikt wordt, zoals bij RDS. Nu kan per ingelogde gebruiker vastgesteld worden of deze een licentie heeft of niet.

Zie voor meer informatie en stappen om dit uit te voeren: Overview of shared computer activation for Office 365 ProPlus Al met al zet Microsoft met deze feature een belangrijke stap om Office 365 te presenteren als acceptabel alternatief voor de grootzakelijke markt.

Meer weten van dit soort eigenaardigheden? Neem dan voor gebruik de bijsluiter door: Office Applications Service Description

Wednesday, September 3, 2014

Controleer je Office 365 MX-records met PowerShell

Als gebruiker van Office 365 dien je een aantal DNS-records te configureren om er zeker van te zijn dat e.e.a. goed werkt. Voor Exchange Online is dit bijvoorbeeld een CNAME voor autodiscover die naar autodiscover.outlook.com verwijst. Informatie over de benodigde records is te vinden in de Office 365 Portal wanneer in de Domains sectio op Manage DNS klikt. Of via deze url: https://portal.office.com/admin/default.aspx#@/Domains/ConfigureDomainWizard.aspx?Scenario=EDomainsSetup&domainName=imara-ict.nl (vervang de domeinnaam aan het eind van de url).

image

In de afgelopen jaren zijn deze records verschillende keren aangepast of aangevuld. Zo werd als MX-record voorheen een algemeen record gebruik zoals bijvoorbeeld mail.global.frontbridge.com of mail.messaging.microsoft.com. Tegenwoordig gebruiken we voor elk domein een specifiek record, op dit moment zijn de twee volgende geldig:

  • contoso-com.mail.eo.outlook.com
  • contoso-com.mail.protection.outlook.com

In de Office 365 Portal wordt momenteel die laatste gebruikt: contoso-com.mail.protection.outlook.com.

Om te controleren welke MX-records jouw organisatie ingesteld heeft staan kun je in Exchange Online PowerShell het Get-MxRecordReport cmdlet gebruiken. Deze geeft voor het domein de volgende informatie:

  • Is het een Accepted Domain?
  • Bestaat er een MX-record?
  • Wat is het MX-record met de hoogste prioriteit (laagste waarde voor prioriteit)?
  • Wat is het bijbehorende IP-adres?
  • Wijst het record naar Exchange Online (Exchange Online Protection EOP) via de mail.protection.outlook.com namespace?

Het cmdlet geeft output voor elke IP-adres wat gevonden wordt voor de betreffende hostnaam. Je kunt het cmdlet uitvoeren voor elk domein, maar het ligt voor de hand om dit alleen voor de domeinen te doen die je daadwerkelijk als accepted domain hebt opgevoerd:

Get-AcceptedDomain | % { Get-MxRecordReport -Domain $_.DomainName } | ft Domain,PointsToService,HighestPriorityMailhost,HighestPriorityMailhostIpAddress -AutoSize

image

Opvallend

Opvallend is dat PointsToService alleen True geeft als één van de twee namespaces voor MX-records wordt gebruikt. Bij de andere optie, die ook gewoon geldig is, krijgen we False terug.

Verder zou Microsoft er goed aan doen om de informatie over de vereiste DNS-records beschikbaar te maken via PowerShell of desnoods een API. De informatie opzoeken in de Portal werkt prima voor incidenteel gebruik maar in grootschalige implementaties zou je deze informatie geautomatiseerd willen benaderen. Gezien het tempo waarin de verbeteringen in Office 365 doorgevoerd worden sluit ik niet uit dat deze functionaliteit nog eens gaat verschijnen.

Monday, September 1, 2014

Update: Diverse issues met CU6 voor Exchange 2013

Het is bijna een week geleden dat Exchange 2013 CU6 uitgebracht werd, een mooi moment om de tussentijdse balans op te maken. En die ziet er in dit geval helaas niet goed uit, tenminste niet als je naast Exchange 2013 ook nog 2007 of Exchange Online in je omgeving hebt.

Database failovers bij 2013-2007 coexistence

Wanneer een gemachtigde mailbox op Exchange 2007 toegang probeert te krijgen tot de mailbox op een Exchange 2013 CU6 DAG member dan kan dit de mailbox database onverwacht laten 'failoveren' naar een andere DAG member. Op te lossen door een hotfix aan te vragen bij Microsoft Support of als work-around de mailboxen van managers en secretaresses gezamenlijk te migreren, danwel op de zelfde versie van Exchange te houden.

Zie KB-artikel 2997209: Exchange Server 2013 databases unexpectedly fail over in a co-existence environment with Exchange Server 2007

Hybrid management met Exchange Online valt weg

In een hybride opstelling kun je vanuit het Exchange Admin Center (ECP) mailboxen naar Exchange Online moven, een cloudarchief aan een on-premises mailbox koppelen of eenvoudig doorklikken naar het Office 365 EAC. Na installatie van CU6 is al deze functionaliteit verdwenen. Microsoft heeft het probleem erkend maar een oplossing of zelfs een KB-artikel is nog niet beschikbaar.

image

Zie voor meer informatie het artikel van Jeff Guillet: Don't Deploy Exchange 2013 CU6 If You're a Hybrid Customer

Update: Er is een script beschikbaar die het foute configuratiebestand herstelt. Installeer deze op de betreffende Mailbox server om de hybride functionaliteit weer te herstellen. Zie Exchange Online mailboxes cannot be managed by using EAC after you deploy Exchange Server 2013 CU6

En hoe nu verder?

Naast deze twee problemen zijn mij op dit moment geen andere issues bekend die door CU6 of de gelijktijdig uitgebrachte updates voor Exchange 2007 en 2010 veroorzaakt worden. Installeren dan maar? Ik herhaal nog een keer: je kunt een CU voor Exchange 2013 niet verwijderen nadat je deze geïnstalleerd hebt. Bezint dus eer ge begint, en dan bij voorkeur eerst in een representatieve testomgeving.

Wednesday, August 27, 2014

6e CU voor Exchange 2013 uitgebracht

Microsoft heeft Cumulative Update 6 voor Exchange 2013 uitgebracht. Zoals altijd kun je CU6 installeren op elke versie van Exchange 2013 maar je kunt ook een nieuwe installatie uitvoeren met deze laatste versie. Het is dus niet nodig om update op update te installeren.

En ook voor deze versie geldt de volgende waarschuwing: je kunt de installatie van CU6 niet ongedaan maken, het verwijderen van CU6 is het verwijderen van Exchange.

Wanneer je hecht aan zekerheid dan is het verstandig om de installatie eerst in je lab uit te voeren en de berichten in de community te volgen. Lees bijvoorbeeld de opmerkingen in de de comments-sectie onder de aankondiging.

De lijst met (gepubliceerde) fixes is wederom lang: Cumulative Update 6 for Exchange Server 2013

Twee zaken springen er uit. Ten eerste is dit de langverwachte update die een aantal beperkingen van Modern Public Folders opheft: Public Folder Updates in Exchange 2013 CU6: Improving Scale and More De tweede heeft ook met PF te maken, als je mail-enabled Public Folders hebt dan moet je de permissies eerst aanpassen om mail van buiten de organisatie te accepteren. Doe je dit niet, dan krijgen externe verzenders een NDR na de installatie van CU6.

Hoe je dit kunt doen lees je hier. Bijvoorbeeld:

Add-PublicFolderClientPermission "\Customer Feedback" -AccessRights CreateItems -User Anonymous

Direct downloaden doe je hier. Voor meer informatie, lees de officiële aankondiging op het Exchange Team Blog.

Friday, August 1, 2014

Exchange 2013 Content Index Troubleshoot Script werkt niet

De Exchange Scripts directory (cd $exscripts) bevat een groot aantal script die je kunnen helpen om veelvoorkomende (complexe) taken uit te voeren of als hulpmiddel bij het verhelpen van issues. Een daarvan is de Content Index Troubleshooter (Troubleshoot-CI.ps1), dit script verscheen voor het eerst in Exchange 2010 RTM en kan problemen met Content Indexing niet alleen opsporen maar in veel gevallen ook verhelpen.

Op een Exchange 2013 server vind je dit script ook, maar als hem wilt uitvoeren krijg je een onduidelijke foutmelding:

image

Nou ja onduidelijk, het script meldt dat de volgende registry key niet gevonden kan worden:

SOFTWARE\Microsoft\ExchangeServer\v15\ContentIndex\CatalogHealth\{<Database GUID>}

Dit is logisch omdat de \ContentIndex hyve niet langer bestaat op een server met Exchange 2013:

image

Dit komt doordat zoeken en indexeren op Exchange 2007 en 2010 wordt uitgevoerd met Exchange Search. In Exchange 2010, en ook SharePoint en de andere "wave 15" producten, is dit vervangen door de FAST technologie ook wel Microsoft Search Foundation genoemd. Dit is bijvoorbeeld de reden dat we voor Exchange 2013 niet langer het Office Filter Pack hoeven te installeren omdat FAST deze types standaard als indexeren kan.

En hoewel de beheerinterface hetzelfde is gebleven, dat wil zeggen dat we dezelfde cmdlets gebruiken om search mee te managen, zijn de veranderingen onder de motorkap wel zichtbaar. En zo komen we weer bij Troubleshoot-CI.ps1 die zoekt naar een registry hive die niet langer bestaat...

Het mag geen geheim zijn dat ik, net als veel van mijn collega-specialisten, kritisch ben op het kwaliteitsniveau van Exchange en versie 2013 in het bijzonder. Het dat Microsoft gesierd als iemand even door de $exscripts directory was gewandeld om te controleren of alle aangeboden scripts in Exchange 2013 ook werken.

Een ander voorbeeld is het new-TestCasConnectivityUser.ps1 script die niet werkt als er meerdere OU's bestaan met de naam Users. Iets waar ik in 2010 al over schreef en verschillende keren bij Microsoft aangegeven heb. Boze tongen beweren dat dit is omdat Microsoft deze scripts niet belangrijk vind voor Office 365 en daarom geen prioritiet geeft. En misschien zit daar wel wat in...

Thursday, July 31, 2014

Exchange 2013 hybride plannen en niet tot CU6 wachten? Lees dan dit.

Verschillende organisaties ervaren momenteel problemen bij het opzetten van een hybride setup tussen Exchange 2013 on-premises en Office 365 Exchange Online. De Hybrid Configuration Wizard mislukt en geeft de volgende foutmelding:

Subtask CheckPrereqs execution failed: Check Tenant Prerequisites
Deserialization fails due to one SerializationException:
Microsoft.Exchange.Compliance.Serialization.Formatters.BlockedTypeException: The type to be (de)serialized is not allowed: Microsoft.Exchange.Data.Directory.DirectoryBackendType

Zie bijvoorbeeld deze topics in de Office 365 communities:

Microsoft heeft het lek boven en heeft de fout hersteld in Cumulative Update 6 die binnenkort verschijnt. Voor klanten die hier niet op kunnen wachten is er een Interim Update beschikbaar die het probleem in SP1/CU4 of CU5 verhelpt.

Wanneer je al een hybride setup hebt dan is het niet nodig om deze IU te installeren, alles blijft gewoon werken. Tenzij je tussendoor een wijzigign aan de configuratie door wilt voeren en hiervoor de HCW gebruikt. Ook dan zul je tegen bovenstaande fout aanlopen en dien je de UI eerst te installeren of te wachten op CU6.

Aanvragen van de IU doe je door contact op te nemen met Office 365 Support, dan gaat het eenvoudigst via je Office 365 Portal.

Wednesday, July 16, 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

Tuesday, July 1, 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.

Wednesday, June 11, 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

Thursday, June 5, 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.

Wednesday, June 4, 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

Wednesday, May 28, 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

Friday, May 23, 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

Monday, May 19, 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