<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: DeviceManager</title>
    <description>The latest articles on DEV Community by DeviceManager (@devicemanager).</description>
    <link>https://dev.to/devicemanager</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1054759%2Fd984db74-788c-4e19-8a4e-0263afa06b89.jpg</url>
      <title>DEV Community: DeviceManager</title>
      <link>https://dev.to/devicemanager</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/devicemanager"/>
    <language>en</language>
    <item>
      <title>Intune Win32 App: Run huge app updates with Powershell</title>
      <dc:creator>DeviceManager</dc:creator>
      <pubDate>Wed, 30 Apr 2025 13:47:31 +0000</pubDate>
      <link>https://dev.to/devicemanager/intune-win32-app-run-huge-app-updates-with-powershell-5283</link>
      <guid>https://dev.to/devicemanager/intune-win32-app-run-huge-app-updates-with-powershell-5283</guid>
      <description>&lt;h1&gt;
  
  
  Introduction
&lt;/h1&gt;

&lt;p&gt;Intune Win32 apps can register apps up to 30GB in size. However, registering large apps takes a considerable amount of time at the upload stage, making it difficult to do this manually.&lt;br&gt;
I used the MS Graph Powershell sample to see if there was a way to upload more efficiently.&lt;/p&gt;
&lt;h1&gt;
  
  
  Available scripts
&lt;/h1&gt;

&lt;p&gt;The scripts here allow you to do everything from registering to updating Win32 apps, and it seems to have improved usability in many ways.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/MSEndpointMgr/IntuneWin32App" rel="noopener noreferrer"&gt;https://github.com/MSEndpointMgr/IntuneWin32App&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Meanwhile, the following sample is available in the official Microsoft Graph SDK powershell.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/microsoft/mggraph-intune-samples" rel="noopener noreferrer"&gt;https://github.com/microsoft/mggraph-intune-samples&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/microsoft/mggraph-intune-samples/tree/main/LOB_Application" rel="noopener noreferrer"&gt;https://github.com/microsoft/mggraph-intune-samples/tree/main/LOB_Application&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/microsoft/mggraph-intune-samples/blob/main/LOB_Application/Win32_Application_Update.ps1" rel="noopener noreferrer"&gt;https://github.com/microsoft/mggraph-intune-samples/blob/main/LOB_Application/Win32_Application_Update.ps1&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I would like to try using the official MS version if possible, so I will experiment with this sample.&lt;/p&gt;
&lt;h1&gt;
  
  
  Testing and modification
&lt;/h1&gt;

&lt;p&gt;For testing purposes, create an install.intunewin file of about 8GB in advance.&lt;/p&gt;

&lt;p&gt;Also, register the Win32 app with empty content in advance.&lt;/p&gt;

&lt;p&gt;Then, try running it like this by calling the sample function.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Now we'll dot source the sample file so that we can use the functions.
. ".\Win32_Application_Update.ps1"

# This is a must-have spell before you can use Graph. It authenticates you.
Connect-MgGraph

# Specify the ID of the previously registered Win32 app and the path of the intunewin file that you created.
Invoke-Win32AppUpdate -AppId "2bdc5c92-cc6b-477d-9ee2-7b2624136910" -UpdateAppContentOnly $true -SourceFile ".\install.intunewin"

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can also check the Win32 app ID in your browser as follows.&lt;br&gt;
When the target app is open, you can see the long ID in the address bar.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpjwjc5milnyod3aafjj5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpjwjc5milnyod3aafjj5.png" alt="Image description" width="800" height="30"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And when I tried to run it, I encountered a number of problems. I'll solve them one by one.&lt;/p&gt;
&lt;h2&gt;
  
  
  Trouble 1
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpfaeb9zxopfc6a67hgnd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpfaeb9zxopfc6a67hgnd.png" alt="Image description" width="800" height="54"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is simple. The file size probably doesn't fit into Uint32, so change the Uint32 to Uint64 to solve the problem.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
        # Upload the file to Azure Storage
        Write-Host "Uploading the file to Azure Storage..." -ForegroundColor Yellow
        $file = WaitForFileProcessing $fileUri "AzureStorageUriRequest"
        [UInt64]$BlockSizeMB = 4
        UploadFileToAzureStorage $file.azureStorageUri $IntuneWinFile $BlockSizeMB  $fileUri

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Trouble #2
&lt;/h2&gt;

