Skip to content
The Lazy Administrator
  • Home
  • Disclaimer
  • Contact
  • About Me
  • Search Icon

The Lazy Administrator

Finding ways to do the most work with the least effort possible

Auto Deploy Progressive Web Applications (PWA) using Intune or PowerShell

Auto Deploy Progressive Web Applications (PWA) using Intune or PowerShell

August 20, 2025 Brad Wyatt Comments 0 Comment

Table of Contents

  • Objective
      • What are Progressive Web Applications?
  • Resolution
    • Intune
    • PowerShell
      • How does this work?

Objective

In this article I will walk you through installing progressive web app’s, or PWA’s to endpoint machines using either PowerShell or Microsoft Intune. You may want to do this for users with frontline licenses that grant them web apps but not full desktop application’s.

What are Progressive Web Applications?

Progressive Web Apps (PWAs) are web applications that use modern web technologies to deliver an app-like experience to users, but without requiring them to install a traditional app from an app store. Think of them as a blend between websites and mobile/desktop apps.

Resolution

Below, I will walk you through installing PWA’s on end user machines silently, without user interaction.

Intune

The intune configuration policy follows the WebAppInstallForceList. You can currently define default_launch_container, create_desktop_shortcut, fallback_app_name, custom_name, custom_icon and install_as_shortcut. The site goes into detail what each setting configures.

Note: Currently there are no settings to Pin to taskbar or to Pin to start. Users will be presented with a dialog box when they first launch the PWA asking if they would like to do either action.

  • Go to the Intune admin center
  • In the left pane, click Devices
  • Select Windows
  • Click configuration
  • Click “+ Create” and select New Policy
  • For Platform, select Windows 10 and later and for Profile Type select Settings Catalog.
  • Give you policy a descriptive name. I gave mine “Edge – Install PWA – Office Apps” as this policy will install the office suite of apps (Teams, Outlook, PowerPoint, Word and Excel) in Microsoft Edge. The click Next
  • In the Configuration Settings, click “+ Add Settings”. In the Settings picker lookup “WebAppInstallForceList”
  • Since my policy is targeting Microsoft Edge, I will select Microsoft Edge and then select the first setting which will configure it on the device.
  • Back in the Configuration Settings, toggle the “Configure list of force-installed Web Apps”
  • In the “URLs for Web Apps to be silently installed” we are going to enter a json string that will contain multiple PWA’s and settings like URL, default_launch_container and create_desktop_shortcut.
[
  {
    "custom_name": "Outlook",
    "create_desktop_shortcut": true,
    "default_launch_container": "window",
    "url": "https://outlook.office365.com/mail/"
  },
  {
    "custom_name": "Excel",
    "create_desktop_shortcut": true,
    "default_launch_container": "window",
    "url": "https://excel.cloud.microsoft/"
  },
  {
    "custom_name": "PowerPoint",
    "create_desktop_shortcut": true,
    "default_launch_container": "window",
    "url": "https://powerpoint.cloud.microsoft/"
  },
  {
    "custom_name": "Microsoft Teams",
    "create_desktop_shortcut": true,
    "default_launch_container": "window",
    "url": "https://teams.cloud.microsoft/"
  },
  {
    "custom_name": "Word",
    "create_desktop_shortcut": true,
    "default_launch_container": "window",
    "url": "https://word.cloud.microsoft/"
  }
]
  • Once finished, click Next
  • In the Assignments tab, I am going to deploy to all devices then click Next.
  • In the Review + Create tab, review your configuration and then click Create.
  • Going to my Intune managed device, I can now see the applications are on my desktop and if I go to Edge, to edge://apps I can see they are all installed.

PowerShell

The PowerShell method revolves around deploying a script to your endpoints. There are some things to know with this method.

  1. PowerShell, at the time of this writing, cannot install PWA’s within a browser like we can with Intune.
  2. Users will be able to delete the shortcuts
  3. If a web app supports the PWA being used while offline, this method will not
    1. In my testing, the office suite of apps do not support offline capabilities.

