Software Deployment Recipes (Microsoft)

The Software Deployment Recipes (Microsoft) section provides a curated collection of practical guides and step-by-step instructions for efficiently deploying software and applications in Microsoft environments. Discover proven techniques and best practices for automating software deployments, managing configurations, and optimizing compatibility on Windows devices. Whether you're a system administrator or an IT professional, these recipes offer valuable insights to streamline your software deployment processes, enhance productivity, and ensure a seamless experience across your Microsoft devices.

7zip (Windows MSI)

Description

Example recipe for deploying 7zip with new MSI parameters in FileWave 15.2.0.

Ingredients

Be sure to review 7zip FAQs to use the proper install path. FileWave will force a silent install when using MSI installers.

Directions

  1. Download the 7zip MSI installer from 7zip: Download

  2. Upload MSI installer by creating New Desktop Fileset and choose MSI / PKG to create
  3. Highlight the newly created MSI Fileset, and select Properties
  4. Scroll down to the Custom MSI install options
  5. Enter in the desired path for 7zip7zipMSI.pngExample here is installing to C:\Program Files\7-Zip
  6. Click OK to save

Always test deployment for both successful installation and uninstallations. If you were assigning via Self Service Kiosk, and then end users decides to uninstall, want to be sure it does uninstall successfully.

Assign to Devices

Once testing has been completed and is successful, assign your Fileset to your devices. By way of either a 'Deployment' or 'Association' within FileWave, assign the Fileset to your devices.

Adobe Creative Cloud (Windows EXE)

Description

This recipe walks through deploying an Adobe Creative Cloud for Windows package, created in the Adobe Admin Console, as a FileWave desktop Fileset.

Adobe's current packaging workflow is in Admin Console > Packages. Creative Cloud Packager is still referenced in some Adobe tools/documentation, but Adobe notes that Creative Cloud Packager is no longer in development and recommends using the package workflows in the Admin Console.

Ingredients

Directions

  1. Log in to the Adobe Admin Console and open Packages. The Admin Console is where Adobe manages packaging, product selection, and deployment settings for Creative Cloud enterprise/teams customers.
    Adobe Admin Console Packages view
  2. Create or select the package you want to deploy. Choose Windows as the platform for a Windows deployment.
  3. For a managed deployment, create a Managed package, or use a pre-generated package if it already matches the applications and settings you need.
    Adobe package deployment method selection
  4. Select the Adobe applications and options required for your users. Keep the package focused; smaller, role-specific packages are easier to test and troubleshoot.
  5. Download the completed package from Adobe.
  6. In FileWave Central, create a New Desktop Fileset > Empty Fileset, then upload the Adobe package contents while preserving the package folder structure.
  7. Assign the Fileset to a small Windows test group first.
  8. Update the model and verify the installation before broad deployment.

For Windows packages, Adobe documents setup.exe inside the package's Build folder. Adobe also notes that deploying a package containing Acrobat by MSI instead of setup.exe can skip Acrobat, so use setup.exe unless you have a verified reason to do otherwise.

Configure the EXE in FileWave

After the Adobe package has been uploaded to the Fileset, configure FileWave to run the Adobe setup.exe installer during activation.

  1. Open FileWave Admin and navigate to the uploaded Adobe Creative Cloud Fileset.
  2. Double-click the Fileset to open Fileset Contents.
  3. If needed, clear Hide unused folders so the package folders are visible.
  4. Navigate to the Adobe package's Build folder and select setup.exe.
  5. Choose Get Info from the menu bar.
  6. Open the Executable tab.
  7. Enable Execute once when activated and Non-interactive (background).
  8. Enable Wait for executable to finish and set a practical timeout. The existing recipe uses 15 minutes; increase that if your selected Adobe apps routinely take longer in your environment.
  9. Add launch arguments with the + button if you need silent installation or custom install options.
Syntax:
setup [--silent] [--ADOBEINSTALLDIR=] [--INSTALLLANGUAGE=]

[ADOBEINSTALLDIR] is the installation directory where apps are installed on the client machine.
[INSTALLLANGUAGE] is the locale used for the installed apps.

Syntax example:
setup.exe --silent --ADOBEINSTALLDIR="C:\InstallDir" --INSTALLLANGUAGE=en_US
  1. Click Apply to save the executable settings, then close the Get Info window.
  2. Close Fileset Contents.
  3. The Fileset will show as Modified until the model is updated. Update the model when you are ready to save the change.

FileWave executable options for Adobe setup.exe

As always, test deploy the Fileset to a few devices before mass deployment.

Adobe Air (Windows EXE)

Description

Need to deploy Adobe Air onto your Windows machines? Here is what you need to know to make that fileset.

Ingredients

Directions

  1. Download the most recent Adobe AIR Installer from http://get.adobe.com/air/

  2. Extract and import the AdobeAIR-Installer.fileset.zip into FileWave Admin and open it. This fileset contains a script that calls the Adobe AIR Installer.
    Starting the installation this way enables it to succeed even if no user is logged on at the target system.

    start "" C:\Windows\temp\AdobeAIRInstaller.exe -silent
  3. Import the "Adobe AIR Installer" into the C:\Windows\temp folder

  4. Adjust the "Adobe AIR Installer.exe" verification settings to "Ignore at verify" using the "apply to enclosed" button as depicted below

    RecipeAdobeAirWIN-verification.png

  5. Close the fileset and associate it to a test client

