The Win32App Migration Tool is a free community tool that has been developed to do the scoping and heavy lifting for you as you consider building Win32apps in Intune while using your ConfigMgr apps as a reference. The tool is designed to inventory ConfigMgr Applications and Deployment Types, build .intunewin files and create Win32apps directly in the MEM admin center.
Table of Contents
- Win32 App Migration Tool
Microsoft Endpoint Manager (MEM) continues to grow from strength to strength. Having just recently marked its 10 year anniversary, Intune, part of MEM, is now a real force to be reckoned with. Many companies are realising the value of modernising the way they manage their endpoints and MEM offers them an astonishing arsenal of options. Every company I work with has a slightly different approach to modern management and the line between “on-premise” and “cloud” has definitely been blurred with recent MEM developments.
Many endpoint administrators and solution experts have invested heavily in the Configuration Manager application model. It has been a robust solution to deploy applications to devices since before I can even remember so here comes the challenge…as I look to move more workloads to the cloud to support my internet based devices, can I take my applications, that I invested blood, sweat and tears over for all those years, with me? Sure. Many organisations are realising the value of Cloud Management Gateway (CMG). I can absolutely deploy a CMG and continue to deliver my ConfigMgr apps to my internet based devices without killing my VPN. But what if part of my modern management strategy is to move my applications into Intune too? Or what if I want to start testing my business application delivery from Intune? Dipping a toe in the proverbial water so to speak. Can I not just export my applications from ConfigMgr straight into Intune? Sadly, no.
Deploying Win32apps, from Intune, very closely resembles the application delivery method in ConfigMgr. Win32apps have install/uninstall commands, requirements, detection logic, dependencies and now even supersedence (preview feature). One main difference is that you have to use a tool to “package” the application for delivery. A high level overview of creating a Win32app, when referencing a ConfigMgr app, to deploy from Intune, is:-
- Locate the source content directory for the ConfigMgr Application “Deployment Type”
- Identify the “Setup File” for each Deployment Type e.g. “AdobeReader.msi” or “InstallMyApp.ps1”
- Use the Win32 Content Prep Tool to take that information to create a .intunewin file
- Create a Win32app in the MEM console, upload the .intunewin and specify the app details, a logo, install/uninstall commands, program behaviour, return codes, detection logic, requirements, dependencies and supersedence rules (preview). This information would have to be gathered, normally manually, from the ConfigMgr console.
Maurice Daly has a good blog post on how to deploy Win32apps – go and check it out to learn more
Win32App Migration Tool
The Win32App Migration Tool is a free community tool that has been developed to do the scoping and heavy lifting for you as you consider building Win32apps in Intune while using your ConfigMgr apps as a reference. The tool is designed to inventory ConfigMgr Applications and Deployment Types, build .intunewin files and create Win32apps directly in the MEM admin center. Instead of manually checking Application and Deployment Type information and gathering content to build Win32apps, the Win32App Migration Tool is designed to do that for you.
The Win32App Migration Tool is still in development. This is a FREE community tool and will have input from various community members through each development stage. At the time of writing this post the tool is still in BETA with the intention to move rapidly to RELEASE and then General Availability (GA). You can expect the following features at each release cycle: –
- Configuration Manager Console The ConfigMgr console must be installed on the machine you are running the Win32App Migration Tool from. The following path should resolve true: $ENV:SMS_ADMIN_UI_PATH
- Local Administrator The default Working folder is %SystemDrive%\Win32AppMigrationTool. You will need permissions to create this directory on the System Drive
- Roles Permission to run the Configuration Manager cmdlet Get-CMApplication *
- Content Folder Permission Read permissions to the content source for the Deployment Types that will be exported
- PowerShell 5.1
- .NET Framework 4.7.2 to run the Win32 Content Prep Tool
- NuGet Provider 22.214.171.124 or newer
- Internet Access to download the Win32 Content Prep Tool
* Configuration cmdlets must be run from the Configuration Manager site drive. The Win32App Migration Tool will automatically make this connection.
The Win32App Migration Tool is published in the PowerShell Gallery. You can install the module by running the command: –
Install-Module -Name Win32AppMigrationTool
The Win32App Migration Tool will build (and maintain) the following “Working Directory”. The default directory created is %SystemDrive%\Win32AppMigrationTool
The Deployment Type content for the selected Application(s) will be copied to this folder. A folder will be created for each identified Deployment Type
The Win32 Content Prep Tool IntuneWinAppUtil.exe will be downloaded to this folder
During the BETA and RELEASE phase you will use the information gathered from ConfigMgr to build out the Win32apps in Intune manually. The information you will need is exported to 2 of the 3 CSV’s in the Details folder. Applications.csv and DeploymentTypes.csv
The information gathered in each CSV is as follows:-
Information about the Application(s) selected using the Win32App Migration Tool. This information can be used to build out the Win32app in Intune. Application_LogicalName is a link reference to Application_LogicalName in DeploymentType.csv
You can track where the content is downloaded for each Deployment Type. Content_DeploymentType_LogicalName is a link reference to DeploymentType_LogicalName in DeploymentTypes.csv
Information specific to each deployment type for each Application(s) selected using the Win32App Migration Tool. This information can be used to build out the Win32app in Intune
Application Logos are exported to this folder
Detailed log information can be found in Main.log
.intunewin files are exported to Win32Apps\Application_<GUID>\DeploymentType_<GUID>\<setupfile>.intunewin
Using the Win32 App Migration Tool
Once you have installed the module and observed the prerequisites you are ready to begin using the tool. During the BETA phase you will pass parameters to the Win32App Migration Tool in PowerShell. The command we run is New-Win32App. The following parameters are valid:-
.Parameter AppName (Required)
Pass an app name to search for any matching applications in ConfigMgr. You can use * as a wildcard e.g. “Microsoft*” or “*Reader”
.Parameter SiteCode (Required)
Specify the Sitecode you wish to connect to
.Parameter ProviderMachineName (Required)
Specify the Site Server to connect to
When passed, the Application logo is decoded from base64 and exported to the Logos folder
.Parameter WorkingFolder This is the working folder for the Win32AppMigration Tool. Care should be given when specifying the working folder because downloaded content can increase the working folder size considerably. The following folders are created in this directory:-
Pass this parameter to package selected apps in the .intunewin format. The .Intunewin files will be saved in the %WorkingFolder%\Win32Apps folder
.Parameter CreateApps (Not available in BETA or RELEASE development phases)
Pass this parameter to create the Win32apps in Intune
Pass this parameter to reset the log file
Pass this parameter supress the Out-GridView for selecting Applications. You can still pass wildcards to the -AppName parameter
Using the required parameters, we can run the tool for the first time
New-Win32App -AppName "Microsoft*" -ProviderMachineName bb-cm1.byteben.com -SiteCode BB1
Without specifying any other parameters, we are presented a Grid View, in a separate PowerShell window, with any apps that matched the AppName parameter that we passed. You can multi-select Applications using the Ctrl or Shift key. Press OK to pass the selected Application(s)
The tool will gather the Application and Deployment Type information and export it to “%WorkingFolder%\Details” Applications.csv and DeploymentTypes.csv
Run the basic example command and add the ExportLogo parameter
New-Win32App -AppName "Microsoft*" -ProviderMachineName bb-cm1.byteben.com -SiteCode BB1 -ExportLogo
Reset the Log
Run the basic example command and add the ResetLog parameter
New-Win32App -AppName "Microsoft*" -ProviderMachineName bb-cm1.byteben.com -SiteCode BB1 -ResetLog
Omit the Grid View
Run the basic example command and add the NoOGV parameter to omit the Grid View. The script will accept the AppName parameter and search for any Applications that match. You will not be prompted to choose from a list of available matches. Use CAUTION when using this parameter and at the same time using a wildcard in the AppName parameter as an unexpected large number of Applications may be returned and processed by the tool
New-Win32App -AppName "Microsoft*" -ProviderMachineName bb-cm1.byteben.com -SiteCode BB1 -NoOGV
Run the basic example command and add the PackageApps parameter. The Win32 Content Prep Tool will be downloaded to %WorkingFolder%\ContentPrepTool and the Deployment Type information gathered will be used to pass the required parameters to the Win32 Content Prep Tool. A resultant .intunewin file will be generated and exported to the %WorkingFolder%\Win32Apps\Application_<GUID>\DeploymentType_<GUID>\<Installer>.intunewin
New-Win32App -AppName "Microsoft*" -ProviderMachineName bb-cm1.byteben.com -SiteCode BB1 -PackageApps
Versioning information and on-going development details can be found on the following GitHub page:-
At the time of writing this post the Win32App Migration Tool is still in BETA. I am thrilled by the community buzz and interest so far. I cannot wait to see the feedback during the Release and General Availability phases as the tool is developed in collaboration with the MEM community. I am particularly excited about the upcoming Console Extension in ConfigMgr!
If you have any feedback or ideas my DM’s are open on Twitter @byteben or you can collaborate/report issues on the GitHub page https://github.com/byteben/Win32App-Migration-Tool
6 thoughts on “Automatically Migrate Applications from ConfigMgr to Intune with the Win32App Migration Tool”
I tried to install. I get two files – psd1 and psm1 but no folder off the systemdrive and no content. Yes I’m an Admin. Yes I tried to install the latest version (with -force as well). Yes I have tried to installed this on two different machines with the same result, both Win 10 enterprise 1909. Suggestions?
nice tool, thank you for that. I ran some tests trying to convert an application where install and uninstall sources are not the same. But both have a setup.exe file.
The first problem I have is that the way the robot copy command is done adds the two paths in one and gives an error “path not found”.
When it tries to copy the path that it uses is a path formed by the two destinations separated by a space.
In the log we can read:
Downloading Content for Deployment Type DeploymentType_6793e21e-b717-44db-8328-61b202c1898a from Content Source \server\pkg\Src\Microsoft\Office 365\EN\ \server\pkg\Src\Microsoft\Office 365\Uninstaller…
ERROR 3 (0x00000003) Accessing Source Directory \server\pkg\Src\Microsoft\Office 365\EN \server\pkg\Src\Microsoft\Office 365\Uninstaller\
Hi, great tool so far, how soon until your next update and or timeline on releasing a new version?
Thanks Cliff, I am actively developing it now. Hopeful to see a release in Feb/March.
I also found that the tool does not handle spaces in the install file name even if it is quotes, for example. “Some Setup.msi” only looks for Setup.msi and fails to create the intunewin file. Once I renamed the setup file with no spaces, then it works.
Thanks, ill take a look. You can track the fix if you do a Pull request on the GitHub repo 🙂