Unknown's avatar

About Michel de Rooij

Michel de Rooij, with over 25 years of mixed consulting and automation experience with Exchange and related technologies, is a consultant for Rapid Circle. He assists organizations in their journey to and using Microsoft 365, primarily focusing on Exchange and associated technologies and automating processes using PowerShell or Graph. Michel's authorship of several Exchange books and role in the Office 365 for IT Pros author team are a testament to his knowledge. Besides writing for Practical365.com, he maintains a blog on eightwone.com with supporting scripts on GitHub. Michel has been a Microsoft MVP since 2013.

Security Updates for Exchange 2013 & 2016


Despite the quarterly wave of Cumulative Updates being imminent, CVE-2017-11932 and ADV170023 warranted a quick release of Security Update KB4045655 for current versions of Exchange 2013 and Exchange 2016.

This security update fixes a vulnerability in OWA, which could allow elevation of privilege or spoofing if an attacker sends an email that has a specially crafted attachment to a vulnerable Exchange server.

You can download the security updates here:

Be advised the update may leave your Exchange services in a disabled state, despite installing correctly. In those cases, reconfigure those services to Automatic and start them manually.

Also note that this security update overrides an earlier update, KB4036108, which might cause Calendar Sharing issues when split DNS is used.

Security updates are Cumulative Update level specific. Be advised that updates may carry the same name, e.g. the update for CU7 and the one for CU6 are both Exchange2016-KB4045655-x64-en.msp. I suggest adding some form of Cumulative Update identification to the file name when archiving it, e.g. Exchange2016-KB4045655-x64-en-CU7.msp.

As with any patch or update, I’d recommend to thoroughly test this in a test and acceptance environment first, prior to implementing it in production.

 

Exchange Certificate Reporting


powershellA quick tip on retrieving the expiration of certificates configured on your Exchange servers. While some certificate providers like DigiCert will proactively notify you when certificates are expiring in the near future, you may want to run such a report yourself. Or perhaps you want to verify configured certificates on all your Exchange servers are aligned.

To accomplish this, you could use readily available scripts, such as this one published by fellow MVP Paul Cunningham. But with some PowerShell you could easily construct yourself a one-liner which will perform the same task. We will first show the one-liner, after we will dissect and talk you through it. Note that being a lazy typist, I used several aliases to make the whole command a bit shorter, but not a lot.

Command
A command to retrieve basic certificate reporting for Exchange servers in your environment is as follows (wrapped for readability):

$D=(Get-Date).AddDays(30); Get-ExchangeServer | %{$S=$_.Identity;$R=$_.ServerRole; Get-ExchangeCertificate -Server $S |
Sort NotAfter | Select @{n='Server';e={'{0} ({1})' -f $S,$R}},
@{n='CertSubject';e={($_.Subject -split '( , )*..=')[1]}},
@{n='Expires';e={'{0:MM/dd/yyyy}' -f $_.NotAfter}},
@{n='IssuedBy';e={($_.Issuer -split '(, )*..=')[1]}},
@{n='Domains';e={$_.CertificateDomains -join ','}},
@{n='Alert';e={' !'[(Get-Date $_.NotAfter) -le $D]}},*} |
ft -a Alert, CertSubject, Status, Expires, IsSelfsigned, IssuedBy,
Services, Thumbprint, Domains -GroupBy Server | Out-String -Width 8192

Sample output
image

Dissection

$D=(Get-Date).AddDays(30) | Get-ExchangeServer

First, we want get a visual indication of certificates expiring in the coming 30 days. The command is followed by a semi-colon, which can be used to separate commands on the same line. The first cmdlet in our pipeline is Get-ExchangeServer, which returns all Exchange server objects.

%{$S=$_.Identity;$R=$_.ServerRole; Get-ExchangeCertificate -Server $S | Sort NotAfter | Select @{n='Server';e={'{0} ({1})' -f $S,$R}}, @{n='CertSubject';e={($_.Subject -split '( , )*..=')[1]}}, @{n='Expires';e={'{0:MM/dd/yyyy}' -f $_.NotAfter}}, @{n='IssuedBy';e={($_.Issuer -split '(, )*..=')[1]}}, @{n='Domains';e={$_.CertificateDomains -join ','}},@{n='Alert';e={' !'[(Get-Date $_.NotAfter) -le $D]}},*}