CrowdStrike Falcon Protection (Windows EXE)

Description

Needing to deploy to Crowdstrike Falcon antivirus to your Windows fleet? FileWave has you covered.

CrowdStrike's flagship product is called Falcon, which is a cloud-native platform that combines next-generation antivirus, endpoint detection and response (EDR), threat intelligence, and proactive threat hunting. Falcon aims to provide real-time visibility into endpoint activity, rapid threat detection, and automated response to security incidents.

Ingredients

Directions

Deploying the Crowdstrike Falcon to your devices

CrowdStrike deployment for Windows devices has one Fileset. This Fileset includes a placeholder for your EXE installer with template launch arguments.

The Fileset included has a placeholder for your EXE installer. Be sure to replace with your EXE installer provided by CrowdStrike.

CrowdStrike Windows Installation.fileset.zip

WindowsCrowdstrikeContents.png

Customizing the Installation EXE

Editing the Fileset EXE

 

  1. Highlight the CrowdStrike Windows Installation Fileset
  2. Double-Click to open the Fileset Contents
  3. Upload your EXE installer into the Installer folder
  4. Remove the placeholder file after your EXE installer has been uploaded successfully
  5. Highlight and select your uploaded .exe file.
  6. Click on 'Get Info'
WindowsCrowdstrikeGetInfo.png

Enter in your CrowdStrike EXE installer switches/parameters and license code

 

  1. Select the tab 'Executable.'
  2. Check the box for 'Execute once when activated'
  3. Check the box for 'Wait for executable to finish' and choose 5 Minutes
  4. Under the tab 'Launch Arguments' enter in the CLI switches to ensure proper installation; please review below for the complete list of EXE installer switches and parameters
  5. Click the Apply to save your changes to the Launch Arguments
  6. Close the Get Info Window to save your changes.
WindowsCrowdstrikeLaunchArguments.png

Please Note: Launch Argument NO_START=1 is intended if the desired outcome if you want CrowdStrike to start after the first reboot post-install. If not, remove NO_START=1 from the Launch Argument list.

Crowdstirke CLI switches

These CLI switches not case senstive:

Switch Required Purpose
/install Yes Installs the CrowdStrike Falcon Sensor.
/passive No The installer shows a minimal UI with no prompts.
/quiet No Suppresses UI and prompts.
/norestart No Prevents the host from restarting after installation.
/log No Changes the default installation log directory from %Temp% to a new location. The new location must be contained in quotation marks ("").

Crowdstrike CLI parameters

These parameters are case senstive:

Parameter Value Required Purpose
CID= CID license Yes Uses customer identification (CID) to associate sensor to CrowdStrike Falcon Console.
NO_START= 0 (Default) No Starts the sensor immediately after installation.
NO_START= 1 No Prevents the sensor from starting after installation. The next time the host boots, the sensor is assigned an agent ID (AID).
VDI= 1 No Configures sensor for a virtual desktop infrastructure (VDI) environment. Updates AID after system initialization.
APP_PROXYNAME= proxy.domain.com No Configures sensor to use a proxy connection. Cannot be used with PACURL=.
APP_PROXYPORT= 1234 No Specifies APP_PROXYPORT= port.
PACURL= See Examples No Configures a proxy connection using a PAC file. Cannot be used with either APP_PROXYNAME or APP_PROXYPORT.
PROXYDISABLE= 0 (Default) No Attempts to connect to CrowdStrike Falcon Console using any available proxy connections.
PROXYDISABLE= 1 No The parameter ignores any automatic proxy connection.
ProvNoWait= 0 (Default) No The parameter uninstalls the sensor if unable to connect to CrowdStrike Falcon Console within 10 minutes.
ProvNoWait= 1 No The parameter prevents uninstall if unable to connect to CrowdStrike Falcon Console.

Creating a Fileset Group

Keeping your Filesets organized is good practice, especially if there are multiple Filesets for software deployment or organziation based on specific platform of deployment.

You may create a New Fileset Group, label it CrowdStrike Falcon (Windows 2023), and move the Fileset you created into this Group. Then associate the Fileset Group labeled CrowdStrike Flacon (Windows 2023) to your devices versus individual Filesets.

When ready, associate the Fileset Group labeled CrowdStrike Falcon (Windows 2023) to a few devices as a test. This is to verify and confirm that the software is installed properly based on your license code configured.

For best practice, always test a few devices before mass deployment.

FileWave Custom Fields to validate installation

Monitoring the CrowdStrike Falcon Sensor through FileWave custom fields helps ensure endpoint protection remains active and compliant. By validating that the Falcon service is running and reporting the installed sensor version, administrators can quickly detect inactive or outdated agents that may leave devices exposed. This custom fields includes both macOS and Windows.

ExampleCrowdStrikeCF.png

Sensor State Output Value
Installed Installed | version_number
Not Installed Not Installed

Firefox Configuration Recipe (Windows)

Description

After installing Firefox, some configuration may be desirable, examples may include:

Firefox Documentation
The details of the Fileset are based upon: Firefox Configuration
This is known to work with version 60, upwards. It may work with earlier versions, but testing on placement of files may vary with earlier versions. 

