Deploy File to Intune Enrolled Devices as Win-32 App

Copper Contributor

I had a request to Deploy a pdf file to user's desktop and could not find clear documentation, hence here is how I successfully deployed it and decided to share is with this amazing community.

Deploy File to Intune Enrolled Devices

Deploy a file to Intune enrolled device's to "C:\Users\Public\Desktop" through Intune

Step 1: Prepare the files:

  1. The File
  2. Install-file.ps1
  3. Remove-file.ps1
  4. Detect-file.ps1

Step 2" Create an Install, Remove & Detect script & save each scripts

A. Install:

#Installation Script: Install-file.ps1

$FileName = "FileToDesktop.pdf"

$ScriptPath = [System.IO.Path]::GetDirectoryName($MyInvocation.MyCommand.Definition)

Copy-Item -Path "$ScriptPath\$FileName" -Destination "$Env:Public\Desktop"

B. Remove:

# Remove Installation: Remove-file.ps1

$FileName = "FileToDesktop.pdf"

Remove-Item -Path "$Env:Public\Desktop\$FileName"

 

alazarghide_0-1687621497672.png

C. Detect:  # save this in a separate folder

#Detect File : Detect-file.ps1

$FileName = "FileToDesktop.pdf"

if (Test-Path -Path "$Env:Public\Desktop\$FileName"){

    Write-Output "0"

}

alazarghide_1-1687621497673.png

Step 3: collect Install-file .ps1, Remove-file .ps1 and the required files in one folder as shown above and create an Intune installation Package.

 

PS C:\Intune\WindowsIntunePrepTool> .\IntuneWinAppUtil.exe

Please specify the source folder: C:\DeployFile\FileToDeploy

Please specify the setup file: FileToDesktop.pdf

Please specify the output folder: C:\DeployFile

Do you want to specify catalog folder (Y/N)?N

 

alazarghide_2-1687621497675.png

alazarghide_3-1687621497677.png

Step 4. Deploy Intune installation file with the following commands

  • Upload the IntunePackage as " App : Windows app (Win32)

alazarghide_4-1687621497680.png

 

  • Install Command: %windir%\system32\windowspowershell\v1.0\powershell.exe -executionpolicy bypass -file "Install-file.ps1"
  • Uninstall Command: %windir%\system32\windowspowershell\v1.0\powershell.exe -executionpolicy bypass -file "Remove-file.ps1"
  • Operating system architecture = select both 32/64-bit
  • Detection rule: use custom detection script and upload the Detect script created above.

alazarghide_5-1687621497685.png

 

alazarghide_6-1687621497687.png

alazarghide_7-1687621497688.png

 

Following the above steps, it is straight forward and easy to deploy a file to Intune Enrolled devices when required.

7 Replies

Thanks for the help! @alazarg
Is it possible, do use the same method for more than one file? Or do I need to to some shenanigans when its more than one file?


Thanks!
 

@Kay_Urban
That is a good question!
To deploy multiple file using one deployment action, you can modify the install, remove and detect scripts. for example to modify "install-file.ps1"
-----------------------------
#Installation Script: Install-file.ps1
$FileName1 = "FileToDesktop1.pdf"
$FileName2 = "FileToDesktop2.pdf"
$FileName3 = "FileToDesktop3.pdf"
$ScriptPath = [System.IO.Path]::GetDirectoryName($MyInvocation.MyCommand.Definition)
Copy-Item -Path "$ScriptPath\$FileName1" -Destination "$Env:Public\Desktop"
Copy-Item -Path "$ScriptPath\$FileName2" -Destination "$Env:Public\Desktop"
Copy-Item -Path "$ScriptPath\$FileName3" -Destination "$Env:Public\Desktop"
-----------------------------------------
I hope this helps.
It does, it worked perfectly. Thanks!

@alazarg 

 

For multiple files in one, how would you save the files to make IntuneWinAppUtil.exe take them in?

@alazarg 

 

Hi Buddy

 

Great informative post.

 

How can I get this to work on a standalone EXE file that is in a folder with what looks like lots of dependencies?

 

I have tried adding my EXE and it's files as well as your 2 files to the Win32 Tool but the install fails.

 

Any clues?

 

Info appreciated

@Stuart King 

 

I have an application (Therefore Navigator by App Extender via Cannon) which has several Windows dependencies. It looks like I have to use Orca to modify the installation package and identify the dependencies, and manage their installation. I put a little bit of effort into it but I ran out of clock cycles and had to move on. Orac is