We are passing every Exchange server object to ForEach (%). For each of these objects, we will perform the following tasks:

  • First, we store its current Identity ($S) and Serverrole ($R) property in variables for later usage. This, because if we create a calculated properties later on, we have no reference anymore to the Exchange object in the calculated field expression, as $_ will then contain the current object passed to Select (Select-Object).
  • Next, we retrieve all certificates from the Exchange server we are looking at using Get-ExchangeCertificate, and we pipe those certificate objects to sort to order them by expiration date.
  • We then create several calculated properties in the pipeline stream:
    • A property named Server will contain a formatted string consisting of the server Identity ($S) and its server roles ($R).
    • A property named CertSubject, containing the name of the subject, without the ‘CN=’ prefix.
    • A property expires with a formatted expiration string (NotAfter).
    • A property named Issues, containing the name of the issuer of the certificate, without the ‘CN=’ prefix.
    • A property Domains containing the SAN names of the certificate, separated by commas.
    • A property Alert, showing an exclamation mark when certificate expires (NotAfter) before the date determined earlier ($D).
    • All other certificate properties are also retained by finally selecting all properties (*).
ft -a Alert, CertSubject, Status, Expires, IsSelfsigned, IssuedBy, Services, Thumbprint, Domains -GroupBy Server | Out-String -Width 8192


Finally, we format the output by selecting and ordering properties using Format-Table (ft), auto-sizing (-a) columns. In addition to the previously added calculated properties, we also return the SelfSigned, Services and Thumbprint properties. Using the GroupBy parameter, we make Format-Table group the objects on a specific property, in this case Server. Because the output can be very wide we use Out-String, specifying a large width to generate output larger than the host session without wrapping or truncating output.

Exchange Updates – September 2017


Ex2013 LogoHoneymoon caused some backlog, and one of the things to post was that the Exchange Team released the September updates for Exchange Server 2013 and 2016. Like the previous Cumulative Updates for these Exchange versions, Exchange 2013 CU18 and Exchange 2016 CU7 require .NET Framework 4.6.2; NET Framework 4.7.1 is currently being tested (4.7 will be skipped), and support for 4.7.1 is expected for the December updates.

Version Build KB Article Download UMLP Schema Changes
Exchange 2016 CU7 15.1.1261.35 KB4018115 Download UMLP Yes
Exchange 2013 CU18 15.0.1347.2 KB4022631 Download UMLP No
  • KB 4040754 “Update UseDatabaseQuotaDefaults to false” error occurs when you change settings of user mailbox in Exchange Server 2016
  • KB 4040121 You receive a corrupted attachment if email is sent from Outlook that connects to Exchange Server in cache mode
  • KB4036108 Security update for Microsoft Exchange: September 12, 2017

Exchange 2013 CU18 fixes:

  • KB4040755 New health monitoring mailbox for databases is created when Health Manager Service is restarted in Exchange Server 2013
  • KB4040121 You receive a corrupted attachment if email is sent from Outlook that connects to Exchange Server in cache mode
  • KB4040120 Synchronization may fail when you use the OAuth protocol for authorization through EAS in Exchange Server 2013
  • KB4036108 Security update for Microsoft Exchange: September 12, 2017

Notes:

  • Exchange 2016 CU7 requires Forest Functionality Level 2008R2 or later.
  • Exchange 2016 CU7 includes schema changes, but Exchange 2013 CU18 does not. However, Exchange 2013 CU17 may introduce RBAC changes in your environment. Where applicable, use setup /PrepareSchema to update the schema or /PrepareAD to apply RBAC changes, before deploying or updating Exchange servers. To verify this step has been performed, consult the Exchange schema overview.
  • When upgrading your Exchange 2013 or 2016 installation, don’t forget to put the server in maintenance mode when required. Regardless, setup will put the server in server-wide offline mode post-analysis, before making actual changes.
  • Using Windows Management Framework (WMF)/PowerShell version 5 or later on anything earlier than Windows Server 2016 is not supported. Don’t install WMF5 on your Exchange servers running on Windows Server 2012 R2 or earlier.
  • NET Framework 4.7.1 is being tested by the Exchange Team, but .NET Framework 4.7.1 nor .NET Framework 4.7 are supported.
  • When using Exchange hybrid deployments or Exchange Online Archiving (EOA), you are required to stay at most one version behind (n-1).
  • If you want to speed up the update process for systems without internet access, you can follow the procedure described here to disable publisher’s certificate revocation checking.
  • Cumulative Updates can be installed directly, i.e. no need to install RTM prior to installing Cumulative Updates.
  • Once installed, you can’t uninstall a Cumulative Update nor any of the installed Exchange server roles.
  • The order in which you upgrade servers with Cumulative Updates is irrelevant.

Caution: As for any update, I recommend to thoroughly test updates in a test environment prior to implementing them in production. When you lack such facilities, hold out a few days and monitor the comments on the original publication or forums for any issues.

