byteben / win32app-migration-tool Goto Github PK
View Code? Open in Web Editor NEWLicense: GNU General Public License v3.0
License: GNU General Public License v3.0
Generating the Win32App fails and the content folder is empty after running the command.
When I run the generated IntuneWinAppUtil.exe.exe command manually it throws an error
`ERROR File 'C:\Win32AppMigrationTool\Win32Apps\Application_4cb79509-5ae7-47d2-80a9-13461f3baea1\DeploymentType_bd6026d1
-9306-408f-aba6-70a48d48358d\setup.intunewin' has failed to be generated
[=========== ] 22%
INFO Done!!!
ERROR System.IO.FileNotFoundException: Could not load file or assembly 'System.IO.Compression, Version=4.2.0.0, Culture
=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies. The system cannot find the file specified.
File name: 'System.IO.Compression, Version=4.2.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'
at Microsoft.Management.Service.IntuneWinAppUtil.ZipUtil.CreateFromDirectory(String sourceDirectoryName, String desti
nationArchiveFileName, Nullable`1 compressionLevel, Boolean includeBaseDirectory, ReportProgress reportProgress)
at Microsoft.Management.Service.IntuneWinAppUtil.ZipUtil.ZipFolder(String folder, String zipFile, AppContext context,
Boolean noCompression, Boolean includeBaseDirectory, Boolean appendFile)
at Microsoft.Management.Service.IntuneWinAppUtil.PackageUtil.CreatePackage(String folder, String setupFile, String ou
tputFolder, String catalogFolder)
at Microsoft.Management.Service.IntuneWinAppUtil.Program.Main(String[] args)
WRN: Assembly binding logging is turned OFF.
To enable assembly bind failure logging, set the registry value [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) to 1.
Note: There is some performance penalty associated with assembly bind failure logging.
To turn this feature off, remove the registry value [HKLM\Software\Microsoft\Fusion!EnableLog].
`
The system is running Windows Server 2012 R2 almost the latest build, but not the latest. .Net Framework. I think it might have something to do with that. Can you confirm it needs a minimum version of .Net framework installed on the server?
Installed .Net Framework versions
Error in Powershell
Application I am testing with is Microsoft Apps for 365. All other applications I try fail with the same error.
New-Win32App ... -PackageApps fails to build the .intunewin file if it doesn't find find a setup file with an extension it recognises.
With vb-script being deprecated I have recently started converting my vb-script files to j-script.
The setup wrapper I used was for my installation was a j-script .js file.
To resolve the issue I added the following if statement into my local copy of New-Intunewin.ps1
elseif ($SetupFile -match ".js") {
$commandToUse = Get-InstallCommand -InstallTech '.js' -SetupFile $SetupFile
}
I tried to convert an application where the sources of install and uninstall 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 it adds the two paths in one and gives an error "path not found".
Example:
source install:
\server\pkg\Src\Microsoft\Office 365\EN\
source uninstall:
\server\pkg\Src\Microsoft\Office 365\Uninstaller\
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\
then I can't run a test like I want to validate if two sources with the same name file will work.
Yves
Thank you for developing amazing tool!
If [Application_Name] [Application_Description] contains 2 bytes, it will be output and [Applications.csv] will be output as garbled characters in Japanese environment.
If possible, I'm glad that you make this code support for double-byte character languages.
My project has 2,000 app migrations from MECM to Intune, so I'm looking forward to GA development as well
The New-IntuneWin function is using the 'C:\Win32AppMigrationTool\Content' as the source instead of the actual source when DownloadContent is not specified. This of course causes IntuneWinAppUtil.exe to fail since the source files are not present in the 'C:\Win32AppMigrationTool\Content' folder.
Is anyone else having this issue?
Ben, why are you retrieving the whole list of CM apps and then do filtering by name on the client side when you can make use of the "Name" parameter of Get-CMApplication supporting wildcards and let the server do the filtering?
My environment (300+ apps):
$apps = Get-CMApplication -Fast | Where-Object { $_.LocalizedDisplayName -like "*java*" }
$apps = Get-CMApplication -Name "*java*" -Fast
We're in early stages of migrating all our packaged apps from SCCM to Intune and I came up with an idea that we could make use of Win32App-Migration-Tool combined with IntuneWin32App - the former doing the job of exporting the app and the latter of importing.
Unfortunately, your project has been stuck for quite a while in the beta stage and doesn't even handle a full export of a SCCM app... :( Do you still intend to develop this further Ben?
Even if you don't perhaps you could help me out with the Get-DetectionMethods feature? I have a raw (half-working) version in my fork:
https://github.com/obuolinis/Win32App-Migration-Tool/blob/d3e54598c254b1b7624b311a50b1bee8f882a92d/Private/Get-DetectionMethods.ps1 (updated a broken link)
Also, some necessary changes in New-Win32App to support it:
obuolinis@d3e5459#diff-4fc9ecf4be5f2c45f36d33af4e80484f5426c55a5066b925713fe9ca0a8eb357
However, I'm facing certain challenges with the function itself and its integration into the whole flow, specifically:
So there you go, ideas are welcome.
Great job Ben, just tested it and it ran smoothly in my lab. At my customer I have identified 1956 applications, but lots of those are coming from PatchMyPC. So I want to filter on folder e.g. Applications\Desktop\Software and not pick Applications\Desktop\PatchMyPC.
First, love the tool. I'm having to convert about 120 applications from SCCM into Intune with the slow migration of getting more workloads into Intune in our hybrid environment. Here is the line I am running
New-Win32App -SiteCode "CCC" -ProviderMachineName "CCC.contoso.local" -AppName "*Seven*" -WorkingFolder "I:\IntuneApps" -ExportIcon -DownloadContent -PackageApps -CreateApps -ResetLog
I noticed whenever I will select multiple applications is only builds 1 of the applications.
You can see it does notice there are 2 applications that were selected but then it only actually creates the contents, .intunewin, and detail CSVs file for just 1
I have a $SetupFile variable as this: msiexec /i "Print Settings 1.0.1.msi" /q
The resulting $command is "1.0.1.msi", which is not right.
Don't know if spaces in the filename can be handled somehow.
Hi
When using the tool the resulting *.intunewin file is named after the install command.
In my case we use PSADT so the install command is "Deploy-Application.exe", resulting in "Deploy-Application.intunewin"
Would it be possible to name the files/folders after the app name like "7-Zip", "Adobe Reader" and so on ?
Maybe a folder structure like: App-name --> App-version --> App-name.intunewin
Thank you very much Ben for this useful tool!
I have one question about the parameter -CreateApps . This will create automatically the Application to Intune? It will prompt for credentials connecting to MEM?
Not a huge issue,
Is there a switch or parameter to allow for Application Name instead of GUID? Also when I go to import into InTune is does not know the name either. Perhaps I am not doing this correctly.
Love the module!! Keep it up!
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.