In the previous blog I explained how to deploy Win32 applications. Lets test the result!
As you remember, we deployed applications as Available, not Required. It means we can install an assigned app any time we need. Open Company Portal:
You see 7-Zip we deployed as Required app and published Jabra. When you click on the application you want to install you see additional information like version published date:
Click Install:
After couple of minutes, we see the result:
But… Lets check Intune console. Go to Apps and choose your application:
We see status Failed even if we successfully installed the app. Go to Device install status:
You can find details like computer name, user name and information about application installation status. It looks like parameters for silent installation work, but we have some problems with detection rules. Lets check logs for the device. Open C:\ProgramData\Microsoft\IntuneManagementExtension\Logs folder and run IntuneManagementExtension.log. First, we need to find an information about the status of the deployment:
JabraDirectSetup.exe /install /quiet /norestart
[Win32App] SetCurrentDirectory: C:\Windows\IMECache\6c506b74-7e58-4533-89a6-0d768c41290a_1
[Win32App] Launch Win32AppInstaller in machine session
[Win32App] lastWin32Error 0 after CreateProcess
[Win32App] lastHResult -2147024896 after CreateProcess
[Win32App] Create installer process successfully.
[Win32App] process id = 7000
[StatusService] Unable to get error code and hence returning unknown.
[StatusService] Saved AppInstallStatusReport for user 8d71d587-3cfe-46cc-a808-7a8eac014d59 for app 6c506b74-7e58-4533-89a6-0d768c41290a in the StatusServiceReports registry.
[StatusService] No subscribers to SendUpdateHandler.
[Win32App] Installer process timeout milliseconds: 3600000.
[Win32App] lastWin32Error 0 after WaitForSingleObject
[Win32App] lastHResult -2147024896 after WaitForSingleObject
[Win32App] Installation is done, collecting result
[Win32App] lpExitCode 0
[Win32App] hResultFromWin32 0
[Win32App] Set EnforcementStateMessage.ErrorCode 0
[StatusService] Saved AppInstallStatusReport for user 8d71d587-3cfe-46cc-a808-7a8eac014d59 for app 6c506b74-7e58-4533-89a6-0d768c41290a in the StatusServiceReports registry.
[StatusService] No subscribers to SendUpdateHandler.
[Win32App] lpExitCode is defined as Success
I marked in bold the most important part. ExitCode 0 means we successfully installed this app. As you remember we defined return code 0 as Successful status in application settings:
Scroll down the log and find information about detection rules:
[Win32App] ===Step=== Detection rules after Execution
[Win32App] ProcessDetectionRules starts
[Win32App] ProcessDetectionRules Parsing InstallEx…
[Win32App] DetectionType 2
[Win32App] Start detectionManager SideCarFileDetectionManager
[Win32App] Disable Wow64FsRedirection
[Win32App] GetFileVersionWin32 hit Exception: System.ArgumentOutOfRangeException: Version’s parameters must be greater than or equal to zero.
Parameter name: build
at System.Version..ctor(Int32 major, Int32 minor, Int32 build, Int32 revision)
at Microsoft.Management.Services.IntuneWindowsAgent.AgentCommon.SideCarFileDetectionManager.GetFileVersionWin32(String filePath)
[Win32App] GetFileVersionWin32 got null, fallback to managed lib
[Win32App] Checked filePath: C:\Program Files (x86)\Jabra\Direct4\jabra-direct.exe, Got versionStr:5.9.55495, compareValue 5.9.55495.0
[Win32App] GreaterThanOrEqual: actualVersion: 5.9.55495, compareVersion: 5.9.55495.0, applicationDetected: False
It means version of the file is 5.9.55495, but in Intune we configured 5.9.55495.0:
So that’s why we successfully installed the application, but installation status is Failed because of the wrong detection rule. Go to application properties and click on Detection rules – Edit:
Click on the path below Path/Code:
Then change the Value and save changes:
Run installation on the client again, then check the log:
The same status we see in Intune:
Voila!