HOWTO: Installing Adobe Creative Cloud with Microsoft Intune on macOS

As we know, in order to deploy apps with Intune on macOS the app needs to be a signed .pkg file wrapped into a .intunemac file.

From Adobe Admin console we can create a pkg file containing the Adobe CC app or other Adobe apps if needed. Unfortunately this file is not signed, and multiple forum threads confirm that signing them is not supported.

So how do we get around that? I was searching around to find a proper solution. I couldn’t find anyone who had come up with a solution, so I decided to find one my self. What if we don’t sign the Adobe CC pkg file it self but wrap it into another pkg file and run the Adobe CC pkg as a postscript? I did that and it’s actually working!

Creating the package on Adobe Admin Console

Continue reading

Deploy multiple Office 365 ProPlus languages with Intune

By default, if we want to install multiple languages of Office 365 ProPlus on the same device, it is only possible if we create one package with all the desired languages. This is also the best practices from Microsoft on how to deploy additional languages with Office 365 ProPlus.

But what if we want to have one package for every language?

I know the same can be achieved by letting Office setting the install language to follow the OS language, but if the OS is always English and not localized, this doesn’t help.

An example could be if we always install English Office for all users, but want to provide the users an easy way to install another Office language. Or if we simply want to minimize the footprint and diskspace, by only installing the desired language or let the user decide what language of Office 365 ProPlus they want.

This can be done if we create the Office package as a Win32 app in Intune. Because we can specify Detection Rules, we can specify a different rule for each language. Using this method also lets you add an Image that fits and looks better in Company Portal. I’d recommend using the following image:

How to do it?

Here’s the XML file i always start with:

<Configuration ID="ba28e355-69e8-490a-ba64-1ca58c928a8b">
  <Add OfficeClientEdition="32" Channel="Broad" AllowCdnFallback="TRUE" ForceUpgrade="TRUE">
    <Product ID="O365ProPlusRetail">
      <Language ID="en-us" />
      <ExcludeApp ID="Groove" />
      <ExcludeApp ID="OneNote" />
  <Property Name="SharedComputerLicensing" Value="0" />
  <Property Name="PinIconsToTaskbar" Value="TRUE" />
  <Property Name="SCLCacheOverride" Value="0" />
  <Updates Enabled="TRUE" />
  <RemoveMSI All="TRUE" />
    <Setup Name="Company" Value="" />
    <User Key="software\microsoft\office\16.0\common\general" Name="shownfirstrunoptin" Value="1" Type="REG_DWORD" App="office16" Id="L_DisableOptinWizard" />
    <User Key="software\microsoft\office\16.0\common" Name="qmenable" Value="0" Type="REG_DWORD" App="office16" Id="L_EnableCustomerExperienceImprovementProgram" />
    <User Key="software\microsoft\office\16.0\common\general" Name="ShownFileFmtPrompt" Value="1" Type="REG_DWORD" App="office16" Id="L_ShownFileFmtPrompt" />
    <User Key="Software\Microsoft\Office\16.0\Outlook\Options\General" Name="DisableOutlookMobileHyperlink" Value="1" Type="REG_DWORD" App="office16" Id="L_DisableOutlookMobileHyperlink" />
    <User Key="Software\Policies\Microsoft\Office\16.0\Outlook\Options\General" Name="DisableOutlookMobileHyperlink" Value="1" Type="REG_DWORD" App="office16" Id="L_DisableOutlookMobileHyperlink2" />
    <User Key="software\microsoft\office\16.0\excel\options" Name="defaultformat" Value="51" App="excel16" Id="L_SaveExcelfilesas" />
    <User Key="software\microsoft\office\16.0\powerpoint\options" Name="defaultformat" Value="27" App="ppt16" Id="L_SavePowerPointfilesas" />
    <User Key="software\microsoft\office\16.0\word\options" Name="defaultformat" Value="" App="word16" Id="L_SaveWordfilesas" />
  <Display Level="Full" AcceptEULA="TRUE" />
  <Logging Level="Standard" Path="C:\Temp\Office365Logs" />

First create the XML files needed, change the language in the configuration.xml to match what you want.

<Language ID="da-dk" />

Create the Intune Win32 app

Download the content prep tool from GitHub.

Follow these instruction on how to use Win32 app in Intune:

When you reach the point on where you can create the detection rule, use the following rule:

Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\O365ProPlusRetail – da-dk
key exist

Change da-dk to whatever language specified in the XML.

Deploy and assign the application.

Done 🙂

How to setup Android Zero Touch Corporate-owned, fully managed user devices with Intune

Just a quick step-by-step guide on how the configure Android Zero Touch with Intune.


Why do we want to use Corporate-owned, fully managed user devices? In order to give the user an out-of-box experience that automatically enrolls devices into our MDM solution, just like Apple DEP but for Android Enterprise devices. Also, it gives a less confusing user experience, as we only have a work profile and not a private AND work profile, like we do with personal owned android devices.

Of course this is still a preview feature in Intune, and context is subject to change.


  • A compatible device running Android Oreo (8.0) or Pixel phone with Android Nougat (7.0), purchased from a reseller partner
  • Intune licenses
  • A Login to the Android Zero Touch portal provided by your reseller (
Continue reading

Logon scripts in Intune

Quick and simple tip on how to get a Logon script like experience with Intune. On Azure AD joined devices, there’s currently no option to create Logon/Logoff or Startup/Shutdown script like we can with GPOs. I had a customer that needed a solution to start a command file as admin everytime the user signed on to the device.

There’s a workaround – Use Scheduled Tasks to create tasks that runs on Log On, and runs with Administrator rights / Local System if needed. It’s a very simple Powershell script, that created a scheduled task:

  • Create the scheduled task
  • Runs at Logon
  • Runs with Local SYSTEM account
  • Runs a command specified (in this example it runs a .cmd file that requires administrative rights. The .cmd file is already present on the devices – a software vender has placed it here)
Continue reading