Ingredients

Directions

// Any comment. You must start the file with a comment!
pref("general.config.filename", "mozilla.cfg");
pref("general.config.obscure_value", 0);
// Any comment. You must start the file with a comment!
 
// Disable updater
lockPref("app.update.enabled", false);
lockPref("app.update.auto", false);
lockPref("app.update.mode", 0);
lockPref("app.update.service.enabled", false);
 
// Set Homepage and stop Mozilla startup pages
lockPref("browser.startup.firstrunSkipsHomepage", false);
pref("browser.startup.homepage","http://www.filewave.com");
lockPref("browser.startup.homepage_override.mstone", "ignore");
 
// Disable Privacy telemetry
lockPref("datareporting.policy.firstRunURL",);
lockPref("datareporting.healthreport.service.enabled", false);
lockPref("datareporting.healthreport.uploadEnabled", false);
lockPref("datareporting.policy.dataSubmissionEnabled", false);
lockPref("toolkit.telemetry.unified", false);

Preference Overview

Preference types can include: pref, defaultPref, lockPref, amongst others.  Details can be found at: https://support.mozilla.org/en-US/kb/customizing-firefox-using-autoconfig

pref

This is used to set a preference that can be overridden by the user, but on next launch of the application it will revert back to the setting within the configuration file

lockPref

A lockPref cannot be overridden by the user

defaultPref

This is used to set a preference that can be overridden by the user.  The user's setting will persist until the user resets them, at which point the defaultPref will be used on next launch of the application

Preference Names
Navigating to 'about:config' in the Firefox URL bar will list all possible preference names and their values and types.

Association

When associating, to ensure the configuration is installed with the Application, consider creating a Fileset Group:

WvwJnhlfj5hOiWru-embedded-image-2uxlorb0.png

Associating the 'Firefox' Fileset Group will ensure both the Application and Configuration are associated to devices.  

efFgj4LEFVGjAwD4-embedded-image-nzpns6g0.png

When there is an update to Firefox, replace the version in the Fileset Group with the latest version after testing.

ZyZ8R0oAj0GU0Cu7-embedded-image-e7uuulzq.png

To ensure users may not circumvent management by changing the locale, enable 'BlockAboutConfig' (already set as TRUE in the template file)

Related Content

Google Chrome Extension Management (Windows)

Description

Chrome Extensions, like ClassSpaces, can be managed via FileWave on multiple device types.

If the Chrome browser is already managed using Google Admin Console, then all management may be applied to devices via the Google Admin Console.  It is though possible to apply the management of Chrome to macOS and Windows devices via FileWave also.

Ingredients

↓ Windows

hxQ5MBkecAvFqBAa-embedded-image-n8bwi3qh.png

Windows

The provided download is a basic example of a PowerShell Activation Script within a Fileset to apply ClassSpaces and block the user from other extensions.  Drag and drop the Fileset into the Admin Console, associate to test devices and deploy once tested.

The script will create the necessary registry settings.

Contents of Script:

if ( -Not (Test-Path -Path "HKLM:\SOFTWARE\Policies\Google\Chrome\ExtensionSettings\*") ) {
 
    New-Item -Path "HKLM:\SOFTWARE\Policies\Google\Chrome\ExtensionSettings\" -Name "*" -Force
    New-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Google\Chrome\ExtensionSettings\*\' -Name "installation_mode" -Value "blocked"
 
    New-Item -Path "HKLM:\SOFTWARE\Policies\Google\Chrome\ExtensionSettings\" -Name "obeophmpnnhboefjagnpbllfbbaeodnn" -Force
    New-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Google\Chrome\ExtensionSettings\obeophmpnnhboefjagnpbllfbbaeodnn\" -Name "comment" -Value "ClassSpaces"
    New-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Google\Chrome\ExtensionSettings\obeophmpnnhboefjagnpbllfbbaeodnn\" -Name "installation_mode" -Value "force_installed"
    New-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Google\Chrome\ExtensionSettings\obeophmpnnhboefjagnpbllfbbaeodnn\" -Name "update_url" -Value "https://clients2.google.com/service/update2/crx"
     
}

If there is already other extension management in place, the 'if' block may bypass the installation of the Extensions.  If Extensions are already being managed, alter the conditions of the script appropriately.

Notes

As part of the example, an additional key has been added to block all other extensions.  Remove or edit as desired

If Chrome is already open, the settings will not be applied until after the browser has been restarted

Google Chrome Managed (Windows)

Description

Chrome browser user experience may be managed on multiple device types by way of a Google Management Token available through the Google Admin Console.

Details on obtaining a token and Chrome management can be found in the following KB:

The directions below describe applying the token to Windows devices.

Ingredients

Directions

A Chrome Application Fileset will be required to instal Chrome onto devices.  There are multiple ways to achieve this.

Winget is built into FileWave and Google Chrome is available via Winget:

image.png

If preferred, a standalone installer could be downloaded and delivered as an installer or converted to a file level installation by way of Fileset Magic.

Likewise, there is more than one way to apply the token to manage the Chrome browser.  Registry diff files can be used, but this example offers a scripted method.