&lt;p&gt;After updating, the upload proceeded for a while, but then I got this error. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc7q43jq7mpc0oor1kteb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc7q43jq7mpc0oor1kteb.png" alt="Image description" width="800" height="236"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;What does 403 mean? I looked at the aforementioned IntuneWIn32App and other sources, and it seems that the Win32 app uploads to Azure Blob, but the SAS has a time limit. If you don't update it periodically even during upload, you'll get this error. So I improved the UploadFileToAzureStorage function and added SAS Renewal as logic. It updates every 450000 msec = 7.5 minutes.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;function UploadFileToAzureStorage($sasUri, $filepath, $blockSizeMB,  $fileUri) {
    # Chunk size in MiB
    $chunkSizeInBytes = (1024 * 1024 * $blockSizeMB)

    # Read the whole file and find the total chunks.
    #[byte[]]$bytes = Get-Content $filepath -Encoding byte;
    # Using ReadAllBytes method as the Get-Content used alot of memory on the machine
    $fileStream = [System.IO.File]::OpenRead($filepath)
    $chunks = [Math]::Ceiling($fileStream.Length / $chunkSizeInBytes)

    # Upload each chunk.
    $ids = @()
    $cc = 1
    $chunk = 0

    # Start the timer for SAS URI renewal
    $SASRenewalTimer = [System.Diagnostics.Stopwatch]::StartNew()


    while ($fileStream.Position -lt $fileStream.Length) {
        $id = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes($chunk.ToString("0000")))
        $ids += $id

        $size = [Math]::Min($chunkSizeInBytes, $fileStream.Length - $fileStream.Position)
        $body = New-Object byte[] $size
        $fileStream.Read($body, 0, $size) &amp;gt; $null
        $totalBytes += $size

        Write-Progress -Activity "Uploading File to Azure Storage" -Status "Uploading chunk $cc of $chunks" -PercentComplete ($cc / $chunks * 100)
        $cc++

        UploadAzureStorageChunk $sasUri $id $body | Out-Null
        $chunk++

        # Ensure the SAS Uri is renewed
        if ($SASRenewalTimer.ElapsedMilliseconds -ge 450000) {
            Write-Host -Message "SAS Uri renewal is required, attempting to renew"
            $RenewSASURIRequest = Invoke-MgGraphRequest -uri "$($fileUri)/renewUpload" -Method "POST" -Body "{}"
            $Stage = "AzureStorageUriRenewal"
            do {
                $GraphRequest = Invoke-MgGraphRequest -uri $fileUri -Method "GET"
                switch ($GraphRequest.uploadState) {
                    "$($Stage)Pending" {
                        Write-Host -Message "Intune service request for operation '$($Stage)' is in pending state, sleeping for 10 seconds"
                        Start-Sleep -Seconds 10
                    }
                    "$($Stage)Failed" {
                        Write-Host -Message "Intune service request for operation '$($Stage)' failed"
                        throw
                    }
                    "$($Stage)TimedOut" {
                        Write-Host -Message "Intune service request for operation '$($Stage)' timed out"
                        throw
                    }
                }
            }
            until ($GraphRequest.uploadState -like "$($Stage)Success")
            Write-Host -Message "Intune service request for operation '$($Stage)' was successful with uploadState: $($GraphRequest.uploadState)"

            $SASRenewalTimer.Restart()
        }
    }

    # Stop timer
    $SASRenewalTimer.Stop()

    $fileStream.Close()
    Write-Progress -Completed -Activity "Uploading File to Azure Storage"

    # Finalize the upload.
    FinalizeAzureStorageUpload $sasUri $ids | Out-Null
}

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Trouble #3
&lt;/h2&gt;