To your end users, they wont be able to tell the difference that this is a true PWA or not. A PWA launches in Microsoft Edge using the -app flag which launches Edge in app mode, which is stripped down version of Edge to try to replicate a traditional app. The sites will all be the same that the PWA loads.

Take a look at the screenshot below, the left is a PWA installed in Edge. The right is our ‘PWA’. There is virtually no difference to the end user. The icons on the desktop will be the same as the PWA as well.

  1. Copy the PowerShell script from my GitHub
  2. Deploy it using whatever tool you have available.
  3. If you want to have the script grab the users default browser and set the PWA to open in the default browser you’d change the bottom to be the following:
$progId = (Get-ItemProperty "HKCU:\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\http\UserChoice").ProgId
	$command = [Microsoft.Win32.Registry]::ClassesRoot.OpenSubKey("$progId\shell\open\command").GetValue("")
	
	if ($command -match '"([^"]*)"') {
	    $DefaultBrowserPath = $matches[1]
	}
	
	# Example usage
	$props = @{
	    'ShortcutPath' = Join-Path -Path ([Environment]::GetFolderPath("CommonDesktopDirectory")) -ChildPath 'Word.lnk'
	    'TargetPath'   = $DefaultBrowserPath 
	    'Arguments'    = '-profile-directory=Default -app=https://word.cloud.microsoft/'
	    'IconName'     = "word.ico"
	    'IconURL'      = "https://sapwaicons.blob.core.windows.net/icons/word.ico"
	    'IconPath'     = "C:\Temp"
	}

Note: If you run the script as SYSTEM then it will be unable to find the default browser. You would need to hardcode the browser path which the Install_OfficeSuite_PWA.ps1 file does.

  1. I also have provided script to deploy single applications which can be found here

We can now see that Edge has no apps installed, but I have the shortcuts still and the app launches in the same app mode.

How does this work?

  1. The PowerShell script will create a shortcut to each app and point it to the URL. This is the same URL that the PWA uses.
  2. The target path for the shortcut will be set to Edge (or your default browser depending on the script you use)
  3. The arguments will include -app which runs the instance in app mode (same as PWA) and also -profile-directory=default (same as PWA)
  4. The Icons are stored in an Azure storage table (https://sapwaicons.blob.core.windows.net/icons/) but you can always point it to your own Icon database. The icons are stored locally in C:\Temp which the script will make if it is not already present.

Brad Wyatt
Brad Wyatt

My name is Bradley Wyatt; I am a 5x Microsoft Most Valuable Professional (MVP) in Microsoft Azure and Microsoft 365. I have given talks at many different conferences, user groups, and companies throughout the United States, ranging from PowerShell to DevOps Security best practices, and I am the 2022 North American Outstanding Contribution to the Microsoft Community winner.


Intune, PowerShell
Chrome, Edge, Intune, PowerShell, PWA

Post navigation

PREVIOUS
Detect Modified SharePoint List Items and Retrieve Old Values in Sharepoint Using Logic Apps

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Subscribe

Email


Categories

  • Active Directory (8)
  • AI (3)
  • API (1)
  • AutoPilot (2)
  • Azure (15)
  • Bicep (4)
  • Connectwise (1)
  • Defender for Cloud Apps (1)
  • Delegated Admin (1)
  • DevOps (6)
  • Graph (6)
  • Intune (16)
  • LabTech (1)
  • Microsoft Teams (6)
  • Office 365 (19)
  • Permissions (2)
  • PowerShell (51)
  • Security (1)
  • SharePoint (3)
  • Skype for Business (1)
  • Terraform (1)
  • Uncategorized (2)
  • Yammer (1)

Recent Comments

  • ri188 app on Get a New Computer’s Auto Pilot Hash Without Going Through the Out of Box Experience (OOBE)
  • Daman Games on Get a New Computer’s Auto Pilot Hash Without Going Through the Out of Box Experience (OOBE)
  • bdg game on Windows LAPS Management, Configuration and Troubleshooting Using Microsoft Intune
  • martell biggins on Fix Issue with Connecting Managed Google Play to Intune (We couldn’t connect to that service)
  • d06 app on The Microsoft Graph Command-Line Interface (CLI)

1,783,982 People Reached

© 2025   All Rights Reserved.