KB Windows Google Chrome Administrator Token.fileset.zip

  1. Create a Fileset Group for Windows Chrome
  2. Add the created Google Chrome Installer Fileset into this group
  3. Download the above Fileset
  4. Unzip and drag the Fileset into this same Fileset Group 

    image.png

  5. Open the scripted Fileset for the Administrator token and select the containing PowerShell script: 

    image.png

  6. Choose Get Info > Executable > Environment Variable 

    image.png

  7. Edit the value of the chrome_token variable with the copied Google Management Token from the Google Admin Console

With the Fileset created, assign the 'Windows - Google Chrome' group with devices.  On activation, Chrome browser should be installed and manageable via the Google Admin Console.

Assigning the 'Windows - Google Chrome' Fileset Group will ensure Application and Configuration are associated to devices.  When there is an update to Google Chrome, replace the version in the Fileset Group with the latest version  (after testing) or switch to a new Fileset Revision if desired.

Installing SOLIDWORKS (Windows EXE)

What

Need to deploy and install SolidWorks on Windows clients? Not a problem – FileWave has you covered. We need a few components from SolidWorks and some scripting tips to get deployment-ready.

Required components:

When/Why

We will need to download and install the SolidWorks Administrative Image Creator on your Windows machine with FileWave Admin installed. This is to create the SolidWorks image that can be used for deployment and installation. You may review the SolidWorks documentation for further details on setting up and configuring here: Creating an Administrative Image.

This “image” you created will be downloaded and placed onto the Windows machine under the default file path:

 C:\SOLIDWORKS Admin\SOLIDWORKS 2022 SP2.0

Once completed, it will be ready to be uploaded into FIleWave Admin.

How

The SolidWorks image containing the contents of the installation will need to be uploaded into a Fileset. Below is a Fileset template with an included Powershell script to install SolidWorks and remove the shortcut links from the Users Desktop. More information on Script Best Practices and Windows Software.

SolidWorks Template Fileset
FileWave Download.png

 

 

 

 

The final version of the Fileset should be around 23Gb in size (with included SolidWorks image).

image.png

Here is the PowerShell script used in this Fileset.

#############################################################################
#SolidWorks Installation
#############################################################################

If ( [IntPtr]::Size * 8 -ne 64 )
{
    C:\Windows\SysNative\WindowsPowerShell\v1.0\PowerShell.exe -File $MyInvocation.MyCommand.Path
}
Else
{
# Hide Wizard
$regPath = 'Registry::HKEY_LOCAL_MACHINE\SOFTWARE\SolidWorks'
New-Item $regPath -ErrorAction SilentlyContinue | Out-Null
Set-ItemProperty -Path $regPath -Name UnattendedAccessWizardShown -Value 1 -Type DWord -ErrorAction SilentlyContinue | Out-Null
}

# Install MSI
$options = '/i', '/qb',  '/s', '/v', '/qn', "C:\SOLIDWORKS Admin\SOLIDWORKS 2022 SP2.0\startswinstall.exe"

echo "Installing with options: $options"

Start-Process -FilePath "C:\SOLIDWORKS Admin\SOLIDWORKS 2022 SP2.0\startswinstall.exe" -ArgumentList $options -NoNewWindow -Wait -PassThru

# Remove Desktop Icon
Remove-Item -Path "C:\Users\Public\Desktop\SOLIDWORKS 2022.lnk� -ErrorAction SilentlyContinue
Remove-Item -Path "C:\Users\Public\Desktop\eDrawings 2022 x64 Edition.lnk" -ErrorAction SilentlyContinue
Remove-Item -Path "C:\Users\Public\Desktop\SOLIDWORKS Composer 2022.lnk" -ErrorAction SilentlyContinue
Remove-Item -Path "C:\Users\Public\Desktop\SOLIDWORKS Composer Player 2022.lnk" -ErrorAction SilentlyContinue
Remove-Item -Path "C:\Users\Public\Desktop\SOLIDWORKS Electrical.lnk" -ErrorAction SilentlyContinue
Remove-Item -Path "C:\Users\Public\Desktop\SOLIDWORKS Manage 2022.lnk" -ErrorAction SilentlyContinue
Remove-Item -Path "C:\Users\Public\Desktop\SOLIDWORKS Visualize 2022.lnk" -ErrorAction SilentlyContinue
 
#############################################################################
#End
#############################################################################

Java (Windows EXE)

Description

This recipe shows you the steps you need to follow to make a Java Fileset for Windows.

Ingredients

Directions

  1. Download the offline EXE update from: Oracle Download Page

  2. Create an empty Fileset and drag the Java install EXE to an appropriate location, e.g. ProgramData > fwEXE

  3. Select the EXE and choose Get Info > Executable

  4. Set to 'Execute once when activated'

  5. Add the below Launch Argument to silently instal and remove older installed versions

    "/s REMOVEOUTOFDATEJRES=1"
  6. TestJavaGetinfo.png

Digging Deeper 

Oracle's Configuration Documentation

Applicable to online and offline installers only (.exe files and wrappers). Enables uninstallation of existing out-of-date JREs during JRE install.

REMOVEOUTOFDATEJRES

For example, running jre1.8.0_60.exe /s REMOVEOUTOFDATEJRES=1 will remove all JREs below the security baseline.

JREs above the security baseline will not be uninstalled.

