diff --git a/blog/2026-07-01-psadt-4.2.0rc1.md b/blog/2026-07-01-psadt-4.2.0rc1.md
new file mode 100644
index 0000000..3fd0ad0
--- /dev/null
+++ b/blog/2026-07-01-psadt-4.2.0rc1.md
@@ -0,0 +1,52 @@
+---
+title: PSADT v4.2.0 RC1 is now available!
+authors: [dangough]
+tags: [psappdeploytoolkit, powershell, release]
+description: PSADT v4.2.0 RC1 contains a huge number of fixes, improvements, and features. We invite all early adopters to test it and help us to identify any potential issues before we hit GA.
+---
+
+## PSADT v4.2.0 RC1
+
+This is the first release candidate of PSAppDeployToolkit 4.2.0! We invite all early adopters to test it and help us to identify any potential issues before we hit GA.
+{/*truncate*/}
+
+### Highlights
+
+- Major code refactoring to clean up and optimise the code base. Everything now runs faster and the module is significantly smaller in size.
+- AI and static analysis tools used to ensure code quality (CodeQL, Meziantou.Analyzer, Microsoft.CodeAnalysis.BannedApiAnalyzers, Microsoft.Extensions.StaticAnalysis, Roslynator.Analyzers).
+- Pester tests updated for Pester v6 (thanks [@nohwnd!](https://github.com/nohwnd))
+- iNKORE WPF library replaced by [Fluence](https://github.com/sintaxasn/Fluence.Wpf) (created and maintained by PSAppDeployToolkit founder [Dan Cunningham](https://github.com/sintaxasn)).
+- [Show-ADTInstallationPrompt](../reference/functions/Show-ADTInstallationPrompt) now supports secured text inputs and dropdown selection boxes.
+- [Show-ADTInstallationRestartPrompt](../reference/functions/Show-ADTInstallationRestartPrompt) now supports a cancel button.
+- You can now configure a different accent color for dark mode.
+- Dialogs now fallback to default image if the specified asset is not found, also images can be encoded as Base64 strings instead of supplying file paths.
+- Tray notification icon shown whenever balloon tips / toasts are invoked.
+- UIAccess to allow the UI to overlay the Autopilot setup screen.
+- Ability to test if user is in focus mode.
+- A more streamlined default `Invoke-AppDeployToolkit.ps1` template.
+- [New-ADTTemplate](../reference/functions/New-ADTTemplate) now allows you to generate an entire deployment package in a single command by specifying session properties, config, assets, files, and script blocks.
+- Functions added to add/remove fonts.
+- Copy-ADTContentToCache now applies administrator permissions to the shared cache and has a separate cache location for non-admins.
+- Descriptions for all known MSI error codes now included in logging output.
+- All WMI dependencies removed, so the toolkit can run on devices with WMI corruption.
+- Ability to run custom functions whenever writing to the log or when a deployment is deferred via [Add-ADTModuleCallback](../reference/functions/Add-ADTModuleCallback).
+- All time-based parameters now accept TimeSpan objects as well as interpreting integers as seconds.
+- `-WhatIf` support added throughout to test changes non-destructively.
+
+For the full list of changes, see the [release notes](/docs/getting-started/release-notes) and [upgrade guidance](/docs/getting-started/upgrade-guidance-v41-to-v42) pages.
+
+### Download
+
+Either download from GitHub: [PSAppDeployToolkit v4.2.0 RC1](https://github.com/psappdeploytoolkit/psappdeploytoolkit/releases/tag/4.2.0-rc1)
+
+Or install the pre-release from the PowerShell Gallery:
+
+```powershell
+Install-Module -Name PSAppDeployToolkit -Scope CurrentUser -AllowPreRelease
+```
+
+If this produces an error that the `-AllowPreRelease` parameter is not recognized, then first update **PowerShellGet** and then restart your PowerShell console:
+
+```powershell
+Install-Module PowerShellGet -Force -Scope CurrentUser
+```
diff --git a/blog/authors.yml b/blog/authors.yml
index 99ececc..2497a19 100644
--- a/blog/authors.yml
+++ b/blog/authors.yml
@@ -23,3 +23,13 @@ mmashwani:
page: true
socials:
github: mmashwani
+
+dangough:
+ name: Dan Gough
+ title: PSAppDeployToolkit Developer
+ image_url: https://gravatar.com/userimage/26791919/fdd6ec3a3e1eaff78deb15781aba4665.jpeg?&size=256
+ page: true
+ socials:
+ x: packageologist
+ linkedin: danielgough
+ github: dangough
diff --git a/docs/deployment-concepts/deployment-structure.mdx b/docs/deployment-concepts/deployment-structure.mdx
index b531715..2c85575 100644
--- a/docs/deployment-concepts/deployment-structure.mdx
+++ b/docs/deployment-concepts/deployment-structure.mdx
@@ -18,15 +18,15 @@ PSAppDeployToolkit v4.1 represents a significant architectural evolution from pr
#### Core Architecture Principles
-**Session-Based Management**: PSADT v4.1 **introduces the `ADTSession` object**, which encapsulates all deployment state, configuration, and context. This object-oriented approach provides better isolation, state management, and extensibility compared to the global variable approach used in v3.
+**Session-Based Management**: PSADT v4 **introduces the `ADTSession` object**, which encapsulates all deployment state, configuration, and context. This object-oriented approach provides better isolation, state management, and extensibility compared to the global variable approach used in v3.
-**Security-First Design**: The v4.1 architecture **separates user interaction from system-level operations**, eliminating the need for ServiceUI and providing a more secure deployment experience. User interfaces run in the user's session context, while system operations execute in the appropriate security context.
+**Security-First Design**: The v4.1+ architecture **separates user interaction from system-level operations**, eliminating the need for ServiceUI and providing a more secure deployment experience. User interfaces run in the user's session context, while system operations execute in the appropriate security context.
-**Modular Function Library**: The toolkit provides **130+ specialized functions** organized into logical categories (Installation, Registry, File System, User Interface, etc.), each designed for specific deployment scenarios.
+**Modular Function Library**: The toolkit provides **140+ specialized functions** organized into logical categories (Installation, Registry, File System, User Interface, etc.), each designed for specific deployment scenarios.
## V4 Native Deployment Template
-The **v4 native deployment template** is designed to be more modular, flexible, and user-friendly than the v3 structure, while still containing all core PSADT module files. This structure represents the recommended approach for new deployments and provides the full feature set of PSADT v4.1.
+The **v4 native deployment template** is designed to be more modular, flexible, and user-friendly than the v3 structure, while still containing all core PSADT module files. This structure represents the recommended approach for new deployments and provides the full feature set of PSADT v4.2.
:::info
The **v4 native deployment template** structure is considerably more sophisticated than the V3 deployment structure. At first glance, it can seem overly complex and daunting. However, you can avoid getting overwhelmed by focusing on just the files you need to know about.
@@ -88,9 +88,9 @@ The root directory serves as the deployment entry point and contains the essenti
#### PSAppDeployToolkit Directory
-This directory contains the complete PSADT v4.1 framework and should never be modified:
+This directory contains the complete PSADT module and should never be modified:
-- **Core Module Files**: The main PSADT PowerShell module with over 200 specialized functions
+- **Core Module Files**: The main PSADT PowerShell module with over 140 specialized functions
- **UI Components**: Both Classic and Fluent UI frameworks for user interaction
- **Security Components**: Session management, privilege handling, and security context management
- **Function Libraries**: Organized collections of functions for installation, registry, file system, and UI operations
@@ -100,7 +100,7 @@ This directory contains the complete PSADT v4.1 framework and should never be mo
The primary location for application installation media:
-- **Supported File Types**:
+- **Example File Types**:
- Executable installers (`.exe`, `.msi`, `.msm`)
- Windows Installer patches (`.msp`)
- Transform files (`.mst`)
@@ -187,24 +187,6 @@ YourApp-Deployment/
└── strings.psd1
```
-#### Example Multi-Architecture Deployment Structure
-
-For applications with multiple versions or architectures:
-
-```text
-YourApp-Deployment/
-├── Files/
-│ ├── x64/
-│ │ ├── YourApp-x64-Setup.exe
-│ │ └── YourApp-x64-Patch.msp
-│ ├── x86/
-│ │ ├── YourApp-x86-Setup.exe
-│ │ └── YourApp-x86-Patch.msp
-│ └── Common/
-│ ├── SharedComponents.msi
-│ └── License.lic
-```
-
:::info
The PSADT v4 compatibility deployment template structure is considerably more sophisticated than the V3 deployment structure. At first glance, it can seem overly complex and daunting. However, you can avoid getting overwhelmed by focusing on just the files you need to know about.
:::
diff --git a/docs/deployment-concepts/invoke-appdeploytoolkit.mdx b/docs/deployment-concepts/invoke-appdeploytoolkit.mdx
index 9e376b4..e6ab5e0 100644
--- a/docs/deployment-concepts/invoke-appdeploytoolkit.mdx
+++ b/docs/deployment-concepts/invoke-appdeploytoolkit.mdx
@@ -29,49 +29,27 @@ The heart of PSADT v4 is the `ADTSession` object, which encapsulates all deploym
These are the first thing to edit in your deployment script and are stored within the `ADTSession` object, providing better encapsulation and state management compared to global variables in v3. Session Properties define your application's metadata, behavior, and deployment requirements.
-| Property | Example | Description |
-| :-------------------- | :--------------------------------------------------------- | :------------------------------------------------------------------------------------ |
-| `AppVendor` | `Microsoft` | The vendor name of the application |
-| `AppName` | `Office 365` | The name of the application |
-| `AppVersion` | `16.0` | The version of the application |
-| `AppArch` | `x64` | The architecture of the application (x86 or x64) |
-| `AppLang` | `EN` | The language of the application |
-| `AppRevision` | `01` | The revision of the application package |
-| `AppSuccessExitCodes` | `@(0)` | Exit codes that indicate success |
-| `AppRebootExitCodes` | `@(1641, 3010)` | Exit codes that indicate a reboot is required |
-| `AppProcessesToClose` | `@(@{ Name = 'winword'; Description = 'Microsoft Word' })` | **New in v4.1**. Processes that should be closed before install / uninstall / repair. |
-| `RequireAdmin` | `$true` | **New in v4.1**. Whether the script requires administrative privileges |
+| Property | Example | Description |
+| :-------------------- | :--------------------------------------------------------- | :------------------------------------------------------------------- |
+| `AppVendor` | `Microsoft` | The vendor name of the application |
+| `AppName` | `Office 365` | The name of the application |
+| `AppVersion` | `16.0` | The version of the application |
+| `AppArch` | `x64` | The architecture of the application (x86 or x64) |
+| `AppRevision` | `01` | The revision of the application package |
+| `AppSuccessExitCodes` | `@(0)` | Exit codes that indicate success |
+| `AppRebootExitCodes` | `@(1641, 3010)` | Exit codes that indicate a reboot is required |
+| `AppProcessesToClose` | `@(@{ Name = 'winword'; Description = 'Microsoft Word' })` | Processes that should be closed before install / uninstall / repair. |
:::warning[PSAppDeployToolkit variables]
-If trying to use a PSAppDeployToolkit variables such as $envProgramFiles in this section, it will not work because the module has typically not been imported and initialized this early on in the script.
+If trying to use a PSAppDeployToolkit variables such as $envProgramFiles in this section, they will not work because the module has typically not been imported and initialized this early on in the script.
:::
-:::warning[Breaking Changes in v4.1]
-If you are upgrading from v4.0 or earlier, you must move any `RequireAdmin` setting from your config file to the session object in your deployment script, and use `AppProcessesToClose` instead of specifying the processes directly on the `-CloseProcesses` parameter of `Show-ADTInstallationWelcome`.
-:::
-
-:::info[New in v4.1: RequireAdmin]
-PSADT v4.1 contains a new variable `RequireAdmin` that allows you to check for administrative privileges on a per-application basis without needing to modify the PSADT configuration file.
-
-- `RequireAdmin = $true`, will fail the deployment if administrative privileges are not available.
-- `RequireAdmin = $false`, will not check for administrative privileges.
-
-Note that `Invoke-AppDeployToolkit.exe` no longer checks this value to figure out if it needs to relaunch itself elevated. If your deployment requires administrative privileges, you must ensure that the launcher is run elevated.
-:::
-
-:::info[New in v4.1: AppProcessesToClose]
-PSADT v4.1 contains a new variable `AppProcessesToClose` that allows you to specify processes to be closed before the installation, uninstallation, or repair phases. This replaces the previous method of using the -CloseApps parameter on `Show-InstallationWelcome`
-
-- `AppProcessesToClose = `, will automatically close the specified processes before proceeding with the deployment.
-:::
-
-:::info
-Use hashtable objects on `AppProcessesToClose` with `Name` and `Description` properties for better user experience.
-
+:::info[AppProcessesToClose]
+`AppProcessesToClose` allows you to specify processes to be closed before the installation, uninstallation, or repair phases. You can either supply just process names (without the .exe extension), or use the hashtable format to override the default description for the process.
```PowerShell
AppProcessesToClose = @(@{ Name = 'winword'; Description = 'Microsoft Word' })
```
-
+Default behaviour when `DeployMode` is `Auto` is that the deployment will only be interactive if one or more of these processes are running.
:::
### Deployment Types & Phases
diff --git a/docs/deployment-concepts/zero-config-deployment.mdx b/docs/deployment-concepts/zero-config-deployment.mdx
index aff811d..454fadd 100644
--- a/docs/deployment-concepts/zero-config-deployment.mdx
+++ b/docs/deployment-concepts/zero-config-deployment.mdx
@@ -18,8 +18,9 @@ Now that you understand the basics of how a deployment works, you can try a simp
To use this feature:
-1. Ensure the `AppName` is left empty in `Invoke-AppDeployToolkit.ps1` to activate zero-config mode.
-2. Place your MSI file into the `Files` folder of the PSAppDeployToolkit deployment template. This method only supports the installation of one MSI, so if more than one MSI is found, then only the first one is selected.
-3. If you have an MST file, then also place this into the `Files` folder. The MST file must have the same name as the MSI file. For example, if your MSI file name is `test01.msi`, then the MST file must be named `test01.mst`.
-4. If you have any MSP files, then also place them into the `Files` folder. You can place more than one MSP file in the folder, but you must name the files in alphabetical order to control the order in which they are installed.
-5. You can also compress all of these files along with any other installation content required into a WIM file, and it will be automatically mounted and used.
+1. Ensure you are using the **ZeroConfig** variant of the template (see [Creating a new deployment](/docs/getting-started/creating-a-new-deployment))
+2. Ensure the `AppName` is left empty in `Invoke-AppDeployToolkit.ps1` to activate zero-config mode.
+3. Place your MSI file into the `Files` folder of the PSAppDeployToolkit deployment template. This method only supports the installation of one MSI, so if more than one MSI is found, then only the first one is selected.
+4. If you have an MST file, then also place this into the `Files` folder. The MST file must have the same name as the MSI file. For example, if your MSI file name is `test01.msi`, then the MST file must be named `test01.mst`.
+5. If you have any MSP files, then also place them into the `Files` folder. You can place more than one MSP file in the folder, but you must name the files in alphabetical order to control the order in which they are installed.
+6. You can also compress all of these files along with any other installation content required into a WIM file, and it will be automatically mounted and used.
diff --git a/docs/getting-started/creating-a-new-deployment.mdx b/docs/getting-started/creating-a-new-deployment.mdx
index d74466a..986d5e8 100644
--- a/docs/getting-started/creating-a-new-deployment.mdx
+++ b/docs/getting-started/creating-a-new-deployment.mdx
@@ -34,15 +34,22 @@ To create a new deployment using the PSADT v4 native deployment template, run:
New-ADTTemplate -Destination C:\Temp -Name "PSAppDeployToolkitv4"
```
+To create a new deployment using the PSADT v4 native deployment template with [Zero Config](../deployment-concepts/zero-config-deployment.mdx) support, run:
+
+```powershell
+New-ADTTemplate -Destination C:\Temp -Name "PSAppDeployToolkitv4_ZeroConfig" -ZeroConfig
+```
+
### Using the downloadable templates
The PSAppDeployToolkit GitHub Releases page includes several templates for creating a new deployment.
- `PSAppDeployToolkit_Template_v4.zip` - PSADT v4 native deployment template
+- `PSAppDeployToolkit_Template_v4_ZeroConfig.zip` - PSADT v4 native deployment template with [Zero Config](../deployment-concepts/zero-config-deployment.mdx) support
- `PSAppDeployToolkit_Template_v3.zip` - PSADT v3 compatible deployment template
To create a new deployment using the templates, follow these steps:
-1. Download the PSAppDeployToolkit template you require from the [PSAppDeployToolkit GitHub Releases page](https://github.com/PSAppDeployToolkit/PSAppDeployToolkit/releases/latest).
+1. Download the PSAppDeployToolkit template you require from the [PSAppDeployToolkit GitHub Releases page](https://github.com/PSAppDeployToolkit/PSAppDeployToolkit/releases).
2. Extract the contents to a folder on your computer.
3. Open the folder and review the contents. We will discuss the contents in the next section.
diff --git a/docs/getting-started/download.mdx b/docs/getting-started/download.mdx
index 1e833b7..d0aa4c0 100644
--- a/docs/getting-started/download.mdx
+++ b/docs/getting-started/download.mdx
@@ -20,21 +20,33 @@ You can install the PSAppDeployToolkit module from the PowerShell Gallery by run
```powershell
Install-Module -Name PSAppDeployToolkit -Scope CurrentUser
```
+To install a pre-release version:
+
+```powershell
+Install-Module -Name PSAppDeployToolkit -Scope CurrentUser -AllowPreRelease
+```
+
+If this produces an error that the -AllowPreRelease parameter is not recognized, then first update PowerShellGet and then restart your PowerShell console:
+
+```powershell
+Install-Module PowerShellGet -Force -Scope CurrentUser
+```
### Grabbing the archive / zip files from GitHub releases
Alternatively, you can download the release assets:
-- [PSAppDeployToolkit Latest Release](https://github.com/PSAppDeployToolkit/PSAppDeployToolkit/releases)
+- [PSAppDeployToolkit Releases](https://github.com/PSAppDeployToolkit/PSAppDeployToolkit/releases)
Here you will see the latest release of PSAppDeployToolkit. Click the `Assets` dropdown to view the available downloads. You should see the following:
-| Filename | Description |
-|--------------------------------------|-----------------------------------------------------------------------------------------------|
-| `PSAppDeployToolkit_ModuleOnly.zip` | Zip file containing the latest version of the module. At a minimum, you should download this. |
-| `PSAppDeployToolkit_Template_v3.zip` | Zip file containing the v3 template. Contains the scaffold for a v3 compatible deployment. |
-| `PSAppDeployToolkit_Template_v4.zip` | Zip file containing the v4 template. Contains the scaffold for a v4 native deployment. |
-| `Source code (zip)` | Zip file containing the source code. |
+| Filename | Description |
+|-------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| `PSAppDeployToolkit_ModuleOnly.zip` | Zip file containing the latest version of the module. At a minimum, you should download this. |
+| `PSAppDeployToolkit_Template_v3.zip` | Zip file containing the v3 template. Contains the scaffold for a v3 compatible deployment. |
+| `PSAppDeployToolkit_Template_v4.zip` | Zip file containing the v4 template. Contains the scaffold for a v4 native deployment. |
+| `PSAppDeployToolkit_Template_v4_ZeroConfig.zip` | Zip file containing the v4 template. Contains the scaffold for a v4 native deployment with [Zero Config](../deployment-concepts/zero-config-deployment.mdx) support. |
+| `Source code (zip)` | Zip file containing the source code. |
Once extracted, you will see a file and folder structure similar to the one described on the next page.
@@ -48,12 +60,6 @@ At present, this is in pre-release status, so installing from the PowerShell Gal
Install-Module PSAppDeployToolkit.Tools -Scope CurrentUser -AllowPreRelease
```
-If this produces an error that the -AllowPreRelease parameter is not recognized, then first update PowerShellGet and then restart your PowerShell console:
-
-```powershell
-Install-Module PowerShellGet -Force -Scope CurrentUser
-```
-
Alternatively, you can download the release assets:
-- [PSAppDeployToolkit.Tools Latest Release](https://github.com/PSAppDeployToolkit/PSAppDeployToolkit.Tools/releases/latest)
+- [PSAppDeployToolkit.Tools Releases](https://github.com/PSAppDeployToolkit/PSAppDeployToolkit.Tools/releases)
diff --git a/docs/getting-started/release-notes.mdx b/docs/getting-started/release-notes.mdx
index af0853c..99e2aec 100644
--- a/docs/getting-started/release-notes.mdx
+++ b/docs/getting-started/release-notes.mdx
@@ -1,7 +1,7 @@
---
sidebar_position: 5
title: 'Release Notes'
-description: 'Release notes for PSAppDeployToolkit v4.1'
+description: 'Release notes for PSAppDeployToolkit'
slug: /getting-started/release-notes
hide_title: true
tags:
@@ -11,6 +11,245 @@ tags:
## Release Notes
+### v4.2.0 RC1 (2026-08-17)
+
+#### Highlights
+
+- Major code refactoring to clean up and optimise the code base. Everything now runs faster and the module is significantly smaller in size.
+- AI and static analysis tools used to ensure code quality (CodeQL, Meziantou.Analyzer, Microsoft.CodeAnalysis.BannedApiAnalyzers, Microsoft.Extensions.StaticAnalysis, Roslynator.Analyzers).
+- Pester tests updated for Pester v6 (thanks [@nohwnd!](https://github.com/nohwnd))
+- iNKORE WPF library replaced by [Fluence](https://github.com/sintaxasn/Fluence.Wpf) (created and maintained by PSAppDeployToolkit founder [Dan Cunningham](https://github.com/sintaxasn)).
+- [Show-ADTInstallationPrompt](../reference/functions/Show-ADTInstallationPrompt) now supports secured text inputs and dropdown selection boxes.
+- [Show-ADTInstallationRestartPrompt](../reference/functions/Show-ADTInstallationRestartPrompt) now supports a cancel button.
+- You can now configure a different accent color for dark mode.
+- Dialogs now fallback to default image if the specified asset is not found, also images can be encoded as Base64 strings instead of supplying file paths.
+- Tray notification icon shown whenever balloon tips / toasts are invoked.
+- UIAccess to allow the UI to overlay the Autopilot setup screen.
+- Ability to test if user is in focus mode.
+- A more streamlined default `Invoke-AppDeployToolkit.ps1` template.
+- [New-ADTTemplate](../reference/functions/New-ADTTemplate) now allows you to generate an entire deployment package in a single command by specifying session properties, config, assets, files, and script blocks.
+- Functions added to add/remove fonts.
+- Copy-ADTContentToCache now applies administrator permissions to the shared cache and has a separate cache location for non-admins.
+- Descriptions for all known MSI error codes now included in logging output.
+- All WMI dependencies removed, so the toolkit can run on devices with WMI corruption.
+- Ability to run custom functions whenever writing to the log or when a deployment is deferred via [Add-ADTModuleCallback](../reference/functions/Add-ADTModuleCallback).
+- All time-based parameters now accept TimeSpan objects as well as interpreting integers as seconds.
+- `-WhatIf` support added throughout to test changes non-destructively.
+
+#### New Functions
+
+- [Add-ADTFont](../reference/functions/Add-ADTFont)
+- [Close-ADTNotifyIcon](../reference/functions/Close-ADTNotifyIcon)
+- [Get-ADTUserToastNotificationMode](../reference/functions/Get-ADTUserToastNotificationMode)
+- [Initialize-ADTModuleIfUninitialized](../reference/functions/Initialize-ADTModuleIfUninitialized)
+- [New-ADTLogFileName](../reference/functions/New-ADTLogFileName)
+- [Remove-ADTDesktopShortcut](../reference/functions/Remove-ADTDesktopShortcut)
+- [Remove-ADTFont](../reference/functions/Remove-ADTFont)
+- [Select-ADTUniqueObject](../reference/functions/Select-ADTUniqueObject)
+- [Show-ADTNotifyIcon](../reference/functions/Show-ADTNotifyIcon)
+- [Test-ADTUserInFocusMode](../reference/functions/Test-ADTUserInFocusMode)
+
+#### New Parameters
+
+- [Add-ADTModuleCallback](../reference/functions/Add-ADTModuleCallback): added `OnLogEntry` and `OnDefer` hookpoints
+- [Close-ADTSession](../reference/functions/Close-ADTSession): Added `-ExitMessage`
+- [Copy-ADTContentToCache](../reference/functions/Copy-ADTContentToCache): added `-Content`
+- [Copy-ADTFile](../reference/functions/Copy-ADTFile): added `-NoClobber`
+- [Copy-ADTFileToUserProfiles](../reference/functions/Copy-ADTFileToUserProfiles): added `-NoClobber`
+- [Get-ADTApplication](../reference/functions/Get-ADTApplication): added `-Force`
+- [Get-ADTBoundParametersAndDefaultValues](../reference/functions/Get-ADTBoundParametersAndDefaultValues): added `-Include`
+- [Get-ADTServiceStartMode](../reference/functions/Get-ADTServiceStartMode): added `-DisplayName`, `-InputObject`, `-Name`
+- [Get-ADTStringTable](../reference/functions/Get-ADTStringTable): added `-SessionState`
+- [Get-ADTUserProfiles](../reference/functions/Get-ADTUserProfiles): added `-IncludeEpmProfiles`, `-SID`
+- [Get-ADTWindowTitle](../reference/functions/Get-ADTWindowTitle): added `-ParentProcessId`, `-ParentProcessMainWindowHandle`
+- [Invoke-ADTRegSvr32](../reference/functions/Invoke-ADTRegSvr32): added `-AsUser`
+- [New-ADTFolder](../reference/functions/New-ADTFolder): added `-PassThru`
+- [New-ADTShortcut](../reference/functions/New-ADTShortcut): added `-Force`, `-PassThru`
+- [New-ADTTemplate](../reference/functions/New-ADTTemplate): added `-Assets`, `-Config`, `-Files`, `-InstallScriptBlock`, `-PostInstallScriptBlock`, `-PostRepairScriptBlock`, `-PostUninstallScriptBlock`, `-PreInstallScriptBlock`, `-PreRepairScriptBlock`, `-PreUninstallScriptBlock`, `-RepairScriptBlock`, `-SessionProperties`, `-SupportFiles`, `-UninstallScriptBlock`, `-ZeroConfig`
+- [Open-ADTSession](../reference/functions/Open-ADTSession): added `-AdditionalEnvironmentVariables`, `-AllowWowProcess`, `-ExitWithMsiCodes`, `-ProcessInteractivityDetection`
+- [Register-ADTDll](../reference/functions/Register-ADTDll): added `-AsUser`
+- [Remove-ADTFile](../reference/functions/Remove-ADTFile): added `-InputObject`
+- [Remove-ADTFolder](../reference/functions/Remove-ADTFolder): added `-OnlyIfEmpty`
+- [Remove-ADTHashtableNullOrEmptyValues](../reference/functions/Remove-ADTHashtableNullOrEmptyValues): added `-Depth`, Recurse
+- [Set-ADTEnvironmentVariable](../reference/functions/Set-ADTEnvironmentVariable): added `-Append`, `-Expandable`, `-Remove`
+- [Set-ADTItemPermission](../reference/functions/Set-ADTItemPermission): added `-Owner`
+- [Set-ADTServiceStartMode](../reference/functions/Set-ADTServiceStartMode): added `-DisplayName`, `-InputObject, `-Name`
+- [Set-ADTShortcut](../reference/functions/Set-ADTShortcut): added `-Clear`, `-Force`, `-InputObject`, `-PassThru`
+- [Show-ADTInstallationPrompt](../reference/functions/Show-ADTInstallationPrompt): added `-DefaultButton`, `-DefaultIndex`, `-ListItems`, `-SecureInput`
+- [Show-ADTInstallationRestartPrompt](../reference/functions/Show-ADTInstallationRestartPrompt): added `-AllowCancel`, `-CustomMessage`, `-CustomMessageText`, `-PersistPrompt`, `-ShutdownReasonText`
+- [Show-ADTInstallationWelcome](../reference/functions/Show-ADTInstallationWelcome): added `-AllowMinimize`, `-ContinueOnProcessClosure`, `-CustomMessage`, `-CustomMessageText`, `-PassThru`
+- [Start-ADTMsiProcessAsUser](../reference/functions/Start-ADTMsiProcessAsUser): added `-ContinueWhenNoUserLoggedOn`
+- [Start-ADTMspProcessAsUser](../reference/functions/Start-ADTMspProcessAsUser): added `-ContinueWhenNoUserLoggedOn`
+- [Start-ADTProcess](../reference/functions/Start-ADTProcess): added `-StandardInput`
+- [Start-ADTProcessAsUser](../reference/functions/Start-ADTProcessAsUser): added `-ContinueWhenNoUserLoggedOn`, `-StandardInput`, `-UseShellExecute`, `-Verb`
+- [Start-ADTServiceAndDependencies](../reference/functions/Start-ADTServiceAndDependencies): added `-DisplayName`
+- [Stop-ADTServiceAndDependencies](../reference/functions/Stop-ADTServiceAndDependencies): added `-DisplayName`
+- [Test-ADTServiceExists](../reference/functions/Test-ADTServiceExists): added `-DisplayName`
+- [Uninstall-ADTApplication](../reference/functions/Uninstall-ADTApplication): added `-Force`, `-ForceUninstallString`
+- [Unregister-ADTDll](../reference/functions/Unregister-ADTDll): added `-AsUser`
+- [Update-ADTGroupPolicy](../reference/functions/Update-ADTGroupPolicy): added `-Force`, `-NoWait`, `-Target`
+
+#### Additions to Config.psd1
+
+- Assets
+ - TaskbarIcon
+- Toolkit
+ - CachePathNoAdminRights
+ - LogMaxHierarchy
+- UI
+ - FluentAccentColorDark
+
+#### Additions to Strings.psd1
+
+- ListSelectionPrompt
+ - ListSelectionMessage
+- RestartPrompt
+ - ButtonCancel
+
+#### Breaking Changes
+
+- In v4.1, the default `DeployMode` value of `Auto` will switch to a silent install if none of the defined processes are running; but *only when processes are defined*. In v4.2, it will now switch to a silent install by default *even if no processes are defined*. As before, you can prevent this by adding `NoProcessDetection = $true` to the `$adtSession` properties.
+- `Get-ADTApplication` now ignores hidden system components by default unless `-Force` is specified. This mirrors how PowerShell's `Get-Item` handles hidden files.
+- `Uninstall-ADTApplication` now ignores hidden system components AND apps with *NoRemove = 1* by default unless `-Force` is specified. This mirrors how PowerShell's `Remove-Item` handles hidden and read-only files.
+- An error is now thrown when opening a session in 32-bit PowerShell on a 64-bit OS, unless `AllowWowProcess = $true` is set in the session properties.
+
+#### Deprecated Functions
+
+- [Get-ADTEnvironment](../4.1.x/reference/functions/Get-ADTEnvironment)
+- [Get-ADTUniversalDate](../4.1.x/reference/functions/Get-ADTUniversalDate)
+
+#### Deprecated Parameters
+
+- [Invoke-ADTCommandWithRetries](../reference/functions/Invoke-ADTCommandWithRetries): removed `-SleepSeconds`
+- [Send-ADTKeys](../reference/functions/Send-ADTKeys): removed `-WaitSeconds`
+- [Show-ADTInstallationWelcome](../reference/functions/Show-ADTInstallationWelcome): removed `-NoMinimizeWindows`
+- [Update-ADTEnvironmentPsProvider](../reference/functions/Update-ADTEnvironmentPsProvider): removed `-LoadLoggedOnUserEnvironmentVariables`
+
+#### Deprecated Variables
+
+- `$MachineDomainController`
+- `$envOS`
+- `$envOSServicePack`
+- `$envPSVersionBuildLabel`
+- `$envPSVersionPreReleaseLabel`
+- `$envPSVersionSemantic`
+- `$ProcessNTAccountSID`
+
+#### Closed Feature Requests
+
+- #341 [Feature] Add `-WhatIf` support
+- #675 [Feature] PSADT UI not rendered by screen readers (JAWS, NVDA, Windows Narrator ...)
+- #832 [Feature] Install font command
+- #1099 [Feature] v4 `New-ADTTemplate` populates the `$adtsession` values
+- #1153 [Feature] Replace CIM/WMI call to `Win32_ComputerSystem` with Win32 API calls
+- #1476 [Feature] Add `LogSubFolderHistory`
+- #1500 [Feature] Replace all shortcut code with `IShellLinkW` via CsWin32
+- #1501 [Feature] Replace `subst.exe` code with `DefineDosDeviceW()` P/Invoke
+- #1503 [Feature] Rewrite all PowerShell code that gets called from our C# code
+- #1504 [Feature] Implement proper .url handling with `IUniformResourceLocatorW` COM interface
+- #1540 [Feature] Add proper enumerator/iterator support for SafeMemoryHandle types
+- #1543 [Feature] Use `Span` and `MemoryMarshal.Read()` in more places
+- #1544 [Feature] `Install-ADTMSUpdates` improvements
+- #1547 [Feature] Enhancement to `Remove-ADTFolder` Function with `-IfEmpty` Parameter
+- #1562 [Feature] `Remove-ADTDesktopShortcuts`
+- #1563 [Feature] Add pipeline support to `Remove-ADTFile`
+- #1564 [Feature] Restore v3 ability to use a different app icon (taskbar) and company logo (UI) in v4
+- #1591 [Feature] Explore UIAccess for `PSADT.ClientServer.Client`
+- #1592 [Feature] Add `Microsoft.Windows.Common-Controls 6.0.0.0` to `PSADT.ClientServer.Client` manifest
+- #1611 [Feature] Rework digital signing of binaries to reduce timeout issues with anticipated incoming unit tests
+- #1636 [Feature] Add `Copy-ADTFile` / `Copy-ADTFileToUserProfiles` no overwrite switch
+- #1654 [Feature] Allow for install to continue automatically without clicking OK despite the remaining time on countdown if users close required programs
+- #1676 [Feature] Allow to set/add expandable environment variables
+- #1730 [Feature] `PSADT.UserInterface.DialogOptions` option to hide user input behind ****
+- #1740 [Feature] Skip 'Folder' on `Copy-ADTContentToCache`
+- #1742 [Feature] Write a success event for async client/server operations so the main thread can wait on it
+- #1747 [Feature] Let `Show-ADTInstallationWelcome` return deferral choice
+- #1772 [Feature] Add UICulture output to `Get-ADTUserProfiles` data
+- #1802 [Feature] Replace most ReadOnlyCollection/ReadOnlyDictionary types for Immutable types from `System.Collections.Immutable`
+- #1805 [Feature] Minimize of PSADT Fluent UI Welcome window
+- #1816 [Feature] Only apply `-CreateNoWindow` for console apps
+- #1817 [Feature] Allow `-PersistPrompt` for `Show-ADTInstallationWelcome` to always work, even when deferrals have expired
+- #1823 [Feature] Show-ADTInstallationRestartPrompt allow for an optional cancel button
+- #1824 [Feature] `Show-ADTInstallationRestartPrompt` pass the reason that the computer was rebooted to the operating system like `shutdown.exe` can
+- #1826 [Feature] `Show-ADTInstallationRestartPrompt` allow it to work for both silent as well as interactive installs
+- #1829 [Feature] Add option to define logos as base64 encoded string
+- #1841 [Feature] User UI Culture Variable
+- #1845 [Feature] Multiple Choice (3x) function
+- #1872 [Feature] Parameter 'run on defer'
+- #1889 [Feature] Allow use of $variables in `Strings.psd1`
+- #1893 [Feature] Improvents for `Uninstall-ADTApplication`
+- #1898 [Feature] Review all CsWin32 P/Invoke wrappers to ensure we're leveraging recent enhancements
+- #1918 [Feature] `Set-ADTEnvironmentVariable` - New parameter `Append`
+- #1926 [Feature] Make `Start-ADTMsiProcess -LogFileName` intuitive to use
+- #1953 [Feature] Re-usable function for logfile filenames
+- #1962 [Feature] Script should exit with 1618 when msiexec mutex timeout is breached
+- #1982 [Feature] Add the `-PersistPrompt` feature to `Show-ADTInstallationRestartPrompt`
+- #1997 [Feature] Append Install/uninstall to temporary logging folder name when using `LogToSubfolder` feature
+- #2004 [Feature] `Update-ADTGroupPolicy -NoWait`
+- #2026 [Feature] Make the `-PassThru` parameter of `Show-ADTInstallationWelcome` always return the prompt result
+- #2027 [Feature] Publicize `Initialize-ADTModuleIfUnitialized` for use in extension modules
+- #2029 [Feature] Add detection of DeployR task sequences
+- #2046 [Feature] Add fallback asset support in the event a file cannot be found/loaded
+- #2048 [Feature] Allow specification of accented button for `Show-ADTInstallationPrompt`
+- #2064 [Feature] Allow custom log file extensions in `Open-ADTSession`
+- #2093 [Feature] Give proper ArgumentList support to `Set-ADTActiveSetup`
+- #2120 [Feature] Add setup to restore 3.x task sequence silencing
+- #2130 [Feature] Dark mode accent separate to Light mode accent color
+- #2150 [Feature] Include UpgradeCode in InstalledApplication for MSI
+- #2159 [Feature] Add Message override parameter to `Show-ADTInstallationWelcome`
+- #2162 [Feature] Give `Start-ADTProcessAsUser` read/execute permissions to content executed from `DirFiles`
+- #2175 [Feature] Allow wildcards in `AppProcessesToClose`
+- #2177 [Feature] Allow `Set-ADTShortcut` to clear shortcut command line arguments
+- #2187 [Feature] `Invoke-AppDeployToolkit.exe` with help
+- #2201 [Feature] Add additional .LINK section that goes to the function source
+- #2269 [Feature] Update all UI functions that support a Timeout parameter to accept Timespan values
+
+#### Closed Issues
+
+- #1158 [Bug] `Start-ADTMsiProcess -Action Repair` not working with ProductCode
+- #1594 [Bug] `Copy-ADTFile` - Robocopy cannot handle literal file names with wildcard characters
+- #1743 [Bug] Error when trying to use `Show-ADTInstallationWelcome` through PDQ Deploy - Access is denied
+- #1848 [Bug] Session exit code should be 3010 if any installation returned a 3010
+- #1880 [Bug] Failure occurred while instantiating new deployment session: `System.InvalidOperationException: Unable to find drive letter for NT device`
+- #1890 [Bug] Grab everything from the config that the session needs during construction
+- #1907 [Bug] Exception calling `ShowCloseAppsDialog`
+- #1948 [Bug] `Start-ADTProcess -ArgumentLis`t mishandles quotation marks when passed a string array
+- #1963 [Bug] `Copy-ADTContentToCache` fails when re-running
+- #1966 [Bug] `Show-ADTInstallationWelcome -PromptToSave` fails to close multiple instances of the same app
+- #1969 [Bug] `CloseProcesses` not working - LibreOffice
+- #1971 [Bug] `Copy-ADTFile` (folder) places the folder inside a folder of the same name (doco update)
+- #1973 [Bug] Zero-Config MSI installation is failing
+- #1979 [Bug] Toolkit no longer appends username to log filename when running non-elevated
+- #1980 [Bug] `Set-ADTIniValue` writes to new Section in stead of updating the existing value
+- #1983 [Bug] `Show-ADTInstallationWelcome -HideCloseButton` assumes wrong state post timeout
+- #1990 [Bug] Incorrect Dutch strings
+- #1992 [Bug] `Start-ADTMsiProcess` does not pre-create MSI log folder if it does not exist
+- #1995 [Bug] `Install-ADTMSUpdates` - A parameter cannot be found that matches parameter name `LiteralPath`
+- #1996 [Bug] `GetProcessImageName` sometimes returns invalid result
+- #2003 [Bug] `CopyADTFile` & `CopyADTFileToUserProfiles` destination path with numbers and dot creates folder, not file
+- #2006 [Bug] Zero-Config MSI support - System.ArgumentOutOfRangeException: Index was out of range
+- #2015 [Bug] Whitespace not recognised between text formatting tags
+- #2019 [Bug] Zero Touch MSI Installation with Google Chrome: System.ArgumentOutOfRangeException
+- #2021 [Bug] `Start-ADTProcessAsUser` runs while TaskSeqeuence
+- #2022 [Bug] `Copy-ADTFileToUserProfiles` fails when using a Zero-Config WIM file `ForceWimDetection = $true`
+- #2024 [Bug] `Invoke-AppDeployToolkit.exe` does not run if there are consecutive spaces in the folder name
+- #2056 [Bug] Checking "Do not disturb" notification settings, fix bad QUNS setup
+- #2057 [Bug] Get CodeQL working again for scanning our C# codebase
+- #2073 [Bug] `Start-ADTProcess` issue with `Set-ADTActiveSetup` and ps1 scripts
+- #2074 [Bug] `Get-ADTWindowTitle -WindowTitle` regex matching doesn't work
+- #2114 [Bug] `MsiSummaryInfo.Get()` fails to get MSI Codepage property
+- #2131 [Bug] `Set-ADTActiveSetup` doesn't populate the (Default) reg keys with description
+- #2135 [Bug] `Invoke-AppDeployToolkit.exe` doesn't start PS1 installer when both are renamed to AppName_AppVersion.EXE and PS1
+- #2140 [Bug] `PSADT.ClientServer.Client.exe` - This application could not be started
+- #2144 [Bug] AppProcessesToClose on `Show-ADTInstallationWelcome` closes all running .exe files, even when a specific path is defined
+- #2145 [Bug] Expand the width of the classic UI to better handle long button texts in other languages
+- #2147 [Bug] MinimizeWindow exception
+- #2152 [Bug] Generated template from `New-ADTTemplate` has extra line feed at end
+- #2163 [Bug] `Show-ADTInstallationWelcome` defer parameter inconsistencies
+- #2170 [Bug] `Show-ADTInstallationRestartPrompt` fails to perform forced restart when countdown reach 0
+- #2215 [Bug] Remove-ADTFile unable to delete file
+- #2222 [Bug] Ensure the config's UI.DefaultTimeout value is never lower than a specified countdown
+
### v4.1.8 (2026-01-14)
#### Highlights
diff --git a/docs/getting-started/upgrade-guidance-v3x-to-v41.mdx b/docs/getting-started/upgrade-guidance-v3x-to-v41.mdx
index 6c133c3..9a2af0e 100644
--- a/docs/getting-started/upgrade-guidance-v3x-to-v41.mdx
+++ b/docs/getting-started/upgrade-guidance-v3x-to-v41.mdx
@@ -1,5 +1,5 @@
---
-sidebar_position: 7
+sidebar_position: 8
title: 'Upgrade Guidance: v3.x to v4.1'
description: 'Upgrade guidance for those coming from v3.'
slug: /getting-started/upgrade-guidance-v3x-to-v41
diff --git a/docs/getting-started/upgrade-guidance-v41-to-v42.mdx b/docs/getting-started/upgrade-guidance-v41-to-v42.mdx
new file mode 100644
index 0000000..cfcdf48
--- /dev/null
+++ b/docs/getting-started/upgrade-guidance-v41-to-v42.mdx
@@ -0,0 +1,94 @@
+---
+sidebar_position: 6
+title: 'Upgrade Guidance: v4.1 to v4.2'
+description: 'Upgrade guidance for those coming from v4.2.'
+slug: /getting-started/upgrade-guidance-v41-to-v42
+hide_title: true
+tags:
+ - Usage
+ - Migration
+ - Getting Started
+---
+
+## Upgrade Guidance: v4.1 to v4.2
+
+You can upgrade an existing deployment package simply by replacing the PSAppDeployToolkit folder with the latest version of the module. Please review the changes below to see if any affect you.
+
+### Breaking Changes in v4.2
+
+:::warning[DeployMode Process Detection]
+In v4.1, the default `DeployMode` value of `Auto` will switch to a silent install if none of the defined processes are running; but *only when processes are defined*.
+
+In v4.2, it will now switch to a silent install by default *even if no processes are defined*.
+
+As before, you can prevent this by adding `NoProcessDetection = $true` to the `$adtSession` properties.
+:::
+
+:::warning[Get-ADTApplication and Uninstall-ADTApplication]
+`Get-ADTApplication` now ignores hidden system components by default unless `-Force` is specified. This mirrors how PowerShell's `Get-Item` handles hidden files.
+
+`Uninstall-ADTApplication` now ignores hidden system components AND apps with *NoRemove = 1* by default unless `-Force` is specified. This mirrors how PowerShell's `Remove-Item` handles hidden and read-only files.]
+:::
+
+:::warning[32-bit PowerShell]
+v4.2 will by default throw an error if running in 32-bit PowerShell on a 64-bit OS:
+
+`The current PowerShell process is 32-bit on a 64-bit operating system. Please run the deployment script in a 64-bit PowerShell process.`
+
+This is usually an unintended scenario caused by a 32-bit process calling PowerShell from `System32` and can result in files and registry entries being written to the wrong place if gone unchecked.
+
+To prevent this from happening, either call `PowerShell.exe` from `SysNative` instead of `System32`, or use the `Invoke-AppDeployToolkit.exe` launcher, which will ensure the correct PowerShell host is used.
+
+In the rare case where launching in 32-bit PowerShell is intentional, you can allow this by adding `AllowWowProcess = $true` to the `$adtSession` properties.
+:::
+
+#### Deprecated Functions
+
+- [Get-ADTEnvironment](../4.1.x/reference/functions/Get-ADTEnvironment)
+- [Get-ADTUniversalDate](../4.1.x/reference/functions/Get-ADTUniversalDate)
+
+#### Deprecated Parameters
+
+- [Invoke-ADTCommandWithRetries](../reference/functions/Invoke-ADTCommandWithRetries): removed `-SleepSeconds`
+- [Send-ADTKeys](../reference/functions/Send-ADTKeys): removed `-WaitSeconds`
+- [Show-ADTInstallationWelcome](../reference/functions/Show-ADTInstallationWelcome): removed `-NoMinimizeWindows`
+- [Update-ADTEnvironmentPsProvider](../reference/functions/Update-ADTEnvironmentPsProvider): removed `-LoadLoggedOnUserEnvironmentVariables`
+
+#### Deprecated Variables
+
+- `$MachineDomainController`
+- `$envOS`
+- `$envOSServicePack`
+- `$envPSVersionBuildLabel`
+- `$envPSVersionPreReleaseLabel`
+- `$envPSVersionSemantic`
+- `$ProcessNTAccountSID`
+
+### Changes in Invoke-AppDeployToolkit.ps1
+
+:::info[New Template]
+The default template has had a major overhaul; however the old v4.1 templates will still work and there is no forced requirement to migrate them to the new format.
+:::
+
+- ZeroConfig code not included by default; there is a separate ZeroConfig template now.
+- `TerminalServerMode` and `DisableLogging` parameters have been removed.
+- `RequireAdmin` removed from $adtSession block - it was more of a hindrance than a help as it always needed changing for user context deployments. It can be added back in manually if required.
+- `InstallName` / `InstallTitle` removed - some users were always filling this in as they did not realise they were optional fields - by default the toolkit generate these values from the AppName etc.
+- Install phases are now defined as scriptblock variables rather than functions.
+
+### Additions to Config.psd1
+
+- Assets
+ - TaskbarIcon
+- Toolkit
+ - CachePathNoAdminRights
+ - LogMaxHierarchy
+- UI
+ - FluentAccentColorDark
+
+### Additions to Strings.psd1
+
+- ListSelectionPrompt
+ - ListSelectionMessage
+- RestartPrompt
+ - ButtonCancel
diff --git a/docs/getting-started/upgrade-guidance-4x-to-v41.mdx b/docs/getting-started/upgrade-guidance-v4x-to-v41.mdx
similarity index 99%
rename from docs/getting-started/upgrade-guidance-4x-to-v41.mdx
rename to docs/getting-started/upgrade-guidance-v4x-to-v41.mdx
index 21571bf..5c540c9 100644
--- a/docs/getting-started/upgrade-guidance-4x-to-v41.mdx
+++ b/docs/getting-started/upgrade-guidance-v4x-to-v41.mdx
@@ -1,5 +1,5 @@
---
-sidebar_position: 6
+sidebar_position: 7
title: 'Upgrade Guidance: v4 to v4.1'
description: 'Upgrade guidance for those coming from v4.0.'
slug: /getting-started/upgrade-guidance-4x-to-v41
diff --git a/docs/introduction.mdx b/docs/introduction.mdx
index 59c181f..5e97b61 100644
--- a/docs/introduction.mdx
+++ b/docs/introduction.mdx
@@ -33,7 +33,7 @@ PSAppDeployToolkit is open-source software and provided free for anyone to use.
- A reference for all the functions provided by PSAppDeployToolkit, including parameters and examples of how to use them.
:::info[Enterprise Support]
-We recognize that some enterprises face adoption challenges due to audit requirements for vendor support. Patch My PC are stewards of the PSADT Project and, as experts in open-source deployment, are uniquely positioned to offer both deep technical knowledge and enterprise-level support - allowing customers to fully benefit from open-source tools without compromise. [Learn more about Patch My PC's support for PSADT](https://patchmypc.com/support/psappdeploytoolkit-support).
+We recognize that some enterprises face adoption challenges due to audit requirements for vendor support. Patch My PC are stewards of the PSADT Project and, as experts in open-source deployment, are uniquely positioned to offer both deep technical knowledge and enterprise-level support - allowing customers to fully benefit from open-source tools without compromise. [Learn more about Patch My PC's support for PSADT](https://patchmypc.com/product/psadt).
:::
## Reporting Issues
diff --git a/docs/reference/adtsession-object.mdx b/docs/reference/adtsession-object.mdx
index d7beba1..38e6ae2 100644
--- a/docs/reference/adtsession-object.mdx
+++ b/docs/reference/adtsession-object.mdx
@@ -19,7 +19,7 @@ The `ADTSession` object is a core component of **PSAppDeployToolkit**, managing
When you start a deployment script, initialize the `ADTSession` with the `Open-ADTSession` function:
```powershell
-$adtSession = Open-ADTSession -AppName "YourAppName" -AppVersion "1.0.0" -AppVendor "YourVendor" -DeploymentType "Install" -SessionState $ExecutionContext.SessionState -PassThru
+$adtSession = Open-ADTSession -AppName "YourAppName" -AppVersion "1.0.0" -AppVendor "YourVendor" -DeploymentType "Install" -PassThru
```
This initializes the session and gathers information about the deployment, user, and computer, providing an object with several helpful properties you can use.
@@ -58,25 +58,29 @@ The following properties are settable via parameters of the `Open-ADTSession` fu
### Deployment Settings
-| Property | Description |
-| :----------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| `AppRebootExitCodes` | An array of exit codes that indicate a reboot is required after installation or uninstallation. |
-| `AppSuccessExitCodes` | An array of exit codes that indicate a successful installation or uninstallation. |
-| `AppProcessesToClose` | An array of process names or hashtables (with Name/Description) to be closed before install/uninstall/repair. |
-| `ForceWimDetection` | Auto-mount a WIM image file if found in DirFiles. |
-| `NoOobeDetection` | Bypasses OOBE detection logic when DeployMode is set to Auto. Use this to show the UI during OOBE / Autopilot ESP phases. |
-| `NoProcessDetection` | Bypasses process detection logic when DeployMode is set to Auto. Use this to show the UI even if there are no processes to close. |
-| `NoSessionDetection` | Bypasses session detection logic when DeployMode is set to Auto. Use this to show the UI when no user is logged on and the SYSTEM process is interactive. |
-| `DisableDefaultMsiProcessList` | Disables extraction of the default process list from the MSI. |
-| `TerminalServerMode` | Enables Terminal Server installation mode. |
-| `ForceMsiDetection` | Force use of zero-config MSI detection even if the AppName is already set. |
-| `SuppressRebootPassThru` | Indicates if reboot exit codes (e.g. 3010) should be converted to 0 (i.e. Success) when closing the session. |
-| `DeploymentType` | Indicates if the deployment is an "Install", "Uninstall", or "Repair". |
-| `DefaultMsiFile` | The default MSI file used for installation if none is specified. |
-| `DefaultMspFiles` | The default MSP files used for installation if none are specified. |
-| `DefaultMstFile` | The default MST file used for installation if none are specified. |
-| `DeployMode` | The mode in which the deployment is running (e.g., "Auto", "Interactive", "NonInteractive", "Silent"). |
-| `RequireAdmin` | Whether the deployment requires administrative privileges. |
+| Property | Description |
+| :------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `AdditionalEnvironmentVariables` | A dictionary of key/value pairs to inject into the generated environment table. |
+| `AllowWowProcess` | Allow execution within 32-bit PowerShell on a 64-bit OS. |
+| `AppRebootExitCodes` | An array of exit codes that indicate a reboot is required after installation or uninstallation. |
+| `AppSuccessExitCodes` | An array of exit codes that indicate a successful installation or uninstallation. |
+| `AppProcessesToClose` | An array of process names or hashtables (with Name/Description) to be closed before install/uninstall/repair. |
+| `DeploymentType` | Indicates if the deployment is an "Install", "Uninstall", or "Repair". |
+| `DeployMode` | The mode in which the deployment is running (e.g., "Auto", "Interactive", "NonInteractive", "Silent"). |
+| `DefaultMsiFile` | The default MSI file used for installation if none is specified. |
+| `DefaultMspFiles` | The default MSP files used for installation if none are specified. |
+| `DefaultMstFile` | The default MST file used for installation if none are specified. |
+| `DisableDefaultMsiProcessList` | Disables extraction of the default process list from the MSI. |
+| `ExitWithMsiCodes` | Always exit 0 upon success and 3010 upon reboot required so Intune/ConfigMgr requires no specific adjustment of return code handling. |
+| `ForceMsiDetection` | Force use of zero-config MSI detection even if the AppName is already set. |
+| `ForceWimDetection` | Auto-mount a WIM image file if found in DirFiles. |
+| `NoOobeDetection` | Bypasses OOBE detection logic when DeployMode is set to Auto. Use this to show the UI during OOBE / Autopilot ESP phases. |
+| `NoProcessDetection` | Bypasses process detection logic when DeployMode is set to Auto. Use this to show the UI even if there are no processes to close. |
+| `NoSessionDetection` | Bypasses session detection logic when DeployMode is set to Auto. Use this to show the UI when no user is logged on and the SYSTEM process is interactive. |
+| `ProcessInteractivityDetection` | Bypasses process interactivity detection logic when DeployMode is set to Auto. Use this to suppress the UI during OSD task sequences. |
+| `RequireAdmin` | Whether the deployment requires administrative privileges. |
+| `SuppressRebootPassThru` | Indicates if reboot exit codes (e.g. 3010) should be converted to 0 (i.e. Success) when closing the session. |
+| `TerminalServerMode` | Enables Terminal Server installation mode. |
### Path Settings
@@ -102,6 +106,26 @@ The following properties are not parameters of `Open-ADTSession`, but are availa
| `CurrentDate` | The current date. |
| `CurrentDateTime` | The current date and time. |
| `CurrentTime` | The current time. |
+| `DirWimMountPath` | The mount path of the WIM file, if mounted. |
| `InstallPhase` | The current phase of the installation process (e.g., "Pre-Installation", "Installation", "Post-Installation"). |
| `LogPath` | The path used for logging. |
| `UseDefaultMsi` | Indicates whether the toolkit is running in zero-config mode. |
+
+### Additional Methods
+
+The following methods can also be run on the `ADTSession` object:
+
+| Method | Description |
+| :------------------- | :---------------------------------------------------------------- |
+| `GetDeferHistory` | Returns the defer history. |
+| `GetDeploymentStatus | Returns the current deployment status. |
+| `GetExitCode` | Returns the current exit code. |
+| `GetLogBuffer` | Returns the entire log buffer. |
+| `IsClosed` | Indicates whether the session is closed. |
+| `IsNonInteractive` | Indicates whether the session is running in non-interactive mode. |
+| `IsSilent` | Indicates whether the session is running in silent mode. |
+| `NewLogFileName` | Generates a new log file name. |
+| `ResetDeferHistory` | Resets the defer history. |
+| `SetDeferHistory` | Sets the defer history. |
+| `SetExitCode` | Sets the exit code. |
+| `WriteLogEntry` | Writes an entry to the log. |
diff --git a/docs/reference/config-settings.mdx b/docs/reference/config-settings.mdx
index 9f97f18..76e6a08 100644
--- a/docs/reference/config-settings.mdx
+++ b/docs/reference/config-settings.mdx
@@ -12,75 +12,79 @@ tags:
## Configuration Settings
-PSAppDeployToolkit provides comprehensive configuration management through multiple layers: Group Policy (highest precedence), local configuration files, and built-in defaults.
+PSAppDeployToolkit provides comprehensive configuration management through multiple layers:
+
+1. Group Policy (highest precedence)
+2. Local configuration files
+3. Built-in defaults.
### Settings
#### Assets
-| Setting | Description |
-| :---------------- | :-------------------------------------------------------------- |
-| `Assets.Banner` | Specify filename or Base64 string of the banner (Classic-only). |
-| `Assets.Logo` | Specify filename or Base64 string of the logo. |
-| `Assets.LogoDark` | Specify filename or Base64 string of the logo (for dark mode). |
-| `Assets.TaskbarIcon` | Specify optional filename or Base64 string of the tray icon. |
+| Setting | Description |
+| :------------------- | :-------------------------------------------------------------- |
+| `Assets.Banner` | Specify filename or Base64 string of the banner (Classic-only). |
+| `Assets.Logo` | Specify filename or Base64 string of the logo. |
+| `Assets.LogoDark` | Specify filename or Base64 string of the logo (for dark mode). |
+| `Assets.TaskbarIcon` | Specify optional filename or Base64 string of the tray icon. |
:::info[Dark Mode Support]
`Assets.LogoDark` enables different logos for light and dark themes in the modern Fluent UI framework.
:::
-#### Toolkit Settings
-
-| Setting | Description |
-| :---------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| `Toolkit.CachePath` | Specifies where the toolkit caches files. |
-| `Toolkit.CompanyName` | Company name to use in default dialog subtitles. Replaces UI.BalloonTitle. |
-| `Toolkit.CompressLogs` | Determines if log files should be compressed. |
-| `Toolkit.FileCopyMode` | Specifies the file copy mode for the toolkit. |
-| `Toolkit.LogAppend` | Indicates if logs should be appended. |
-| `Toolkit.LogDebugMessage` | Enables or disables debug message logging. |
-| `Toolkit.LogHostOutputToStdStreams` | Logs host output to standard streams. |
-| `Toolkit.LogMaxHistory` | Sets the maximum history for logs. |
-| `Toolkit.LogMaxSize` | Defines the maximum size for logs. |
-| `Toolkit.LogPath` | Specifies the path where logs are stored. |
-| `Toolkit.LogPathNoAdminRights` | Specifies the log path when no administrative privileges are available. |
-| `Toolkit.LogStyle` | Sets the style for logging. |
-| `Toolkit.LogToHierarchy` | Log to a hierarchical structure of AppVendor\AppName\AppVersion. |
-| `Toolkit.LogToSubfolder` | Log to a subfolder based on InstallName. |
-| `Toolkit.LogWriteToHost` | Determines if logs should be written to the host. |
-| `Toolkit.RegPath` | Specifies the registry path for the toolkit. |
-| `Toolkit.RegPathNoAdminRights` | Specifies the registry path when no administrative privileges are available. |
-| `Toolkit.TempPath` | Specifies the temporary path for the toolkit. |
-| `Toolkit.TempPathNoAdminRights` | Specifies the temporary path when no administrative privileges are available. |
+#### Windows Installer (MSI) Execution Settings
+| Setting | Description |
+| :------------------------- | :------------------------------------------------------------------------------------------------------------------------------- |
+| `MSI.InstallParams` | Defines the installation parameters for MSI. **Default changed to `/qn REBOOT=ReallySuppress`** |
+| `MSI.LoggingOptions` | Specifies the logging options for MSI. |
+| `MSI.LogPath` | Specifies the log path for MSI. **Uses Toolkit.LogPath when empty** |
+| `MSI.LogPathNoAdminRights` | Specifies the log path for MSI when no administrative privileges are available. **Uses Toolkit.LogPathNoAdminRights when empty** |
+| `MSI.MutexWaitTime` | Sets the mutex wait time for MSI. |
+| `MSI.SilentParams` | Defines the silent parameters for MSI. |
+| `MSI.UninstallParams` | Defines the uninstall parameters for MSI. |
-#### Windows Installer (MSI) Execution Settings
+#### Toolkit Settings
-| Setting | Description |
-| :------------------------- | :---------------------------------------------------------------------------------------------------------------------- |
-| `MSI.InstallParams` | Defines the installation parameters for MSI. **Default changed to `/qn REBOOT=ReallySuppress`** |
-| `MSI.LoggingOptions` | Specifies the logging options for MSI. |
-| `MSI.LogPath` | Specifies the log path for MSI. **Now uses Toolkit.LogPath when empty** |
-| `MSI.LogPathNoAdminRights` | Specifies the log path for MSI when no administrative privileges are available. **Now uses Toolkit.LogPathNoAdminRights when empty** |
-| `MSI.MutexWaitTime` | Sets the mutex wait time for MSI. |
-| `MSI.SilentParams` | Defines the silent parameters for MSI. |
-| `MSI.UninstallParams` | Defines the uninstall parameters for MSI. |
+| Setting | Description |
+| :---------------------------------- | :----------------------------------------------------------------------------------------------- |
+| `Toolkit.CachePath` | Specifies where the toolkit caches files. |
+| `Toolkit.CompanyName` | Company name to use in default dialog subtitles. Replaces UI.BalloonTitle. |
+| `Toolkit.CompressLogs` | Determines if log files should be compressed. |
+| `Toolkit.FileCopyMode` | Specifies the file copy mode for the toolkit. |
+| `Toolkit.LogAppend` | Indicates if logs should be appended. |
+| `Toolkit.LogDebugMessage` | Enables or disables debug message logging. |
+| `Toolkit.LogHostOutputToStdStreams` | Logs host output to standard streams. |
+| `Toolkit.LogMaxHierarchy` | Specifies the maximum amount of hierarchical structures to maintain when LogToHierarchy is true. |
+| `Toolkit.LogMaxHistory` | Sets the maximum history for logs. |
+| `Toolkit.LogMaxSize` | Defines the maximum size for logs. |
+| `Toolkit.LogPath` | Specifies the path where logs are stored. |
+| `Toolkit.LogPathNoAdminRights` | Specifies the log path when no administrative privileges are available. |
+| `Toolkit.LogStyle` | Sets the style for logging. |
+| `Toolkit.LogToHierarchy` | Log to a hierarchical structure of AppVendor\AppName\AppVersion. |
+| `Toolkit.LogToSubfolder` | Log to a subfolder based on InstallName. |
+| `Toolkit.LogWriteToHost` | Determines if logs should be written to the host. |
+| `Toolkit.RegPath` | Specifies the registry path for the toolkit. |
+| `Toolkit.RegPathNoAdminRights` | Specifies the registry path when no administrative privileges are available. |
+| `Toolkit.TempPath` | Specifies the temporary path for the toolkit. |
+| `Toolkit.TempPathNoAdminRights` | Specifies the temporary path when no administrative privileges are available. |
#### User Interface Settings
-| Setting | Description |
-| :-------------------------------- | :------------------------------------------------------------------------ |
-| `UI.BalloonNotifications` | Enables or disables balloon notifications. |
-| `UI.DefaultExitCode` | Specifies the default exit code for the UI. |
-| `UI.DefaultPromptPersistInterval` | Sets the default interval for prompt persistence. |
-| `UI.DefaultTimeout` | Defines the default timeout for the UI. |
-| `UI.DeferExitCode` | Specifies the exit code for deferred actions. **Default changed to 1602** |
-| `UI.DialogStyle` | Defines the appearance of dialogs. |
-| `UI.FluentAccentColor` | Specifies the accent color for Fluent UI dialogs. |
-| `UI.FluentAccentColorDark` | Specifies the accent color for Fluent UI dialogs (for dark mode). |
-| `UI.LanguageOverride` | Overrides the language for the UI. |
-| `UI.PromptToSaveTimeout` | Controls how long the user has to respond before a prompt closes. |
-| `UI.RestartPromptPersistInterval` | Sets the interval for restart prompt persistence. |
+| Setting | Description |
+| :-------------------------------- | :----------------------------------------------------------------- |
+| `UI.BalloonNotifications` | Enables or disables balloon notifications. |
+| `UI.DefaultExitCode` | Specifies the default exit code for the UI. |
+| `UI.DefaultPromptPersistInterval` | Sets the default interval for prompt persistence. |
+| `UI.DefaultTimeout` | Defines the default timeout for the UI. |
+| `UI.DeferExitCode` | Specifies the exit code for deferred actions. **Defaults to 1602** |
+| `UI.DialogStyle` | Defines the appearance of dialogs. |
+| `UI.FluentAccentColor` | Specifies the accent color for Fluent UI dialogs. |
+| `UI.FluentAccentColorDark` | Specifies the accent color for Fluent UI dialogs (for dark mode). |
+| `UI.LanguageOverride` | Overrides the language for the UI. |
+| `UI.PromptToSaveTimeout` | Controls how long the user has to respond before a prompt closes. |
+| `UI.RestartPromptPersistInterval` | Sets the interval for restart prompt persistence. |
:::info[Custom Branding]
Use `UI.FluentAccentColor` and `UI.FluentAccentColorDark` to match your organization's branding in modern Fluent UI dialogs. Supports standard color names and hex values.
diff --git a/docs/reference/language-strings.mdx b/docs/reference/language-strings.mdx
index 52ef363..0b93ce4 100644
--- a/docs/reference/language-strings.mdx
+++ b/docs/reference/language-strings.mdx
@@ -12,86 +12,149 @@ tags:
## Language Strings
-Each setting in the config.psd1 is exposed through the `Get-ADTConfig` function, allowing you to retrieve text used by the UI.
+Language strings are exposed through the `Get-ADTSStringTable` function.
-### Settings
+The string table mirrors the nested structure below. Where a setting has `Install`, `Repair`, and `Uninstall` child values, each value is specific to that deployment type.
-#### General Strings
+ #### BalloonTip
-#### Close Prompts
+| Setting | Description |
+| :------ | :---------- |
+| `Start.Install` | Text displayed in the balloon tip for the start of an installation. |
+| `Start.Repair` | Text displayed in the balloon tip for the start of a repair. |
+| `Start.Uninstall` | Text displayed in the balloon tip for the start of an uninstallation. |
+| `Complete.Install` | Text displayed in the balloon tip for successful completion of an installation. |
+| `Complete.Repair` | Text displayed in the balloon tip for successful completion of a repair. |
+| `Complete.Uninstall` | Text displayed in the balloon tip for successful completion of an uninstallation. |
+| `RestartRequired.Install` | Text displayed in the balloon tip when an installation completes and requires a restart. |
+| `RestartRequired.Repair` | Text displayed in the balloon tip when a repair completes and requires a restart. |
+| `RestartRequired.Uninstall` | Text displayed in the balloon tip when an uninstallation completes and requires a restart. |
+| `FastRetry.Install` | Text displayed in the balloon tip for a fast retry of an installation. |
+| `FastRetry.Repair` | Text displayed in the balloon tip for a fast retry of a repair. |
+| `FastRetry.Uninstall` | Text displayed in the balloon tip for a fast retry of an uninstallation. |
+| `Error.Install` | Text displayed in the balloon tip for a failed installation. |
+| `Error.Repair` | Text displayed in the balloon tip for a failed repair. |
+| `Error.Uninstall` | Text displayed in the balloon tip for a failed uninstallation. |
+
+ #### BlockExecutionText
-| Setting | Description |
-| :--------------------------- | :------------------------------------------- |
-| `ClosePrompt.ButtonClose` | Button text for closing the prompt. |
-| `ClosePrompt.ButtonContinue` | Button text for continuing the close prompt. |
-| `ClosePrompt.ButtonDefer` | Button text for deferring the close prompt. |
+| Setting | Description |
+| :------ | :---------- |
+| `Message.Install` | Text displayed when prompting that an application has been blocked during an installation. |
+| `Message.Repair` | Text displayed when prompting that an application has been blocked during a repair. |
+| `Message.Uninstall` | Text displayed when prompting that an application has been blocked during an uninstallation. |
+| `Subtitle.Install` | Subtitle shown underneath the install title for Fluent dialogs during an installation. |
+| `Subtitle.Repair` | Subtitle shown underneath the install title for Fluent dialogs during a repair. |
+| `Subtitle.Uninstall` | Subtitle shown underneath the install title for Fluent dialogs during an uninstallation. |
-#### Progress Messages
+ #### DiskSpaceText
-| Setting | Description |
-| :-------------------------------- | :------------------------------------------------ |
-| `Progress.MessageInstall` | Message displayed during installation. |
-| `Progress.MessageInstallDetail` | Detailed message displayed during installation. |
-| `Progress.MessageRepair` | Message displayed during repair. |
-| `Progress.MessageRepairDetail` | Detailed message displayed during repair. |
-| `Progress.MessageUninstall` | Message displayed during uninstallation. |
-| `Progress.MessageUninstallDetail` | Detailed message displayed during uninstallation. |
+| Setting | Description |
+| :------ | :---------- |
+| `Message.Install` | Text displayed when there is not enough free disk space to complete an installation. |
+| `Message.Repair` | Text displayed when there is not enough free disk space to complete a repair. |
+| `Message.Uninstall` | Text displayed when there is not enough free disk space to complete an uninstallation. |
-#### Disk Space
+ #### InstallationPrompt
-| Setting | Descriptionm |
-| :------------------ | :------------------------------------------- |
-| `DiskSpace.Message` | Message displayed when checking disk space. |
+| Setting | Description |
+| :------ | :---------- |
+| `Subtitle.Install` | Subtitle shown underneath the install title for Fluent dialogs during an installation. |
+| `Subtitle.Repair` | Subtitle shown underneath the install title for Fluent dialogs during a repair. |
+| `Subtitle.Uninstall` | Subtitle shown underneath the install title for Fluent dialogs during an uninstallation. |
-#### Deployment Types
+ #### ListSelectionPrompt
-| Setting | Description |
-| :------------------------- | :---------------------------------- |
-| `DeploymentType.Install` | Text for install deployment type. |
-| `DeploymentType.Repair` | Text for repair deployment type. |
-| `DeploymentType.Uninstall` | Text for uninstall deployment type. |
+| Setting | Description |
+| :------ | :---------- |
+| `ListSelectionMessage` | Default message displayed next to the list selection dropdown. |
+
+ #### ProgressPrompt
-#### Welcome Prompts
+| Setting | Description |
+| :------ | :---------- |
+| `Message.Install` | Default message displayed in the progress bar during an installation. |
+| `Message.Repair` | Default message displayed in the progress bar during a repair. |
+| `Message.Uninstall` | Default message displayed in the progress bar during an uninstallation. |
+| `MessageDetail.Install` | Default detail message displayed in the progress bar during an installation. |
+| `MessageDetail.Repair` | Default detail message displayed in the progress bar during a repair. |
+| `MessageDetail.Uninstall` | Default detail message displayed in the progress bar during an uninstallation. |
+| `Subtitle.Install` | Subtitle shown underneath the install title for Fluent dialogs during an installation. |
+| `Subtitle.Repair` | Subtitle shown underneath the install title for Fluent dialogs during a repair. |
+| `Subtitle.Uninstall` | Subtitle shown underneath the install title for Fluent dialogs during an uninstallation. |
+
+ #### RestartPrompt
+
+| Setting | Description |
+| :------ | :---------- |
+| `ButtonRestartLater` | Button text for allowing the user to restart later. |
+| `ButtonRestartNow` | Button text for restarting the device now. |
+| `ButtonCancel` | Button text for cancelling the restart. |
+| `Message.Install` | Text displayed when a restart is required after an installation. |
+| `Message.Repair` | Text displayed when a restart is required after a repair. |
+| `Message.Uninstall` | Text displayed when a restart is required after an uninstallation. |
+| `CustomMessage` | Custom message displayed in the restart window. Defaults to `$null`. |
+| `MessageRestart` | Text displayed to indicate that the device will be restarted automatically. |
+| `MessageTime` | Text displayed as a prefix to the remaining time, reminding users to save their work. |
+| `TimeRemaining` | Text displayed to indicate the amount of time remaining until a restart occurs. |
+| `Title` | Title used by the restart prompt window. |
+| `Subtitle.Install` | Subtitle shown underneath the install title for Fluent dialogs during an installation. |
+| `Subtitle.Repair` | Subtitle shown underneath the install title for Fluent dialogs during a repair. |
+| `Subtitle.Uninstall` | Subtitle shown underneath the install title for Fluent dialogs during an uninstallation. |
+
+ #### CloseAppsPrompt.Classic
+
+| Setting | Description |
+| :------ | :---------- |
+| `WelcomeMessage.Install` | Text displayed when only the deferral dialog is shown and an installation is about to start. |
+| `WelcomeMessage.Repair` | Text displayed when only the deferral dialog is shown and a repair is about to start. |
+| `WelcomeMessage.Uninstall` | Text displayed when only the deferral dialog is shown and an uninstallation is about to start. |
+| `CloseAppsMessage.Install` | Text displayed when prompting the user to close running programs before an installation can continue. |
+| `CloseAppsMessage.Repair` | Text displayed when prompting the user to close running programs before a repair can continue. |
+| `CloseAppsMessage.Uninstall` | Text displayed when prompting the user to close running programs before an uninstallation can continue. |
+| `ExpiryMessage.Install` | Text displayed when a deferral option is available for an installation. |
+| `ExpiryMessage.Repair` | Text displayed when a deferral option is available for a repair. |
+| `ExpiryMessage.Uninstall` | Text displayed when a deferral option is available for an uninstallation. |
+| `DeferralsRemaining` | Text displayed when there are a specific number of deferrals remaining. |
+| `DeferralDeadline` | Text displayed when there is a specific deferral deadline. |
+| `ExpiryWarning` | Text displayed after the deferral options to warn that deferral will no longer be available after expiry. |
+| `CountdownDefer.Install` | Countdown message shown when an installation will automatically continue if the user does not respond. |
+| `CountdownDefer.Repair` | Countdown message shown when a repair will automatically continue if the user does not respond. |
+| `CountdownDefer.Uninstall` | Countdown message shown when an uninstallation will automatically continue if the user does not respond. |
+| `CountdownClose.Install` | Countdown message shown when programs will be automatically closed before an installation. |
+| `CountdownClose.Repair` | Countdown message shown when programs will be automatically closed before a repair. |
+| `CountdownClose.Uninstall` | Countdown message shown when programs will be automatically closed before an uninstallation. |
+| `ButtonClose` | Text displayed on the button that closes running programs. |
+| `ButtonDefer` | Text displayed on the button that defers the deployment. |
+| `ButtonContinue` | Text displayed on the button that continues the deployment. |
+| `ButtonContinueTooltip` | Tooltip text displayed on the continue button. |
+
+ #### CloseAppsPrompt.Fluent
+
+| Setting | Description |
+| :------ | :---------- |
+| `DialogMessage.Install` | Message prompting the user to save work before applications are closed for an installation. |
+| `DialogMessage.Repair` | Message prompting the user to save work before applications are closed for a repair. |
+| `DialogMessage.Uninstall` | Message prompting the user to save work before applications are closed for an uninstallation. |
+| `DialogMessageNoProcesses.Install` | Message shown when there are no running processes and the user can continue with an installation. |
+| `DialogMessageNoProcesses.Repair` | Message shown when there are no running processes and the user can continue with a repair. |
+| `DialogMessageNoProcesses.Uninstall` | Message shown when there are no running processes and the user can continue with an uninstallation. |
+| `AutomaticStartCountdown` | Label used to describe the automatic start countdown. |
+| `DeferralsRemaining` | Text displayed when there are a specific number of deferrals remaining. |
+| `DeferralDeadline` | Text displayed when there is a specific deferral deadline. |
+| `ButtonLeftText.Install` | Button text describing the process of closing applications and starting an installation. |
+| `ButtonLeftText.Repair` | Button text describing the process of closing applications and starting a repair. |
+| `ButtonLeftText.Uninstall` | Button text describing the process of closing applications and starting an uninstallation. |
+| `ButtonLeftNoProcessesText.Install` | Button text describing the process of starting an installation when there are no running processes. |
+| `ButtonLeftNoProcessesText.Repair` | Button text describing the process of starting a repair when there are no running processes. |
+| `ButtonLeftNoProcessesText.Uninstall` | Button text describing the process of starting an uninstallation when there are no running processes. |
+| `ButtonRightText` | Button text describing the process of deferring a deployment. |
+| `Subtitle.Install` | Subtitle shown underneath the install title for Fluent dialogs during an installation. |
+| `Subtitle.Repair` | Subtitle shown underneath the install title for Fluent dialogs during a repair. |
+| `Subtitle.Uninstall` | Subtitle shown underneath the install title for Fluent dialogs during an uninstallation. |
+
+ #### CloseAppsPrompt
| Setting | Description |
-| :------ | :-- -------- |
-| `WelcomePrompt.Classic` | Classic style welcome prompt. |
-| `WelcomePrompt.Fluent` | Fluent style welcome prompt. |
-
-### Block Execution
-
-| Setting | Description |
-| :----------------------- | :------------------------------------------- |
-| `BlockExecution.Message` | Message displayed when execution is blocked. |
-
-### Balloon Texts
-
-| Setting | Description |
-| :---------------------------- | :--------------------------------- |
-| `BalloonText.Complete` | Balloon text for completion. |
-| `BalloonText.Error` | Balloon text for errors. |
-| `BalloonText.FastRetry` | Balloon text for fast retry. |
-| `BalloonText.RestartRequired` | Balloon text for restart required. |
-| `BalloonText.Start` | Balloon text for start. |
-
-#### Restart Prompts
-
-| Setting | Description |
-| :--------------------------------- | :-------------------------------------------- |
-| `RestartPrompt.ButtonRestartLater` | Button text for restarting later. |
-| `RestartPrompt.ButtonRestartNow` | Button text for restarting now. |
-| `RestartPrompt.Message` | General restart prompt message. |
-| `RestartPrompt.MessageRestart` | Message displayed when a restart is required. |
-| `RestartPrompt.MessageTime` | Time message for restart prompt. |
-| `RestartPrompt.TimeRemaining` | Time remaining message for restart. |
-| `RestartPrompt.Title` | Title for restart prompt. |
-
-#### Defer Prompts
-
-| Setting | Description |
-| :------------------------------- | :-------------------------------------------- |
-| `DeferPrompt.Deadline` | Deadline message for defer prompt. |
-| `DeferPrompt.ExpiryMessage` | Expiry message for defer prompt. |
-| `DeferPrompt.RemainingDeferrals` | Remaining deferrals message for defer prompt. |
-| `DeferPrompt.WarningMessage` | Warning message for defer prompt. |
-| `DeferPrompt.WelcomeMessage` | Welcome message for defer prompt. |
+| :------ | :---------- |
+| `CustomMessage` | Custom message displayed at the welcome screen window. Defaults to `$null`. |
diff --git a/docs/reference/module-structure.mdx b/docs/reference/module-structure.mdx
index 1f35e73..63fd512 100644
--- a/docs/reference/module-structure.mdx
+++ b/docs/reference/module-structure.mdx
@@ -18,35 +18,22 @@ The PSADT core module files are located in the `PSAppDeployToolkit/` folder. Thi
These are here for reference only, and you should not modify them. If you need to customize the PSADT module, you can create your own custom functions in the `PSAppDeployToolkit.Extensions/` folder.
-| Folder | File | Purpose |
-| :---------------------- | :---------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| **PSAppDeployToolkit/** | | |
-| | PSAppDeployToolkit.cer | PSADT Public Certificate. Used to verify the deployment scripts and executables. |
-| | PSAppDeployToolkit.psd1 | PSADT Module Manifest file. Contains metadata about the module, such as its version and dependencies. |
-| | PSAppDeployToolkit.psm1 | PSADT Module file. This is automatically loaded by the deployment script. |
-| **ADMX/** | | |
-| | | PSADT Group Policy ADMX files. These files are used to integrate the PSADT module with Group Policy. They allow you to configure PSADT settings via Group Policy. You can import these files into your Group Policy Management Console. |
-| **Assets** | | |
-| | AppIcon.png | PSADT Default App Icon. This is the fallback if you do not customize it. You should NOT modify this file. |
-| **Config/** | | |
-| | config.psd1 | PSADT Default Configuration file. This file contains the default configuration settings for the PSADT module. You should NOT modify this file. |
-| **Strings/** | | |
-| | strings.psd1 | PSADT Default User Interface strings file. This changes the text displayed in the PSADT User Interface. It contains the default English strings. If a specific language is not available, this will be used as a fallback. You should NOT modify this file. |
-| **Strings/** | | |
-| | strings.psd1 | PSADT Default User Interface strings file. This changes the text displayed in the PSADT User Interface. It contains the default English strings. If a specific language is not available, this will be used as a fallback. You should NOT modify this file. |
-| **FrontEnd/** | | |
-| | | PSADT Default deployment script files. Contains the templates for the deployment scripts. You should NOT modify these files. |
-| **Lib/** | | |
-| | | PSADT Library files. Contains additional logic and functionality used by the PSADT module. These files are used to extend the functionality of the PSADT module. You should NOT modify these files. |
-
-## PSADT Extensions Module Files
+| Path | Purpose |
+| :---------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| PSAppDeployToolkit.cer | PSADT Public Certificate. Used to verify the deployment scripts and executables. |
+| PSAppDeployToolkit.psd1 | PSADT Module Manifest file. Contains metadata about the module, such as its version and dependencies. |
+| PSAppDeployToolkit.psm1 | PSADT Module file. This is automatically loaded by the deployment script. |
+| Lib | PSADT Library files. Contains additional logic and functionality used by the PSADT module. These files are used to extend the functionality of the PSADT module. You should NOT modify these files. |
+| Opt\ADMX | PSADT Group Policy ADMX files. These files are used to integrate the PSADT module with Group Policy. They allow you to configure PSADT settings via Group Policy. You can import these files into your Group Policy Management Console. |
+| Opt\FrontEnd | PSADT Default deployment script files. Contains the templates for the deployment scripts. You should NOT modify these files. |
+
+### PSADT Extensions Module Files
These files are part of the PSADT Extensions module, which provides additional functionality for the PSADT framework.
The PSADT Extensions module is designed to allow you to create your own custom functions and logic that can be used in your deployment scripts. The module will be automatically imported by the PSADT core module, so you do not need to import it manually.
-| Folder | File | Purpose |
-| :---------------------------------- | :---------------------------------- | :--------------------------------------------------------------------------------------- |
-| **PSAppDeployToolkit. Extensions/** | | |
-| | PSAppDeployToolkit. Extensions.psd1 | PSADT Extensions module manifest. Contains metadata about the module and its version. |
-| | PSAppDeployToolkit. Extensions.psm1 | PSADT Extensions module script. Contains all the functions and logic for the extensions. |
+| Path | Purpose |
+| :--------------------------------- | :--------------------------------------------------------------------------------------- |
+| PSAppDeployToolkit.Extensions.psd1 | PSADT Extensions module manifest. Contains metadata about the module and its version. |
+| PSAppDeployToolkit.Extensions.psm1 | PSADT Extensions module script. Contains all the functions and logic for the extensions. |
diff --git a/docs/reference/text-formatting.mdx b/docs/reference/text-formatting.mdx
index 14c5314..9041457 100644
--- a/docs/reference/text-formatting.mdx
+++ b/docs/reference/text-formatting.mdx
@@ -59,6 +59,7 @@ The accent color used by `[accent]` tags can be configured in your deployment:
@{
UI = @{
FluentAccentColor = 0xFF0078D4 # Blue accent
+ FluentAccentColorDark = 0xFF0078D4 # Blue accent
}
}
```
diff --git a/docs/reference/v4-function-mapping.mdx b/docs/reference/v4-function-mapping.mdx
index 471997c..308a29f 100644
--- a/docs/reference/v4-function-mapping.mdx
+++ b/docs/reference/v4-function-mapping.mdx
@@ -16,89 +16,89 @@ The following table lists the v3 functions and their compatibility with v4. If a
| v3 Function | Compat Wrapper? | v4 Function |
| :-------------------------------------------------------------------------------------------------------------------------------------- | :-------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| [Block-AppExecution](/versioned_docs/version-3.10.2/reference/functions/Block-AppExecution.mdx) | Yes | [Block-ADTAppExecution](/versioned_docs/version-4.0.x/reference/functions/Block-ADTAppExecution.mdx) |
-| [Close-InstallationProgress](/versioned_docs/version-3.10.2/reference/functions/Close-InstallationProgress.mdx) | Yes | [Close-ADTInstallationProgress](/versioned_docs/version-4.0.x/reference/functions/Close-ADTInstallationProgress.mdx) |
-| [Configure-EdgeExtension](/versioned_docs/version-3.10.2/reference/functions/Configure-EdgeExtension.mdx) | Yes | [Add-ADTEdgeExtension](/versioned_docs/version-4.0.x/reference/functions/Add-ADTEdgeExtension.mdx) / [Remove-ADTEdgeExtension](/versioned_docs/version-4.0.x/reference/functions/Remove-ADTEdgeExtension.mdx) |
-| [Convert-RegistryPath](/versioned_docs/version-3.10.2/reference/functions/Convert-RegistryPath.mdx) | Yes | [Convert-ADTRegistryPath](/versioned_docs/version-4.0.x/reference/functions/Convert-ADTRegistryPath.mdx) |
-| [ConvertTo-NTAccountOrSID](/versioned_docs/version-3.10.2/reference/functions/ConvertTo-NTAccountOrSID.mdx) | Yes | [ConvertTo-ADTNTAccountOrSID](/versioned_docs/version-4.0.x/reference/functions/ConvertTo-ADTNTAccountOrSID.mdx) |
-| [Copy-ContentToCache](/versioned_docs/version-3.10.2/reference/functions/Copy-ContentToCache.mdx) | Yes | [Copy-ADTContentToCache](/versioned_docs/version-4.0.x/reference/functions/Copy-ADTContentToCache.mdx) |
-| [Copy-File](/versioned_docs/version-3.10.2/reference/functions/Copy-File.mdx) | Yes | [Copy-ADTFile](/versioned_docs/version-4.0.x/reference/functions/Copy-ADTFile.mdx) |
-| [Copy-FileToUserProfiles](/versioned_docs/version-3.10.2/reference/functions/Copy-FileToUserProfiles.mdx) | Yes | [Copy-ADTFileToUserProfiles](/versioned_docs/version-4.0.x/reference/functions/Copy-ADTFileToUserProfiles.mdx) |
-| [Disable-TerminalServerInstallMode](/versioned_docs/version-3.10.2/reference/functions/Disable-TerminalServerInstallMode.mdx) | Yes | [Disable-ADTTerminalServerInstallMode](/versioned_docs/version-4.0.x/reference/functions/Disable-ADTTerminalServerInstallMode.mdx) |
-| [Enable-TerminalServerInstallMode](/versioned_docs/version-3.10.2/reference/functions/Enable-TerminalServerInstallMode.mdx) | Yes | [Enable-ADTTerminalServerInstallMode](/versioned_docs/version-4.0.x/reference/functions/Enable-ADTTerminalServerInstallMode.mdx) |
-| [Execute-MSI](/versioned_docs/version-3.10.2/reference/functions/Execute-MSI.mdx) | Yes | [Start-ADTMsiProcess](/versioned_docs/version-4.0.x/reference/functions/Start-ADTMsiProcess.mdx) |
-| [Execute-MSP](/versioned_docs/version-3.10.2/reference/functions/Execute-MSP.mdx) | Yes | [Start-ADTMspProcess](/versioned_docs/version-4.0.x/reference/functions/Start-ADTMspProcess.mdx) |
-| [Execute-Process](/versioned_docs/version-3.10.2/reference/functions/Execute-Process.mdx) | Yes | [Start-ADTProcess](/versioned_docs/version-4.0.x/reference/functions/Start-ADTProcess.mdx) |
-| [Execute-ProcessAsUser](/versioned_docs/version-3.10.2/reference/functions/Execute-ProcessAsUser.mdx) | Yes | [Start-ADTProcessAsUser](/versioned_docs/version-4.0.x/reference/functions/Start-ADTProcessAsUser.mdx) |
-| [Exit-Script](/versioned_docs/version-3.10.2/reference/functions/Exit-Script.mdx) | Yes | [Close-ADTSession](/versioned_docs/version-4.0.x/reference/functions/Close-ADTSession.mdx) |
-| [Get-DeferHistory](/versioned_docs/version-3.10.2/reference/functions/Get-DeferHistory.mdx) | Yes | [Get-ADTDeferHistory](/versioned_docs/version-4.0.x/reference/functions/Get-ADTDeferHistory.mdx) |
-| [Get-FileVersion](/versioned_docs/version-3.10.2/reference/functions/Get-FileVersion.mdx) | Yes | [Get-ADTFileVersion](/versioned_docs/version-4.0.x/reference/functions/Get-ADTFileVersion.mdx) |
-| [Get-FreeDiskSpace](/versioned_docs/version-3.10.2/reference/functions/Get-FreeDiskSpace.mdx) | Yes | [Get-ADTFreeDiskSpace](/versioned_docs/version-4.0.x/reference/functions/Get-ADTFreeDiskSpace.mdx) |
+| [Block-AppExecution](/versioned_docs/version-3.10.2/reference/functions/Block-AppExecution.mdx) | Yes | [Block-ADTAppExecution](/reference/functions/Block-ADTAppExecution.mdx) |
+| [Close-InstallationProgress](/versioned_docs/version-3.10.2/reference/functions/Close-InstallationProgress.mdx) | Yes | [Close-ADTInstallationProgress](/reference/functions/Close-ADTInstallationProgress.mdx) |
+| [Configure-EdgeExtension](/versioned_docs/version-3.10.2/reference/functions/Configure-EdgeExtension.mdx) | Yes | [Add-ADTEdgeExtension](/reference/functions/Add-ADTEdgeExtension.mdx) / [Remove-ADTEdgeExtension](/reference/functions/Remove-ADTEdgeExtension.mdx) |
+| [Convert-RegistryPath](/versioned_docs/version-3.10.2/reference/functions/Convert-RegistryPath.mdx) | Yes | [Convert-ADTRegistryPath](/reference/functions/Convert-ADTRegistryPath.mdx) |
+| [ConvertTo-NTAccountOrSID](/versioned_docs/version-3.10.2/reference/functions/ConvertTo-NTAccountOrSID.mdx) | Yes | [ConvertTo-ADTNTAccountOrSID](/reference/functions/ConvertTo-ADTNTAccountOrSID.mdx) |
+| [Copy-ContentToCache](/versioned_docs/version-3.10.2/reference/functions/Copy-ContentToCache.mdx) | Yes | [Copy-ADTContentToCache](/reference/functions/Copy-ADTContentToCache.mdx) |
+| [Copy-File](/versioned_docs/version-3.10.2/reference/functions/Copy-File.mdx) | Yes | [Copy-ADTFile](/reference/functions/Copy-ADTFile.mdx) |
+| [Copy-FileToUserProfiles](/versioned_docs/version-3.10.2/reference/functions/Copy-FileToUserProfiles.mdx) | Yes | [Copy-ADTFileToUserProfiles](/reference/functions/Copy-ADTFileToUserProfiles.mdx) |
+| [Disable-TerminalServerInstallMode](/versioned_docs/version-3.10.2/reference/functions/Disable-TerminalServerInstallMode.mdx) | Yes | [Disable-ADTTerminalServerInstallMode](/reference/functions/Disable-ADTTerminalServerInstallMode.mdx) |
+| [Enable-TerminalServerInstallMode](/versioned_docs/version-3.10.2/reference/functions/Enable-TerminalServerInstallMode.mdx) | Yes | [Enable-ADTTerminalServerInstallMode](/reference/functions/Enable-ADTTerminalServerInstallMode.mdx) |
+| [Execute-MSI](/versioned_docs/version-3.10.2/reference/functions/Execute-MSI.mdx) | Yes | [Start-ADTMsiProcess](/reference/functions/Start-ADTMsiProcess.mdx) |
+| [Execute-MSP](/versioned_docs/version-3.10.2/reference/functions/Execute-MSP.mdx) | Yes | [Start-ADTMspProcess](/reference/functions/Start-ADTMspProcess.mdx) |
+| [Execute-Process](/versioned_docs/version-3.10.2/reference/functions/Execute-Process.mdx) | Yes | [Start-ADTProcess](/reference/functions/Start-ADTProcess.mdx) |
+| [Execute-ProcessAsUser](/versioned_docs/version-3.10.2/reference/functions/Execute-ProcessAsUser.mdx) | Yes | [Start-ADTProcessAsUser](/reference/functions/Start-ADTProcessAsUser.mdx) |
+| [Exit-Script](/versioned_docs/version-3.10.2/reference/functions/Exit-Script.mdx) | Yes | [Close-ADTSession](/reference/functions/Close-ADTSession.mdx) |
+| [Get-DeferHistory](/versioned_docs/version-3.10.2/reference/functions/Get-DeferHistory.mdx) | Yes | [Get-ADTDeferHistory](/reference/functions/Get-ADTDeferHistory.mdx) |
+| [Get-FileVersion](/versioned_docs/version-3.10.2/reference/functions/Get-FileVersion.mdx) | Yes | [Get-ADTFileVersion](/reference/functions/Get-ADTFileVersion.mdx) |
+| [Get-FreeDiskSpace](/versioned_docs/version-3.10.2/reference/functions/Get-FreeDiskSpace.mdx) | Yes | [Get-ADTFreeDiskSpace](/reference/functions/Get-ADTFreeDiskSpace.mdx) |
| [Get-HardwarePlatform](/versioned_docs/version-3.10.2/reference/functions/Get-HardwarePlatform.mdx) | Yes | Deprecated |
-| [Get-IniValue](/versioned_docs/version-3.10.2/reference/functions/Get-IniValue.mdx) | Yes | [Get-ADTIniValue](/versioned_docs/version-4.0.x/reference/functions/Get-ADTIniValue.mdx) |
-| [Get-InstalledApplication](/versioned_docs/version-3.10.2/reference/functions/Get-InstalledApplication.mdx) | Yes | [Get-ADTApplication](/versioned_docs/version-4.0.x/reference/functions/Get-ADTApplication.mdx) |
-| [Get-LoggedOnUser](/versioned_docs/version-3.10.2/reference/functions/Get-LoggedOnUser.mdx) | Yes | [Get-ADTLoggedOnUser](/versioned_docs/version-4.0.x/reference/functions/Get-ADTLoggedOnUser.mdx) |
-| [Get-MsiExitCodeMessage](/versioned_docs/version-3.10.2/reference/functions/Get-MsiExitCodeMessage.mdx) | Yes | [Get-ADTMsiExitCodeMessage](/versioned_docs/version-4.0.x/reference/functions/Get-ADTMsiExitCodeMessage.mdx) |
-| [Get-MsiTableProperty](/versioned_docs/version-3.10.2/reference/functions/Get-MsiTableProperty.mdx) | Yes | [Get-ADTMsiTableProperty](/versioned_docs/version-4.0.x/reference/functions/Get-ADTMsiTableProperty.mdx) |
-| [Get-ObjectProperty](/versioned_docs/version-3.10.2/reference/functions/Get-ObjectProperty.mdx) | Yes | [Get-ADTObjectProperty](/versioned_docs/version-4.0.x/reference/functions/Get-ADTObjectProperty.mdx) |
-| [Get-PEFileArchitecture](/versioned_docs/version-3.10.2/reference/functions/Get-PEFileArchitecture.mdx) | Yes | [Get-ADTPEFileArchitecture](/versioned_docs/version-4.0.x/reference/functions/Get-ADTPEFileArchitecture.mdx) |
-| [Get-PendingReboot](/versioned_docs/version-3.10.2/reference/functions/Get-PendingReboot.mdx) | Yes | [Get-ADTPendingReboot](/versioned_docs/version-4.0.x/reference/functions/Get-ADTPendingReboot.mdx) |
-| [Get-RegistryKey](/versioned_docs/version-3.10.2/reference/functions/Get-RegistryKey.mdx) | Yes | [Get-ADTRegistryKey](/versioned_docs/version-4.0.x/reference/functions/Get-ADTRegistryKey.mdx) |
-| [Get-RunningProcesses](/versioned_docs/version-3.10.2/reference/functions/Get-RunningProcesses.mdx) | **NO** | Get-ADTRunningProcesses |
-| [Get-SchedulerTask](/versioned_docs/version-3.10.2/reference/functions/Get-SchedulerTask.mdx) | Yes | [Get-ADTSchedulerTask](/versioned_docs/version-4.0.x/reference/functions/Get-ADTSchedulerTask.mdx) |
-| [Get-ServiceStartMode](/versioned_docs/version-3.10.2/reference/functions/Get-ServiceStartMode.mdx) | Yes | [Get-ADTServiceStartMode](/versioned_docs/version-4.0.x/reference/functions/Get-ADTServiceStartMode.mdx) |
-| [Get-Shortcut](/versioned_docs/version-3.10.2/reference/functions/Get-Shortcut.mdx) | Yes | [Get-ADTShortcut](/versioned_docs/version-4.0.x/reference/functions/Get-ADTShortcut.mdx) |
-| [Get-UniversalDate](/versioned_docs/version-3.10.2/reference/functions/Get-UniversalDate.mdx) | Yes | [Get-ADTUniversalDate](/versioned_docs/version-4.0.x/reference/functions/Get-ADTUniversalDate.mdx) |
-| [Get-UserProfiles](/versioned_docs/version-3.10.2/reference/functions/Get-UserProfiles.mdx) | Yes | [Get-ADTUserProfiles](/versioned_docs/version-4.0.x/reference/functions/Get-ADTUserProfiles.mdx) |
-| [Get-WindowTitle](/versioned_docs/version-3.10.2/reference/functions/Get-WindowTitle.mdx) | Yes | [Get-ADTWindowTitle](/versioned_docs/version-4.0.x/reference/functions/Get-ADTWindowTitle.mdx) |
-| [Install-MSUpdates](/versioned_docs/version-3.10.2/reference/functions/Install-MSUpdates.mdx) | Yes | [Install-ADTMSUpdates](/versioned_docs/version-4.0.x/reference/functions/Install-ADTMSUpdates.mdx) |
-| [Install-SCCMSoftwareUpdates](/versioned_docs/version-3.10.2/reference/functions/Install-SCCMSoftwareUpdates.mdx) | Yes | [Install-ADTSCCMSoftwareUpdates](/versioned_docs/version-4.0.x/reference/functions/Install-ADTSCCMSoftwareUpdates.mdx) |
-| [Invoke-HKCURegistrySettingsForAllUsers](/versioned_docs/version-3.10.2/reference/functions/Invoke-HKCURegistrySettingsForAllUsers.mdx) | Yes | [Invoke-ADTAllUsersRegistryAction](/versioned_docs/version-4.0.x/reference/functions/Invoke-ADTAllUsersRegistryAction.mdx) |
-| [Invoke-ObjectMethod](/versioned_docs/version-3.10.2/reference/functions/Invoke-ObjectMethod.mdx) | Yes | [Invoke-ADTObjectMethod](/versioned_docs/version-4.0.x/reference/functions/Invoke-ADTObjectMethod.mdx) |
-| [Invoke-RegisterOrUnregisterDLL](/versioned_docs/version-3.10.2/reference/functions/Invoke-RegisterOrUnregisterDLL.mdx) | Yes | [Invoke-ADTRegSvr32](/versioned_docs/version-4.0.x/reference/functions/Invoke-ADTRegSvr32.mdx) / [Register-ADTDll](/versioned_docs/version-4.0.x/reference/functions/Register-ADTDll.mdx) / [Unregister-ADTDll](/versioned_docs/version-4.0.x/reference/functions/Unregister-ADTDll.mdx) |
-| [Invoke-SCCMTask](/versioned_docs/version-3.10.2/reference/functions/Invoke-SCCMTask.mdx) | Yes | [Invoke-ADTSCCMTask](/versioned_docs/version-4.0.x/reference/functions/Invoke-ADTSCCMTask.mdx) |
-| [New-Folder](/versioned_docs/version-3.10.2/reference/functions/New-Folder.mdx) | Yes | [New-ADTFolder](/versioned_docs/version-4.0.x/reference/functions/New-ADTFolder.mdx) |
-| [New-MsiTransform](/versioned_docs/version-3.10.2/reference/functions/New-MsiTransform.mdx) | Yes | [New-ADTMsiTransform](/versioned_docs/version-4.0.x/reference/functions/New-ADTMsiTransform.mdx) |
-| [New-Shortcut](/versioned_docs/version-3.10.2/reference/functions/New-Shortcut.mdx) | Yes | [New-ADTShortcut](/versioned_docs/version-4.0.x/reference/functions/New-ADTShortcut.mdx) |
-| [New-ZipFile](/versioned_docs/version-3.10.2/reference/functions/New-ZipFile.mdx) | Yes | [New-ADTZipFile](/versioned_docs/version-4.0.x/reference/functions/New-ADTZipFile.mdx) |
-| [Remove-ContentFromCache](/versioned_docs/version-3.10.2/reference/functions/Remove-ContentFromCache.mdx) | Yes | [Remove-ADTContentFromCache](/versioned_docs/version-4.0.x/reference/functions/Remove-ADTContentFromCache.mdx) |
-| [Remove-File](/versioned_docs/version-3.10.2/reference/functions/Remove-File.mdx) | Yes | [Remove-ADTFile](/versioned_docs/version-4.0.x/reference/functions/Remove-ADTFile.mdx) |
-| [Remove-FileFromUserProfiles](/versioned_docs/version-3.10.2/reference/functions/Remove-FileFromUserProfiles.mdx) | Yes | [Remove-ADTFileFromUserProfiles](/versioned_docs/version-4.0.x/reference/functions/Remove-ADTFileFromUserProfiles.mdx) |
-| [Remove-Folder](/versioned_docs/version-3.10.2/reference/functions/Remove-Folder.mdx) | Yes | [Remove-ADTFolder](/versioned_docs/version-4.0.x/reference/functions/Remove-ADTFolder.mdx) |
-| [Remove-InvalidFileNameChars](/versioned_docs/version-3.10.2/reference/functions/Remove-InvalidFileNameChars.mdx) | Yes | [Remove-ADTInvalidFileNameChars](/versioned_docs/version-4.0.x/reference/functions/Remove-ADTInvalidFileNameChars.mdx) |
-| [Remove-MSIApplications](/versioned_docs/version-3.10.2/reference/functions/Remove-MSIApplications.mdx) | Yes | [Uninstall-ADTApplication](/versioned_docs/version-4.0.x/reference/functions/Uninstall-ADTApplication.mdx) |
-| [Remove-RegistryKey](/versioned_docs/version-3.10.2/reference/functions/Remove-RegistryKey.mdx) | Yes | [Remove-ADTRegistryKey](/versioned_docs/version-4.0.x/reference/functions/Remove-ADTRegistryKey.mdx) |
-| [Resolve-Error](/versioned_docs/version-3.10.2/reference/functions/Resolve-Error.mdx) | Yes | [Resolve-ADTErrorRecord](/versioned_docs/version-4.0.x/reference/functions/Resolve-ADTErrorRecord.mdx) |
-| [Resolve-Parameters](/versioned_docs/version-3.10.2/reference/functions/Resolve-Parameters.mdx) | **NO** | Resolve-ADTBoundParameters |
-| [Send-Keys](/versioned_docs/version-3.10.2/reference/functions/Send-Keys.mdx) | Yes | [Send-ADTKeys](/versioned_docs/version-4.0.x/reference/functions/Send-ADTKeys.mdx) |
-| [Set-ActiveSetup](/versioned_docs/version-3.10.2/reference/functions/Set-ActiveSetup.mdx) | Yes | [Set-ADTActiveSetup](/versioned_docs/version-4.0.x/reference/functions/Set-ADTActiveSetup.mdx) |
-| [Set-DeferHistory](/versioned_docs/version-3.10.2/reference/functions/Set-DeferHistory.mdx) | Yes | [Set-ADTDeferHistory](/versioned_docs/version-4.0.x/reference/functions/Set-ADTDeferHistory.mdx) |
-| [Set-IniValue](/versioned_docs/version-3.10.2/reference/functions/Set-IniValue.mdx) | Yes | [Set-ADTIniValue](/versioned_docs/version-4.0.x/reference/functions/Set-ADTIniValue.mdx) |
-| [Set-ItemPermission](/versioned_docs/version-3.10.2/reference/functions/Set-ItemPermission.mdx) | Yes | [Set-ADTItemPermission](/versioned_docs/version-4.0.x/reference/functions/Set-ADTItemPermission.mdx) |
-| [Set-MsiProperty](/versioned_docs/version-3.10.2/reference/functions/Set-MsiProperty.mdx) | Yes | [Set-ADTMsiProperty](/versioned_docs/version-4.0.x/reference/functions/Set-ADTMsiProperty.mdx) |
+| [Get-IniValue](/versioned_docs/version-3.10.2/reference/functions/Get-IniValue.mdx) | Yes | [Get-ADTIniValue](/reference/functions/Get-ADTIniValue.mdx) |
+| [Get-InstalledApplication](/versioned_docs/version-3.10.2/reference/functions/Get-InstalledApplication.mdx) | Yes | [Get-ADTApplication](/reference/functions/Get-ADTApplication.mdx) |
+| [Get-LoggedOnUser](/versioned_docs/version-3.10.2/reference/functions/Get-LoggedOnUser.mdx) | Yes | [Get-ADTLoggedOnUser](/reference/functions/Get-ADTLoggedOnUser.mdx) |
+| [Get-MsiExitCodeMessage](/versioned_docs/version-3.10.2/reference/functions/Get-MsiExitCodeMessage.mdx) | Yes | [Get-ADTMsiExitCodeMessage](/reference/functions/Get-ADTMsiExitCodeMessage.mdx) |
+| [Get-MsiTableProperty](/versioned_docs/version-3.10.2/reference/functions/Get-MsiTableProperty.mdx) | Yes | [Get-ADTMsiTableProperty](/reference/functions/Get-ADTMsiTableProperty.mdx) |
+| [Get-ObjectProperty](/versioned_docs/version-3.10.2/reference/functions/Get-ObjectProperty.mdx) | Yes | [Get-ADTObjectProperty](/reference/functions/Get-ADTObjectProperty.mdx) |
+| [Get-PEFileArchitecture](/versioned_docs/version-3.10.2/reference/functions/Get-PEFileArchitecture.mdx) | Yes | [Get-ADTPEFileArchitecture](/reference/functions/Get-ADTPEFileArchitecture.mdx) |
+| [Get-PendingReboot](/versioned_docs/version-3.10.2/reference/functions/Get-PendingReboot.mdx) | Yes | [Get-ADTPendingReboot](/reference/functions/Get-ADTPendingReboot.mdx) |
+| [Get-RegistryKey](/versioned_docs/version-3.10.2/reference/functions/Get-RegistryKey.mdx) | Yes | [Get-ADTRegistryKey](/reference/functions/Get-ADTRegistryKey.mdx) |
+| [Get-RunningProcesses](/versioned_docs/version-3.10.2/reference/functions/Get-RunningProcesses.mdx) | No | [Get-ADTRunningProcesses](/reference/functions/Get-ADTRunningProcesses.mdx) |
+| [Get-SchedulerTask](/versioned_docs/version-3.10.2/reference/functions/Get-SchedulerTask.mdx) | Yes | [Get-ADTSchedulerTask](/reference/functions/Get-ADTSchedulerTask.mdx) |
+| [Get-ServiceStartMode](/versioned_docs/version-3.10.2/reference/functions/Get-ServiceStartMode.mdx) | Yes | [Get-ADTServiceStartMode](/reference/functions/Get-ADTServiceStartMode.mdx) |
+| [Get-Shortcut](/versioned_docs/version-3.10.2/reference/functions/Get-Shortcut.mdx) | Yes | [Get-ADTShortcut](/reference/functions/Get-ADTShortcut.mdx) |
+| [Get-UniversalDate](/versioned_docs/version-3.10.2/reference/functions/Get-UniversalDate.mdx) | Yes | [Get-ADTUniversalDate](/reference/functions/Get-ADTUniversalDate.mdx) |
+| [Get-UserProfiles](/versioned_docs/version-3.10.2/reference/functions/Get-UserProfiles.mdx) | Yes | [Get-ADTUserProfiles](/reference/functions/Get-ADTUserProfiles.mdx) |
+| [Get-WindowTitle](/versioned_docs/version-3.10.2/reference/functions/Get-WindowTitle.mdx) | Yes | [Get-ADTWindowTitle](/reference/functions/Get-ADTWindowTitle.mdx) |
+| [Install-MSUpdates](/versioned_docs/version-3.10.2/reference/functions/Install-MSUpdates.mdx) | Yes | [Install-ADTMSUpdates](/reference/functions/Install-ADTMSUpdates.mdx) |
+| [Install-SCCMSoftwareUpdates](/versioned_docs/version-3.10.2/reference/functions/Install-SCCMSoftwareUpdates.mdx) | Yes | [Install-ADTSCCMSoftwareUpdates](/reference/functions/Install-ADTSCCMSoftwareUpdates.mdx) |
+| [Invoke-HKCURegistrySettingsForAllUsers](/versioned_docs/version-3.10.2/reference/functions/Invoke-HKCURegistrySettingsForAllUsers.mdx) | Yes | [Invoke-ADTAllUsersRegistryAction](/reference/functions/Invoke-ADTAllUsersRegistryAction.mdx) |
+| [Invoke-ObjectMethod](/versioned_docs/version-3.10.2/reference/functions/Invoke-ObjectMethod.mdx) | Yes | [Invoke-ADTObjectMethod](/reference/functions/Invoke-ADTObjectMethod.mdx) |
+| [Invoke-RegisterOrUnregisterDLL](/versioned_docs/version-3.10.2/reference/functions/Invoke-RegisterOrUnregisterDLL.mdx) | Yes | [Invoke-ADTRegSvr32](/reference/functions/Invoke-ADTRegSvr32.mdx) / [Register-ADTDll](/reference/functions/Register-ADTDll.mdx) / [Unregister-ADTDll](/reference/functions/Unregister-ADTDll.mdx) |
+| [Invoke-SCCMTask](/versioned_docs/version-3.10.2/reference/functions/Invoke-SCCMTask.mdx) | Yes | [Invoke-ADTSCCMTask](/reference/functions/Invoke-ADTSCCMTask.mdx) |
+| [New-Folder](/versioned_docs/version-3.10.2/reference/functions/New-Folder.mdx) | Yes | [New-ADTFolder](/reference/functions/New-ADTFolder.mdx) |
+| [New-MsiTransform](/versioned_docs/version-3.10.2/reference/functions/New-MsiTransform.mdx) | Yes | [New-ADTMsiTransform](/reference/functions/New-ADTMsiTransform.mdx) |
+| [New-Shortcut](/versioned_docs/version-3.10.2/reference/functions/New-Shortcut.mdx) | Yes | [New-ADTShortcut](/reference/functions/New-ADTShortcut.mdx) |
+| [New-ZipFile](/versioned_docs/version-3.10.2/reference/functions/New-ZipFile.mdx) | Yes | [New-ADTZipFile](/reference/functions/New-ADTZipFile.mdx) |
+| [Remove-ContentFromCache](/versioned_docs/version-3.10.2/reference/functions/Remove-ContentFromCache.mdx) | Yes | [Remove-ADTContentFromCache](/reference/functions/Remove-ADTContentFromCache.mdx) |
+| [Remove-File](/versioned_docs/version-3.10.2/reference/functions/Remove-File.mdx) | Yes | [Remove-ADTFile](/reference/functions/Remove-ADTFile.mdx) |
+| [Remove-FileFromUserProfiles](/versioned_docs/version-3.10.2/reference/functions/Remove-FileFromUserProfiles.mdx) | Yes | [Remove-ADTFileFromUserProfiles](/reference/functions/Remove-ADTFileFromUserProfiles.mdx) |
+| [Remove-Folder](/versioned_docs/version-3.10.2/reference/functions/Remove-Folder.mdx) | Yes | [Remove-ADTFolder](/reference/functions/Remove-ADTFolder.mdx) |
+| [Remove-InvalidFileNameChars](/versioned_docs/version-3.10.2/reference/functions/Remove-InvalidFileNameChars.mdx) | Yes | [Remove-ADTInvalidFileNameChars](/reference/functions/Remove-ADTInvalidFileNameChars.mdx) |
+| [Remove-MSIApplications](/versioned_docs/version-3.10.2/reference/functions/Remove-MSIApplications.mdx) | Yes | [Uninstall-ADTApplication](/reference/functions/Uninstall-ADTApplication.mdx) |
+| [Remove-RegistryKey](/versioned_docs/version-3.10.2/reference/functions/Remove-RegistryKey.mdx) | Yes | [Remove-ADTRegistryKey](/reference/functions/Remove-ADTRegistryKey.mdx) |
+| [Resolve-Error](/versioned_docs/version-3.10.2/reference/functions/Resolve-Error.mdx) | Yes | [Resolve-ADTErrorRecord](/reference/functions/Resolve-ADTErrorRecord.mdx) |
+| [Resolve-Parameters](/versioned_docs/version-3.10.2/reference/functions/Resolve-Parameters.mdx) | No | Resolve-ADTBoundParameters |
+| [Send-Keys](/versioned_docs/version-3.10.2/reference/functions/Send-Keys.mdx) | Yes | [Send-ADTKeys](/reference/functions/Send-ADTKeys.mdx) |
+| [Set-ActiveSetup](/versioned_docs/version-3.10.2/reference/functions/Set-ActiveSetup.mdx) | Yes | [Set-ADTActiveSetup](/reference/functions/Set-ADTActiveSetup.mdx) |
+| [Set-DeferHistory](/versioned_docs/version-3.10.2/reference/functions/Set-DeferHistory.mdx) | Yes | [Set-ADTDeferHistory](/reference/functions/Set-ADTDeferHistory.mdx) |
+| [Set-IniValue](/versioned_docs/version-3.10.2/reference/functions/Set-IniValue.mdx) | Yes | [Set-ADTIniValue](/reference/functions/Set-ADTIniValue.mdx) |
+| [Set-ItemPermission](/versioned_docs/version-3.10.2/reference/functions/Set-ItemPermission.mdx) | Yes | [Set-ADTItemPermission](/reference/functions/Set-ADTItemPermission.mdx) |
+| [Set-MsiProperty](/versioned_docs/version-3.10.2/reference/functions/Set-MsiProperty.mdx) | Yes | [Set-ADTMsiProperty](/reference/functions/Set-ADTMsiProperty.mdx) |
| [Set-PinnedApplication](/versioned_docs/version-3.10.2/reference/functions/Set-PinnedApplication.mdx) | Yes | Deprecated |
-| [Set-RegistryKey](/versioned_docs/version-3.10.2/reference/functions/Set-RegistryKey.mdx) | Yes | [Set-ADTRegistryKey](/versioned_docs/version-4.0.x/reference/functions/Set-ADTRegistryKey.mdx) |
-| [Set-ServiceStartMode](/versioned_docs/version-3.10.2/reference/functions/Set-ServiceStartMode.mdx) | Yes | [Set-ADTServiceStartMode](/versioned_docs/version-4.0.x/reference/functions/Set-ADTServiceStartMode.mdx) |
-| [Set-Shortcut](/versioned_docs/version-3.10.2/reference/functions/Set-Shortcut.mdx) | Yes | [Set-ADTShortcut](/versioned_docs/version-4.0.x/reference/functions/Set-ADTShortcut.mdx) |
-| [Show-BalloonTip](/versioned_docs/version-3.10.2/reference/functions/Show-BalloonTip.mdx) | Yes | [Show-ADTBalloonTip](/versioned_docs/version-4.0.x/reference/functions/Show-ADTBalloonTip.mdx) |
-| [Show-DialogBox](/versioned_docs/version-3.10.2/reference/functions/Show-DialogBox.mdx) | Yes | [Show-ADTDialogBox](/versioned_docs/version-4.0.x/reference/functions/Show-ADTDialogBox.mdx) |
-| [Show-InstallationProgress](/versioned_docs/version-3.10.2/reference/functions/Show-InstallationProgress.mdx) | Yes | [Show-ADTInstallationProgress](/versioned_docs/version-4.0.x/reference/functions/Show-ADTInstallationProgress.mdx) |
-| [Show-InstallationPrompt](/versioned_docs/version-3.10.2/reference/functions/Show-InstallationPrompt.mdx) | Yes | [Show-ADTInstallationPrompt](/versioned_docs/version-4.0.x/reference/functions/Show-ADTInstallationPrompt.mdx) |
-| [Show-InstallationRestartPrompt](/versioned_docs/version-3.10.2/reference/functions/Show-InstallationRestartPrompt.mdx) | Yes | [Show-ADTInstallationRestartPrompt](/versioned_docs/version-4.0.x/reference/functions/Show-ADTInstallationRestartPrompt.mdx) |
-| [Show-InstallationWelcome](/versioned_docs/version-3.10.2/reference/functions/Show-InstallationWelcome.mdx) | Yes | [Show-ADTInstallationWelcome](/versioned_docs/version-4.0.x/reference/functions/Show-ADTInstallationWelcome.mdx) |
-| [Show-WelcomePrompt](/versioned_docs/version-3.10.2/reference/functions/Show-WelcomePrompt.mdx) | **NO** | [Show-ADTInstallationWelcome](/versioned_docs/version-4.0.x/reference/functions/Show-ADTInstallationWelcome.mdx) |
-| [Start-ServiceAndDependencies](/versioned_docs/version-3.10.2/reference/functions/Start-ServiceAndDependencies.mdx) | Yes | [Start-ADTServiceAndDependencies](/versioned_docs/version-4.0.x/reference/functions/Start-ADTServiceAndDependencies.mdx) |
-| [Stop-ServiceAndDependencies](/versioned_docs/version-3.10.2/reference/functions/Stop-ServiceAndDependencies.mdx) | Yes | [Stop-ADTServiceAndDependencies](/versioned_docs/version-4.0.x/reference/functions/Stop-ADTServiceAndDependencies.mdx) |
-| [Test-Battery](/versioned_docs/version-3.10.2/reference/functions/Test-Battery.mdx) | Yes | [Test-ADTBattery](/versioned_docs/version-4.0.x/reference/functions/Test-ADTBattery.mdx) |
-| [Test-IsMutexAvailable](/versioned_docs/version-3.10.2/reference/functions/Test-IsMutexAvailable.mdx) | Yes | [Test-ADTMutexAvailability](/versioned_docs/version-4.0.x/reference/functions/Test-ADTMutexAvailability.mdx) |
-| [Test-MSUpdates](/versioned_docs/version-3.10.2/reference/functions/Test-MSUpdates.mdx) | Yes | [Test-ADTMSUpdates](/versioned_docs/version-4.0.x/reference/functions/Test-ADTMSUpdates.mdx) |
-| [Test-NetworkConnection](/versioned_docs/version-3.10.2/reference/functions/Test-NetworkConnection.mdx) | Yes | [Test-ADTNetworkConnection](/versioned_docs/version-4.0.x/reference/functions/Test-ADTNetworkConnection.mdx) |
-| [Test-PowerPoint](/versioned_docs/version-3.10.2/reference/functions/Test-PowerPoint.mdx) | Yes | [Test-ADTPowerPoint](/versioned_docs/version-4.0.x/reference/functions/Test-ADTPowerPoint.mdx) |
-| [Test-RegistryValue](/versioned_docs/version-3.10.2/reference/functions/Test-RegistryValue.mdx) | Yes | [Test-ADTRegistryValue](/versioned_docs/version-4.0.x/reference/functions/Test-ADTRegistryValue.mdx) |
-| [Test-ServiceExists](/versioned_docs/version-3.10.2/reference/functions/Test-ServiceExists.mdx) | Yes | [Test-ADTServiceExists](/versioned_docs/version-4.0.x/reference/functions/Test-ADTServiceExists.mdx) |
-| [Unblock-AppExecution](/versioned_docs/version-3.10.2/reference/functions/Unblock-AppExecution.mdx) | Yes | [Unblock-ADTAppExecution](/versioned_docs/version-4.0.x/reference/functions/Unblock-ADTAppExecution.mdx) |
-| [Update-Desktop](/versioned_docs/version-3.10.2/reference/functions/Update-Desktop.mdx) | Yes | [Update-ADTDesktop](/versioned_docs/version-4.0.x/reference/functions/Update-ADTDesktop.mdx) |
-| [Update-GroupPolicy](/versioned_docs/version-3.10.2/reference/functions/Update-GroupPolicy.mdx) | Yes | [Update-ADTGroupPolicy](/versioned_docs/version-4.0.x/reference/functions/Update-ADTGroupPolicy.mdx) |
-| [Update-SessionEnvironmentVariables](/versioned_docs/version-3.10.2/reference/functions/Update-SessionEnvironmentVariables.mdx) | Yes | [Update-ADTEnvironmentPsProvider](/versioned_docs/version-4.0.x/reference/functions/Update-ADTEnvironmentPsProvider.mdx) |
-| [Write-FunctionHeaderOrFooter](/versioned_docs/version-3.10.2/reference/functions/Write-FunctionHeaderOrFooter.mdx) | **NO** | [Initialize-ADTFunction](/versioned_docs/version-4.0.x/reference/functions/Initialize-ADTFunction.mdx) / [Complete-ADTFunction](/versioned_docs/version-4.0.x/reference/functions/Complete-ADTFunction.mdx) |
-| [Write-Log](/versioned_docs/version-3.10.2/reference/functions/Write-Log.mdx) | Yes | [Write-ADTLogEntry](/versioned_docs/version-4.0.x/reference/functions/Write-ADTLogEntry.mdx) |
+| [Set-RegistryKey](/versioned_docs/version-3.10.2/reference/functions/Set-RegistryKey.mdx) | Yes | [Set-ADTRegistryKey](/reference/functions/Set-ADTRegistryKey.mdx) |
+| [Set-ServiceStartMode](/versioned_docs/version-3.10.2/reference/functions/Set-ServiceStartMode.mdx) | Yes | [Set-ADTServiceStartMode](/reference/functions/Set-ADTServiceStartMode.mdx) |
+| [Set-Shortcut](/versioned_docs/version-3.10.2/reference/functions/Set-Shortcut.mdx) | Yes | [Set-ADTShortcut](/reference/functions/Set-ADTShortcut.mdx) |
+| [Show-BalloonTip](/versioned_docs/version-3.10.2/reference/functions/Show-BalloonTip.mdx) | Yes | [Show-ADTBalloonTip](/reference/functions/Show-ADTBalloonTip.mdx) |
+| [Show-DialogBox](/versioned_docs/version-3.10.2/reference/functions/Show-DialogBox.mdx) | Yes | [Show-ADTDialogBox](/reference/functions/Show-ADTDialogBox.mdx) |
+| [Show-InstallationProgress](/versioned_docs/version-3.10.2/reference/functions/Show-InstallationProgress.mdx) | Yes | [Show-ADTInstallationProgress](/reference/functions/Show-ADTInstallationProgress.mdx) |
+| [Show-InstallationPrompt](/versioned_docs/version-3.10.2/reference/functions/Show-InstallationPrompt.mdx) | Yes | [Show-ADTInstallationPrompt](/reference/functions/Show-ADTInstallationPrompt.mdx) |
+| [Show-InstallationRestartPrompt](/versioned_docs/version-3.10.2/reference/functions/Show-InstallationRestartPrompt.mdx) | Yes | [Show-ADTInstallationRestartPrompt](/reference/functions/Show-ADTInstallationRestartPrompt.mdx) |
+| [Show-InstallationWelcome](/versioned_docs/version-3.10.2/reference/functions/Show-InstallationWelcome.mdx) | Yes | [Show-ADTInstallationWelcome](/reference/functions/Show-ADTInstallationWelcome.mdx) |
+| [Show-WelcomePrompt](/versioned_docs/version-3.10.2/reference/functions/Show-WelcomePrompt.mdx) | No | [Show-ADTInstallationWelcome](/reference/functions/Show-ADTInstallationWelcome.mdx) |
+| [Start-ServiceAndDependencies](/versioned_docs/version-3.10.2/reference/functions/Start-ServiceAndDependencies.mdx) | Yes | [Start-ADTServiceAndDependencies](/reference/functions/Start-ADTServiceAndDependencies.mdx) |
+| [Stop-ServiceAndDependencies](/versioned_docs/version-3.10.2/reference/functions/Stop-ServiceAndDependencies.mdx) | Yes | [Stop-ADTServiceAndDependencies](/reference/functions/Stop-ADTServiceAndDependencies.mdx) |
+| [Test-Battery](/versioned_docs/version-3.10.2/reference/functions/Test-Battery.mdx) | Yes | [Test-ADTBattery](/reference/functions/Test-ADTBattery.mdx) |
+| [Test-IsMutexAvailable](/versioned_docs/version-3.10.2/reference/functions/Test-IsMutexAvailable.mdx) | Yes | [Test-ADTMutexAvailability](/reference/functions/Test-ADTMutexAvailability.mdx) |
+| [Test-MSUpdates](/versioned_docs/version-3.10.2/reference/functions/Test-MSUpdates.mdx) | Yes | [Test-ADTMSUpdates](/reference/functions/Test-ADTMSUpdates.mdx) |
+| [Test-NetworkConnection](/versioned_docs/version-3.10.2/reference/functions/Test-NetworkConnection.mdx) | Yes | [Test-ADTNetworkConnection](/reference/functions/Test-ADTNetworkConnection.mdx) |
+| [Test-PowerPoint](/versioned_docs/version-3.10.2/reference/functions/Test-PowerPoint.mdx) | Yes | [Test-ADTPowerPoint](/reference/functions/Test-ADTPowerPoint.mdx) |
+| [Test-RegistryValue](/versioned_docs/version-3.10.2/reference/functions/Test-RegistryValue.mdx) | Yes | [Test-ADTRegistryValue](/reference/functions/Test-ADTRegistryValue.mdx) |
+| [Test-ServiceExists](/versioned_docs/version-3.10.2/reference/functions/Test-ServiceExists.mdx) | Yes | [Test-ADTServiceExists](/reference/functions/Test-ADTServiceExists.mdx) |
+| [Unblock-AppExecution](/versioned_docs/version-3.10.2/reference/functions/Unblock-AppExecution.mdx) | Yes | [Unblock-ADTAppExecution](/reference/functions/Unblock-ADTAppExecution.mdx) |
+| [Update-Desktop](/versioned_docs/version-3.10.2/reference/functions/Update-Desktop.mdx) | Yes | [Update-ADTDesktop](/reference/functions/Update-ADTDesktop.mdx) |
+| [Update-GroupPolicy](/versioned_docs/version-3.10.2/reference/functions/Update-GroupPolicy.mdx) | Yes | [Update-ADTGroupPolicy](/reference/functions/Update-ADTGroupPolicy.mdx) |
+| [Update-SessionEnvironmentVariables](/versioned_docs/version-3.10.2/reference/functions/Update-SessionEnvironmentVariables.mdx) | Yes | [Update-ADTEnvironmentPsProvider](/reference/functions/Update-ADTEnvironmentPsProvider.mdx) |
+| [Write-FunctionHeaderOrFooter](/versioned_docs/version-3.10.2/reference/functions/Write-FunctionHeaderOrFooter.mdx) | No | [Initialize-ADTFunction](/reference/functions/Initialize-ADTFunction.mdx) / [Complete-ADTFunction](/reference/functions/Complete-ADTFunction.mdx) |
+| [Write-Log](/versioned_docs/version-3.10.2/reference/functions/Write-Log.mdx) | Yes | [Write-ADTLogEntry](/reference/functions/Write-ADTLogEntry.mdx) |
diff --git a/docs/reference/variables.mdx b/docs/reference/variables.mdx
index 351961e..f65f51a 100644
--- a/docs/reference/variables.mdx
+++ b/docs/reference/variables.mdx
@@ -16,185 +16,133 @@ When you open an ADTSession (automatically handled in `Invoke-AppDeployToolkit.p
These variables can also be instantiated without opening a session by calling the [Export-ADTEnvironmentTableToSessionState](../reference/functions/Export-ADTEnvironmentTableToSessionState.mdx) command.
-Variables specific to a particular deployment, such as `$appName` and `$appVersion`, have been moved inside the **ADTSession** object. For more information, see the [ADTSession Object](./adtsession-object.mdx) page.
-
-### Toolkit Name
-
-| Variable | Description |
-| :--------------------------------- | :------------------------------------ |
-| `$appDeployMainScriptFriendlyName` | Full name of toolkit including spaces |
-| `$appDeployToolkitName` | Short-name of toolkit without spaces |
-
-### Script Info
-
-| Variable | Description |
-| :---------------------------- | :--------------------------------------- |
-| `$appDeployMainScriptVersion` | Version number of the PSAppDeployToolkit |
-
-### Culture
+Variables specific to a particular deployment, such as `$AppName` and `$AppVersion`, can be found within the **ADTSession** object. For more information, see the [ADTSession Object](./adtsession-object.mdx) page.
| Variable | Description |
| :------------------- | :------------------------------------------------------------------------ |
-| `$culture` | Object which contains all of the current Windows culture settings |
-| `$currentLanguage` | Current Windows two letter ISO language name (e.g. EN, FR, DE, JA etc) |
-| `$currentUILanguage` | Current Windows two letter UI ISO language name (e.g. EN, FR, DE, JA etc) |
-
-### Environment Variables
-
-| Variable | Description |
-| :---------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| `$envAllUsersProfile` | %ALLUSERSPROFILE%, e.g. `C:\ProgramData` |
-| `$envAppData` | %APPDATA%, e.g. `C:\Users\%USERNAME%\AppData\Roaming` |
-| `$envArchitecture` | %PROCESSOR_ARCHITECTURE%, e.g. AMD64/IA64/x86.
Note - This doesn't tell you the architecture of the processor but only of the current process, so it returns "x86" for a 32-bit WOW process running on 64-bit Windows. |
-| `$envCommonDesktop` | e.g. `C:\Users\Public\Desktop` |
-| `$envCommonDocuments` | e.g. `C:\Users\Public\Documents` |
-| `$envCommonProgramFiles` | %COMMONPROGRAMFILES%, e.g. `C:\Program Files\Common Files`) |
-| `$envCommonProgramFilesX86` | %COMMONPROGRAMFILES(x86)%, e.g. `C:\Program Files (x86)\Common Files` |
-| `$envCommonStartMenu` | e.g. `C:\ProgramData\Microsoft\Windows\Start Menu` |
-| `$envCommonStartMenuPrograms` | e.g. `C:\ProgramData\Microsoft\Windows\Start Menu\Programs` |
-| `$envCommonStartUp` | e.g. `C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup` |
-| `$envCommonTemplates` | e.g. `C:\ProgramData\Microsoft\Windows\Templates` |
-| `$envComputerName` | $COMPUTERNAME%, e.g. Computer1 |
-| `$envComputerNameFQDN` | Fully qualified computer name, e.g. computer1.contoso.com |
-| `$envHomeDrive` | %HOMEDRIVE%, e.g. `C:` |
-| `$envHomePath` | %HOMEPATH%, e.g. `C:\Users\%USERNAME%` |
-| `$envHomeShare` | %HOMESHARE% (Used instead of HOMEDRIVE if the home folder uses UNC paths.) |
-| `$envLocalAppData` | %LOCALAPPDATA%, e.g. `C:\Users\%USERNAME%\AppData\Local` |
-| `$envLogicalDrives` | An array containing all of the logical drives on the system. |
-| `$envProgramData` | %PROGRAMDATA%, e.g. `C:\ProgramData` |
-| `$envProgramFiles` | %PROGRAMFILES%, e.g. `C:\Program Files` |
-| `$envProgramFilesX86` | %ProgramFiles(x86)%, e.g. `C:\Program Files (x86)` (Only on 64 bit. Used to store 32 bit apps.) |
-| `$envPublic` | %PUBLIC%, e.g. `C:\Users\Public` |
-| `$envSystem32Directory` | `C:\WINDOWS\system32` |
-| `$envSystemDrive` | %SYSTEMDRIVE%, e.g. `C:` |
-| `$envSystemRAM` | System RAM as an integer |
-| `$envSystemRoot` | %SYSTEMROOT%, e.g. `C:\Windows` |
-| `$envTemp` | Checks for the existence of environment variables in the following order and uses the first path found:
- The path specified by TEMP environment variable, (e.g. `C:\Users\%USERNAME%\AppData\Local\Temp`).
- The path specified by the USERPROFILE environment variable.
- The Windows root (`C:\Windows`) folder. |
-| `$envUserCookies` | `C:\Users\%USERNAME%\AppData\Local\Microsoft\Windows\INetCookies` |
-| `$envUserDesktop` | `C:\Users\%USERNAME%\Desktop` |
-| `$envUserFavorites` | `C:\Users\%USERNAME%\Favorites` |
-| `$envUserInternetCache` | `C:\Users\%USERNAME%\AppData\Local\Microsoft\Windows\INetCache` |
-| `$envUserInternetHistory` | `C:\Users\%USERNAME%\AppData\Local\Microsoft\Windows\History` |
-| `$envUserMyDocuments` | `C:\Users\%USERNAME%\Documents` |
-| `$envUserName` | %USERNAME% |
-| `$envUserProfile` | %USERPROFILE%, e.g. `%SystemDrive%\Users\%USERNAME%` |
-| `$envUserSendTo` | `C:\Users\%USERNAME%\AppData\Roaming\Microsoft\Windows\SendTo` |
-| `$envUserStartMenu` | `C:\Users\%USERNAME%\AppData\Roaming\Microsoft\Windows\Start Menu` |
-| `$envUserStartMenuPrograms` | `C:\Users\%USERNAME%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs` |
-| `$envUserStartUp` | `C:\Users\%USERNAME%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup` |
-| `$envWinDir` | %WINDIR%, e.g. `C:\Windows` |
-
-### Domain Membership
-
-| Variable | Description |
-| :------------------------- | :--------------------------------------------------------------------- |
-| `$envLogonServer` | FQDN of %LOGONSERVER% used for authenticating logged in user |
-| `$envMachineADDomain` | Root AD domain name for machine, e.g. domain.contoso.com |
-| `$envMachineDNSDomain` | Full Domain name for machine, e.g. <name>.contoso.com |
-| `$envMachineWorkgroup` | If machine not joined to domain, what is the WORKGROUP it belongs to? |
-| `$envUserDNSDomain` | %USERDNSDOMAIN%. Root AD domain name for user, e.g. domain.contoso.com |
-| `$envUserDomain` | %USERDOMAIN%, e.g. domain.contoso.com |
-| `$IsMachinePartOfDomain` | Is machine joined to a domain, e.g. $true/$false |
-| `$MachineDomainController` | FQDN of an AD domain controller used for authentication |
-
-### Operating System
-
-| Variable | Description |
-| :---------------------- | :---------------------------------------------------------------------------------------------------------- |
-| `$envOS` | Object that contains details about the operating system |
-| `$envOSArchitecture` | Represents the OS architecture (e.g. X86/X64/Arm64) |
-| `$envOSName` | Name of the operating system (e.g. Microsoft Windows 8.1 Pro) |
-| `$envOSProductType` | OS product type represented as an integer (e.g. 1/2/3) |
-| `$envOSProductTypeName` | OS product type name (e.g. Server/Domain Controller/Workstation/Unknown) |
-| `$envOSServicePack` | Latest service pack installed on the system (e.g. Service Pack 3) |
-| `$envOSVersion` | Full version number of the OS (e.g. <major>.<minor>.<build>.<revision>) |
-| `$envOSVersionBuild` | Build portion of the OS version number (e.g. <major>.<minor>.<build>.<revision>) |
-| `$envOSVersionMajor` | Major portion of the OS version number (e.g. <major>.<minor>.<build>.<revision>) |
-| `$envOSVersionMinor` | Minor portion of the OS version number (e.g. <major>.<minor>.<build>.<revision>) |
-| `$envOSVersionRevision` | Revision portion of the OS version number (e.g. <major>.<minor>.<build>.<revision>) |
-| `$Is64Bit` | Is this a 64-bit OS? (e.g. $true/$false) |
-| `$IsDomainControllerOS` | Is domain controller OS? (e.g. $true/$false) |
-| `$IsServerOS` | Is server OS? (e.g. $true/$false) |
-| `$IsWorkStationOS` | Is workstation OS? (e.g. $true/$false) |
-
-### Current Process Architecture
-
-| Variable | Description |
-| :---------------- | :--------------------------------------------------------- |
-| `$Is64BitProcess` | Is the current process 64-bits? (e.g. $true/$false) |
-| `$psArchitecture` | Represents the current process architecture (e.g. x86/x64) |
-
-### PowerShell And CLR (.NET) Versions
-
-| Variable | Description |
-| :----------------------- | :----------------------------------------------------------------------------------------------------------- |
-| `$envCLRVersion` | Full version number of .NET used by PS (e.g. <major>.<minor>.<build>.<revision>) |
-| `$envCLRVersionBuild` | Build portion of PS .NET version number (e.g. <major>.<minor>.<build>.<revision>) |
-| `$envCLRVersionMajor` | Major portion of PS .NET version number (e.g. <major>.<minor>.<build>.<revision>) |
-| `$envCLRVersionMinor` | Minor portion of PS .NET version number (e.g. <major>.<minor>.<build>.<revision>) |
-| `$envCLRVersionRevision` | Revision portion of PS .NET version number (e.g. <major>.<minor>.<build>.<revision>) |
-| `$envHost` | Object that contains details about the current PowerShell console |
-| `$envPSVersion` | Full version number of PS (e.g. <major>.<minor>.<build>.<revision>) |
-| `$envPSVersionBuild` | Build portion of PS version number (e.g. <major>.<minor>.<build>.<revision>) |
-| `$envPSVersionMajor` | Major portion of PS version number (e.g. <major>.<minor>.<build>.<revision>) |
-| `$envPSVersionMinor` | Minor portion of PS version number (e.g. <major>.<minor>.<build>.<revision>) |
-| `$envPSVersionRevision` | Revision portion of PS version number (e.g. <major>.<minor>.<build>.<revision>) |
-| `$envPSVersionTable` | Object containing PowerShell version details from PS variable `$PSVersionTable` |
-
-### Permissions / Accounts
-
-| Variable | Description |
-| :-------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------ |
-| `$CurrentProcessSID` | Object that represents the current process account SID (e.g. S-1-5-32-544) |
-| `$CurrentProcessToken` | Object that represents the current processes Windows Identity user token. Contains all details regarding user permissions. |
-| `$IsAdmin` | Is the current process running with elevated admin privileges? (e.g. $true/$false) |
-| `$IsLocalServiceAccount` | Is the current process running under LOCAL SERVICE account? (e.g. $true/$false) |
-| `$IsLocalSystemAccount` | Is the current process running under the SYSTEM account? (e.g. $true/$false) |
-| `$IsNetworkServiceAccount` | Is the current process running under the NETWORK SERVICE account? (e.g. $true/$false) |
-| `$IsProcessUserInteractive` | Is the current process able to display a user interface? |
-| `$IsServiceAccount` | Is the current process running as a service? (e.g. $true/$false) |
-| `$LocalSystemNTAccount` | Localized NT account name of the SYSTEM account (e.g. NT AUTHORITY\SYSTEM) |
-| `$ProcessNTAccount` | Current process NT Account (e.g. NT AUTHORITY\SYSTEM) |
-| `$ProcessNTAccountSID` | Current process account SID (e.g. S-1-5-32-544) |
-| `$SessionZero` | Is the current process currently in session zero? In session zero isolation, process is not able to display a user interface. (e.g. $true/$false) |
-
-### RegEx Patterns
-
-| Variable | Description |
-| :---------------------------- | :----------------------------------------------------------- |
-| `$MSIProductCodeRegExPattern` | Contains the regex pattern used to detect a MSI product code |
-
-### COM Objects
-
-| Variable | Description |
-| :---------- | :------------------------------------------------------------ |
-| `$Shell` | Represents and allows use of the WScript.Shell COM object |
-| `$ShellApp` | Represents and allows use of the Shell.Application COM object |
-
-### Logged On Users
-
-| Variable | Description |
-| :---------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
-| `$CurrentConsoleUserSession` | Objects that contains the account and session details of the console user (user with control of the physical monitor, keyboard, and mouse). This is the object from `$LoggedOnUserSessions` where the `IsConsoleSession` property is $true. |
-| `$CurrentLoggedOnUserSession` | Object that contains account and session details for the current process if it is running as a logged in user. This is the object from `$LoggedOnUserSessions` where the `IsCurrentSession` property is $true. |
-| `$LoggedOnUserSessions` | Object that contains account and session details for all users |
-| `$RunAsActiveUser` | The active console user. If no console user exists but users are logged in, such as on terminal servers, then the first logged-in non-console user. |
-| `$UsersLoggedOn` | Array that contains all of the NTAccount names of logged in users |
-
-### Microsoft Office
-
-| Variable | Description |
-| :----------------- | :-------------------------------------------------------------------- |
-| `envOfficeBitness` | Architecture of current Office installation, e.g. x86 or x64 |
-| `envOfficeChannel` | Current Office Channel, e.g. 'Monthly Enterprise' |
-| `envOfficeVars` | Properties of HKLM\SOFTWARE\Microsoft\Office\ClickToRun\Configuration |
-| `envOfficeVersion` | Microsoft Office version, e.g. 16.0.x.x |
-
-### Miscellaneous
-
-| Variable | Description |
-| :-------------------------- | :----------------------------------------------------------------------------------------------------------- |
-| `$invalidFileNameChars` | Array of all invalid file name characters used to sanitize variables which may be used to create file names. |
-| `$LocalAdministratorsGroup` | Returns the name of the local Administrators group, typically `BUILTIN\Administrators` |
-| `$LocalUsersGroup` | Returns the name of the local Users group, typically `BUILTIN\Users` |
-| `$RunningTaskSequence` | Is the current process running in a SCCM task sequence? (e.g. `$true` / `$false`) |
+| `$AppDeployMainScriptVersion` | Version number of the PSAppDeployToolkit |
+| `$AppDeployToolkitName` | Short-name of toolkit without spaces |
+| `$AppDeployToolkitPath` | Path to the toolkit module folder |
+| `$Culture` | Object which contains all of the current Windows culture settings |
+| `$CurrentConsoleUserSession` | Objects that contains the account and session details of the console user (user with control of the physical monitor, keyboard, and mouse). This is the object from `$LoggedOnUserSessions` where the `IsConsoleSession` property is $true. |
+| `$CurrentLanguage` | Current Windows two letter ISO language name (e.g. EN, FR, DE, JA etc) |
+| `$CurrentLoggedOnUserSession` | Object that contains account and session details for the current process if it is running as a logged in user. This is the object from `$LoggedOnUserSessions` where the `IsCurrentSession` property is $true. |
+| `$CurrentProcessSID` | Object that represents the current process account SID (e.g. S-1-5-32-544) |
+| `$CurrentUILanguage` | Current Windows two letter UI ISO language name (e.g. EN, FR, DE, JA etc) |
+| `$DefaultUserProfile` | Path to the default user profile, e.g. `C:\Users\Default` |
+| `$DirUserProfile` | Path to the user profiles directory, e.g. `C:\Users` |
+| `$EnvAllUsersProfile` | %ALLUSERSPROFILE%, e.g. `C:\ProgramData` |
+| `$EnvAppData` | %APPDATA%, e.g. `C:\Users\%USERNAME%\AppData\Roaming` |
+| `$EnvArchitecture` | %PROCESSOR_ARCHITECTURE%, e.g. AMD64/IA64/x86.
Note - This doesn't tell you the architecture of the processor but only of the current process, so it returns "x86" for a 32-bit WOW process running on 64-bit Windows. |
+| `$EnvCLRVersion` | Full version number of .NET used by PS (e.g. <major>.<minor>.<build>.<revision>) |
+| `$EnvCLRVersionBuild` | Build portion of PS .NET version number (e.g. <major>.<minor>.<build>.<revision>) |
+| `$EnvCLRVersionMajor` | Major portion of PS .NET version number (e.g. <major>.<minor>.<build>.<revision>) |
+| `$EnvCLRVersionMinor` | Minor portion of PS .NET version number (e.g. <major>.<minor>.<build>.<revision>) |
+| `$EnvCLRVersionRevision` | Revision portion of PS .NET version number (e.g. <major>.<minor>.<build>.<revision>) |
+| `$EnvCommonDesktop` | e.g. `C:\Users\Public\Desktop` |
+| `$EnvCommonDocuments` | e.g. `C:\Users\Public\Documents` |
+| `$EnvCommonProgramFiles` | %COMMONPROGRAMFILES%, e.g. `C:\Program Files\Common Files`) |
+| `$EnvCommonProgramFilesX86` | %COMMONPROGRAMFILES(x86)%, e.g. `C:\Program Files (x86)\Common Files` |
+| `$EnvCommonStartMenu` | e.g. `C:\ProgramData\Microsoft\Windows\Start Menu` |
+| `$EnvCommonStartMenuPrograms` | e.g. `C:\ProgramData\Microsoft\Windows\Start Menu\Programs` |
+| `$EnvCommonStartUp` | e.g. `C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup` |
+| `$EnvCommonTemplates` | e.g. `C:\ProgramData\Microsoft\Windows\Templates` |
+| `$EnvComputerName` | $COMPUTERNAME%, e.g. Computer1 |
+| `$EnvComputerNameFQDN` | Fully qualified computer name, e.g. computer1.contoso.com |
+| `$EnvHardwareType` | Physical, Virtual, Virtual:Hyper-V, Virtual:Virtual PC, Virtual:Xen, Virtual:VMware |
+| `$EnvHomeDrive` | %HOMEDRIVE%, e.g. `C:` |
+| `$EnvHomePath` | %HOMEPATH%, e.g. `C:\Users\%USERNAME%` |
+| `$EnvHomeShare` | %HOMESHARE% (Used instead of HOMEDRIVE if the home folder uses UNC paths.) |
+| `$EnvHost` | Object that contains details about the current PowerShell console |
+| `$EnvHostVersion` | Full version number of the current PowerShell console |
+| `$EnvHostVersionBuild` | Build portion of the current PowerShell console version |
+| `$EnvHostVersionMajor` | Major portion of the current PowerShell console version |
+| `$EnvHostVersionMinor` | Minor portion of the current PowerShell console version |
+| `$EnvHostVersionRevision` | Revision portion of the current PowerShell console version |
+| `$EnvLocalAppData` | %LOCALAPPDATA%, e.g. `C:\Users\%USERNAME%\AppData\Local` |
+| `$EnvLogicalDrives` | An array containing all of the logical drives on the system. |
+| `$EnvLogonServer` | FQDN of %LOGONSERVER% used for authenticating logged in user |
+| `$EnvMachineADDomain` | Root AD domain name for machine, e.g. domain.contoso.com |
+| `$EnvMachineDNSDomain` | Full Domain name for machine, e.g. <name>.contoso.com |
+| `$EnvMachineWorkgroup` | If machine not joined to domain, what is the WORKGROUP it belongs to? |
+| `$EnvOfficeBitness` | Architecture of current Office installation, e.g. x86 or x64 |
+| `$EnvOfficeChannel` | Current Office Channel, e.g. 'Monthly Enterprise' |
+| `$EnvOfficeVars` | Properties of HKLM\SOFTWARE\Microsoft\Office\ClickToRun\Configuration |
+| `$EnvOfficeVersion` | Microsoft Office version, e.g. 16.0.x.x |
+| `$EnvOS` | Object that contains details about the operating system |
+| `$EnvOSArchitecture` | Represents the OS architecture (e.g. X86/X64/Arm64) |
+| `$EnvOSName` | Name of the operating system (e.g. Microsoft Windows 8.1 Pro) |
+| `$EnvOSProductType` | OS product type represented as an integer (e.g. 1/2/3) |
+| `$EnvOSProductTypeName` | OS product type name (e.g. Server/Domain Controller/Workstation/Unknown) |
+| `$EnvOSVersion` | Full version number of the OS (e.g. <major>.<minor>.<build>.<revision>) |
+| `$EnvOSVersionBuild` | Build portion of the OS version number (e.g. <major>.<minor>.<build>.<revision>) |
+| `$EnvOSVersionMajor` | Major portion of the OS version number (e.g. <major>.<minor>.<build>.<revision>) |
+| `$EnvOSVersionMinor` | Minor portion of the OS version number (e.g. <major>.<minor>.<build>.<revision>) |
+| `$EnvOSVersionRevision` | Revision portion of the OS version number (e.g. <major>.<minor>.<build>.<revision>) |
+| `$EnvPSProcessPath` | Path to the current PowerShell process |
+| `$EnvProgramData` | %PROGRAMDATA%, e.g. `C:\ProgramData` |
+| `$EnvProgramFiles` | %PROGRAMFILES%, e.g. `C:\Program Files` |
+| `$EnvProgramFilesX86` | %ProgramFiles(x86)%, e.g. `C:\Program Files (x86)` (Only on 64 bit. Used to store 32 bit apps.) |
+| `$EnvPSVersion` | Full version number of PS (e.g. <major>.<minor>.<build>.<revision>) |
+| `$EnvPSVersionBuild` | Build portion of PS version number (e.g. <major>.<minor>.<build>.<revision>) |
+| `$EnvPSVersionMajor` | Major portion of PS version number (e.g. <major>.<minor>.<build>.<revision>) |
+| `$EnvPSVersionMinor` | Minor portion of PS version number (e.g. <major>.<minor>.<build>.<revision>) |
+| `$EnvPSVersionRevision` | Revision portion of PS version number (e.g. <major>.<minor>.<build>.<revision>) |
+| `$EnvPSVersionTable` | Object containing PowerShell version details from PS variable `$PSVersionTable` |
+| `$EnvPublic` | %PUBLIC%, e.g. `C:\Users\Public` |
+| `$EnvSysNativeDirectory` | Access to the native `C:\WINDOWS\System32` directory for a WOW64 process |
+| `$EnvSystem32Directory` | `C:\WINDOWS\system32` |
+| `$EnvSystemDrive` | %SYSTEMDRIVE%, e.g. `C:` |
+| `$EnvSystemProfile` | %SYSTEMPROFILE%, e.g. `C:\Windows\System32\config\systemprofile` |
+| `$EnvSystemProfileX86` | %SYSTEMPROFILE(x86)%, e.g. `C:\Windows\SysWOW64\config\systemprofile` |
+| `$EnvSystemRAM` | System RAM as an integer |
+| `$EnvSystemRoot` | %SYSTEMROOT%, e.g. `C:\Windows` |
+| `$EnvSysWow64Directory` | `C:\WINDOWS\SysWOW64` |
+| `$EnvTemp` | Checks for the existence of environment variables in the following order and uses the first path found:
- The path specified by TEMP environment variable, (e.g. `C:\Users\%USERNAME%\AppData\Local\Temp`).
- The path specified by the USERPROFILE environment variable.
- The Windows root (`C:\Windows`) folder. |
+| `$EnvUserCookies` | `C:\Users\%USERNAME%\AppData\Local\Microsoft\Windows\INetCookies` |
+| `$EnvUserDesktop` | `C:\Users\%USERNAME%\Desktop` |
+| `$EnvUserDNSDomain` | %USERDNSDOMAIN%. Root AD domain name for user, e.g. domain.contoso.com |
+| `$EnvUserDomain` | %USERDOMAIN%, e.g. domain.contoso.com |
+| `$EnvUserFavorites` | `C:\Users\%USERNAME%\Favorites` |
+| `$EnvUserInternetCache` | `C:\Users\%USERNAME%\AppData\Local\Microsoft\Windows\INetCache` |
+| `$EnvUserInternetHistory` | `C:\Users\%USERNAME%\AppData\Local\Microsoft\Windows\History` |
+| `$EnvUserMyDocuments` | `C:\Users\%USERNAME%\Documents` |
+| `$EnvUserName` | %USERNAME% |
+| `$EnvUserPictures` | `C:\Users\%USERNAME%\Pictures` |
+| `$EnvUserProfile` | %USERPROFILE%, e.g. `%SystemDrive%\Users\%USERNAME%` |
+| `$EnvUserSendTo` | `C:\Users\%USERNAME%\AppData\Roaming\Microsoft\Windows\SendTo` |
+| `$EnvUserStartMenu` | `C:\Users\%USERNAME%\AppData\Roaming\Microsoft\Windows\Start Menu` |
+| `$EnvUserStartMenuPrograms` | `C:\Users\%USERNAME%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs` |
+| `$EnvUserStartUp` | `C:\Users\%USERNAME%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup` |
+| `$EnvUserTemplates` | `C:\Users\%USERNAME%\AppData\Roaming\Microsoft\Windows\Templates` |
+| `$EnvWinDir` | %WINDIR%, e.g. `C:\Windows` |
+| `$InvalidFileNameChars` | Array of all invalid file name characters used to sanitize variables which may be used to create file names. |
+| `$InvalidFileNameCharsRegexPattern` | Regex pattern of all invalid file name characters used to sanitize variables which may be used to create file names. |
+| `$InvalidScheduledTaskNameCharsRegexPattern` | Regex pattern of all invalid scheduled task name characters used to sanitize variables which may be used to create scheduled task names. |
+| `$Is64Bit` | Is this a 64-bit OS? (e.g. $true/$false) |
+| `$IsAdmin` | Is the current process running with elevated admin privileges? (e.g. $true/$false) |
+| `$IsDomainControllerOS` | Is domain controller OS? (e.g. $true/$false) |
+| `$IsLocalServiceAccount` | Is the current process running under LOCAL SERVICE account? (e.g. $true/$false) |
+| `$IsLocalSystemAccount` | Is the current process running under the SYSTEM account? (e.g. $true/$false) |
+| `$IsMachinePartOfDomain` | Is machine joined to a domain, (e.g. $true/$false) |
+| `$IsMultiSessionOS` | Is multi-session OS? (e.g. $true/$false) |
+| `$IsNetworkServiceAccount` | Is the current process running under the NETWORK SERVICE account? (e.g. $true/$false) |
+| `$IsProcessUserInteractive` | Is the current process able to display a user interface? |
+| `$IsServerOS` | Is server OS? (e.g. $true/$false) |
+| `$IsServiceAccount` | Is the current process running as a service? (e.g. $true/$false) |
+| `$IsTerminalServer` | Is terminal server? (e.g. $true/$false) |
+| `$IsWorkStationOS` | Is workstation OS? (e.g. $true/$false) |
+| `$LocalAdministratorsGroup` | Returns the name of the local Administrators group, typically `BUILTIN\Administrators` |
+| `$LocalSystemNTAccount` | Localized NT account name of the SYSTEM account (e.g. NT AUTHORITY\SYSTEM) |
+| `$LocalUsersGroup` | Returns the name of the local Users group, typically `BUILTIN\Users` |
+| `$LoggedOnUserSessions` | Object that contains account and session details for all users |
+| `$ProcessNTAccount` | Current process NT Account (e.g. NT AUTHORITY\SYSTEM) |
+| `$RunAsActiveUser` | The active console user. If no console user exists but users are logged in, such as on terminal servers, then the first logged-in non-console user. |
+| `$RunAsActiveUserLocale` | Locale of the active console user. |
+| `$RunAsUserProfile` | Profile path of the active console user. |
+| `$RunningDeployrTaskSequence` | Is the current process running in a DeployR task sequence? (e.g. `$true` / `$false`) |
+| `$RunningTaskSequence` | Is the current process running in a ConfigMgr task sequence? (e.g. `$true` / `$false`) |
+| `$SessionZero` | Is the current process currently in session zero? In session zero isolation, process is not able to display a user interface. (e.g. $true/$false) |
+| `$UICulture` | The current user interface culture. |
+| `$UserProfileName` | The name of the user profile. |
+| `$UsersLoggedOn` | Array that contains all of the NTAccount names of logged in users |
diff --git a/docs/usage/adding-ui-elements.mdx b/docs/usage/adding-ui-elements.mdx
index 774396f..5007272 100644
--- a/docs/usage/adding-ui-elements.mdx
+++ b/docs/usage/adding-ui-elements.mdx
@@ -17,11 +17,7 @@ All UI components include customizable message text in `strings.psd1`, which has
The language is selected automatically based on the operating system settings. However, you can override it by specifying `LanguageOverride` in `config.psd1`.
-The user interface can be suppressed by specifying the deploy mode parameter as follows:
-
-```powershell
-Invoke-AppDeployToolkit.ps1 -DeployMode Silent
-```
+The user interface functions will only display when the toolkit is running in **Interactive** mode (although progress dialogs can be displayed in **NonInteractive** mode). The default mode, **Auto**, will by default only be interactive if there are no processes that need to be closed.
### Installation Progress
diff --git a/docs/usage/customizing-deployments.mdx b/docs/usage/customizing-deployments.mdx
index bc0af4d..b9b31a5 100644
--- a/docs/usage/customizing-deployments.mdx
+++ b/docs/usage/customizing-deployments.mdx
@@ -60,4 +60,4 @@ See [Language Strings](../reference/language-strings.mdx) for further informatio
To brand the Fluent UI dialogs with a custom logo, replace `AppIcon.png` with your own file, retaining the file name. For Classic UI dialogs, replace `Banner.Classic.png`.
-To brand the Classic UI dialogs with your own custom/corporate banner, replace the `Banner.Classic.png` file with your own .png file (retaining the file name). The file must be in PNG format and must be 450 x 50 in size.
+To brand the Classic UI dialogs with your own custom/corporate banner, replace the `Banner.Classic.png` file with your own .png file (retaining the file name). The file must be in PNG format and should be 450 x 50 in size.
diff --git a/docs/usage/how-to-deploy.mdx b/docs/usage/how-to-deploy.mdx
index b08656c..4da7107 100644
--- a/docs/usage/how-to-deploy.mdx
+++ b/docs/usage/how-to-deploy.mdx
@@ -11,22 +11,21 @@ tags:
## How to Deploy
-There are two ways to launch the PSAppDeployToolkit for deployment of applications.
+To launch the PSAppDeployToolkit script:
- Run `Invoke-AppDeployToolkit.ps1` via PowerShell:
`%SystemRoot%\System32\WindowsPowerShell\v1.0\PowerShell.exe -ExecutionPolicy Bypass -NoProfile -File Invoke-AppDeployToolkit.ps1`
-- Run `Invoke-AppDeployToolkit.exe` to launch `Invoke-AppDeployToolkit.ps1` in a hidden PowerShell window.
+- If the process invoking PowerShell is 32-bit, you can force it to run 64-bit PowerShell with:
+`%SystemRoot%\SysNative\WindowsPowerShell\v1.0\PowerShell.exe -ExecutionPolicy Bypass -NoProfile -File Invoke-AppDeployToolkit.ps1`
+- Run `Invoke-AppDeployToolkit.exe` to launch `Invoke-AppDeployToolkit.ps1` in a hidden PowerShell window. This will select the correct PowerShell architecture automatically.
:::info[Elevation]
-If your script uses `RequireAdmin = $true`, you will need to run it as admin; the launcher will not prompt for elevation by itself.
+If your script requires administrative privileges, you will need to run it as admin; the launcher will not prompt for elevation by itself.
:::
:::info[ServiceUI]
-Additionally, as of v4.1.0:
-
-- If deploying via **Intune**, there is no longer any reqirement to use `ServiceUI.exe` workarounds to display the UI.
-- If deploying via **Configuration Manager**, the **'Allow users to view and interact with the program installation'** option is no longer required to display the UI.
-- Invoke-ServiceUI.ps1 has been removed from the toolkit as it is no longer required.
+- If deploying via **Intune**, `ServiceUI.exe` is no longer needed to make the UI visible as of v4.1.
+- If deploying via **Configuration Manager**, the **'Allow users to view and interact with the program installation'** checkbox is no longer required to display the UI.
:::
:::warning
@@ -38,13 +37,11 @@ Additionally, as of v4.1.0:
The following parameters are accepted by `Invoke-AppDeployToolkit.ps1` and `Invoke-AppDeployToolkit.exe`:
-| Parameter | Values | Description |
-| --------------------------------------------------------------------- | ---------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------ |
-| `-DeploymentType` | Install *(default)*
Uninstall
Repair | Specifies the deployment type. |
-| `-DeployMode` | Interactive *(default)*
Silent
NonInteractive | Controls dialog display behavior. NonInteractive allows progress dialogs but suppresses any UI elements requiring interaction. |
-| `-SuppressRebootPassThru` | | Suppresses return of 3010 'Reboot Required' exit codes and returns 0 instead. |
-| `-TerminalServerMode` | | Changes to user install mode for RDS/Citrix servers. |
-| `-DisableLogging` | | Disables logging to file. |
+| Parameter | Values | Description |
+| --------------------------------------------------------------------- | ------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `-DeploymentType` | Install *(default)*
Uninstall
Repair | Specifies the deployment type. |
+| `-DeployMode` | Auto *(default)*
Interactive
Silent
NonInteractive | Controls dialog display behavior:
- Auto: By default will run silent unless there are applications to be closed.
- Interactive: All UI functions will be interactive.
- NonInteractive: Only non-interactive UI elements such as progress dialogs will be displayed.
- Silent: All UI elements will be suppressed.|
+| `-SuppressRebootPassThru` | | Suppresses return of 3010 'Reboot Required' exit codes and returns 0 instead. |
In addition, `Invoke-AppDeployToolkit.exe` supports the following parameters:
@@ -53,55 +50,55 @@ In addition, `Invoke-AppDeployToolkit.exe` supports the following parameters:
| `/Debug` | | Launches the script in a visible window displaying live logging output on-screen. |
| `/32` | | Launches the script using PowerShell x86. This is useful for compatibility with x86 libraries or components. |
| `/Core` | | Launches the script using PowerShell Core (pwsh.exe). |
-| `-File` | *.ps1 | Specify a custom script file to run instead of the default `Invoke-AppDeployToolkit.ps1`. |
-| `*.ps1` | | Specify a custom script file to run instead of the default `Invoke-AppDeployToolkit.ps1`. |
+| `-File` | *.ps1 | Specify a custom script file to run instead of the default `Invoke-AppDeployToolkit.ps1`. |
+| `*.ps1` | | Positional parameter alternative to `-File`; specify a custom script file directly (without `-File`). |
### Examples
-Deploy an application for installation in interactive mode:
+Deploy an application for installation in auto mode:
-```powershell
+```
Invoke-AppDeployToolkit.exe
```
-or:
+To force Interactive mode (e.g. when prompts must be actioned by a user):
-```powershell
+```
Invoke-AppDeployToolkit.exe -DeploymentType Install -DeployMode Interactive
```
-Deploy an application in silent mode with 3010 reboot codes suppressed:
+Deploy an application in silent mode with reboot exit codes suppressed:
-```powershell
+```
Invoke-AppDeployToolkit.exe -DeploymentType Install -DeployMode Silent -SuppressRebootPassThru
```
Deploy an application for uninstallation in non-interactive mode:
-```powershell
-Invoke-AppDeployToolkit.ps1 -DeploymentType Uninstall -DeployMode NonInteractive
+```
+Invoke-AppDeployToolkit.exe -DeploymentType Uninstall -DeployMode NonInteractive
```
Deploy an application for silent installation using PowerShell x86 in debug mode:
-```powershell
+```
Invoke-AppDeployToolkit.exe /32 /Debug -DeploymentType Install -DeployMode Silent
```
Deploy an application for silent installation using PowerShell Core:
-```powershell
+```
Invoke-AppDeployToolkit.exe /Core -DeploymentType Install -DeployMode Silent
```
Deploy an application with a custom script name:
-```powershell
+```
Invoke-AppDeployToolkit.exe Custom-Script.ps1
```
or:
-```powershell
+```
Invoke-AppDeployToolkit.exe -File Custom-Script.ps1
```
diff --git a/docs/usage/installing-applications.mdx b/docs/usage/installing-applications.mdx
index 3e8304d..d20ae63 100644
--- a/docs/usage/installing-applications.mdx
+++ b/docs/usage/installing-applications.mdx
@@ -30,8 +30,9 @@ Full parameter descriptions can be found in the [Start-ADTProcess](../reference/
| -WaitForChildProcesses | Wait for all child processes to complete. Useful for installers or uninstallers that exit early and hand off to a child process. |
| -KillChildProcessesWithParent | Terminate all child processes once the main process closes - useful when an installer launches the application once complete and you want it closed. |
| -UseUnelevatedToken | Force the process to be started with the user's unelevated token. Useful when installing user-context apps that refuse to install when elevated, or to work around Windows 11 Administrator Protection issues. |
-| -Verb | Use `-Verb RunAs` to force the process to run elevated. Note that this does not magically make standard users into admins. |
+| -Verb | The verb to use when doing a ShellExecute invocation. Common usages are "runas" to trigger a UAC elevation of the process. Note that this does not magically make standard users into admins. |
| -UseShellExecute | Useful for opening a file or URL and letting the Windows shell figure out which application to open it with. |
+| -ExpandEnvironmentVariables | Expand environment variables such as %APPDATA% in the file path, arguments, and working directory. |
| -NoWait | Do not wait for the process to complete. This is useful for launching processes that run in the background or when you do not need to wait for the process to finish before continuing with the script. |
| -Timeout | Specifies the maximum time to wait for the process to complete. |
| -TimeoutAction | Specifies the action to take if the process does not complete within the specified timeout period. |
@@ -62,9 +63,10 @@ Full parameter descriptions can be found in the [Start-ADTProcessAsUser](../refe
| Parameter | Description |
| ---------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| -UseLinkedAdminToken | Run the process with the user's admin token if available. |
+| -DenyUserTermination | Prevent non-administrative userss from terminating the process. |
| -InheritEnvironmentVariables | Inherit environment variables from the current deployment process; user environment variables such as APPDATA are always layered on top so take precedence. |
-| -ExpandEnvironmentVariables | Expand environment variables such as %APPDATA% in the file path, arguments, and working directory. |
+| -UseLinkedAdminToken | Run the process with the user's admin token (will fail if the user has no administrative privileges). |
+| -UseHighestAvailableToken | Run the process with the user's admin token if available. |
#### Example Usage
diff --git a/sidebars.js b/sidebars.js
index 159cd6c..cf8fc7a 100644
--- a/sidebars.js
+++ b/sidebars.js
@@ -29,7 +29,8 @@ const sidebars = {
'getting-started/download',
'getting-started/creating-a-new-deployment',
'getting-started/release-notes',
- 'getting-started/upgrade-guidance-4x-to-v41',
+ 'getting-started/upgrade-guidance-v41-to-v42',
+ 'getting-started/upgrade-guidance-v4x-to-v41',
'getting-started/upgrade-guidance-v3x-to-v41',
'getting-started/faq',
],
diff --git a/src/css/custom.css b/src/css/custom.css
index 8135e63..7f9cd02 100644
--- a/src/css/custom.css
+++ b/src/css/custom.css
@@ -245,16 +245,27 @@ body {
/* ── Tables ── */
table {
- max-width: 100%;
- display: block;
- width: fit-content;
- margin: 2rem;
+ display: table;
+ width: calc(100% - 2rem);
+ max-width: calc(100% - 2rem);
+ margin: 2rem 1rem;
+ border-collapse: separate;
+ border-spacing: 0;
+ overflow: hidden;
border-radius: 8px 8px 0 0;
border-color: var(--psadt-card-border-color);
background: var(--psadt-card-elevated-background);
box-shadow: var(--ifm-global-shadow-md);
}
+/* Keep names in the first column (e.g. parameters and variables) on a single
+ line so hyphenated tokens like -KillChildProcessesWithParent aren't split. */
+table td:first-child,
+table th:first-child {
+ white-space: nowrap;
+ word-break: keep-all;
+}
+
table thead tr {
background-color: var(--ifm-color-primary-dark);
color: var(--ifm-color-content-inverse);
diff --git a/src/data/features.ts b/src/data/features.ts
index a3f49d9..9f1c187 100644
--- a/src/data/features.ts
+++ b/src/data/features.ts
@@ -20,8 +20,8 @@ export const featureGroups: readonly FeatureGroup[] = [
{ text: 'Classic UI option for backward compatibility' },
{ text: 'Welcome dialog with app-close prompts, deferrals, and countdown timers' },
{
- text: 'Custom dialogs with buttons, icons, input boxes, and secure password fields',
- version: 'v4.1',
+ text: 'Custom dialogs with buttons, icons, input boxes*, secure password fields** and dropdown selection boxes**',
+ version: '*v4.1 **v4.2',
},
{ text: 'Progress bar with real-time percentage tracking', version: 'v4.1' },
{ text: 'Restart prompts with countdown, snooze, and deadline enforcement' },
@@ -79,6 +79,7 @@ export const featureGroups: readonly FeatureGroup[] = [
{ text: 'INI file section and value management', version: 'v4.1' },
{ text: 'Environment variable and DLL registration management', version: 'v4.1' },
{ text: 'File and folder ACL/permission management', version: 'v4.1' },
+ { text: 'Font management', version: 'v4.2' },
],
},
{
@@ -100,12 +101,12 @@ export const featureGroups: readonly FeatureGroup[] = [
description: 'First-class support for Intune, ConfigMgr, and other endpoint management platforms.',
items: [
{ text: 'Microsoft Intune deployment with metadata and standardized flows' },
- { text: 'ConfigMgr (SCCM/MCM) application model support' },
- { text: 'MCM exit code handling with Fast Retry for accurate reporting' },
+ { text: 'ConfigMgr application model support' },
+ { text: 'Exit code handling with Fast Retry support for accurate reporting' },
{ text: 'Reboot code suppression (3010) to prevent unwanted prompts' },
{ text: 'Application bundling beyond the 5-app dependency chain limit' },
{ text: 'Bandwidth-efficient loose file deployment over distribution points' },
- { text: 'SCCM software update and task execution integration' },
+ { text: 'ConfigMgr software update and task execution integration' },
],
},
{
@@ -114,7 +115,7 @@ export const featureGroups: readonly FeatureGroup[] = [
description: 'Automatically detect system state, user activity, and environmental conditions.',
items: [
{ text: 'Operating system and hardware information gathering' },
- { text: 'Pending reboot detection (CBS, Windows Update, SCCM, file renames)' },
+ { text: 'Pending reboot detection (CBS, Windows Update, ConfigMgr, file renames)' },
{ text: 'Battery/laptop and microphone-in-use detection' },
{ text: 'PowerPoint full-screen presentation mode detection' },
{
@@ -124,6 +125,7 @@ export const featureGroups: readonly FeatureGroup[] = [
{ text: 'Active user session and Terminal Server/Citrix detection' },
{ text: 'Network connectivity testing' },
{ text: 'Service management with dependency resolution and startup type control' },
+ { text: 'User focus mode detection', version: 'v4.2' },
],
},
{
diff --git a/src/pages/about.tsx b/src/pages/about.tsx
index c68aa3f..f8e58a5 100644
--- a/src/pages/about.tsx
+++ b/src/pages/about.tsx
@@ -130,7 +130,7 @@ const AboutPage = () => {
maintain and enhance the framework, with regular releases and new features based on community feedback.
- v4.2 is currently in development and slated for Q2 2026.
+ v4.2 is currently in development and slated for Q3 2026.
diff --git a/versioned_docs/version-4.1.x/deployment-concepts/deployment-structure.mdx b/versioned_docs/version-4.1.x/deployment-concepts/deployment-structure.mdx
index b531715..63ba0fe 100644
--- a/versioned_docs/version-4.1.x/deployment-concepts/deployment-structure.mdx
+++ b/versioned_docs/version-4.1.x/deployment-concepts/deployment-structure.mdx
@@ -18,7 +18,7 @@ PSAppDeployToolkit v4.1 represents a significant architectural evolution from pr
#### Core Architecture Principles
-**Session-Based Management**: PSADT v4.1 **introduces the `ADTSession` object**, which encapsulates all deployment state, configuration, and context. This object-oriented approach provides better isolation, state management, and extensibility compared to the global variable approach used in v3.
+**Session-Based Management**: PSADT v4 **introduces the `ADTSession` object**, which encapsulates all deployment state, configuration, and context. This object-oriented approach provides better isolation, state management, and extensibility compared to the global variable approach used in v3.
**Security-First Design**: The v4.1 architecture **separates user interaction from system-level operations**, eliminating the need for ServiceUI and providing a more secure deployment experience. User interfaces run in the user's session context, while system operations execute in the appropriate security context.
diff --git a/versioned_docs/version-4.1.x/getting-started/download.mdx b/versioned_docs/version-4.1.x/getting-started/download.mdx
index 1e833b7..1c09378 100644
--- a/versioned_docs/version-4.1.x/getting-started/download.mdx
+++ b/versioned_docs/version-4.1.x/getting-started/download.mdx
@@ -25,7 +25,7 @@ Install-Module -Name PSAppDeployToolkit -Scope CurrentUser
Alternatively, you can download the release assets:
-- [PSAppDeployToolkit Latest Release](https://github.com/PSAppDeployToolkit/PSAppDeployToolkit/releases)
+- [PSAppDeployToolkit Releases](https://github.com/PSAppDeployToolkit/PSAppDeployToolkit/releases)
Here you will see the latest release of PSAppDeployToolkit. Click the `Assets` dropdown to view the available downloads. You should see the following:
diff --git a/versioned_docs/version-4.1.x/introduction.mdx b/versioned_docs/version-4.1.x/introduction.mdx
index d89215b..1e963e5 100644
--- a/versioned_docs/version-4.1.x/introduction.mdx
+++ b/versioned_docs/version-4.1.x/introduction.mdx
@@ -34,7 +34,7 @@ PSAppDeployToolkit is open-source software and provided free for anyone to use.
:::info[Enterprise Support]
-We recognize that some enterprises face adoption challenges due to audit requirements for vendor support. Patch My PC are stewards of the PSADT Project and, as experts in open-source deployment, are uniquely positioned to offer both deep technical knowledge and enterprise-level support - allowing customers to fully benefit from open-source tools without compromise. [Learn more about Patch My PC's support for PSADT](https://patchmypc.com/support/psappdeploytoolkit-support).
+We recognize that some enterprises face adoption challenges due to audit requirements for vendor support. Patch My PC are stewards of the PSADT Project and, as experts in open-source deployment, are uniquely positioned to offer both deep technical knowledge and enterprise-level support - allowing customers to fully benefit from open-source tools without compromise. [Learn more about Patch My PC's support for PSADT](https://patchmypc.com/product/psadt).
:::
## Reporting Issues
diff --git a/versioned_docs/version-4.1.x/reference/adtsession-object.mdx b/versioned_docs/version-4.1.x/reference/adtsession-object.mdx
index d7beba1..57c5e54 100644
--- a/versioned_docs/version-4.1.x/reference/adtsession-object.mdx
+++ b/versioned_docs/version-4.1.x/reference/adtsession-object.mdx
@@ -19,7 +19,7 @@ The `ADTSession` object is a core component of **PSAppDeployToolkit**, managing
When you start a deployment script, initialize the `ADTSession` with the `Open-ADTSession` function:
```powershell
-$adtSession = Open-ADTSession -AppName "YourAppName" -AppVersion "1.0.0" -AppVendor "YourVendor" -DeploymentType "Install" -SessionState $ExecutionContext.SessionState -PassThru
+$adtSession = Open-ADTSession -AppName "YourAppName" -AppVersion "1.0.0" -AppVendor "YourVendor" -DeploymentType "Install" -PassThru
```
This initializes the session and gathers information about the deployment, user, and computer, providing an object with several helpful properties you can use.
@@ -58,25 +58,25 @@ The following properties are settable via parameters of the `Open-ADTSession` fu
### Deployment Settings
-| Property | Description |
-| :----------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| `AppRebootExitCodes` | An array of exit codes that indicate a reboot is required after installation or uninstallation. |
-| `AppSuccessExitCodes` | An array of exit codes that indicate a successful installation or uninstallation. |
-| `AppProcessesToClose` | An array of process names or hashtables (with Name/Description) to be closed before install/uninstall/repair. |
-| `ForceWimDetection` | Auto-mount a WIM image file if found in DirFiles. |
-| `NoOobeDetection` | Bypasses OOBE detection logic when DeployMode is set to Auto. Use this to show the UI during OOBE / Autopilot ESP phases. |
-| `NoProcessDetection` | Bypasses process detection logic when DeployMode is set to Auto. Use this to show the UI even if there are no processes to close. |
-| `NoSessionDetection` | Bypasses session detection logic when DeployMode is set to Auto. Use this to show the UI when no user is logged on and the SYSTEM process is interactive. |
-| `DisableDefaultMsiProcessList` | Disables extraction of the default process list from the MSI. |
-| `TerminalServerMode` | Enables Terminal Server installation mode. |
-| `ForceMsiDetection` | Force use of zero-config MSI detection even if the AppName is already set. |
-| `SuppressRebootPassThru` | Indicates if reboot exit codes (e.g. 3010) should be converted to 0 (i.e. Success) when closing the session. |
-| `DeploymentType` | Indicates if the deployment is an "Install", "Uninstall", or "Repair". |
-| `DefaultMsiFile` | The default MSI file used for installation if none is specified. |
-| `DefaultMspFiles` | The default MSP files used for installation if none are specified. |
-| `DefaultMstFile` | The default MST file used for installation if none are specified. |
-| `DeployMode` | The mode in which the deployment is running (e.g., "Auto", "Interactive", "NonInteractive", "Silent"). |
-| `RequireAdmin` | Whether the deployment requires administrative privileges. |
+| Property | Description |
+| :------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `AppRebootExitCodes` | An array of exit codes that indicate a reboot is required after installation or uninstallation. |
+| `AppSuccessExitCodes` | An array of exit codes that indicate a successful installation or uninstallation. |
+| `AppProcessesToClose` | An array of process names or hashtables (with Name/Description) to be closed before install/uninstall/repair. |
+| `DeploymentType` | Indicates if the deployment is an "Install", "Uninstall", or "Repair". |
+| `DeployMode` | The mode in which the deployment is running (e.g., "Auto", "Interactive", "NonInteractive", "Silent"). |
+| `DefaultMsiFile` | The default MSI file used for installation if none is specified. |
+| `DefaultMspFiles` | The default MSP files used for installation if none are specified. |
+| `DefaultMstFile` | The default MST file used for installation if none are specified. |
+| `DisableDefaultMsiProcessList` | Disables extraction of the default process list from the MSI. |
+| `ForceMsiDetection` | Force use of zero-config MSI detection even if the AppName is already set. |
+| `ForceWimDetection` | Auto-mount a WIM image file if found in DirFiles. |
+| `NoOobeDetection` | Bypasses OOBE detection logic when DeployMode is set to Auto. Use this to show the UI during OOBE / Autopilot ESP phases. |
+| `NoProcessDetection` | Bypasses process detection logic when DeployMode is set to Auto. Use this to show the UI even if there are no processes to close. |
+| `NoSessionDetection` | Bypasses session detection logic when DeployMode is set to Auto. Use this to show the UI when no user is logged on and the SYSTEM process is interactive. |
+| `RequireAdmin` | Whether the deployment requires administrative privileges. |
+| `SuppressRebootPassThru` | Indicates if reboot exit codes (e.g. 3010) should be converted to 0 (i.e. Success) when closing the session. |
+| `TerminalServerMode` | Enables Terminal Server installation mode. |
### Path Settings
@@ -105,3 +105,21 @@ The following properties are not parameters of `Open-ADTSession`, but are availa
| `InstallPhase` | The current phase of the installation process (e.g., "Pre-Installation", "Installation", "Post-Installation"). |
| `LogPath` | The path used for logging. |
| `UseDefaultMsi` | Indicates whether the toolkit is running in zero-config mode. |
+
+### Additional Methods
+
+The following methods can also be run on the `ADTSession` object:
+
+| Method | Description |
+| :------------------- | :---------------------------------------------------------------- |
+| `GetDeferHistory` | Returns the defer history. |
+| `GetDeploymentStatus | Returns the current deployment status. |
+| `GetExitCode` | Returns the current exit code. |
+| `GetLogBuffer` | Returns the entire log buffer. |
+| `IsClosed` | Indicates whether the session is closed. |
+| `IsNonInteractive` | Indicates whether the session is running in non-interactive mode. |
+| `IsSilent` | Indicates whether the session is running in silent mode. |
+| `ResetDeferHistory` | Resets the defer history. |
+| `SetDeferHistory` | Sets the defer history. |
+| `SetExitCode` | Sets the exit code. |
+| `WriteLogEntry` | Writes an entry to the log. |
diff --git a/versioned_docs/version-4.1.x/reference/v4-function-mapping.mdx b/versioned_docs/version-4.1.x/reference/v4-function-mapping.mdx
index 471997c..c9bbcc7 100644
--- a/versioned_docs/version-4.1.x/reference/v4-function-mapping.mdx
+++ b/versioned_docs/version-4.1.x/reference/v4-function-mapping.mdx
@@ -16,89 +16,89 @@ The following table lists the v3 functions and their compatibility with v4. If a
| v3 Function | Compat Wrapper? | v4 Function |
| :-------------------------------------------------------------------------------------------------------------------------------------- | :-------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| [Block-AppExecution](/versioned_docs/version-3.10.2/reference/functions/Block-AppExecution.mdx) | Yes | [Block-ADTAppExecution](/versioned_docs/version-4.0.x/reference/functions/Block-ADTAppExecution.mdx) |
-| [Close-InstallationProgress](/versioned_docs/version-3.10.2/reference/functions/Close-InstallationProgress.mdx) | Yes | [Close-ADTInstallationProgress](/versioned_docs/version-4.0.x/reference/functions/Close-ADTInstallationProgress.mdx) |
-| [Configure-EdgeExtension](/versioned_docs/version-3.10.2/reference/functions/Configure-EdgeExtension.mdx) | Yes | [Add-ADTEdgeExtension](/versioned_docs/version-4.0.x/reference/functions/Add-ADTEdgeExtension.mdx) / [Remove-ADTEdgeExtension](/versioned_docs/version-4.0.x/reference/functions/Remove-ADTEdgeExtension.mdx) |
-| [Convert-RegistryPath](/versioned_docs/version-3.10.2/reference/functions/Convert-RegistryPath.mdx) | Yes | [Convert-ADTRegistryPath](/versioned_docs/version-4.0.x/reference/functions/Convert-ADTRegistryPath.mdx) |
-| [ConvertTo-NTAccountOrSID](/versioned_docs/version-3.10.2/reference/functions/ConvertTo-NTAccountOrSID.mdx) | Yes | [ConvertTo-ADTNTAccountOrSID](/versioned_docs/version-4.0.x/reference/functions/ConvertTo-ADTNTAccountOrSID.mdx) |
-| [Copy-ContentToCache](/versioned_docs/version-3.10.2/reference/functions/Copy-ContentToCache.mdx) | Yes | [Copy-ADTContentToCache](/versioned_docs/version-4.0.x/reference/functions/Copy-ADTContentToCache.mdx) |
-| [Copy-File](/versioned_docs/version-3.10.2/reference/functions/Copy-File.mdx) | Yes | [Copy-ADTFile](/versioned_docs/version-4.0.x/reference/functions/Copy-ADTFile.mdx) |
-| [Copy-FileToUserProfiles](/versioned_docs/version-3.10.2/reference/functions/Copy-FileToUserProfiles.mdx) | Yes | [Copy-ADTFileToUserProfiles](/versioned_docs/version-4.0.x/reference/functions/Copy-ADTFileToUserProfiles.mdx) |
-| [Disable-TerminalServerInstallMode](/versioned_docs/version-3.10.2/reference/functions/Disable-TerminalServerInstallMode.mdx) | Yes | [Disable-ADTTerminalServerInstallMode](/versioned_docs/version-4.0.x/reference/functions/Disable-ADTTerminalServerInstallMode.mdx) |
-| [Enable-TerminalServerInstallMode](/versioned_docs/version-3.10.2/reference/functions/Enable-TerminalServerInstallMode.mdx) | Yes | [Enable-ADTTerminalServerInstallMode](/versioned_docs/version-4.0.x/reference/functions/Enable-ADTTerminalServerInstallMode.mdx) |
-| [Execute-MSI](/versioned_docs/version-3.10.2/reference/functions/Execute-MSI.mdx) | Yes | [Start-ADTMsiProcess](/versioned_docs/version-4.0.x/reference/functions/Start-ADTMsiProcess.mdx) |
-| [Execute-MSP](/versioned_docs/version-3.10.2/reference/functions/Execute-MSP.mdx) | Yes | [Start-ADTMspProcess](/versioned_docs/version-4.0.x/reference/functions/Start-ADTMspProcess.mdx) |
-| [Execute-Process](/versioned_docs/version-3.10.2/reference/functions/Execute-Process.mdx) | Yes | [Start-ADTProcess](/versioned_docs/version-4.0.x/reference/functions/Start-ADTProcess.mdx) |
-| [Execute-ProcessAsUser](/versioned_docs/version-3.10.2/reference/functions/Execute-ProcessAsUser.mdx) | Yes | [Start-ADTProcessAsUser](/versioned_docs/version-4.0.x/reference/functions/Start-ADTProcessAsUser.mdx) |
-| [Exit-Script](/versioned_docs/version-3.10.2/reference/functions/Exit-Script.mdx) | Yes | [Close-ADTSession](/versioned_docs/version-4.0.x/reference/functions/Close-ADTSession.mdx) |
-| [Get-DeferHistory](/versioned_docs/version-3.10.2/reference/functions/Get-DeferHistory.mdx) | Yes | [Get-ADTDeferHistory](/versioned_docs/version-4.0.x/reference/functions/Get-ADTDeferHistory.mdx) |
-| [Get-FileVersion](/versioned_docs/version-3.10.2/reference/functions/Get-FileVersion.mdx) | Yes | [Get-ADTFileVersion](/versioned_docs/version-4.0.x/reference/functions/Get-ADTFileVersion.mdx) |
-| [Get-FreeDiskSpace](/versioned_docs/version-3.10.2/reference/functions/Get-FreeDiskSpace.mdx) | Yes | [Get-ADTFreeDiskSpace](/versioned_docs/version-4.0.x/reference/functions/Get-ADTFreeDiskSpace.mdx) |
+| [Block-AppExecution](/versioned_docs/version-3.10.2/reference/functions/Block-AppExecution.mdx) | Yes | [Block-ADTAppExecution](/versioned_docs/version-4.1.x/reference/functions/Block-ADTAppExecution.mdx) |
+| [Close-InstallationProgress](/versioned_docs/version-3.10.2/reference/functions/Close-InstallationProgress.mdx) | Yes | [Close-ADTInstallationProgress](/versioned_docs/version-4.1.x/reference/functions/Close-ADTInstallationProgress.mdx) |
+| [Configure-EdgeExtension](/versioned_docs/version-3.10.2/reference/functions/Configure-EdgeExtension.mdx) | Yes | [Add-ADTEdgeExtension](/versioned_docs/version-4.1.x/reference/functions/Add-ADTEdgeExtension.mdx) / [Remove-ADTEdgeExtension](/versioned_docs/version-4.1.x/reference/functions/Remove-ADTEdgeExtension.mdx) |
+| [Convert-RegistryPath](/versioned_docs/version-3.10.2/reference/functions/Convert-RegistryPath.mdx) | Yes | [Convert-ADTRegistryPath](/versioned_docs/version-4.1.x/reference/functions/Convert-ADTRegistryPath.mdx) |
+| [ConvertTo-NTAccountOrSID](/versioned_docs/version-3.10.2/reference/functions/ConvertTo-NTAccountOrSID.mdx) | Yes | [ConvertTo-ADTNTAccountOrSID](/versioned_docs/version-4.1.x/reference/functions/ConvertTo-ADTNTAccountOrSID.mdx) |
+| [Copy-ContentToCache](/versioned_docs/version-3.10.2/reference/functions/Copy-ContentToCache.mdx) | Yes | [Copy-ADTContentToCache](/versioned_docs/version-4.1.x/reference/functions/Copy-ADTContentToCache.mdx) |
+| [Copy-File](/versioned_docs/version-3.10.2/reference/functions/Copy-File.mdx) | Yes | [Copy-ADTFile](/versioned_docs/version-4.1.x/reference/functions/Copy-ADTFile.mdx) |
+| [Copy-FileToUserProfiles](/versioned_docs/version-3.10.2/reference/functions/Copy-FileToUserProfiles.mdx) | Yes | [Copy-ADTFileToUserProfiles](/versioned_docs/version-4.1.x/reference/functions/Copy-ADTFileToUserProfiles.mdx) |
+| [Disable-TerminalServerInstallMode](/versioned_docs/version-3.10.2/reference/functions/Disable-TerminalServerInstallMode.mdx) | Yes | [Disable-ADTTerminalServerInstallMode](/versioned_docs/version-4.1.x/reference/functions/Disable-ADTTerminalServerInstallMode.mdx) |
+| [Enable-TerminalServerInstallMode](/versioned_docs/version-3.10.2/reference/functions/Enable-TerminalServerInstallMode.mdx) | Yes | [Enable-ADTTerminalServerInstallMode](/versioned_docs/version-4.1.x/reference/functions/Enable-ADTTerminalServerInstallMode.mdx) |
+| [Execute-MSI](/versioned_docs/version-3.10.2/reference/functions/Execute-MSI.mdx) | Yes | [Start-ADTMsiProcess](/versioned_docs/version-4.1.x/reference/functions/Start-ADTMsiProcess.mdx) |
+| [Execute-MSP](/versioned_docs/version-3.10.2/reference/functions/Execute-MSP.mdx) | Yes | [Start-ADTMspProcess](/versioned_docs/version-4.1.x/reference/functions/Start-ADTMspProcess.mdx) |
+| [Execute-Process](/versioned_docs/version-3.10.2/reference/functions/Execute-Process.mdx) | Yes | [Start-ADTProcess](/versioned_docs/version-4.1.x/reference/functions/Start-ADTProcess.mdx) |
+| [Execute-ProcessAsUser](/versioned_docs/version-3.10.2/reference/functions/Execute-ProcessAsUser.mdx) | Yes | [Start-ADTProcessAsUser](/versioned_docs/version-4.1.x/reference/functions/Start-ADTProcessAsUser.mdx) |
+| [Exit-Script](/versioned_docs/version-3.10.2/reference/functions/Exit-Script.mdx) | Yes | [Close-ADTSession](/versioned_docs/version-4.1.x/reference/functions/Close-ADTSession.mdx) |
+| [Get-DeferHistory](/versioned_docs/version-3.10.2/reference/functions/Get-DeferHistory.mdx) | Yes | [Get-ADTDeferHistory](/versioned_docs/version-4.1.x/reference/functions/Get-ADTDeferHistory.mdx) |
+| [Get-FileVersion](/versioned_docs/version-3.10.2/reference/functions/Get-FileVersion.mdx) | Yes | [Get-ADTFileVersion](/versioned_docs/version-4.1.x/reference/functions/Get-ADTFileVersion.mdx) |
+| [Get-FreeDiskSpace](/versioned_docs/version-3.10.2/reference/functions/Get-FreeDiskSpace.mdx) | Yes | [Get-ADTFreeDiskSpace](/versioned_docs/version-4.1.x/reference/functions/Get-ADTFreeDiskSpace.mdx) |
| [Get-HardwarePlatform](/versioned_docs/version-3.10.2/reference/functions/Get-HardwarePlatform.mdx) | Yes | Deprecated |
-| [Get-IniValue](/versioned_docs/version-3.10.2/reference/functions/Get-IniValue.mdx) | Yes | [Get-ADTIniValue](/versioned_docs/version-4.0.x/reference/functions/Get-ADTIniValue.mdx) |
-| [Get-InstalledApplication](/versioned_docs/version-3.10.2/reference/functions/Get-InstalledApplication.mdx) | Yes | [Get-ADTApplication](/versioned_docs/version-4.0.x/reference/functions/Get-ADTApplication.mdx) |
-| [Get-LoggedOnUser](/versioned_docs/version-3.10.2/reference/functions/Get-LoggedOnUser.mdx) | Yes | [Get-ADTLoggedOnUser](/versioned_docs/version-4.0.x/reference/functions/Get-ADTLoggedOnUser.mdx) |
-| [Get-MsiExitCodeMessage](/versioned_docs/version-3.10.2/reference/functions/Get-MsiExitCodeMessage.mdx) | Yes | [Get-ADTMsiExitCodeMessage](/versioned_docs/version-4.0.x/reference/functions/Get-ADTMsiExitCodeMessage.mdx) |
-| [Get-MsiTableProperty](/versioned_docs/version-3.10.2/reference/functions/Get-MsiTableProperty.mdx) | Yes | [Get-ADTMsiTableProperty](/versioned_docs/version-4.0.x/reference/functions/Get-ADTMsiTableProperty.mdx) |
-| [Get-ObjectProperty](/versioned_docs/version-3.10.2/reference/functions/Get-ObjectProperty.mdx) | Yes | [Get-ADTObjectProperty](/versioned_docs/version-4.0.x/reference/functions/Get-ADTObjectProperty.mdx) |
-| [Get-PEFileArchitecture](/versioned_docs/version-3.10.2/reference/functions/Get-PEFileArchitecture.mdx) | Yes | [Get-ADTPEFileArchitecture](/versioned_docs/version-4.0.x/reference/functions/Get-ADTPEFileArchitecture.mdx) |
-| [Get-PendingReboot](/versioned_docs/version-3.10.2/reference/functions/Get-PendingReboot.mdx) | Yes | [Get-ADTPendingReboot](/versioned_docs/version-4.0.x/reference/functions/Get-ADTPendingReboot.mdx) |
-| [Get-RegistryKey](/versioned_docs/version-3.10.2/reference/functions/Get-RegistryKey.mdx) | Yes | [Get-ADTRegistryKey](/versioned_docs/version-4.0.x/reference/functions/Get-ADTRegistryKey.mdx) |
+| [Get-IniValue](/versioned_docs/version-3.10.2/reference/functions/Get-IniValue.mdx) | Yes | [Get-ADTIniValue](/versioned_docs/version-4.1.x/reference/functions/Get-ADTIniValue.mdx) |
+| [Get-InstalledApplication](/versioned_docs/version-3.10.2/reference/functions/Get-InstalledApplication.mdx) | Yes | [Get-ADTApplication](/versioned_docs/version-4.1.x/reference/functions/Get-ADTApplication.mdx) |
+| [Get-LoggedOnUser](/versioned_docs/version-3.10.2/reference/functions/Get-LoggedOnUser.mdx) | Yes | [Get-ADTLoggedOnUser](/versioned_docs/version-4.1.x/reference/functions/Get-ADTLoggedOnUser.mdx) |
+| [Get-MsiExitCodeMessage](/versioned_docs/version-3.10.2/reference/functions/Get-MsiExitCodeMessage.mdx) | Yes | [Get-ADTMsiExitCodeMessage](/versioned_docs/version-4.1.x/reference/functions/Get-ADTMsiExitCodeMessage.mdx) |
+| [Get-MsiTableProperty](/versioned_docs/version-3.10.2/reference/functions/Get-MsiTableProperty.mdx) | Yes | [Get-ADTMsiTableProperty](/versioned_docs/version-4.1.x/reference/functions/Get-ADTMsiTableProperty.mdx) |
+| [Get-ObjectProperty](/versioned_docs/version-3.10.2/reference/functions/Get-ObjectProperty.mdx) | Yes | [Get-ADTObjectProperty](/versioned_docs/version-4.1.x/reference/functions/Get-ADTObjectProperty.mdx) |
+| [Get-PEFileArchitecture](/versioned_docs/version-3.10.2/reference/functions/Get-PEFileArchitecture.mdx) | Yes | [Get-ADTPEFileArchitecture](/versioned_docs/version-4.1.x/reference/functions/Get-ADTPEFileArchitecture.mdx) |
+| [Get-PendingReboot](/versioned_docs/version-3.10.2/reference/functions/Get-PendingReboot.mdx) | Yes | [Get-ADTPendingReboot](/versioned_docs/version-4.1.x/reference/functions/Get-ADTPendingReboot.mdx) |
+| [Get-RegistryKey](/versioned_docs/version-3.10.2/reference/functions/Get-RegistryKey.mdx) | Yes | [Get-ADTRegistryKey](/versioned_docs/version-4.1.x/reference/functions/Get-ADTRegistryKey.mdx) |
| [Get-RunningProcesses](/versioned_docs/version-3.10.2/reference/functions/Get-RunningProcesses.mdx) | **NO** | Get-ADTRunningProcesses |
-| [Get-SchedulerTask](/versioned_docs/version-3.10.2/reference/functions/Get-SchedulerTask.mdx) | Yes | [Get-ADTSchedulerTask](/versioned_docs/version-4.0.x/reference/functions/Get-ADTSchedulerTask.mdx) |
-| [Get-ServiceStartMode](/versioned_docs/version-3.10.2/reference/functions/Get-ServiceStartMode.mdx) | Yes | [Get-ADTServiceStartMode](/versioned_docs/version-4.0.x/reference/functions/Get-ADTServiceStartMode.mdx) |
-| [Get-Shortcut](/versioned_docs/version-3.10.2/reference/functions/Get-Shortcut.mdx) | Yes | [Get-ADTShortcut](/versioned_docs/version-4.0.x/reference/functions/Get-ADTShortcut.mdx) |
-| [Get-UniversalDate](/versioned_docs/version-3.10.2/reference/functions/Get-UniversalDate.mdx) | Yes | [Get-ADTUniversalDate](/versioned_docs/version-4.0.x/reference/functions/Get-ADTUniversalDate.mdx) |
-| [Get-UserProfiles](/versioned_docs/version-3.10.2/reference/functions/Get-UserProfiles.mdx) | Yes | [Get-ADTUserProfiles](/versioned_docs/version-4.0.x/reference/functions/Get-ADTUserProfiles.mdx) |
-| [Get-WindowTitle](/versioned_docs/version-3.10.2/reference/functions/Get-WindowTitle.mdx) | Yes | [Get-ADTWindowTitle](/versioned_docs/version-4.0.x/reference/functions/Get-ADTWindowTitle.mdx) |
-| [Install-MSUpdates](/versioned_docs/version-3.10.2/reference/functions/Install-MSUpdates.mdx) | Yes | [Install-ADTMSUpdates](/versioned_docs/version-4.0.x/reference/functions/Install-ADTMSUpdates.mdx) |
-| [Install-SCCMSoftwareUpdates](/versioned_docs/version-3.10.2/reference/functions/Install-SCCMSoftwareUpdates.mdx) | Yes | [Install-ADTSCCMSoftwareUpdates](/versioned_docs/version-4.0.x/reference/functions/Install-ADTSCCMSoftwareUpdates.mdx) |
-| [Invoke-HKCURegistrySettingsForAllUsers](/versioned_docs/version-3.10.2/reference/functions/Invoke-HKCURegistrySettingsForAllUsers.mdx) | Yes | [Invoke-ADTAllUsersRegistryAction](/versioned_docs/version-4.0.x/reference/functions/Invoke-ADTAllUsersRegistryAction.mdx) |
-| [Invoke-ObjectMethod](/versioned_docs/version-3.10.2/reference/functions/Invoke-ObjectMethod.mdx) | Yes | [Invoke-ADTObjectMethod](/versioned_docs/version-4.0.x/reference/functions/Invoke-ADTObjectMethod.mdx) |
-| [Invoke-RegisterOrUnregisterDLL](/versioned_docs/version-3.10.2/reference/functions/Invoke-RegisterOrUnregisterDLL.mdx) | Yes | [Invoke-ADTRegSvr32](/versioned_docs/version-4.0.x/reference/functions/Invoke-ADTRegSvr32.mdx) / [Register-ADTDll](/versioned_docs/version-4.0.x/reference/functions/Register-ADTDll.mdx) / [Unregister-ADTDll](/versioned_docs/version-4.0.x/reference/functions/Unregister-ADTDll.mdx) |
-| [Invoke-SCCMTask](/versioned_docs/version-3.10.2/reference/functions/Invoke-SCCMTask.mdx) | Yes | [Invoke-ADTSCCMTask](/versioned_docs/version-4.0.x/reference/functions/Invoke-ADTSCCMTask.mdx) |
-| [New-Folder](/versioned_docs/version-3.10.2/reference/functions/New-Folder.mdx) | Yes | [New-ADTFolder](/versioned_docs/version-4.0.x/reference/functions/New-ADTFolder.mdx) |
-| [New-MsiTransform](/versioned_docs/version-3.10.2/reference/functions/New-MsiTransform.mdx) | Yes | [New-ADTMsiTransform](/versioned_docs/version-4.0.x/reference/functions/New-ADTMsiTransform.mdx) |
-| [New-Shortcut](/versioned_docs/version-3.10.2/reference/functions/New-Shortcut.mdx) | Yes | [New-ADTShortcut](/versioned_docs/version-4.0.x/reference/functions/New-ADTShortcut.mdx) |
-| [New-ZipFile](/versioned_docs/version-3.10.2/reference/functions/New-ZipFile.mdx) | Yes | [New-ADTZipFile](/versioned_docs/version-4.0.x/reference/functions/New-ADTZipFile.mdx) |
-| [Remove-ContentFromCache](/versioned_docs/version-3.10.2/reference/functions/Remove-ContentFromCache.mdx) | Yes | [Remove-ADTContentFromCache](/versioned_docs/version-4.0.x/reference/functions/Remove-ADTContentFromCache.mdx) |
-| [Remove-File](/versioned_docs/version-3.10.2/reference/functions/Remove-File.mdx) | Yes | [Remove-ADTFile](/versioned_docs/version-4.0.x/reference/functions/Remove-ADTFile.mdx) |
-| [Remove-FileFromUserProfiles](/versioned_docs/version-3.10.2/reference/functions/Remove-FileFromUserProfiles.mdx) | Yes | [Remove-ADTFileFromUserProfiles](/versioned_docs/version-4.0.x/reference/functions/Remove-ADTFileFromUserProfiles.mdx) |
-| [Remove-Folder](/versioned_docs/version-3.10.2/reference/functions/Remove-Folder.mdx) | Yes | [Remove-ADTFolder](/versioned_docs/version-4.0.x/reference/functions/Remove-ADTFolder.mdx) |
-| [Remove-InvalidFileNameChars](/versioned_docs/version-3.10.2/reference/functions/Remove-InvalidFileNameChars.mdx) | Yes | [Remove-ADTInvalidFileNameChars](/versioned_docs/version-4.0.x/reference/functions/Remove-ADTInvalidFileNameChars.mdx) |
-| [Remove-MSIApplications](/versioned_docs/version-3.10.2/reference/functions/Remove-MSIApplications.mdx) | Yes | [Uninstall-ADTApplication](/versioned_docs/version-4.0.x/reference/functions/Uninstall-ADTApplication.mdx) |
-| [Remove-RegistryKey](/versioned_docs/version-3.10.2/reference/functions/Remove-RegistryKey.mdx) | Yes | [Remove-ADTRegistryKey](/versioned_docs/version-4.0.x/reference/functions/Remove-ADTRegistryKey.mdx) |
-| [Resolve-Error](/versioned_docs/version-3.10.2/reference/functions/Resolve-Error.mdx) | Yes | [Resolve-ADTErrorRecord](/versioned_docs/version-4.0.x/reference/functions/Resolve-ADTErrorRecord.mdx) |
+| [Get-SchedulerTask](/versioned_docs/version-3.10.2/reference/functions/Get-SchedulerTask.mdx) | Yes | [Get-ADTSchedulerTask](/versioned_docs/version-4.1.x/reference/functions/Get-ADTSchedulerTask.mdx) |
+| [Get-ServiceStartMode](/versioned_docs/version-3.10.2/reference/functions/Get-ServiceStartMode.mdx) | Yes | [Get-ADTServiceStartMode](/versioned_docs/version-4.1.x/reference/functions/Get-ADTServiceStartMode.mdx) |
+| [Get-Shortcut](/versioned_docs/version-3.10.2/reference/functions/Get-Shortcut.mdx) | Yes | [Get-ADTShortcut](/versioned_docs/version-4.1.x/reference/functions/Get-ADTShortcut.mdx) |
+| [Get-UniversalDate](/versioned_docs/version-3.10.2/reference/functions/Get-UniversalDate.mdx) | Yes | [Get-ADTUniversalDate](/versioned_docs/version-4.1.x/reference/functions/Get-ADTUniversalDate.mdx) |
+| [Get-UserProfiles](/versioned_docs/version-3.10.2/reference/functions/Get-UserProfiles.mdx) | Yes | [Get-ADTUserProfiles](/versioned_docs/version-4.1.x/reference/functions/Get-ADTUserProfiles.mdx) |
+| [Get-WindowTitle](/versioned_docs/version-3.10.2/reference/functions/Get-WindowTitle.mdx) | Yes | [Get-ADTWindowTitle](/versioned_docs/version-4.1.x/reference/functions/Get-ADTWindowTitle.mdx) |
+| [Install-MSUpdates](/versioned_docs/version-3.10.2/reference/functions/Install-MSUpdates.mdx) | Yes | [Install-ADTMSUpdates](/versioned_docs/version-4.1.x/reference/functions/Install-ADTMSUpdates.mdx) |
+| [Install-SCCMSoftwareUpdates](/versioned_docs/version-3.10.2/reference/functions/Install-SCCMSoftwareUpdates.mdx) | Yes | [Install-ADTSCCMSoftwareUpdates](/versioned_docs/version-4.1.x/reference/functions/Install-ADTSCCMSoftwareUpdates.mdx) |
+| [Invoke-HKCURegistrySettingsForAllUsers](/versioned_docs/version-3.10.2/reference/functions/Invoke-HKCURegistrySettingsForAllUsers.mdx) | Yes | [Invoke-ADTAllUsersRegistryAction](/versioned_docs/version-4.1.x/reference/functions/Invoke-ADTAllUsersRegistryAction.mdx) |
+| [Invoke-ObjectMethod](/versioned_docs/version-3.10.2/reference/functions/Invoke-ObjectMethod.mdx) | Yes | [Invoke-ADTObjectMethod](/versioned_docs/version-4.1.x/reference/functions/Invoke-ADTObjectMethod.mdx) |
+| [Invoke-RegisterOrUnregisterDLL](/versioned_docs/version-3.10.2/reference/functions/Invoke-RegisterOrUnregisterDLL.mdx) | Yes | [Invoke-ADTRegSvr32](/versioned_docs/version-4.1.x/reference/functions/Invoke-ADTRegSvr32.mdx) / [Register-ADTDll](/versioned_docs/version-4.1.x/reference/functions/Register-ADTDll.mdx) / [Unregister-ADTDll](/versioned_docs/version-4.1.x/reference/functions/Unregister-ADTDll.mdx) |
+| [Invoke-SCCMTask](/versioned_docs/version-3.10.2/reference/functions/Invoke-SCCMTask.mdx) | Yes | [Invoke-ADTSCCMTask](/versioned_docs/version-4.1.x/reference/functions/Invoke-ADTSCCMTask.mdx) |
+| [New-Folder](/versioned_docs/version-3.10.2/reference/functions/New-Folder.mdx) | Yes | [New-ADTFolder](/versioned_docs/version-4.1.x/reference/functions/New-ADTFolder.mdx) |
+| [New-MsiTransform](/versioned_docs/version-3.10.2/reference/functions/New-MsiTransform.mdx) | Yes | [New-ADTMsiTransform](/versioned_docs/version-4.1.x/reference/functions/New-ADTMsiTransform.mdx) |
+| [New-Shortcut](/versioned_docs/version-3.10.2/reference/functions/New-Shortcut.mdx) | Yes | [New-ADTShortcut](/versioned_docs/version-4.1.x/reference/functions/New-ADTShortcut.mdx) |
+| [New-ZipFile](/versioned_docs/version-3.10.2/reference/functions/New-ZipFile.mdx) | Yes | [New-ADTZipFile](/versioned_docs/version-4.1.x/reference/functions/New-ADTZipFile.mdx) |
+| [Remove-ContentFromCache](/versioned_docs/version-3.10.2/reference/functions/Remove-ContentFromCache.mdx) | Yes | [Remove-ADTContentFromCache](/versioned_docs/version-4.1.x/reference/functions/Remove-ADTContentFromCache.mdx) |
+| [Remove-File](/versioned_docs/version-3.10.2/reference/functions/Remove-File.mdx) | Yes | [Remove-ADTFile](/versioned_docs/version-4.1.x/reference/functions/Remove-ADTFile.mdx) |
+| [Remove-FileFromUserProfiles](/versioned_docs/version-3.10.2/reference/functions/Remove-FileFromUserProfiles.mdx) | Yes | [Remove-ADTFileFromUserProfiles](/versioned_docs/version-4.1.x/reference/functions/Remove-ADTFileFromUserProfiles.mdx) |
+| [Remove-Folder](/versioned_docs/version-3.10.2/reference/functions/Remove-Folder.mdx) | Yes | [Remove-ADTFolder](/versioned_docs/version-4.1.x/reference/functions/Remove-ADTFolder.mdx) |
+| [Remove-InvalidFileNameChars](/versioned_docs/version-3.10.2/reference/functions/Remove-InvalidFileNameChars.mdx) | Yes | [Remove-ADTInvalidFileNameChars](/versioned_docs/version-4.1.x/reference/functions/Remove-ADTInvalidFileNameChars.mdx) |
+| [Remove-MSIApplications](/versioned_docs/version-3.10.2/reference/functions/Remove-MSIApplications.mdx) | Yes | [Uninstall-ADTApplication](/versioned_docs/version-4.1.x/reference/functions/Uninstall-ADTApplication.mdx) |
+| [Remove-RegistryKey](/versioned_docs/version-3.10.2/reference/functions/Remove-RegistryKey.mdx) | Yes | [Remove-ADTRegistryKey](/versioned_docs/version-4.1.x/reference/functions/Remove-ADTRegistryKey.mdx) |
+| [Resolve-Error](/versioned_docs/version-3.10.2/reference/functions/Resolve-Error.mdx) | Yes | [Resolve-ADTErrorRecord](/versioned_docs/version-4.1.x/reference/functions/Resolve-ADTErrorRecord.mdx) |
| [Resolve-Parameters](/versioned_docs/version-3.10.2/reference/functions/Resolve-Parameters.mdx) | **NO** | Resolve-ADTBoundParameters |
-| [Send-Keys](/versioned_docs/version-3.10.2/reference/functions/Send-Keys.mdx) | Yes | [Send-ADTKeys](/versioned_docs/version-4.0.x/reference/functions/Send-ADTKeys.mdx) |
-| [Set-ActiveSetup](/versioned_docs/version-3.10.2/reference/functions/Set-ActiveSetup.mdx) | Yes | [Set-ADTActiveSetup](/versioned_docs/version-4.0.x/reference/functions/Set-ADTActiveSetup.mdx) |
-| [Set-DeferHistory](/versioned_docs/version-3.10.2/reference/functions/Set-DeferHistory.mdx) | Yes | [Set-ADTDeferHistory](/versioned_docs/version-4.0.x/reference/functions/Set-ADTDeferHistory.mdx) |
-| [Set-IniValue](/versioned_docs/version-3.10.2/reference/functions/Set-IniValue.mdx) | Yes | [Set-ADTIniValue](/versioned_docs/version-4.0.x/reference/functions/Set-ADTIniValue.mdx) |
-| [Set-ItemPermission](/versioned_docs/version-3.10.2/reference/functions/Set-ItemPermission.mdx) | Yes | [Set-ADTItemPermission](/versioned_docs/version-4.0.x/reference/functions/Set-ADTItemPermission.mdx) |
-| [Set-MsiProperty](/versioned_docs/version-3.10.2/reference/functions/Set-MsiProperty.mdx) | Yes | [Set-ADTMsiProperty](/versioned_docs/version-4.0.x/reference/functions/Set-ADTMsiProperty.mdx) |
+| [Send-Keys](/versioned_docs/version-3.10.2/reference/functions/Send-Keys.mdx) | Yes | [Send-ADTKeys](/versioned_docs/version-4.1.x/reference/functions/Send-ADTKeys.mdx) |
+| [Set-ActiveSetup](/versioned_docs/version-3.10.2/reference/functions/Set-ActiveSetup.mdx) | Yes | [Set-ADTActiveSetup](/versioned_docs/version-4.1.x/reference/functions/Set-ADTActiveSetup.mdx) |
+| [Set-DeferHistory](/versioned_docs/version-3.10.2/reference/functions/Set-DeferHistory.mdx) | Yes | [Set-ADTDeferHistory](/versioned_docs/version-4.1.x/reference/functions/Set-ADTDeferHistory.mdx) |
+| [Set-IniValue](/versioned_docs/version-3.10.2/reference/functions/Set-IniValue.mdx) | Yes | [Set-ADTIniValue](/versioned_docs/version-4.1.x/reference/functions/Set-ADTIniValue.mdx) |
+| [Set-ItemPermission](/versioned_docs/version-3.10.2/reference/functions/Set-ItemPermission.mdx) | Yes | [Set-ADTItemPermission](/versioned_docs/version-4.1.x/reference/functions/Set-ADTItemPermission.mdx) |
+| [Set-MsiProperty](/versioned_docs/version-3.10.2/reference/functions/Set-MsiProperty.mdx) | Yes | [Set-ADTMsiProperty](/versioned_docs/version-4.1.x/reference/functions/Set-ADTMsiProperty.mdx) |
| [Set-PinnedApplication](/versioned_docs/version-3.10.2/reference/functions/Set-PinnedApplication.mdx) | Yes | Deprecated |
-| [Set-RegistryKey](/versioned_docs/version-3.10.2/reference/functions/Set-RegistryKey.mdx) | Yes | [Set-ADTRegistryKey](/versioned_docs/version-4.0.x/reference/functions/Set-ADTRegistryKey.mdx) |
-| [Set-ServiceStartMode](/versioned_docs/version-3.10.2/reference/functions/Set-ServiceStartMode.mdx) | Yes | [Set-ADTServiceStartMode](/versioned_docs/version-4.0.x/reference/functions/Set-ADTServiceStartMode.mdx) |
-| [Set-Shortcut](/versioned_docs/version-3.10.2/reference/functions/Set-Shortcut.mdx) | Yes | [Set-ADTShortcut](/versioned_docs/version-4.0.x/reference/functions/Set-ADTShortcut.mdx) |
-| [Show-BalloonTip](/versioned_docs/version-3.10.2/reference/functions/Show-BalloonTip.mdx) | Yes | [Show-ADTBalloonTip](/versioned_docs/version-4.0.x/reference/functions/Show-ADTBalloonTip.mdx) |
-| [Show-DialogBox](/versioned_docs/version-3.10.2/reference/functions/Show-DialogBox.mdx) | Yes | [Show-ADTDialogBox](/versioned_docs/version-4.0.x/reference/functions/Show-ADTDialogBox.mdx) |
-| [Show-InstallationProgress](/versioned_docs/version-3.10.2/reference/functions/Show-InstallationProgress.mdx) | Yes | [Show-ADTInstallationProgress](/versioned_docs/version-4.0.x/reference/functions/Show-ADTInstallationProgress.mdx) |
-| [Show-InstallationPrompt](/versioned_docs/version-3.10.2/reference/functions/Show-InstallationPrompt.mdx) | Yes | [Show-ADTInstallationPrompt](/versioned_docs/version-4.0.x/reference/functions/Show-ADTInstallationPrompt.mdx) |
-| [Show-InstallationRestartPrompt](/versioned_docs/version-3.10.2/reference/functions/Show-InstallationRestartPrompt.mdx) | Yes | [Show-ADTInstallationRestartPrompt](/versioned_docs/version-4.0.x/reference/functions/Show-ADTInstallationRestartPrompt.mdx) |
-| [Show-InstallationWelcome](/versioned_docs/version-3.10.2/reference/functions/Show-InstallationWelcome.mdx) | Yes | [Show-ADTInstallationWelcome](/versioned_docs/version-4.0.x/reference/functions/Show-ADTInstallationWelcome.mdx) |
-| [Show-WelcomePrompt](/versioned_docs/version-3.10.2/reference/functions/Show-WelcomePrompt.mdx) | **NO** | [Show-ADTInstallationWelcome](/versioned_docs/version-4.0.x/reference/functions/Show-ADTInstallationWelcome.mdx) |
-| [Start-ServiceAndDependencies](/versioned_docs/version-3.10.2/reference/functions/Start-ServiceAndDependencies.mdx) | Yes | [Start-ADTServiceAndDependencies](/versioned_docs/version-4.0.x/reference/functions/Start-ADTServiceAndDependencies.mdx) |
-| [Stop-ServiceAndDependencies](/versioned_docs/version-3.10.2/reference/functions/Stop-ServiceAndDependencies.mdx) | Yes | [Stop-ADTServiceAndDependencies](/versioned_docs/version-4.0.x/reference/functions/Stop-ADTServiceAndDependencies.mdx) |
-| [Test-Battery](/versioned_docs/version-3.10.2/reference/functions/Test-Battery.mdx) | Yes | [Test-ADTBattery](/versioned_docs/version-4.0.x/reference/functions/Test-ADTBattery.mdx) |
-| [Test-IsMutexAvailable](/versioned_docs/version-3.10.2/reference/functions/Test-IsMutexAvailable.mdx) | Yes | [Test-ADTMutexAvailability](/versioned_docs/version-4.0.x/reference/functions/Test-ADTMutexAvailability.mdx) |
-| [Test-MSUpdates](/versioned_docs/version-3.10.2/reference/functions/Test-MSUpdates.mdx) | Yes | [Test-ADTMSUpdates](/versioned_docs/version-4.0.x/reference/functions/Test-ADTMSUpdates.mdx) |
-| [Test-NetworkConnection](/versioned_docs/version-3.10.2/reference/functions/Test-NetworkConnection.mdx) | Yes | [Test-ADTNetworkConnection](/versioned_docs/version-4.0.x/reference/functions/Test-ADTNetworkConnection.mdx) |
-| [Test-PowerPoint](/versioned_docs/version-3.10.2/reference/functions/Test-PowerPoint.mdx) | Yes | [Test-ADTPowerPoint](/versioned_docs/version-4.0.x/reference/functions/Test-ADTPowerPoint.mdx) |
-| [Test-RegistryValue](/versioned_docs/version-3.10.2/reference/functions/Test-RegistryValue.mdx) | Yes | [Test-ADTRegistryValue](/versioned_docs/version-4.0.x/reference/functions/Test-ADTRegistryValue.mdx) |
-| [Test-ServiceExists](/versioned_docs/version-3.10.2/reference/functions/Test-ServiceExists.mdx) | Yes | [Test-ADTServiceExists](/versioned_docs/version-4.0.x/reference/functions/Test-ADTServiceExists.mdx) |
-| [Unblock-AppExecution](/versioned_docs/version-3.10.2/reference/functions/Unblock-AppExecution.mdx) | Yes | [Unblock-ADTAppExecution](/versioned_docs/version-4.0.x/reference/functions/Unblock-ADTAppExecution.mdx) |
-| [Update-Desktop](/versioned_docs/version-3.10.2/reference/functions/Update-Desktop.mdx) | Yes | [Update-ADTDesktop](/versioned_docs/version-4.0.x/reference/functions/Update-ADTDesktop.mdx) |
-| [Update-GroupPolicy](/versioned_docs/version-3.10.2/reference/functions/Update-GroupPolicy.mdx) | Yes | [Update-ADTGroupPolicy](/versioned_docs/version-4.0.x/reference/functions/Update-ADTGroupPolicy.mdx) |
-| [Update-SessionEnvironmentVariables](/versioned_docs/version-3.10.2/reference/functions/Update-SessionEnvironmentVariables.mdx) | Yes | [Update-ADTEnvironmentPsProvider](/versioned_docs/version-4.0.x/reference/functions/Update-ADTEnvironmentPsProvider.mdx) |
-| [Write-FunctionHeaderOrFooter](/versioned_docs/version-3.10.2/reference/functions/Write-FunctionHeaderOrFooter.mdx) | **NO** | [Initialize-ADTFunction](/versioned_docs/version-4.0.x/reference/functions/Initialize-ADTFunction.mdx) / [Complete-ADTFunction](/versioned_docs/version-4.0.x/reference/functions/Complete-ADTFunction.mdx) |
-| [Write-Log](/versioned_docs/version-3.10.2/reference/functions/Write-Log.mdx) | Yes | [Write-ADTLogEntry](/versioned_docs/version-4.0.x/reference/functions/Write-ADTLogEntry.mdx) |
+| [Set-RegistryKey](/versioned_docs/version-3.10.2/reference/functions/Set-RegistryKey.mdx) | Yes | [Set-ADTRegistryKey](/versioned_docs/version-4.1.x/reference/functions/Set-ADTRegistryKey.mdx) |
+| [Set-ServiceStartMode](/versioned_docs/version-3.10.2/reference/functions/Set-ServiceStartMode.mdx) | Yes | [Set-ADTServiceStartMode](/versioned_docs/version-4.1.x/reference/functions/Set-ADTServiceStartMode.mdx) |
+| [Set-Shortcut](/versioned_docs/version-3.10.2/reference/functions/Set-Shortcut.mdx) | Yes | [Set-ADTShortcut](/versioned_docs/version-4.1.x/reference/functions/Set-ADTShortcut.mdx) |
+| [Show-BalloonTip](/versioned_docs/version-3.10.2/reference/functions/Show-BalloonTip.mdx) | Yes | [Show-ADTBalloonTip](/versioned_docs/version-4.1.x/reference/functions/Show-ADTBalloonTip.mdx) |
+| [Show-DialogBox](/versioned_docs/version-3.10.2/reference/functions/Show-DialogBox.mdx) | Yes | [Show-ADTDialogBox](/versioned_docs/version-4.1.x/reference/functions/Show-ADTDialogBox.mdx) |
+| [Show-InstallationProgress](/versioned_docs/version-3.10.2/reference/functions/Show-InstallationProgress.mdx) | Yes | [Show-ADTInstallationProgress](/versioned_docs/version-4.1.x/reference/functions/Show-ADTInstallationProgress.mdx) |
+| [Show-InstallationPrompt](/versioned_docs/version-3.10.2/reference/functions/Show-InstallationPrompt.mdx) | Yes | [Show-ADTInstallationPrompt](/versioned_docs/version-4.1.x/reference/functions/Show-ADTInstallationPrompt.mdx) |
+| [Show-InstallationRestartPrompt](/versioned_docs/version-3.10.2/reference/functions/Show-InstallationRestartPrompt.mdx) | Yes | [Show-ADTInstallationRestartPrompt](/versioned_docs/version-4.1.x/reference/functions/Show-ADTInstallationRestartPrompt.mdx) |
+| [Show-InstallationWelcome](/versioned_docs/version-3.10.2/reference/functions/Show-InstallationWelcome.mdx) | Yes | [Show-ADTInstallationWelcome](/versioned_docs/version-4.1.x/reference/functions/Show-ADTInstallationWelcome.mdx) |
+| [Show-WelcomePrompt](/versioned_docs/version-3.10.2/reference/functions/Show-WelcomePrompt.mdx) | **NO** | [Show-ADTInstallationWelcome](/versioned_docs/version-4.1.x/reference/functions/Show-ADTInstallationWelcome.mdx) |
+| [Start-ServiceAndDependencies](/versioned_docs/version-3.10.2/reference/functions/Start-ServiceAndDependencies.mdx) | Yes | [Start-ADTServiceAndDependencies](/versioned_docs/version-4.1.x/reference/functions/Start-ADTServiceAndDependencies.mdx) |
+| [Stop-ServiceAndDependencies](/versioned_docs/version-3.10.2/reference/functions/Stop-ServiceAndDependencies.mdx) | Yes | [Stop-ADTServiceAndDependencies](/versioned_docs/version-4.1.x/reference/functions/Stop-ADTServiceAndDependencies.mdx) |
+| [Test-Battery](/versioned_docs/version-3.10.2/reference/functions/Test-Battery.mdx) | Yes | [Test-ADTBattery](/versioned_docs/version-4.1.x/reference/functions/Test-ADTBattery.mdx) |
+| [Test-IsMutexAvailable](/versioned_docs/version-3.10.2/reference/functions/Test-IsMutexAvailable.mdx) | Yes | [Test-ADTMutexAvailability](/versioned_docs/version-4.1.x/reference/functions/Test-ADTMutexAvailability.mdx) |
+| [Test-MSUpdates](/versioned_docs/version-3.10.2/reference/functions/Test-MSUpdates.mdx) | Yes | [Test-ADTMSUpdates](/versioned_docs/version-4.1.x/reference/functions/Test-ADTMSUpdates.mdx) |
+| [Test-NetworkConnection](/versioned_docs/version-3.10.2/reference/functions/Test-NetworkConnection.mdx) | Yes | [Test-ADTNetworkConnection](/versioned_docs/version-4.1.x/reference/functions/Test-ADTNetworkConnection.mdx) |
+| [Test-PowerPoint](/versioned_docs/version-3.10.2/reference/functions/Test-PowerPoint.mdx) | Yes | [Test-ADTPowerPoint](/versioned_docs/version-4.1.x/reference/functions/Test-ADTPowerPoint.mdx) |
+| [Test-RegistryValue](/versioned_docs/version-3.10.2/reference/functions/Test-RegistryValue.mdx) | Yes | [Test-ADTRegistryValue](/versioned_docs/version-4.1.x/reference/functions/Test-ADTRegistryValue.mdx) |
+| [Test-ServiceExists](/versioned_docs/version-3.10.2/reference/functions/Test-ServiceExists.mdx) | Yes | [Test-ADTServiceExists](/versioned_docs/version-4.1.x/reference/functions/Test-ADTServiceExists.mdx) |
+| [Unblock-AppExecution](/versioned_docs/version-3.10.2/reference/functions/Unblock-AppExecution.mdx) | Yes | [Unblock-ADTAppExecution](/versioned_docs/version-4.1.x/reference/functions/Unblock-ADTAppExecution.mdx) |
+| [Update-Desktop](/versioned_docs/version-3.10.2/reference/functions/Update-Desktop.mdx) | Yes | [Update-ADTDesktop](/versioned_docs/version-4.1.x/reference/functions/Update-ADTDesktop.mdx) |
+| [Update-GroupPolicy](/versioned_docs/version-3.10.2/reference/functions/Update-GroupPolicy.mdx) | Yes | [Update-ADTGroupPolicy](/versioned_docs/version-4.1.x/reference/functions/Update-ADTGroupPolicy.mdx) |
+| [Update-SessionEnvironmentVariables](/versioned_docs/version-3.10.2/reference/functions/Update-SessionEnvironmentVariables.mdx) | Yes | [Update-ADTEnvironmentPsProvider](/versioned_docs/version-4.1.x/reference/functions/Update-ADTEnvironmentPsProvider.mdx) |
+| [Write-FunctionHeaderOrFooter](/versioned_docs/version-3.10.2/reference/functions/Write-FunctionHeaderOrFooter.mdx) | **NO** | [Initialize-ADTFunction](/versioned_docs/version-4.1.x/reference/functions/Initialize-ADTFunction.mdx) / [Complete-ADTFunction](/versioned_docs/version-4.1.x/reference/functions/Complete-ADTFunction.mdx) |
+| [Write-Log](/versioned_docs/version-3.10.2/reference/functions/Write-Log.mdx) | Yes | [Write-ADTLogEntry](/versioned_docs/version-4.1.x/reference/functions/Write-ADTLogEntry.mdx) |
diff --git a/versioned_docs/version-4.1.x/reference/variables.mdx b/versioned_docs/version-4.1.x/reference/variables.mdx
index 351961e..4f79440 100644
--- a/versioned_docs/version-4.1.x/reference/variables.mdx
+++ b/versioned_docs/version-4.1.x/reference/variables.mdx
@@ -164,13 +164,6 @@ Variables specific to a particular deployment, such as `$appName` and `$appVersi
| :---------------------------- | :----------------------------------------------------------- |
| `$MSIProductCodeRegExPattern` | Contains the regex pattern used to detect a MSI product code |
-### COM Objects
-
-| Variable | Description |
-| :---------- | :------------------------------------------------------------ |
-| `$Shell` | Represents and allows use of the WScript.Shell COM object |
-| `$ShellApp` | Represents and allows use of the Shell.Application COM object |
-
### Logged On Users
| Variable | Description |
@@ -197,4 +190,4 @@ Variables specific to a particular deployment, such as `$appName` and `$appVersi
| `$invalidFileNameChars` | Array of all invalid file name characters used to sanitize variables which may be used to create file names. |
| `$LocalAdministratorsGroup` | Returns the name of the local Administrators group, typically `BUILTIN\Administrators` |
| `$LocalUsersGroup` | Returns the name of the local Users group, typically `BUILTIN\Users` |
-| `$RunningTaskSequence` | Is the current process running in a SCCM task sequence? (e.g. `$true` / `$false`) |
+| `$RunningTaskSequence` | Is the current process running in a ConfigMgr task sequence? (e.g. `$true` / `$false`) |
diff --git a/versioned_docs/version-4.1.x/usage/how-to-deploy.mdx b/versioned_docs/version-4.1.x/usage/how-to-deploy.mdx
index 6705963..2e8a434 100644
--- a/versioned_docs/version-4.1.x/usage/how-to-deploy.mdx
+++ b/versioned_docs/version-4.1.x/usage/how-to-deploy.mdx
@@ -38,13 +38,13 @@ Additionally, as of v4.1.0:
The following parameters are accepted by `Invoke-AppDeployToolkit.ps1` and `Invoke-AppDeployToolkit.exe`:
-| Parameter | Values | Description |
-| --------------------------------------------------------------------- | ---------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------ |
-| `-DeploymentType` | Install *(default)*
Uninstall
Repair | Specifies the deployment type. |
-| `-DeployMode` | Interactive *(default)*
Silent
NonInteractive | Controls dialog display behavior. NonInteractive allows progress dialogs but suppresses any UI elements requiring interaction. |
-| `-SuppressRebootPassThru` | | Suppresses return of 3010 'Reboot Required' exit codes and returns 0 instead. |
-| `-TerminalServerMode` | | Changes to user install mode for RDS/Citrix servers. |
-| `-DisableLogging` | | Disables logging to file. |
+| Parameter | Values | Description |
+| --------------------------------------------------------------------- | ------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `-DeploymentType` | Install *(default)*
Uninstall
Repair | Specifies the deployment type. |
+| `-DeployMode` | Auto *(default)*
Interactive
Silent
NonInteractive | Controls dialog display behavior:
- Auto: By default will run silent unless there are applications to be closed.
- Interactive: All UI functions will be interactive.
- NonInteractive: Only non-interactive UI elements such as progress dialogs will be displayed.
- Silent: All UI elements will be suppressed.|
+| `-SuppressRebootPassThru` | | Suppresses return of 3010 'Reboot Required' exit codes and returns 0 instead. |
+| `-TerminalServerMode` | | Changes to user install mode for RDS/Citrix servers. |
+| `-DisableLogging` | | Disables logging to file.
In addition, `Invoke-AppDeployToolkit.exe` supports the following parameters:
@@ -53,55 +53,55 @@ In addition, `Invoke-AppDeployToolkit.exe` supports the following parameters:
| `/Debug` | | Launches the script in a visible window displaying live logging output on-screen. |
| `/32` | | Launches the script using PowerShell x86. This is useful for compatibility with x86 libraries or components. |
| `/Core` | | Launches the script using PowerShell Core (pwsh.exe). |
-| `-File` | *.ps1 | Specify a custom script file to run instead of the default `Invoke-AppDeployToolkit.ps1`. |
-| `*.ps1` | | Positional parameter alternative to `-File`; specify a custom script file directly (without `-File`). |
+| `-File` | *.ps1 | Specify a custom script file to run instead of the default `Invoke-AppDeployToolkit.ps1`. |
+| `*.ps1` | | Positional parameter alternative to `-File`; specify a custom script file directly (without `-File`). |
### Examples
-Deploy an application for installation in interactive mode:
+Deploy an application for installation in auto mode:
-```powershell
+```
Invoke-AppDeployToolkit.exe
```
-or:
+To force Interactive mode (e.g. when prompts must be actioned by a user):
-```powershell
+```
Invoke-AppDeployToolkit.exe -DeploymentType Install -DeployMode Interactive
```
-Deploy an application in silent mode with 3010 reboot codes suppressed:
+Deploy an application in silent mode with reboot exit codes suppressed:
-```powershell
+```
Invoke-AppDeployToolkit.exe -DeploymentType Install -DeployMode Silent -SuppressRebootPassThru
```
Deploy an application for uninstallation in non-interactive mode:
-```powershell
-Invoke-AppDeployToolkit.ps1 -DeploymentType Uninstall -DeployMode NonInteractive
+```
+Invoke-AppDeployToolkit.exe -DeploymentType Uninstall -DeployMode NonInteractive
```
Deploy an application for silent installation using PowerShell x86 in debug mode:
-```powershell
+```
Invoke-AppDeployToolkit.exe /32 /Debug -DeploymentType Install -DeployMode Silent
```
Deploy an application for silent installation using PowerShell Core:
-```powershell
+```
Invoke-AppDeployToolkit.exe /Core -DeploymentType Install -DeployMode Silent
```
Deploy an application with a custom script name:
-```powershell
+```
Invoke-AppDeployToolkit.exe Custom-Script.ps1
```
or:
-```powershell
+```
Invoke-AppDeployToolkit.exe -File Custom-Script.ps1
```