&lt;p&gt;When I enabled SAS update, the upload went smoothly, probably because updates are made regularly like this.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxves65mc1tbwq32y4db3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxves65mc1tbwq32y4db3.png" alt="Image description" width="800" height="275"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;However, it failed at the very end. What is a 400 error?&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7ifl9l3puv50oe681wod.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7ifl9l3puv50oe681wod.png" alt="Image description" width="800" height="325"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This was the only thing I didn't really understand, but I tried putting in a sleep of 180 seconds (3 minutes) before the final update, and it actually worked.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
        # Commit the file to the service
        Invoke-MgCommitDeviceAppManagementMobileAppMicrosoftGraphWin32LobAppContentVersionFile -MobileAppId $mobileAppId -MobileAppContentId $ContentVersionId -MobileAppContentFileId $ContentVersionFileId -BodyParameter $params

        # Wait for the file to be processed
        Write-Host "Waiting for the file to be processed..." -ForegroundColor Yellow
        $file = WaitForFileProcessing $fileUri "CommitFile"

        Start-Sleep -Seconds 180

        # Check if we are only updating the content
        if ($UpdateAppContentOnly) {
            $params = @{
                "@odata.type"           = "#microsoft.graph.win32LobApp"
                committedContentVersion = "$ContentVersionId"
            }
        }
        else {
            $params = $mobileAppBody
            $params.committedContentVersion = "$ContentVersionId"
        }

        $params = $params | ConvertTo-Json

        # Update the application with the new content version
        Write-Host "Updating the application with the new content version..." -ForegroundColor Yellow
        Update-MgDeviceAppManagementMobileApp -MobileAppId $mobileAppId -BodyParameter $params

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;I finally got it to work properly, but it's taking a long time to upload.&lt;/p&gt;

&lt;p&gt;It seems that MS's sample didn't take into account uploads of such large sizes.&lt;/p&gt;

&lt;p&gt;The updated file is here. I've also submitted a pull request.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/keitanak/mggraph-intune-samples/blob/LargeUpload/LOB_Application/Win32_Application_Update.ps1" rel="noopener noreferrer"&gt;https://github.com/keitanak/mggraph-intune-samples/blob/LargeUpload/LOB_Application/Win32_Application_Update.ps1&lt;/a&gt;&lt;/p&gt;

</description>
      <category>intune</category>
      <category>microsoftgraph</category>
      <category>powershell</category>
    </item>
    <item>
      <title>Interactive installation with the InTune Win32 app</title>
      <dc:creator>DeviceManager</dc:creator>
      <pubDate>Wed, 29 Mar 2023 12:51:34 +0000</pubDate>
      <link>https://dev.to/devicemanager/interactive-installation-with-the-intune-win32-app-2l8m</link>
      <guid>https://dev.to/devicemanager/interactive-installation-with-the-intune-win32-app-2l8m</guid>
      <description>&lt;h2&gt;
  
  
  Backgrouond
&lt;/h2&gt;

&lt;p&gt;Win32 apps are often used when distributing apps using Intune.&lt;br&gt;
Unfortunately, Intune cannot be installed without silent installation.&lt;br&gt;
It would be nice if all apps were installed silently, but in reality there are many cases where this is not the case.&lt;br&gt;
After a lot of research, I found that there are people in overseas communities who are having the same problem, and the following countermeasures have been published.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.anoopcnair.com/use-serviceui-with-intune-to-bring-system-process-to-interactive-mode/" rel="noopener noreferrer"&gt;Use ServiceUI with Intune to Bring SYSTEM Process to Interactive Mode&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Isn't there a way other than ServiceUI? I thought, and I suddenly thought that I could do the same thing with psexec? I tried it and it worked, so I'm writing an article.&lt;/p&gt;

&lt;p&gt;I think that it can be used for those who are in trouble because they cannot install interactively with Intune's Win32 application distribution, or for temporary support until creating a silent installation package.&lt;/p&gt;

&lt;h2&gt;
  
  
  About psexec
&lt;/h2&gt;

&lt;p&gt;I will omit the explanation about psexec, but it is a tool published by MS. You may use it when you want the process to run under the System account.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F357t5l055ss6hyojivnq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F357t5l055ss6hyojivnq.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can use the -i command line option to interact with the specified session.&lt;/p&gt;