Details of baseline may be observed from Oracle's release notes:
https://www.oracle.com/technetwork/java/javase/8all-relnotes-2226344.html

Legacy Installers
Although recommendation is to always use the latest version, legacy versions are available from Oracle's archive

Microsoft Defender Recipe (Win)

Description

Example recipe for onboarding Windows devices to Microsoft Defender for Endpoint by running Microsoft's local onboarding script through a FileWave Fileset.

Ingredients

On Windows devices, the recipe needs two pieces:

Downloads:

Import the example Fileset first, but do not associate it with production devices until you have replaced the placeholder script with the tenant-specific Microsoft script and tested the result.

In the Microsoft Defender portal, go to System > Settings > Endpoints > Device management > Onboarding. Select Windows 10 and 11 and the local script deployment method, then download the onboarding package. Microsoft documents the current Windows onboarding flow here: Onboard Windows client devices to Microsoft Defender for Endpoint. Microsoft also documents the local script method here: Onboard devices using a local script.

Microsoft Defender portal onboarding page with local script deployment selected

The Microsoft-generated onboarding script contains tenant-specific onboarding data. Treat it as tenant-specific configuration; do not reuse it across tenants or paste a script generated from another customer account.

The tenant-specific data can be seen in the script near the OnboardingInfo registry value, for example:

REG add "HKLM\SOFTWARE\Policies\Microsoft\Windows Advanced Threat Protection" /v OnboardingInfo /t REG_SZ /f /d "{\"body\":\"{\\\"previousOrgIds\\\":[],\\\"orgId\\\":\\\"

Directions

  1. Download the example Fileset and import it into FileWave.
  2. In the imported Fileset, edit the placeholder script file. Microsoft currently provides the local onboarding script in the downloaded ZIP package as WindowsDefenderATPLocalOnboardingScript.cmd. If the example Fileset uses a .bat placeholder, paste the Microsoft-generated script contents into that placeholder and keep the Fileset execution settings pointed at the same file.

FileWave Fileset placeholder script file for Microsoft Defender onboarding

Placeholder script text before pasting the Microsoft Defender onboarding script

Assign to devices

Assign the Fileset to a small test group first, preferably by using a Deployment for new workflows. Associations can still be used where appropriate. Update the Model, let the test devices check in, and confirm the devices appear correctly in the Microsoft Defender portal before expanding the scope.

If you adapt this recipe for offboarding, download a fresh offboarding package from Microsoft when needed. Microsoft states that local offboarding packages expire seven days after download.

Microsoft Office Deployment for Windows: Office 2019/2021, Office LTSC 2024, and Microsoft 365 Apps

Description

Need to deploy Microsoft Office to Windows devices with FileWave? This recipe covers deployment of current Click-to-Run Office packages, including:

This recipe uses the Microsoft Office Deployment Tool, also called ODT, to download Office installation files, create an offline/local deployment source, and silently install or uninstall Office through a FileWave Fileset.

Microsoft recommends using the latest Office Deployment Tool and the Office Customization Tool to build the configuration XML

Note the Fileset below is based on the Microsoft Article listed here: https://learn.microsoft.com/en-us/office/ltsc/2024/deploy

Ingredients

This Fileset utilizes scripts to install and uninstall Office. After the Fileset is deployed and activated it can take a few minutes for the Office installation to be completed. When the Office Fileset is removed from the device (by removing the association in FileWave) a script will start that will uninstall Office from the clients.

Do not mix 32-bit and 64-bit Office on the same device. If Office is already installed and your XML specifies a different architecture, the installation can fail unless you intentionally use architecture migration options.

Set up and Configurations

For silent deployment, use:

<Display Level="None" AcceptEULA="TRUE" />

Microsoft documents that Level="None" suppresses the Office installation UI and that administrators should set AcceptEULA="TRUE" for silent installations.

Common Office product IDs and channels

Deployment type Product ID example Channel example
Microsoft 365 Apps for enterprise O365ProPlusRetail Current, MonthlyEnterprise, or SemiAnnual
Microsoft 365 Apps for business O365BusinessRetail Current, MonthlyEnterprise, or SemiAnnual
Microsoft 365 Apps enterprise, no Teams O365ProPlusEEANoTeamsRetail Current, MonthlyEnterprise, or SemiAnnual
Microsoft 365 Apps business, no Teams O365BusinessEEANoTeamsRetail Current, MonthlyEnterprise, or SemiAnnual
Office LTSC Professional Plus 2024 ProPlus2024Volume PerpetualVL2024
Office LTSC Standard 2024 Standard2024Volume PerpetualVL2024
Project Professional 2024 ProjectPro2024Volume PerpetualVL2024
Project Standard 2024 ProjectStd2024Volume PerpetualVL2024
Visio Professional 2024 VisioPro2024Volume PerpetualVL2024
Visio Standard 2024 VisioStd2024Volume PerpetualVL2024
Office LTSC Professional Plus 2021 ProPlus2021Volume PerpetualVL2021
Office Professional Plus 2019 ProPlus2019Volume PerpetualVL2019

Microsoft’s supported product ID list includes Microsoft 365 product IDs, Office 2024 volume product IDs, Project 2024, Visio 2024, and Office 2021 IDs. Microsoft also documents that Office LTSC 2024 uses PerpetualVL2024, Office LTSC 2021 uses PerpetualVL2021, and Office 2019 uses PerpetualVL2019.

