Flashback to what it took to do math in DOS batch files

While working on a script for an upcoming project, I wanted to test for the presence of various Office versions, including 32-bit and 64-bit components before initiating setup. Here’s one way I found:

@ECHO OFF
SET CURRLOCATION32="C:\Program Files (x86)\Microsoft Office\root\Office16"
SET CURRLOCATION64="C:\Program Files\Microsoft Office\root\Office16"
SET PREV1LOCATION32="C:\Program Files (x86)\Microsoft Office\root\Office15"
SET PREV1LOCATION64="C:\Program Files\Microsoft Office\root\Office15"
SET PREV2LOCATION32="C:\Program Files (x86)\Microsoft Office\root\Office14"
SET PREV2LOCATION64="C:\Program Files\Microsoft Office\root\Office14"

REM Check for 64-bit versions
IF EXIST ""%CURRLOCATION64%\MANIFEST.XML""
[ Continue reading ]

Adopting OneDrive for Business

OneDrive for Business is, from my perspective, one of the most under-utilized but benefit-rich parts of the Office 365 platform, allowing organizations (especially organizations that subscribe to the E3 or higher SKU) virtually unlimited storage, versioning, and recovery capability for their file-based storage.… [ Continue reading ]

Clearing Skype Cached data

Last year, I had a project that involved migrating a large customer from Office 365 Dedicated to Office 365 GCC (multi-tenant).  While Exchange hybrid moves were possible for the mailboxes, we were unable to perform the necessary hybrid migration configuration for Lync to migrate users. … [ Continue reading ]

Remove a user’s oldest ActiveSync device

A few weeks ago, I saw something come up for a peer that needed a way to manage the maximum number of ActiveSync devices that a user had connected in Office 365.  Using only native Exchange policies, we can’t do that (MDM solutions solve this problem by manning the Exchange ActiveSync quarantine). … [ Continue reading ]

Disconnect all PSTs from the Default Outlook Profile

Today, one of my consultant peers posed a problem to me: a customer wanted to import all PSTs into Office 365 archives, but in order to do that, had to disconnect them from the user’s default Outlook profile.

Fortunately, you can expose a number of methods and properties from the Outlook ComObject inside PowerShell, so this wasn’t terribly difficult (although, I’m still trying to figure out how to do this against all Outlook profiles configured).… [ Continue reading ]