&lt;p&gt;In the installation command when executing app distribution with intune,&lt;/p&gt;

&lt;p&gt;psexec.exe -i   /accepteula&lt;/p&gt;

&lt;p&gt;By doing so, I think that you can connect the screen to the user's session ID while executing the installation command with the System account.&lt;/p&gt;

&lt;h2&gt;
  
  
  Example(7-zip)
&lt;/h2&gt;

&lt;p&gt;I'll try it right away, prepare 7-Zip to be distributed with PSAppDeployToolkit, and put the above psexec in the installation command to achieve interactive installation.&lt;/p&gt;

&lt;p&gt;I will also omit the explanation about PSAppDepolyToolkit, but it is a collection of helper scripts that you want to have such functions when distributing applications with SCCM or Intune. It's hard to make by myself, so I'm grateful that something like this is open to the public.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://psappdeploytoolkit.com/" rel="noopener noreferrer"&gt;PSAppDeployToolkit&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  File Structure
&lt;/h2&gt;

&lt;p&gt;The source file folder looks like this:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frps8hc3s1y9tu635lmas.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frps8hc3s1y9tu635lmas.png" alt="Image description"&gt;&lt;/a&gt;&lt;br&gt;
Place the installation files under Files.&lt;br&gt;
This time it will be like this.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjf6mpb2x397zseey8qfd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjf6mpb2x397zseey8qfd.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Install Script
&lt;/h2&gt;

&lt;p&gt;In the INSTALLATION section write like this.&lt;br&gt;
Acquire the session ID of the logged-in user on the first line (acquire the session ID of Explorer.exe)&lt;br&gt;
The second line uses psexec to actually execute the installation command.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

$sid=(Get-Process -Name explorer).SessionId
Execute-Process -Path "$dirFiles\PsExec.exe" -Parameters "-i $sid /accepteula $dirFiles\7z1900-x64.exe" -WindowStyle 'Normal'


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;I have the actual file here.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/keitanak/IntuneWin32Sample/tree/main" rel="noopener noreferrer"&gt;Deploy-Application.ps1&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Building IntunWin file
&lt;/h2&gt;

&lt;p&gt;Under this folder I kept a set of PSAppdeploy files.&lt;br&gt;
D:\Documents\Intune\Apptest01\Toolkit&lt;/p&gt;

&lt;p&gt;The IntuneWin file for uploading was created as follows.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjn0zb0cifpale07tbo61.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjn0zb0cifpale07tbo61.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Intune Setting
&lt;/h2&gt;

&lt;p&gt;The Install command can be left as it is PSAppDeployTookit.&lt;br&gt;
Silent is attached, but this is an instruction for PSAppDeployTookit, so the actual installer screen is displayed.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8ujgpu6dx7oasg3cjs7y.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8ujgpu6dx7oasg3cjs7y.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Test Installation result
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fylozdoh2lplmgljvjfsj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fylozdoh2lplmgljvjfsj.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F88d4bo3nc3si2fmsdorn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F88d4bo3nc3si2fmsdorn.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The installer screen of 7Zip was displayed properly.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3w9uiz0j35y7uevmnii3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3w9uiz0j35y7uevmnii3.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It completed normally.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Feacf8n5rh4yb6sv8nuio.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Feacf8n5rh4yb6sv8nuio.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffist7nxepit0k19tv8wo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffist7nxepit0k19tv8wo.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;There is no need to make 7Zip interactive, but it seems to be useful for things that require more complicated installations, and for printer drivers and other interactive applications.&lt;/p&gt;

&lt;h2&gt;
  
  
  Closing
&lt;/h2&gt;

&lt;p&gt;If you think about it, the problem is that you can't do this with Intune in the first place. I posted it on the MS Feedback site, so if you agree, please vote.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://feedbackportal.microsoft.com/feedback/idea/bc1837a6-29c6-ed11-a81b-002248519701" rel="noopener noreferrer"&gt;Ability to allow Win32 Application(System context) Interactive installation&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Enjoy your Intune life!&lt;/p&gt;

</description>
      <category>intune</category>
      <category>powershell</category>
    </item>
  </channel>
</rss>