Create one Fileset per Office deployment type, for example:

Office-2024-ProPlus-Windows.fileset
Office-365-Apps-Enterprise-Windows.fileset
Office-365-Apps-Business-Windows.fileset
Office-2024-Visio-Project-Windows.fileset

Inside the Fileset, use a consistent folder path such as:

C:\ProgramData\FileWave\Installers\Office

C:\ProgramData\FileWave\Installers\Office\setup.exe
C:\ProgramData\FileWave\Installers\Office\configuration.xml
C:\ProgramData\FileWave\Installers\Office\Data
C:\ProgramData\FileWave\Installers\Office\install-office.ps1
C:\ProgramData\FileWave\Installers\Office\uninstall-office.ps1

The Office folder is created by ODT when using /download. Microsoft notes that after a download, the source folder should contain an Office folder with a Data subfolder and versioned download content.

Directions

Step 1: Download the Office Deployment Tool

Download the latest Office Deployment Tool from Microsoft and extract it to a working folder on your technician machine, for example:

C:\OfficeDeployment

MSOfficeStep1.png

After extraction, the folder should contain:

setup.exe
configuration.xml or configuration-Office365-x64

MSOfficeStep1.2.png

The setup.exe file is the Office Deployment Tool command-line executable which we will use later in Step 3.

Step 2: Create the configuration XML

Use Microsoft’s Office Customization Tool to generate your XML. Microsoft recommends using the Office Customization Tool rather than manually writing XML, because it helps define products, languages, update behavior, display behavior, and licensing settings.

When creating the XML, confirm the following:

Source path example:

C:\ProgramData\FileWave\Installers\

MSOfficeSourcePath.png

Example XMLs:

Office LTSC Professional Plus 2024

Use this style of XML for Office LTSC 2024 volume-license deployments:

Office LTSC Professional Plus 2024
<Configuration>
  <Add OfficeClientEdition="64" Channel="PerpetualVL2024" SourcePath="C:\ProgramData\FileWave\Installers\Office">
    <Product ID="ProPlus2024Volume">
      <Language ID="en-us" />
      <!-- Optional exclusions -->
      <!-- <ExcludeApp ID="Access" /> -->
      <!-- <ExcludeApp ID="Publisher" /> -->
    </Product>
  </Add>

  <RemoveMSI />

  <Display Level="None" AcceptEULA="TRUE" />

  <!-- For MAK activation, add your MAK key if required:
  <Property Name="PIDKEY" Value="XXXXX-XXXXX-XXXXX-XXXXX-XXXXX" />
  -->

  <Property Name="AUTOACTIVATE" Value="1" />
</Configuration>

 

Office LTSC Standard 2024

Office LTSC Standard 2024
<Configuration>
  <Add OfficeClientEdition="64" Channel="PerpetualVL2024" SourcePath="C:\ProgramData\FileWave\Installers\Office">
    <Product ID="Standard2024Volume">
      <Language ID="en-us" />
    </Product>
  </Add>

  <RemoveMSI />
  <Display Level="None" AcceptEULA="TRUE" />
  <Property Name="AUTOACTIVATE" Value="1" />
</Configuration>

 

Microsoft 365 Apps

Use this style of XML for Microsoft 365 Apps deployments:

Microsoft 365 Apps for enterprise
<Configuration>
  <Add OfficeClientEdition="64" Channel="MonthlyEnterprise" SourcePath="C:\ProgramData\FileWave\Installers\Office" AllowCdnFallback="True">
    <Product ID="O365ProPlusRetail">
      <Language ID="en-us" />
      <!-- Optional exclusions -->
      <!-- <ExcludeApp ID="Access" /> -->
      <!-- <ExcludeApp ID="Publisher" /> -->
      <!-- <ExcludeApp ID="Teams" /> -->
      <!-- <ExcludeApp ID="OutlookForWindows" /> -->
    </Product>
  </Add>

  <RemoveMSI />

  <Updates Enabled="TRUE" Channel="MonthlyEnterprise" />

  <Display Level="None" AcceptEULA="TRUE" />
</Configuration>

 

AllowCdnFallback="True" can help when language files are missing from the local source, because ODT can retrieve missing language content from Microsoft’s CDN.

Microsoft 365 Apps for business
<Configuration>
  <Add OfficeClientEdition="64" Channel="Current" SourcePath="C:\ProgramData\FileWave\Installers\Office" AllowCdnFallback="True">
    <Product ID="O365BusinessRetail">
      <Language ID="en-us" />
    </Product>
  </Add>

  <RemoveMSI />
  <Updates Enabled="TRUE" Channel="Current" />
  <Display Level="None" AcceptEULA="TRUE" />
</Configuration>

 

Export the configuration xml file, label as configuration.xml or your desired name. Make sure to update the XML file to match this exported file name within the install-office.ps1 script.

Step 3: Download the Office installation files

From an elevated Command Prompt or PowerShell window on your technician machine, run:

C:\OfficeDeployment\setup.exe /download C:\OfficeDeployment\configuration.xml

MSOfficePowerShell.png


