---
myst:
html_meta:
"description lang=en": "How to deploy Kasm Workspaces as a Progressive Web App using Group Policy."
"keywords": "Kasm, Workspaces, Group Policy, GPO, ADMX, PWA, Progressive Web App"
"property=og:locale": "en_US"
---
```{title} Deploy PWAs to Users
```
# Deploy PWAs to Users
In this guide, we will walk you through the detailed steps required to deploy one or more Progressive Web Apps (PWAs) using a Microsoft Group Policy Object (GPO) with Google Chrome and Microsoft Edge ADMX templates. By deploying the PWA centrally via Group Policy, organizations can ensure that users have quick and easy access to Kasm Workspaces directly from their desktop or start menu without requiring manual installations.
## Prerequisites
- Kasm Workspaces 1.16 or later with trusted [SSL/TLS certificates](https://kasmweb.com/docs/latest/how_to/certificates.html) configured
- Active Directory Domain Controllers with support for ADMX templates
- Windows Server 2016 or later
- Administrative access to Group Policy Management Console
- Latest ADMX templates for Google Chrome or Microsoft Edge
- Google Chrome ([Download Google Chrome templates](https://support.google.com/chrome/a/answer/187202))
- Microsoft Edge ([Download Microsoft Edge tetmplates](https://www.microsoft.com/edge/business/download))
## Overview
You can follow these four phases to deploy Kasm PWAs using Group Policy.
1. Prepare a JSON template for the Kasm PWA Group Policy Object.
2. Install ADMX templates for Google Chrome and Microsoft Edge.
3. Configure a browser-specific GPO.
4. Verify the deployment and troubleshoot common issues.
### Phase 1. Prepare JSON Template
The Group Policy Object for PWA deployment only accepts JSON data in a single-line, concatenated format, stripping all whitespace and line breaks.
1. You can create your template using one of the two templates below. Copy and paste a template into a text editor.
- Use this concatenated JSON template to add a single PWA:
```json
[{"url":"https://www.contoso.com/maps","default_launch_container":"window","create_desktop_shortcut":true}]
```
- Use this concatenated JSON template to add multiple PWAs:
```json
[{"url":"https://app.contoso.edu","default_launch_container":"window","create_desktop_shortcut":true},{"url":"https://app.contoso.edu/editor","default_launch_container":"window","create_desktop_shortcut":true},{"url":"https://app.contoso.edu/sheets","default_launch_container":"window","create_desktop_shortcut":true}]
```
2. Log in to Kasm Workspaces with administrative credentials.
3. Navigate to **Workspaces > Workspaces**.
4. For each Workspace you want to deploy as a PWA:
- Click the **Edit** (pencil icon) for the Workspace.
- Locate and copy the **Direct Install URL**.
- Paste the value into your JSON template, replacing the example URL.
5. Save your updated JSON template and keep the information available for the GPO configuration steps.
### Phase 2. Install ADMX Templates
#### For Google Chrome:
1. Download Chrome Enterprise Bundle.
```
https://chromeenterprise.google/browser/download/
```
2. Extract `GoogleChromeEnterpriseBundle64.zip`.
- Navigate to the extracted bundle and locate the `Configuration\admx` folder.
- You will find two key folders:
- admx: Contains the ADMX files
- en-US: Contains language-specific ADML files (English in this example)
- Copy `chrome.admx` to:
```
%systemroot%\PolicyDefinitions
```
- Copy `chrome.adml` to its corresponding language-specific folder:
```
%systemroot%\PolicyDefinitions\en-US
```
#### For Microsoft Edge:
1. Select and download the Edge Windows 64-bit Policy; the download link is located directly below the Download button.
```
https://www.microsoft.com/edge/business/download
```
2. Extract `MicrosoftEdgePolicyTemplates.cab`.
- Navigate to the extracted bundle and locate the `Windows\admx` folder.
- You will find two key folders:
- admx: Contains the ADMX files
- en-US: Contains language-specific ADML files (English in this example)
- Copy `msedge.admx` to:
```
%systemroot%\PolicyDefinitions
```
- Copy `msedge.adml` to its corresponding language-specific folder:
```
%systemroot%\PolicyDefinitions\en-US
```
### Phase 3. Configure a Browser-Specific GPO
#### Create a New GPO
1. Open Group Policy Management Console.
```
gpmc.msc
```
2. Right-click on your desired Organizational Unit (OU) and select **Create a GPO in this domain, and Link it here...**
3. Name the new GPO, e.g., "Kasm Workspaces PWA Deployment".
#### Configure List of Force-Installed Web Apps
#### For Google Chrome:
1. Right click your newly created GPO and select **Edit**.
2. You can configure this setting in either of the locations below:
- `Computer Configuration > Administrative Templates > Google Chrome`
- `User Configuration > Administrative Templates > Google Chrome`
```{note}
Choose Computer Configuration to apply PWA settings universally on a specific set of devices, regardless of who is logged in.
Choose User Configuration if you want the PWAs to follow a specific set of users across any device.
Both configurations can work together, but if there’s a conflict between them, Computer Configuration typically takes precedence. Loopback Processing and policy filtering are the most common cases where User Configuration might override or replace Computer Configuration settings.
```
3. Locate and **Edit** the setting `Configure list of force-installed Web Apps`
- Change the State to **Enabled**
- Copy the single-line, concatenated JSON from **Phase 1. Prepare JSON Template**.
- Paste JSON data into the `URLs for Web Apps to be silently installed` field.
- Click **OK** to save changes.
#### For Microsoft Edge:
1. Right click your newly created GPO and select **Edit**.
2. You can configure this setting in either of the locations below:
- `Computer Configuration > Administrative Templates > Microsoft Edge`
- `User Configuration > Administrative Templates > Microsoft Edge`
```{note}
Choose Computer Configuration to apply PWA settings universally on a specific set of devices, regardless of who is logged in.
Choose User Configuration if you want the PWAs to follow a specific set of users across any device.
Both configurations can work together, but if there’s a conflict between them, Computer Configuration typically takes precedence. Loopback Processing and policy filtering are the most common cases where User Configuration might override or replace Computer Configuration settings.
```
3. Locate and **Edit** the setting `Configure list of force-installed Web Apps`
- Change the State to **Enabled**
- Copy the single-line, concatenated JSON from **Phase 1. Prepare JSON Template**.
- Paste JSON data into the `URLs for Web Apps to be silently installed` field.
- Click **OK** to save changes.
### Phase 4. Verification and Troubleshooting Steps
#### Update Group Policy on Client Machines
1. You can run the ` gpresult /R` command to review the Resultant Set of Policy (RSoP) information and determine whether or not the GPO you just created has been applied on a client machine.
2. Review **Applied Group Policy Objects** in both the Computer Settings and User Settings section. Your **Kasm Workspaces PWA Deployment** GPO should appear in the corresponding location that you used in **Phase 3. Configure a Browser-Specific GPO**.
```text
COMPUTER SETTINGS
------------------
CN=Alpha,OU=Servers,DC=kasm,DC=local
Last time Group Policy was applied: 10/25/2024 at 8:42:58 PM
Group Policy was applied from: WindowsServer.kasm.local
Group Policy slow link threshold: 500 kbps
Domain Name: KASM
Domain Type: Windows 2008 or later
Applied Group Policy Objects
-----------------------------
Kasm Workspaces PWA Deployment
...
USER SETTINGS
------------------
CN=Alpha,OU=Servers,DC=kasm,DC=local
Last time Group Policy was applied: 10/25/2024 at 8:42:58 PM
Group Policy was applied from: WindowsServer.kasm.local
Group Policy slow link threshold: 500 kbps
Domain Name: KASM
Domain Type: Windows 2008 or later
Applied Group Policy Objects
-----------------------------
Kasm Workspaces PWA Deployment
```
3. If your Group Policy has not been applied yet, and immediate enforcement is needed, using `gpupdate /force` or rebooting the client machines will help expedite the process.
#### Verify PWA Functionality
#### For Google Chrome:
1. After the Group Policy is applied, open Chrome on a client machine.
2. Confirm that PWAs appear in the **Start Menu** and as **desktop shortcuts** if configured.
3. Navigate to `chrome://apps` and verify that the Kasm Workspaces PWAs are listed.
4. Launch each PWA.
5. Ensure each PWA opens in its own window as expected and provides access to Kasm Workspaces.
#### For Microsoft Edge:
1. After the Group Policy is applied, open Edge on a client machine.
2. Confirm that PWAs appear in the **Start Menu** and as **desktop shortcuts** if configured.
3. Navigate to `edge//apps` and verify that the Kasm Workspaces PWAs are listed.
4. Launch each PWA.
5. Ensure each PWA opens in its own window as expected and provides access to Kasm Workspaces.
### Troubleshooting
#### Common Issues
1. **PWAs Not Installing**
- Verify GPO link and scope
- Check policy application with: `gpresult /r`
- Review Event Viewer for policy errors
- Verify Direct Install URLs are correct and accessible
2. **Authentication Issues**
- Verify SSL certificates
- Check browser SSO configuration
- Confirm Kasm server accessibility
3. **Performance Problems**
- Review network connectivity
- Check client system resources
- Verify browser version compatibility
- Monitor Kasm Workspace resource allocation
## Reference
- [Google Chrome Enterprise Documentation](https://support.google.com/chrome/a/answer/187202)
- [Microsoft Edge Enterprise Documentation](https://docs.microsoft.com/en-us/deployedge/microsoft-edge-policies)