The UC Architects Podcast Ep64


iTunes-Podcast-logo[1]Episode 64 and last episode of The UC Architects podcast is now available. Contrary to the belief of some, people’s agendas rather than lack of contents made it more and more difficult to get sufficient people together for recording. Thanks for the great 5 year ride, people!

This episode is hosted by Pat Richard, who is joined by Tom Arbuthnot, Stale Hansen and John Cook. Editing was done by Andrew Price.

Topics discussed in this episode are:

  • 5 years of The UC Architects podcast.
  • What made it fun, the friendships, the guests, the topics, and how social media has changed how info gets disseminated about Skype for Business, Exchange, Office 365, Teams, and more.
  • We talk about what the crew are up to these days, and their involvement/sessions at Ignite.
  • Skype for Business v.Next and Teams.
  • Some of the issues that arise when deploying Skype for Business when there is no Exchange in the org.
  • The upcoming Ignite and UCDay events.

You can download the podcast here or you can subscribe to the podcasts using iTunes, Zune or use the RSS feed.

About
The UC Architects is a community podcast by people with a passion for Unified Communications; our main focus is on Exchange, Skype for Business or related subjects.

Ignite 2017 Sessions


In about a month’s time, Microsoft Ignite 2017 – North America will kick off in the city of Orlando, Florida. Currently, the session catalog contains an amazing number of 1139 1161 sessions. With such a number, it can be hard to pick sessions depending on your areas of interest or expertise; the Ignite Session Scheduler can be a helpful tool to assist in this noble task.

However, when you want to perform more complex queries something more low-level might be appropriate. For this purpose I took my existing script IgniteDownloader.ps1, which could already be used to download Ignite contents such as videos and slide decks, and enhanced it so it can also be used to retrieve session information as PowerShell objects, allowing you to perform queries, reports etc. Because the script now suits more purposes, I renamed it to Get-IgniteSession.ps1 in the process.

Note that Get-IgniteSession leverages the online Microsoft Ignite session catalog, which is currently in the process of being finalized. You might find therefor the schedule is subject to change over the coming weeks, but also that you can no longer download contents from previous Ignite editions.

You can download the script from the TechNet Gallery here.

If you are attending Ignite, unlike me, some of the potential interesting sessions to look out for are (list subject to change):