This downloads the Office source files into the path defined by SourcePath from the configuration xml file. If SourcePath is omitted, ODT downloads the files to the same folder where setup.exe is located. Microsoft documents /download for downloading Office LTSC 2024 files and /configure for installing from the XML.

After the download completes, confirm that an Office folder exists:

C:\ProgramData\FileWave\Installers\Office\

MSOfficeStep2.png

The source folder should contain an Office folder with a Data subfolder and versioned download content.

Step 4: Build the FileWave Fileset

Upload the following into the Fileset:

Office\
setup.exe
configuration.xml
install-office.ps1
uninstall-office.ps1

Place them under:

C:\ProgramData\FileWave\Installers\Office

OfficeDeploymentTemplate.png

Step 5: Add the installation script

Use a PowerShell activation script with the following:

install-office.ps1
# install-office.ps1
# Installs Microsoft Office using the Office Deployment Tool and the configuration XML
# included in this FileWave Fileset.

$OfficeRoot = "C:\ProgramData\FileWave\Installers\Office"
$SetupExe = Join-Path $OfficeRoot "setup.exe"
$ConfigXml = Join-Path $OfficeRoot "configuration.xml"
$LogRoot = "C:\ProgramData\FileWave\Logs"
$LogFile = Join-Path $LogRoot "office-install.log"

# Ensure logging directory exists.
if (-not (Test-Path $LogRoot)) {
    New-Item -Path $LogRoot -ItemType Directory -Force | Out-Null
}

function Write-Log {
    param (
        [string]$Message
    )

    $Timestamp = Get-Date -Format "yyyy-MM-dd HH:mm:ss"
    "$Timestamp $Message" | Tee-Object -FilePath $LogFile -Append
}

Write-Log "Starting Microsoft Office installation."

# Validate required files before attempting installation.
if (-not (Test-Path $SetupExe)) {
    Write-Log "ERROR: setup.exe not found at $SetupExe"
    exit 1
}

if (-not (Test-Path $ConfigXml)) {
    Write-Log "ERROR: configuration.xml not found at $ConfigXml"
    exit 1
}

try {
    $Process = Start-Process -FilePath $SetupExe `
        -ArgumentList "/configure `"$ConfigXml`"" `
        -Wait `
        -PassThru `
        -WindowStyle Hidden

    Write-Log "Office Deployment Tool exited with code $($Process.ExitCode)."

    if ($Process.ExitCode -ne 0) {
        Write-Log "ERROR: Office installation failed."
        exit $Process.ExitCode
    }

    Write-Log "Microsoft Office installation completed successfully."
    exit 0
}
catch {
    Write-Log "ERROR: $($_.Exception.Message)"
    exit 1
}

 

Step 6: Add the uninstallation script

Use a pre-uninstallation script with the following:

uninstall-office.ps1
# uninstall-office.ps1
# Removes Click-to-Run Office products using the Office Deployment Tool.
# This script is intended to run as a FileWave pre-uninstallation script
# when the Office Fileset association is removed.

$OfficeRoot = "C:\ProgramData\FileWave\Installers\Office"
$SetupExe = Join-Path $OfficeRoot "setup.exe"
$RemoveXml = Join-Path $OfficeRoot "remove-office.xml"
$LogRoot = "C:\ProgramData\FileWave\Logs"
$LogFile = Join-Path $LogRoot "office-uninstall.log"

if (-not (Test-Path $LogRoot)) {
    New-Item -Path $LogRoot -ItemType Directory -Force | Out-Null
}

function Write-Log {
    param (
        [string]$Message
    )

    $Timestamp = Get-Date -Format "yyyy-MM-dd HH:mm:ss"
    "$Timestamp $Message" | Tee-Object -FilePath $LogFile -Append
}

Write-Log "Starting Microsoft Office removal."

if (-not (Test-Path $SetupExe)) {
    Write-Log "ERROR: setup.exe not found at $SetupExe"
    exit 1
}

# Remove all Click-to-Run Office products installed by ODT, including Office, Project, and Visio.
# Use a more targeted Remove XML if you only want to remove a specific product.
$RemoveXmlContent = @"
<Configuration>
  <Remove All="TRUE" />
  <Display Level="None" AcceptEULA="TRUE" />
</Configuration>
"@

$RemoveXmlContent | Out-File -FilePath $RemoveXml -Encoding utf8 -Force

try {
    $Process = Start-Process -FilePath $SetupExe `
        -ArgumentList "/configure `"$RemoveXml`"" `
        -Wait `
        -PassThru `
        -WindowStyle Hidden

    Write-Log "Office Deployment Tool exited with code $($Process.ExitCode)."

    if ($Process.ExitCode -ne 0) {
        Write-Log "ERROR: Office removal failed."
        exit $Process.ExitCode
    }

    Write-Log "Microsoft Office removal completed successfully."
    exit 0
}
catch {
    Write-Log "ERROR: $($_.Exception.Message)"
    exit 1
}

 

Microsoft documents the Remove element and notes that All="TRUE" removes Microsoft 365 Apps products and languages, including Project and Visio.

OfficeDeploymentScripts.png

Step 7: Deploy the Fileset

Deploy the Office Fileset to a target Windows device.

After the Fileset activates, the install script runs:

setup.exe /configure configuration.xml

Office installation can take several minutes depending on hardware, network speed, Office edition, language count, and whether the content is being installed from local Fileset content or Microsoft’s CDN.

Check the target Windows device for new installations of Micrsoft's Office applications.

Troubleshooting

Office 2024 does not install

Confirm that the XML uses:

Channel="PerpetualVL2024"

and one of the correct Office LTSC 2024 product IDs, such as:

<Product ID="ProPlus2024Volume">

or:

<Product ID="Standard2024Volume">

Microsoft 365 Apps installs the wrong channel

Confirm both the <Add> channel and <Updates> channel. The channel on the <Add> element controls the channel used during installation, while the <Updates> element can control update behavior after installation.

Installation fails on devices with existing Office

Confirm whether the existing Office install is:

Use <RemoveMSI /> for older MSI-based Office. For Click-to-Run Office 2019/2021/2024 or Microsoft 365 Apps, use a targeted <Remove> configuration or <Remove All="TRUE" /> when a full Office removal is intended.

32-bit to 64-bit migration fails

Do not simply change OfficeClientEdition from 32 to 64 on an existing Office installation. Microsoft documents the MigrateArch attribute for changing the architecture of an existing Microsoft 365 Apps installation.

Missing language files

If you use a local source and support multiple languages, make sure every required language was downloaded. For Microsoft 365 Apps, consider using:

AllowCdnFallback="True"

so ODT can retrieve missing language content from Microsoft’s CDN when needed.

Updating Office source files later

For Microsoft 365 Apps, re-run ODT /download periodically using the same XML to refresh the Office source files. Microsoft notes that ODT conserves bandwidth by downloading only missing files when the target folder already contains the same build and language content.

For Office LTSC 2024, keep the source current according to the organization’s update strategy. Office LTSC 2024 can receive updates from the Office CDN by default or from a defined local update path.

SentinelOne (Windows EXE)

Description

SentinelOne is a cybersecurity company that specializes in endpoint security and threat intelligence. They provide a platform for autonomous endpoint protection that uses AI and machine learning to prevent, detect, and respond to a wide range of security threats, including malware, ransomware, and other cyberattacks.

This recipe will guide you on configuring and deploying to your Windows devices.

Ingredients

Directions

  1. Download the EXE installer from SentinelOne
  2. Upload the EXE installer into FileWave Central to a Fileset you will use to deploy it

  3. Highlight the Fileset and double click to open Fileset Contents
  4. Highlight the EXE file
  5. Click on Get Info

    newScreenshot 2025-02-13 at 11.28.07 AM.png

  6. Select the Executable tab
  7. Check 'Execute once when activated'
  8. Choose radio button 'Non-interactive (background)'
  9. Check 'Wait for executable to finish' select 15 Minutes
  10. Under the Launch Arguments tab click on the + icon
  11. Enter in and replace "your_token_registration" with your actual token 
    -t your_token_registration
  12. Click on the + icon to create new Argument.
  13. Enter in 
    -q
  14. Click 'Apply' to save the fileset

    newScreenshot 2025-02-13 at 11.28.35 AM.png

Notes

Note: You need to use the -q parameter so that the install will be silent and, you must also use the -t parameter and enter your token because SentinelOne needs a token and as a silent install there will be no way to enter the token at install time.

Upgrading or Repairing the Visual C++ Redistributable on Windows (Windows script)

Description

This article describes how to use the attached FileWave Fileset to install or update the Microsoft Visual C++ Redistributable (VC++). The provided Fileset ensures that the appropriate version of VC++ is installed based on the processor architecture (AMD64, ARM64, or x86) of the device. The script included in the Fileset automatically downloads the correct VC++ installer from Microsoft, installs it, and then performs cleanup.

Ingredients

Windows VC++ v17
FileWave Download.png

Directions

  1. Import the Fileset:

    • Download the Fileset from the link above.

    • Import the Fileset into the FileWave Admin console.

  2. Review the Script in the Fileset:

    • The Fileset contains the following PowerShell script that determines the system architecture, downloads the appropriate version of VC++, installs it, and cleans up the temporary files.

      echo $env:PROCESSOR_ARCHITECTURE
      
      # Determine processor architecture
      $Architecture = $env:PROCESSOR_ARCHITECTURE
      if ($Architecture -eq 'AMD64') {
          $InstallerUrl = 'https://aka.ms/vs/17/release/vc_redist.x64.exe'
      } elseif ($Architecture -eq 'ARM64') {
          $InstallerUrl = 'https://aka.ms/vs/17/release/vc_redist.arm64.exe'
      } else {
          $InstallerUrl = 'https://aka.ms/vs/17/release/vc_redist.x86.exe'
      }
      
      echo $InstallerUrl
      
      # Download installer
      $InstallerPath = "$env:TEMP\vc_redist.exe"
      Invoke-WebRequest -Uri $InstallerUrl -OutFile $InstallerPath
      
      # Install Visual C++ redistributable
      Start-Process -FilePath $InstallerPath -ArgumentList '/install', '/passive', '/norestart' -Wait
      
      # Clean up
      Remove-Item -Path $InstallerPath
  3. Associate the Fileset:

    • Assign the Fileset to the relevant Windows devices where VC++ needs to be installed or updated.

Notes