Session Title Speaker(s)
BRK1005 Learn about the Microsoft global network and best practices for optimizing Office 365 connectivity Paul Collinge, Paul Andrew
BRK1053 Microsoft Office 365 adoption user group meetup Michael Blumenthal
BRK2195 Create engaging workflows inside Outlook and Microsoft Teams conversations with Actionable Messages David Claux, Shivakumar Seetharaman
BRK2203 Send secure email to anyone with Office 365 and Microsoft Azure Information Protection Praveen Vijayaraghavan
BRK2248 Microsoft Exchange: Through the eyes of MVPs (Panel discussion) Brian Reid, Michael Van Horenbeeck, Ingo Gegenwarth, Steve Goodman, Nicolas Blank, Tony Redmond
BRK2251 What’s new and what’s coming in the Microsoft Outlook family of apps JJ Cadiz, Alessio Roic
BRK2252 Group collaboration in Microsoft Outlook Krish Gali
BRK2374 Stop data exfiltration and advanced threats in Microsoft Office 365 and Azure
BRK2378 Understanding Multi-Geo Capabilities in Office 365 Sesha Mani, Sameer Sitaram
BRK2399 Delivering the modern workplace
BRK2401 Customer story: How to protect against security breaches and insider threats Edward Panzeter, Ian Lindsay
BRK2420 The road to hybrid cloud: Customer case studies optimizing Hyper-V, SQL Server, and Microsoft Azure
BRK3041 Key elements of Office 365 connectivity strategy base on real-life examples Paul Andrew, Jeff Mealiffe, Konstantin Ryvkin
BRK3051 Get your enterprise network ready for Office 365 Paul Andrew, Paul Collinge, Jeff Mealiffe
BRK3053 Troubleshooting Office 365 identity: How modern authentication works and what to do when it doesn’t Jonas Gunnemo
BRK3080 Build smarter apps with Office using the Microsoft Graph Yina Arenas
BRK3082 Anti-phishing with Office 365 Advanced Threat Protection Abhishek Agarwal
BRK3154 The epic Exchange preferred architecture debate Ross Smith IV, Lin Chen, Mike Cooper
BRK3155 Thrive as an enterprise organization in Microsoft Exchange Online Jeff Kizner
BRK3157 Exchange and Outlook mega “ask the experts” Brain Day, Greg Taylor, Jeff Mealiffe, Allen Filush, Scott Schnoll, Ross Smith IV, Julia Foran, JJ Cadiz, Alessio Roic, Meg Quintero, James Colgan, Steve Conn, Wey Love
BRK3158 Design your Exchange infrastructure right (or consider moving to Office 365) Boris Lokhvitsky, Robert Gillies
BRK3184 Deploying and using Outlook mobile in the Enterprise Ross Smith IV
BRK3185 Improvements and innovations in calendaring with Microsoft Outlook and Exchange Julia Foran
BRK3186 Running Exchange hybrid over the long term Michael Van Horenbeeck
BRK3222 Scott Schnoll’s Exchange tips and tricks Scott Schnoll
BRK3248 Exchange Online – spanning data center regions Brain Day
BRK3249 Modern authentication for Exchange Server on-premises Greg Taylor
BRK3259 Transitioning from distribution lists to Office 365 Groups in Outlook Shilpa Ranganathan
BRK3262 Implementing Exchange Online Protection for on-premises Exchange Brian Reid
BRK3263 Secure Exchange on-premises as well as Microsoft secures Exchange Online Andrew Higginbotham, Raji Dani
BRK3264 Troubleshooting complex Exchange operational issues Ingo Gegenwarth, Andrew Higginbotham
BRK3332 Ten critical areas for those moving from Exchange on-premises to Office 365 Tony Redmond
BRK3340 Use Microsoft Graph to reach on-premises users of Exchange 2016 deployments Deepak Singh
BRK3382 Securing, governing, and protecting your Office 365 investments Chris Bortlik
BRK3382R Securing, governing, and protecting your Office 365 investments (repeat) Chris Bortlik
BRK4021 Investigate tools and techniques for Exchange performance troubleshooting Nasir Ali, Jeff Mealiffe, Bob Samer, Justin Turner
BRK4022 Insights on Exchange storage, high availability, and data protection Lin Chen
BRK4029 Inside Exchange Online Matt Gossage
THR1014 What can you do with Office 365 Groups in Outlook?
THR1020 Tackling adoption as a service with Office 365 Richard Harbridge
THR1022 Bring your sales team together: Office 365 Groups, Teams & Microsoft Dynamics 365 in the real world Chris Johnson
THR1029 Spend less time managing data and more time with customers: Quick tour of Outlook Customer Manager
THR1035 Prevent costly data leaks from Microsoft Office 365
THR1046 Using Digital Experience Management to Validate the Impact of IT Change
THR1068 Online virtual labs: The hidden gem for free hands-on learning, practice, and exploration CA Callahan
THR2026 Set up secure and efficient collaboration for your organization with Microsoft Office 365 Joe Davies, Brenda Carter
THR2041 Using groups in Outlook for education Krish Gali
THR2042 Collaborate with people outside your company with Office 365 Groups in Outlook
THR2043 Dive deeper into what’s new and what’s coming for Outlook for Windows JJ Cadiz, Jason Creighton
THR2044 Dive deeper into what’s new and what’s coming for Outlook for Mac James Colgan
THR2045 Dive deeper into what’s new and what’s coming for Outlook on the web Allen Filush
THR2046 Dive deeper into what’s new and what’s coming for Outlook for iOS and Android Meg Quintero
THR2062 Real-world advanced threat protection Brian Reid
THR2063 What is DMARC Brian Reid
THR2065 Groups and Teams: Friend or foe? Loryan Strant
THR2080 Tackling cross-tenant Office 365 integration and migrations: Three things you need to know
THR2086 What’s new with Microsoft Exchange Online Public Folders
THR2088 The top five PowerShell commands for Exchange Steve Goodman
THR2097 Developing a blueprint for your data in Microsoft Azure
THR2153 Improving calendaring in Microsoft Office 365 and Outlook
THR2173 Microsoft Office 365: Avoid the Icarus effect J. Peter Bruzzese
THR2181 The impact of digital literacy on Office 365 user adoption Tracy Van der Schyff
THR2203 Put your enterprise applications in the fast lane
THR2205 Delivering the borderless workplace
THR2214 Hybrid cloud activated: A customer case study optimizing on-premises and Azure performance and cost Mor Cohen
THR2229 Get the most from the Microsoft Dynamics 365 Mobile App
THR3022 Troubleshooting Exchange ActiveSync devices Ingo Gegenwarth
THR3023 PowerShell Desired State Configuration: Keep your service stable and stay on top of your config Ingo Gegenwarth
THR3034 Complete your collaboration practice: Voice & video solutions for Office 365 and Skype for Business
THR4000 Edge Transport servers and Hybrid: Why, or why not? Michael Van Horenbeeck