diff --git a/.gitignore b/.gitignore index ff6725f..6673bff 100644 --- a/.gitignore +++ b/.gitignore @@ -112,3 +112,5 @@ dist # VSCode History .history/ + +.worktrees/ diff --git a/blog/2023-10-30-new-website.md b/blog/2023-10-30-new-website.md index 9802073..4593691 100644 --- a/blog/2023-10-30-new-website.md +++ b/blog/2023-10-30-new-website.md @@ -2,7 +2,7 @@ title: PSADT has a new home authors: [sintaxasn] tags: [psappdeploytoolkit, powershell, website] -description: This is our 1st post on the new PSADT website! +description: PSAppDeployToolkit gets a fresh new website with improved documentation flow and a comprehensive reference guide. --- ## New Website diff --git a/blog/2023-12-06-qna-webinar.md b/blog/2023-12-06-qna-webinar.md index be092b0..015b76c 100644 --- a/blog/2023-12-06-qna-webinar.md +++ b/blog/2023-12-06-qna-webinar.md @@ -2,7 +2,7 @@ title: PSADT and Patch My PC's Stewardship - Q&A Webinar authors: [sintaxasn] tags: [psappdeploytoolkit, patchmypc, webinar] -description: The PSADT & PMPC Q&A webinar is now live! +description: Watch our Q&A session discussing the PSAppDeployToolkit and Patch My PC partnership, and what it means for the future of PSADT. --- ## Webinar diff --git a/blog/2024-03-28-psadt-3.10.0-and-psadt-101-webinar.md b/blog/2024-03-28-psadt-3.10.0-and-psadt-101-webinar.md index a694b18..78121d1 100644 --- a/blog/2024-03-28-psadt-3.10.0-and-psadt-101-webinar.md +++ b/blog/2024-03-28-psadt-3.10.0-and-psadt-101-webinar.md @@ -2,7 +2,7 @@ title: v3.10 release & PSADT 101 webinar authors: [sintaxasn] tags: [psappdeploytoolkit, powershell, release, webinar] -description: This is our 1st post on the new PSADT website +description: Introducing PSADT 3.10.0 with Edge extension management, file caching, high DPI support, and 20+ improvements. Plus a 101 webinar! --- ## PSADT 3.10.0 diff --git a/blog/2024-05-03-psadt-3.10.1.md b/blog/2024-05-03-psadt-3.10.1.md index 2803ab3..cbba644 100644 --- a/blog/2024-05-03-psadt-3.10.1.md +++ b/blog/2024-05-03-psadt-3.10.1.md @@ -2,7 +2,7 @@ title: v3.10.1 release authors: [sintaxasn] tags: [psappdeploytoolkit, powershell, release, webinar] -description: Bugfix release! +description: PSADT 3.10.1 addresses several bugs from the previous release, with improved documentation and updated examples. --- ## 3.10.1 details diff --git a/blog/2024-12-05-psadt-4.0.md b/blog/2024-12-05-psadt-4.0.md index cc1f23e..577bd81 100644 --- a/blog/2024-12-05-psadt-4.0.md +++ b/blog/2024-12-05-psadt-4.0.md @@ -2,7 +2,7 @@ title: v4.0 now available authors: [sintaxasn] tags: [psappdeploytoolkit, powershell, release, webinar] -description: Bugfix release! +description: The biggest PSADT release ever is here! v4.0 brings major improvements with backwards compatibility and seamless migration tools. --- ## PSADT 4.0 details diff --git a/blog/authors.yml b/blog/authors.yml index 618662a..99ececc 100644 --- a/blog/authors.yml +++ b/blog/authors.yml @@ -2,6 +2,7 @@ sintaxasn: name: Dan Cunningham title: PSAppDeployToolkit Co-Founder image_url: https://gravatar.com/userimage/600867/699009a13cdc7113e0d584e51c26a588.jpeg?size=256 + page: true socials: x: sintaxasn linkedin: sintaxasn @@ -11,8 +12,14 @@ seanlillis: name: Sean Lillis title: PSAppDeployToolkit Co-Founder url: https://github.com/slillis + page: true + socials: + github: slillis mmashwani: name: Muhammad Mashwani title: PSAppDeployToolkit Developer url: https://github.com/mmashwani + page: true + socials: + github: mmashwani diff --git a/docs/deployment-concepts/deployment-structure.mdx b/docs/deployment-concepts/deployment-structure.mdx index 052057e..618cb23 100644 --- a/docs/deployment-concepts/deployment-structure.mdx +++ b/docs/deployment-concepts/deployment-structure.mdx @@ -3,7 +3,6 @@ sidebar_position: 1 title: 'Deployment Structure' description: 'The file / folder structure a PSADT deployment explained.' slug: /deployment-concepts/deployment-structure -hide_title: true tags: - Usage - Archive diff --git a/docs/deployment-concepts/invoke-appdeploytoolkit.mdx b/docs/deployment-concepts/invoke-appdeploytoolkit.mdx index 275bf4b..45a495d 100644 --- a/docs/deployment-concepts/invoke-appdeploytoolkit.mdx +++ b/docs/deployment-concepts/invoke-appdeploytoolkit.mdx @@ -1,9 +1,8 @@ ---- +--- sidebar_position: 2 title: 'Invoke-AppDeployToolkit' description: 'Understanding how a PSAppDeployToolkit deployment is structured.' slug: /deployment-concepts/invoke-appdeploytoolkit -hide_title: true tags: - Usage - Invoke-AppDeployToolkit @@ -129,7 +128,7 @@ The Post-Phase handles cleanup, configuration, and finalization: The script is broken down into the following sections: -| **Install Type** | **Phase** | **Deployment Tasks** | +| Install Type | Phase | Deployment Tasks | | :------------------------ | :----------------| :---------------------------------------------------------------------------------- | | `Install-ADTDeployment` | `Pre-Install` | Prompt to close processes, allow defer, uninstall / clean-up previous versions | | | `Install` | Install application | diff --git a/docs/examples/admxtemplate-LogPath.mdx b/docs/examples/admxtemplate-LogPath.mdx index e288fe5..d40e2a9 100644 --- a/docs/examples/admxtemplate-LogPath.mdx +++ b/docs/examples/admxtemplate-LogPath.mdx @@ -2,7 +2,6 @@ sidebar_position: 1 title: 'GPO - Toolkit LogPath' description: 'How to define the Toolkit LogPath using a Group Policy Object' -hide_title: true slug: /examples/admxtemplate-LogPath tags: - Group Policy @@ -26,7 +25,7 @@ Assumptions: ## Create a new Group Policy Object - Start by opening the Group Policy Management Editor - - Then Right-Click on 'Group Policy Objects' and select 'New' + - Then Right-Click on 'Group Policy Objects' and select 'New' ![Create New GPO](../images/example-admx-LogPath-00-GPO-new.png) @@ -121,4 +120,4 @@ Now when a deployment is run, PSAppDeployToolkit will import any settings in Gro Below we can see that the deployment is running and the log file was created in the `ProgramData\Microsoft\IntuneManagementExtension\Logs` folder -![Run a Deployment](../images/example-admx-LogPath-11-GPO-new.png) \ No newline at end of file +![Run a Deployment](../images/example-admx-LogPath-11-GPO-new.png) diff --git a/docs/examples/googlechrome-configmgr.mdx b/docs/examples/googlechrome-configmgr.mdx index 5edcd96..5d37189 100644 --- a/docs/examples/googlechrome-configmgr.mdx +++ b/docs/examples/googlechrome-configmgr.mdx @@ -1,8 +1,7 @@ ---- +--- sidebar_position: 2 -title: 'MCM - Google Chrome' +title: 'Config Manager - Google Chrome' description: 'How to package and deploy Google Chrome Enterprise using Microsoft Configuration Manager.' -hide_title: true slug: /examples/googlechrome-configmgr tags: - Google Chrome diff --git a/docs/getting-started/creating-a-new-deployment.mdx b/docs/getting-started/creating-a-new-deployment.mdx index 7f00f57..4d94c27 100644 --- a/docs/getting-started/creating-a-new-deployment.mdx +++ b/docs/getting-started/creating-a-new-deployment.mdx @@ -3,7 +3,6 @@ sidebar_position: 4 title: 'Creating a new deployment' description: 'How to create a new deployment from a deployment template.' slug: /getting-started/creating-a-new-deployment -hide_title: true tags: - Usage - Template @@ -16,9 +15,7 @@ tags: :::info A **deployment template** contains the source files for an application deployment, the deployment script that defines the deployment logic, and the PSADT module and configuration. It is typically entirely self-contained and can be shared with others to deploy the application in a consistent manner. - ::: - ## Using the module The PSAppDeployToolkit module can create a new deployment from PSADT's internal templates. diff --git a/docs/getting-started/download.mdx b/docs/getting-started/download.mdx index 3071efb..ec316a7 100644 --- a/docs/getting-started/download.mdx +++ b/docs/getting-started/download.mdx @@ -1,8 +1,7 @@ ---- +--- sidebar_position: 3 title: 'Download' description: 'How to download a copy of PSAppDeployToolkit.' -hide_title: true slug: /getting-started/download tags: - Download @@ -29,7 +28,7 @@ Alternatively, you can download the release assets: 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** | +| 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. | diff --git a/docs/getting-started/faq.mdx b/docs/getting-started/faq.mdx index 073a534..fd61b1b 100644 --- a/docs/getting-started/faq.mdx +++ b/docs/getting-started/faq.mdx @@ -3,7 +3,6 @@ sidebar_position: 9 title: 'FAQ' description: 'Frequently Asked Questions' slug: /getting-started/faq -hide_title: true tags: - Getting Started - FAQ diff --git a/docs/getting-started/licensing.mdx b/docs/getting-started/licensing.mdx index ca56f74..588a32c 100644 --- a/docs/getting-started/licensing.mdx +++ b/docs/getting-started/licensing.mdx @@ -2,7 +2,6 @@ sidebar_position: 1 title: 'Licensing' description: 'Information on how PSAppDeployToolkit is licensed.' -hide_title: true slug: /getting-started/licensing tags: - Licensing diff --git a/docs/getting-started/release-notes.mdx b/docs/getting-started/release-notes.mdx index ea49833..07d1610 100644 --- a/docs/getting-started/release-notes.mdx +++ b/docs/getting-started/release-notes.mdx @@ -3,7 +3,6 @@ sidebar_position: 5 title: 'Release Notes' description: 'Release notes for PSAppDeployToolkit v4.1' slug: /getting-started/release-notes -hide_title: true tags: - Changes - Getting Started @@ -11,110 +10,110 @@ tags: # Release Notes -## 🖥️ Whats New in v4.1.5 - 2025-09-07 +## v4.1.5 (2025-09-07) -### 🛠️ Fixes +### Fixes - Added more error info to assist with troubleshooting issue - Fixed issue that prevented the toolkit running under some Intune deployments - Added a fallback default icon where we're unable to obtain one from a running process -- Fixed issue where Get-ADTShortcut hit an error when the icon path contained an environment variable +- Fixed issue where `Get-ADTShortcut` hit an error when the icon path contained an environment variable - Fixed `OutOfMemoryException` issues within `Resolve-ADTErrorRecord` -## 🖥️ Whats New in v4.1.4 - 2025-09-04 +## v4.1.4 (2025-09-04) -### 🎯 Improvements +### Improvements - Changed to allow IFEO-blocked processes that get invoked as SYSTEM to execute. -- Added warning within Block-ADTAppExecution if generated command line is > 255 chars -- Added -DisableInheritance switch to Set-ADTItemPermission to restore 3.x behaviour for those who want it. -- Added IsTerminalServer to New-ADTEnvironmentTable exports -- Updated Show-ADTInstallationWelcome documentation -- Changed to using GetLastInputInfo() for more accurate console user idle time. -- Changed Exit-ADTInvocation to expose -NoShellExit parameter on Close-ADTSession. +- Added warning within `Block-ADTAppExecution` if generated command line is > 255 chars +- Added `-DisableInheritance` switch to `Set-ADTItemPermission` to restore 3.x behaviour for those who want it. +- Added `IsTerminalServer` to `New-ADTEnvironmentTable` exports +- Updated `Show-ADTInstallationWelcome` documentation +- Changed to using `GetLastInputInfo()` for more accurate console user idle time. +- Changed `Exit-ADTInvocation` to expose `-NoShellExit` parameter on `Close-ADTSession`. - Made the fluent dialogs properly honour right-to-left cultures -### 🛠️ Fixes - -- Fixed quote handling in InstallSource and InstallLocation properties in Get-ADTApplication -- Set default parameter set for Start-ADTMspProcess. -- Changed Start-ADTMsiProcessAsUser to ensure it uses a user-writeable log location. -- Fixed bad parameter set grouping for Start-ADTProcess family of functions. -- Fixed issue where Set-ADTItemPermissions always needed admin rights to change inheritance options -- Fixed issue where Set-ADTActiveSetup -PurgeActiveSetupKey would only clean up keys for the active user. -- Fixed StdOut/StdErr/Interleaved printing within Start-ADTProcess. -- Changed Start-ADTProcessAsUser to allow operating with any valid user, such as disconnected RDP users. -- Changed DeploymentSession to handle situations where people put curly braces into InstallTitle. -- Improved version handling within Set-ADTActiveSetup +### Fixes + +- Fixed quote handling in `InstallSource` and `InstallLocation` properties in `Get-ADTApplication` +- Set default parameter set for `Start-ADTMspProcess`. +- Changed `Start-ADTMsiProcessAsUser` to ensure it uses a user-writeable log location. +- Fixed bad parameter set grouping for `Start-ADTProcess` family of functions. +- Fixed issue where `Set-ADTItemPermissions` always needed admin rights to change inheritance options +- Fixed issue where `Set-ADTActiveSetup` `-PurgeActiveSetupKey` would only clean up keys for the active user. +- Fixed `StdOut`/`StdErr`/`Interleaved` printing within `Start-ADTProcess`. +- Changed `Start-ADTProcessAsUser` to allow operating with any valid user, such as disconnected RDP users. +- Changed `DeploymentSession` to handle situations where people put curly braces into `InstallTitle`. +- Improved version handling within `Set-ADTActiveSetup` - Fixed dynamic code trust verification issues with iNKORE dlls - Fixed access denied issues when querying running processes - Fixed "Exception calling TestEffectiveAccess" issue -- Fixed ShowCloseAppsDialog issue (https://discourse.psappdeploytoolkit.com/t/v4-1-3-show-adtinstallationwelcome-closeprocesses-isnt-working/6904) -- Fixed ZeroConfig issue -- Fixed PSADT.AccountManagement.AccountUtilities exception (https://discourse.psappdeploytoolkit.com/t/4-1-3-show-adtballoontip-the-client-process-returned-an-exception-access-denied/6890) -- Fixed issue with users being able to terminate the PSADT UI (https://discourse.psappdeploytoolkit.com/t/4-1-3-show-adtinstallationrestartprompt-task-manager/6899) -- Fixed issue with launching ServiceUI.exe via Start-ADTProcess (https://discourse.psappdeploytoolkit.com/t/4-1-3-trying-to-display-a-command-prompt-using-serviceui/6896) -- Fixed client/server UI permissions issue (https://discourse.psappdeploytoolkit.com/t/4-1-3-adt-ui-system/6905) +- Fixed `ShowCloseAppsDialog` issue https://discourse.psappdeploytoolkit.com/t/v4-1-3-show-adtinstallationwelcome-closeprocesses-isnt-working/6904 +- Fixed `ZeroConfig` issue +- Fixed `PSADT.AccountManagement.AccountUtilities` exception https://discourse.psappdeploytoolkit.com/t/4-1-3-show-adtballoontip-the-client-process-returned-an-exception-access-denied/6890 +- Fixed issue with users being able to terminate the PSADT UI https://discourse.psappdeploytoolkit.com/t/4-1-3-show-adtinstallationrestartprompt-task-manager/6899 +- Fixed issue with launching `ServiceUI.exe` via `Start-ADTProcess` https://discourse.psappdeploytoolkit.com/t/4-1-3-trying-to-display-a-command-prompt-using-serviceui/6896 +- Fixed client/server UI permissions issue https://discourse.psappdeploytoolkit.com/t/4-1-3-adt-ui-system/6905 -## 🖥️ Whats New in v4.1.3 - 2025-08-21 +## v4.1.3 (2025-08-21) -### 🛠️ Fixes +### Fixes -- Fixed CloseProcesses issue introduced in in 4.1.2 +- Fixed `CloseProcesses` issue introduced in in 4.1.2 - Fixed issue with variable expansion on `Start-ADTProcessAsUser` -- Fixed Uninstall-ADTApplication to work with 8.3 names (e.g. C:\PROGRA~2) +- Fixed `Uninstall-ADTApplication` to work with 8.3 names (e.g. `C:\PROGRA~2`) -## 🖥️ Whats New in v4.1.2 - 2025-08-20 +## v4.1.2 (2025-08-20) -### 🛠️ Fixes +### Fixes - Fixed issue with `TestEffectiveAccess()` call in `Set-ADTClientServerProcessPermissions` that would fail on some domain-joined devices -- Fixed setup in `Block-ADTAppExecution` so processes started by SYSTEM don't block at all +- Fixed setup in `Block-ADTAppExecution` so processes started by `SYSTEM` don't block at all - Fixed issue with `Show-ADTInstallationWelcome` where the buttons would always display in English -## 🖥️ Whats New in v4.1.1 - 2025-08-19 +## v4.1.1 (2025-08-19) -### 🎯 Improvements +### Improvements - Prevent end users from terminating `PSADT.ClientServer.Client.exe` process - Do things to try and make the IFEO command line as short as possible - Add better retry support to all modal dialogs to prevent client termination - Allow `-ErrorAction` to handle no available user in `Start-ADTProcessAsUser` -- Address case where some systems seemingly don't have a Win32_BIOS.Version property +- Address case where some systems seemingly don't have a `Win32_BIOS.Version` property - Add `FileSystemUtilities.TestFileAccess()` for testing whether a user has the relevant permissions -- Add `FileSystemUtilities.GetEffectiveAccess()` to determine whether a SID has effective access to a path -- Rework `Set-ADTClientServerProcessPermissions` to test for effective access rather than just attempting to set ACLs -- Improve setup surrounding `-UseShellExecute` pathway, especially with UIAccess executables +- Add `FileSystemUtilities.GetEffectiveAccess()` to determine whether a `SID` has effective access to a path +- Rework `Set-ADTClientServerProcessPermissions` to test for effective access rather than just attempting to set `ACLs` +- Improve setup surrounding `-UseShellExecute` pathway, especially with `UIAccess` executables - Handle situations where we might not have access to the process in `ProcessUtilities.GetRunningProcesses()` - Adjust `Set-ADTClientServerProcessPermissions` to not require a client/server user -- Get all the `*-ADTEnvironmentVariable` functions running through the client/server process when the Target is `User` +- Get all the `*-ADTEnvironmentVariable` functions running through the client/server process when the `Target` is `User` - Run the client/server process elevated if the user has a linked admin token - Bump `InvokeBuild` dependency version to latest upstream - Ensure log lines from `Show-ADTInstallationProgress` reflect all inputs - Improve comment-based help several functions within the module -- Add missing [SupportsWildcards()] decoration for `Remove-ADTFolder -Path` +- Add missing `[SupportsWildcards()]` decoration for `Remove-ADTFolder` `-Path` - Ensure there's no duplicate `-AppProcessesToClose` entries, just like `Show-ADTInstallationWelcome` does - Uplift `-FilePath` resolution in `Start-ADTProcess` to factor in `DirFiles`/`DirSupportFiles` if `-WorkingDirectory` is not specified -- No need to be so restrictive on `Start-ADTMsiProcess -LogFileName` +- No need to be so restrictive on `Start-ADTMsiProcess` `-LogFileName` - Expose `RequireAdmin` publicly within `DeploymentSession` class object - Added Bulgarian language strings. -### 🛠️ Fixes +###️ Fixes - Adjust setup in `ProcessUtilities.GetRunningProcesses()` to handle bogus command lines - Patch bad setup in `Get-ADTClientServerUser` when multiple users are present -- Fix some incorrectly named languages so they confirm with bcp47 standards +- Fix some incorrectly named languages so they confirm with `bcp47` standards - Restore `SEE_MASK_NOZONECHECKS` setup in `Start-ADTProcess` as it's needed even for `CreateProcess()` -- Add missing parentheses within `New-ADTTemplate -Show` pathway +- Add missing parentheses within `New-ADTTemplate` `-Show` pathway - Swallow `TaskCanceledException` throws within `ServerInstance.Close()` -- Properly set the Company field in all compiled file manifests +- Properly set the `Company` field in all compiled file manifests - Revise setup surrounding default setting of `$WorkingDirectory` in `Start-ADTProcess` - Fixes for Finnish language strings. - Fix missing negation on `DisableDefaultMsiProcessList` test -## 🖥️ Whats New in v4.1 - 2025-08-07 +## v4.1 (2025-08-07) -### 🎯 Major Improvements +### Major Improvements - Up until now, it was not possible to display any user interface when deploying an application as SYSTEM using Intune (or any endpoint management tool) without using ServiceUI. Well, now it IS possible: - In fact, we strongly advise you stop using it as soon as possible. ServiceUI works by manipulating system security tokens in a way that could allow malicious actors to escalate privileges or bypass security controls. @@ -129,22 +128,22 @@ tags: - PowerShell ISE compatibility - Furthermore, the Fluent UI has gained new features: - - Due to the rearchitecture of how we handle user interaction with Dialogs, it is now possible to prompt the user for input using [Show-ADTInstallationPrompt](../reference/functions/Show-ADTInstallationPrompt)'s -InputBox parameter + - Due to the rearchitecture of how we handle user interaction with Dialogs, it is now possible to prompt the user for input using [Show-ADTInstallationPrompt](../reference/functions/Show-ADTInstallationPrompt)'s `-InputBox` parameter - Support for formattable text (Bold, Italic & Accent) as well as URL hyperlinks in dialog messages - You can now set the % complete of the progress bar in the Progress Dialog (for example, if you are running a custom script that you want to show incremental progress changes for) - Ability to set different icons for Light / Dark mode - The security rearchitecture required all of our process execution code to be rewritten. This has enabled us to provide a wealth of new capabilities to both [Start-ADTProcess](../reference/functions/Start-ADTProcess) and [Start-ADTProcessAsUser](../reference/functions/Start-ADTProcessAsUser) using the following new parameters: - - -UseUnelevatedToken parameter to force a process run without elevation, for deploying user-context apps with Windows 11 Administrator Protection enabled - - -WaitForChildProcesses parameter to wait for all child processes to end - useful for installers/uninstallers that hand off to another process and exit early - - -KillChildProcessesWithParent parameter to close all started child processes once main process has ended - useful when installers start the application post-install, which is typically undesired when running as system - - -Timeout parameter along with supporting -TimeoutAction and -NoTerminateOnTimeout parameters to control the outcome - - -ExpandEnvironmentVariables parameter to allow variable expansion such as %AppData% when running a process as a user - - -StreamEncoding parameter, useful for apps like Winget that write to the console using UTF8 - - -PassThru output now has a new 'interleaved' property that combines stdout/stderr in order -- It's now possible to set PSADT configuration settings via Group Policy using the included ADMX templates, which will override any settings in the config.psd1 file. This allows you to change, update or enforce settings across an organization. + - `-UseUnelevatedToken` parameter to force a process run without elevation, for deploying user-context apps with Windows 11 Administrator Protection enabled + - `-WaitForChildProcesses` parameter to wait for all child processes to end - useful for installers/uninstallers that hand off to another process and exit early + - `-KillChildProcessesWithParent` parameter to close all started child processes once main process has ended - useful when installers start the application post-install, which is typically undesired when running as system + - `-Timeout` parameter along with supporting `-TimeoutAction` and `-NoTerminateOnTimeout` parameters to control the outcome + - `-ExpandEnvironmentVariables` parameter to allow variable expansion such as `%AppData%` when running a process as a user + - `-StreamEncoding` parameter, useful for apps like `Winget` that write to the console using `UTF8` + - `-PassThru` output now has a new `interleaved` property that combines `stdout`/`stderr` in order +- It's now possible to set PSADT configuration settings via Group Policy using the included ADMX templates, which will override any settings in the `config.psd1` file. This allows you to change, update or enforce settings across an organization. -### 🛠️ New and Enhanced Functions +###️ New and Enhanced Functions - Added functions for managing user / machine environment variables: - [Get-ADTEnvironmentVariable](../reference/functions/Get-ADTEnvironmentVariable) / [Set-ADTEnvironmentVariable](../reference/functions/Set-ADTEnvironmentVariable) / [Remove-ADTEnvironmentVariable](../reference/functions/Remove-ADTEnvironmentVariable) @@ -153,73 +152,74 @@ tags: - [Get-ADTIniValue](../reference/functions/Get-ADTIniValue) / [Set-ADTIniValue](../reference/functions/Set-ADTIniValue) / [Remove-ADTIniValue](../reference/functions/Remove-ADTIniValue) - Added [Start-ADTMsiProcessAsUser](../reference/functions/Start-ADTMsiProcessAsUser) for installing / uninstalling user-context MSIs via the System account - Added [Test-ADTEspActive](../reference/functions/Test-ADTEspActive) to test for an active Enrollment Status Page (ESP) -- Added -DeferRunInterval switch to [Show-ADTInstallationWelcome](../reference/functions/Show-ADTInstallationWelcome) to limit retry times from Intune -- Added -Path / -LiteralPath support to registry functions +- Added `-DeferRunInterval` switch to [Show-ADTInstallationWelcome](../reference/functions/Show-ADTInstallationWelcome) to limit retry times from Intune +- Added `-Path` / `-LiteralPath` support to registry functions - Added volatile key creation support to [Set-ADTRegistryKey](../reference/functions/Set-ADTRegistryKey) -- Added MultiString add / remove support to [Set-ADTRegistryKey](../reference/functions/Set-ADTRegistryKey) -- Added -MaximumElapsedTime parameter to [Invoke-ADTCommandWithRetries](../reference/functions/Invoke-ADTCommandWithRetries) -- Added -SuccessExitCodes and -RebootExitCodes parameters to [Uninstall-ADTApplication](../reference/functions/Uninstall-ADTApplication) +- Added `MultiString` add / remove support to [Set-ADTRegistryKey](../reference/functions/Set-ADTRegistryKey) +- Added `-MaximumElapsedTime` parameter to [Invoke-ADTCommandWithRetries](../reference/functions/Invoke-ADTCommandWithRetries) +- Added `-SuccessExitCodes` and `-RebootExitCodes` parameters to [Uninstall-ADTApplication](../reference/functions/Uninstall-ADTApplication) -### 🛠️ Other Improvements +###️ Other Improvements - [Show-ADTHelpConsole](../reference/functions/Show-ADTHelpConsole) has been given some love and a facelift with High-DPI awareness, resizability, PowerShell 7 compatibility, and extension module display -- Reworked Invoke-AppDeployToolkit.exe to be more compliant within WDAC environments -- Added -NoWait support to [Show-ADTDialogBox](../reference/functions/Show-ADTDialogBox) +- Reworked `Invoke-AppDeployToolkit.exe` to be more compliant within `WDAC` environments +- Added `-NoWait` support to [Show-ADTDialogBox](../reference/functions/Show-ADTDialogBox) - Added process detection code to enable automatic silent deployments when processes aren't running -- Added /Debug switch to [Invoke-AppDeployToolkit.exe](../deployment-concepts/invoke-appdeploytoolkit) to show terminal output for debugging purposes -- Added /Core switch to [Invoke-AppDeployToolkit.exe](../deployment-concepts/invoke-appdeploytoolkit) to allow PowerShell 7 usage +- Added `/Debug` switch to [Invoke-AppDeployToolkit.exe](../deployment-concepts/invoke-appdeploytoolkit) to show terminal output for debugging purposes +- Added `/Core` switch to [Invoke-AppDeployToolkit.exe](../deployment-concepts/invoke-appdeploytoolkit) to allow PowerShell 7 usage - Added support for running processes from network drives -### 🛠️ Changes - -- Added -NoOobeDetection option to Open-ADTSession to bypass OOBE detection logic when DeployMode is set to Auto. Use this to show the UI during OOBE / Autopilot ESP phases. -- Added -NoSessionDetection option to Open-ADTSession to bypass 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. -- Added -NoProcessDetection option to Open-ADTSession to bypass process detection logic when DeployMode is set to Auto. Use this to show the UI even if there are no processes to close. -- Changed -DeployMode Interactive to always show interactively. This means the toolkit will always show the dialogs, bypassing the OOBE/Session/Process detections that occur in Auto mode. -- Changed default DeferExitCode from 60012 to 1602, since ConfigMgr and Intune recognize this natively as 'User cancelled the installation' -- Changed toolkit to exit with 3010 if a suppressed reboot was encountered without having to use -AllowRebootPassThru. To mask 3010 return codes and exit with 0, you can now add -SuppressRebootPassThru -- Changed default msiexec.exe parameters in interactive mode from /qb-! to /qn -- Changed UI functions to no longer minimize windows by default, -MinimizeWindows can be added to enable this -- Changed the 'Processes to close' in the Invoke-AppDeployToolkit template to the AppProcessesToClose ADTSession parameter, where they can be re-used over Install / Uninstall / Repair +###️ Changes + +- Added `-NoOobeDetection` option to `Open-ADTSession` to bypass `OOBE` detection logic when `DeployMode` is set to `Auto`. Use this to show the UI during `OOBE` / Autopilot `ESP` phases. +- Added `-NoSessionDetection` option to `Open-ADTSession` to bypass 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. +- Added `-NoProcessDetection` option to `Open-ADTSession` to bypass process detection logic when `DeployMode` is set to `Auto`. Use this to show the UI even if there are no processes to close. +- Changed `-DeployMode` `Interactive` to always show interactively. This means the toolkit will always show the dialogs, bypassing the `OOBE`/`Session`/`Process` detections that occur in `Auto` mode. +- Changed default `DeferExitCode` from `60012` to `1602`, since `ConfigMgr` and Intune recognize this natively as 'User cancelled the installation' +- Changed toolkit to exit with `3010` if a suppressed reboot was encountered without having to use `-AllowRebootPassThru`. To mask `3010` return codes and exit with `0`, you can now add `-SuppressRebootPassThru` +- Changed default `msiexec.exe` parameters in interactive mode from `/qb-!` to `/qn` +- Changed UI functions to no longer minimize windows by default, `-MinimizeWindows` can be added to enable this +- Changed the 'Processes to close' in the `Invoke-AppDeployToolkit` template to the `AppProcessesToClose` `ADTSession` parameter, where they can be re-used over Install / Uninstall / Repair - Changed installation failure to be silent as it was in v3.x; however, you can still uncomment a line to get the full detailed stack trace as used in v4.0.x, or a new minimal example using the Fluent UI -### 🛠️ Fixes +### Fixes - Fixed [Start-ADTProcessAsUser](../reference/functions/Start-ADTProcessAsUser) function to work as expected - Fixed [Block-ADTAppExecution](../reference/functions/Block-ADTAppExecution) to avoid triggering AV solutions - Fixed dialogs to show correct deployment type Install / Uninstall / Repair -- Fixed SCCM pending reboot tests within [Get-ADTPendingReboot](../reference/functions/Get-ADTPendingReboot) -- Fixed MSI repair to default to 'Reinstall' to avoid forced unavoidable reboots when running msiexec /f against an app that is in-use -- Fixed OOBE detection code to factor in User ESP phase +- Fixed `SCCM` pending reboot tests within [Get-ADTPendingReboot](../reference/functions/Get-ADTPendingReboot) +- Fixed MSI repair to default to 'Reinstall' to avoid forced unavoidable reboots when running `msiexec` `/f` against an app that is in-use +- Fixed `OOBE` detection code to factor in User `ESP` phase - Fixed launching processes in the users' session when using certain MDMs, e.g. VMware Workspace ONE. -### 📸 Screenshots +### Screenshots -| Light Mode | Dark Mode | -|---------------------|-----------------| +| Light Mode | Dark Mode | +|:--------------------------------------:|:-------------------------------------:| | ![LightMode](../images/psadt-41-1.png) | ![DarkMode](../images/psadt-41-2.png) | +| | | -| Custom Accent Light | Custom Accent Dark | -|---------------------|-----------------| -| ![CustomLightMode](../images/psadt-41-3.png) | ![CustomDarkMode](../images/psadt-41-4.png) | -| ![CustomLightMode2](../images/psadt-41-5.png) | | +| Custom Accent in Light Mode | Custom Accent in Dark Mode | +|:--------------------------------------------:|:---------------------------------------------:| +| ![CustomLightMode](../images/psadt-41-3.png) | ![CustomDarkMode](../images/psadt-41-4.png) | +| | ![CustomLightMode2](../images/psadt-41-5.png) | -## 🖥️ What's New in v4.0 +## v4.0 ### Overview -- **Added** modern Fluent user interface -- **Added** digitally signed PowerShell module -- **Changed** all C# code to be compiled -- **Changed** codebase with complete refactoring and optimization -- **Removed** all VBScript code -- **Added** strongly typed and defined object types (no more PSCustomObjects, etc.) -- **Added** defensive coding to ensure security and reliability -- **Added** PowerShell 7 and ARM support -- **Added** extensions support as supplemental modules -- **Added** custom action support for extensions on deployment start and finish -- **Added** support for overriding config via the registry -- **Added** backwards-compatibility with v3 deployment scripts +- Added modern Fluent user interface +- Added digitally signed PowerShell module +- Changed all C# code to be compiled +- Changed codebase with complete refactoring and optimization +- Removed all VBScript code +- Added strongly typed and defined object types (no more PSCustomObjects, etc.) +- Added defensive coding to ensure security and reliability +- Added PowerShell 7 and ARM support +- Added extensions support as supplemental modules +- Added custom action support for extensions on deployment start and finish +- Added support for overriding config via the registry +- Added backwards-compatibility with v3 deployment scripts ### Key Filename Changes @@ -227,7 +227,7 @@ tags: Further changes to the deployment layout are detailed in the [Deployment Structure](../deployment-concepts/deployment-structure.mdx) page. ::: -| **Old Name** | **New Name** | **More Information** | +| Old Name | New Name | More Information | |:-----------------------------|:------------------------------|:--------------------------------------------------------------------------------| | `Deploy-Application.ps1` | `Invoke-AppDeployToolkit.ps1` | [Invoke-AppDeployToolkit](../deployment-concepts/invoke-appdeploytoolkit.mdx)| | `Deploy-Application.exe` | `Invoke-AppDeployToolkit.exe` | [Invoke-AppDeployToolkit](../deployment-concepts/invoke-appdeploytoolkit.mdx)| @@ -236,7 +236,7 @@ Further changes to the deployment layout are detailed in the [Deployment Structu ### New Configuration Format -- **Changed** to **.psd1** as the native PowerShell config file format. See [Customizing Deployments](../usage/customizing-deployments.mdx) for more information. +- Changed to .psd1 as the native PowerShell config file format. See [Customizing Deployments](../usage/customizing-deployments.mdx) for more information. ### Key Function Name Changes @@ -244,9 +244,9 @@ Further changes to the deployment layout are detailed in the [Deployment Structu For a detailed mapping of all v3 to v4 functions, see the [Function Mapping](../reference/v4-function-mapping.mdx) page. ::: -- **Changed** certain function names to avoid collisions with other scripts or modules. +- Changed certain function names to avoid collisions with other scripts or modules. -| **Old Name** | **New Name / Details** | +| Old Name | New Name / Details | |:------------------|:-------------------------------------------------------------------| | `Copy-File` | [`Copy-ADTFile`](../reference/functions/Copy-ADTFile.mdx) | | `Execute-Process` | [`Start-ADTProcess`](../reference/functions/Start-ADTProcess.mdx) | @@ -254,18 +254,18 @@ For a detailed mapping of all v3 to v4 functions, see the [Function Mapping](../ ### Variables -- **Changed** standard toolkit environment variables, such as `$envProgramFiles`, to become available once an [ADTSession](../reference/adtsession-object.mdx) is opened or after the `Export-ADTEnvironmentTableToSessionState` command is executed -- **Changed** variables specific to a particular deployment (for example, `$appName`) to be found within the [ADTSession](../reference/adtsession-object.mdx) object (for example, `$adtSession.AppName`) +- Changed standard toolkit environment variables, such as `$envProgramFiles`, to become available once an [ADTSession](../reference/adtsession-object.mdx) is opened or after the `Export-ADTEnvironmentTableToSessionState` command is executed +- Changed variables specific to a particular deployment (for example, `$appName`) to be found within the [ADTSession](../reference/adtsession-object.mdx) object (for example, `$adtSession.AppName`) ### Booleans Replaced with Switches -**Changed** from many Boolean parameters in v3 (some defaulting to true and others to false) to a clearer switch-based system. It was not always clear what the default behavior was without referencing documentation. +Changed from many Boolean parameters in v3 (some defaulting to `true` and others to `false`) to a clearer switch-based system. It was not always clear what the default behavior was without referencing documentation. -- **Changed** from `TopMost $true` or `-TopMost $false` to a single optional switch, `-NotTopMost`, which clarifies that the default behavior is TopMost +- Changed from `TopMost` `$true` or `-TopMost` `$false` to a single optional switch, `-NotTopMost`, which clarifies that the default behavior is `TopMost` ### Standardized Filtering -**Changed** the `Remove-MsiApplications` command from v3 that used `-FilterApplication` and `-ExcludeFromUninstall` parameters with a complex syntax. In the new function, [Uninstall-ADTApplication](../reference/functions/Uninstall-ADTApplication.mdx), these have been **replaced** with a single `-FilterScript`, similar to PowerShell's `Where-Object`: +Changed the `Remove-MsiApplications` command from v3 that used `-FilterApplication` and `-ExcludeFromUninstall` parameters with a complex syntax. In the new function, [Uninstall-ADTApplication](../reference/functions/Uninstall-ADTApplication.mdx), these have been **replaced** with a single `-FilterScript`, similar to PowerShell's `Where-Object`: ```powershell -FilterScript { $_.Publisher -eq 'Oracle Corporation' -and $_.DisplayVersion -notmatch 'Java 8 Update 45' } @@ -273,7 +273,7 @@ For a detailed mapping of all v3 to v4 functions, see the [Function Mapping](../ ### ScriptBlock Variables -**Changed** from `Invoke-HKCURegistrySettingsForAllUsers` in v3 that required a `$UserProfile` variable. In v4, [Invoke-ADTAllUsersRegistryAction](../reference/functions/Invoke-ADTAllUsersRegistryAction.mdx) pipes user profile objects to the provided scriptblock, so you can use `$_`: +Changed from `Invoke-HKCURegistrySettingsForAllUsers` in v3 that required a `$UserProfile` variable. In v4, [Invoke-ADTAllUsersRegistryAction](../reference/functions/Invoke-ADTAllUsersRegistryAction.mdx) pipes user profile objects to the provided scriptblock, so you can use `$_`: ```powershell Invoke-ADTAllUsersRegistryAction -ScriptBlock { @@ -283,7 +283,7 @@ Invoke-ADTAllUsersRegistryAction -ScriptBlock { ### Standardized Array Inputs -**Changed** functions that accept multiple values to take arrays rather than comma-delimited strings. For example, **instead of**: +Changed functions that accept multiple values to take arrays rather than comma-delimited strings. For example, **instead of**: ```powershell Show-InstallationWelcome -CloseApps 'iexplore,winword,excel' @@ -297,20 +297,20 @@ Show-ADTInstallationWelcome -CloseProcesses iexplore, winword, excel ### Error Handling -**Changed** from many commands in v3 that used a `-ContinueOnError` parameter. In v4, you use the standard PowerShell `-ErrorAction` parameter: +Changed from many commands in v3 that used a `-ContinueOnError` parameter. In v4, you use the standard PowerShell `-ErrorAction` parameter: -- **Changed** from `-ContinueOnError $true` or `$false` to `-ErrorAction Stop` or `-ErrorAction SilentlyContinue` +- Changed from `-ContinueOnError` `$true` or `$false` to `-ErrorAction` `Stop` or `-ErrorAction` `SilentlyContinue` ### Uninstallation of EXE Apps -**Added** support for [Uninstall-ADTApplication](../reference/functions/Uninstall-ADTApplication.mdx) to uninstall **EXE** apps in addition to **MSI**. Specify the `-ApplicationType` parameter to focus on one type or the other. The `-ArgumentList` parameter replaces any detected arguments in the registry, and `-AdditionalArgumentList` appends to them. +Added support for [Uninstall-ADTApplication](../reference/functions/Uninstall-ADTApplication.mdx) to uninstall **EXE** apps in addition to **MSI**. Specify the `-ApplicationType` parameter to focus on one type or the other. The `-ArgumentList` parameter replaces any detected arguments in the registry, and `-AdditionalArgumentList` appends to them. ### User Profile Paths -**Added** `-LoadProfilePaths` switch to [Get-ADTUserProfiles](../reference/functions/Get-ADTUserProfiles.mdx) to discover common folders within user profiles, such as **Documents** and **Desktop**. You can use [Copy-ADTFileToUserProfiles](../reference/functions/Copy-ADTFileToUserProfiles.mdx) to copy files directly to these locations. +Added `-LoadProfilePaths` switch to [Get-ADTUserProfiles](../reference/functions/Get-ADTUserProfiles.mdx) to discover common folders within user profiles, such as **Documents** and **Desktop**. You can use [Copy-ADTFileToUserProfiles](../reference/functions/Copy-ADTFileToUserProfiles.mdx) to copy files directly to these locations. ### WIM Support -**Added** support for compressing file content into a WIM archive and mounting it during installation. You can manage this manually using [Mount-ADTWimFile](../reference/functions/Mount-ADTWimFile.mdx) and [Dismount-ADTWimFile](../reference/functions/Dismount-ADTWimFile.mdx), or you can use the `-ForceWimDetection` switch with [Open-ADTSession](../reference/functions/Open-ADTSession.mdx) to auto-mount and dismount any WIM files found. +Added support for compressing file content into a `WIM` archive and mounting it during installation. You can manage this manually using [Mount-ADTWimFile](../reference/functions/Mount-ADTWimFile.mdx) and [Dismount-ADTWimFile](../reference/functions/Dismount-ADTWimFile.mdx), or you can use the `-ForceWimDetection` switch with [Open-ADTSession](../reference/functions/Open-ADTSession.mdx) to auto-mount and dismount any `WIM` files found. -**Added** [Zero Config](../deployment-concepts/zero-config-deployment.mdx) feature that starts automatically if you leave the **AppName** blank, mounts any WIM file found, and installs the MSI located inside. +Added [Zero Config](../deployment-concepts/zero-config-deployment.mdx) feature that starts automatically if you leave the **AppName** blank, mounts any `WIM` file found, and installs the `MSI` located inside. diff --git a/docs/getting-started/requirements.mdx b/docs/getting-started/requirements.mdx index 6aa27a1..b9e3574 100644 --- a/docs/getting-started/requirements.mdx +++ b/docs/getting-started/requirements.mdx @@ -2,7 +2,6 @@ sidebar_position: 2 title: 'Requirements' description: 'The requirements for running PSAppDeployToolkit.' -hide_title: true slug: /getting-started/requirements tags: - Requirements diff --git a/docs/getting-started/upgrade-guidance-4x-to-v41.mdx b/docs/getting-started/upgrade-guidance-4x-to-v41.mdx index 21ffb47..f4981ef 100644 --- a/docs/getting-started/upgrade-guidance-4x-to-v41.mdx +++ b/docs/getting-started/upgrade-guidance-4x-to-v41.mdx @@ -3,7 +3,6 @@ sidebar_position: 6 title: 'Upgrade Guidance: v4 to v4.1' description: 'Upgrade guidance for those coming from v4.0.' slug: /getting-started/upgrade-guidance-4x-to-v41 -hide_title: true tags: - Usage - Migration diff --git a/docs/getting-started/upgrade-guidance-v3x-to-v41.mdx b/docs/getting-started/upgrade-guidance-v3x-to-v41.mdx index 267fe92..995fdf1 100644 --- a/docs/getting-started/upgrade-guidance-v3x-to-v41.mdx +++ b/docs/getting-started/upgrade-guidance-v3x-to-v41.mdx @@ -3,7 +3,6 @@ sidebar_position: 7 title: 'Upgrade Guidance: v3.x to v4.1' description: 'Upgrade guidance for those coming from v3.' slug: /getting-started/upgrade-guidance-v3x-to-v41 -hide_title: true tags: - Usage - Migration diff --git a/docs/introduction.mdx b/docs/introduction.mdx index 23b1dfd..4c4b526 100644 --- a/docs/introduction.mdx +++ b/docs/introduction.mdx @@ -2,34 +2,61 @@ sidebar_position: 1 title: 'Introduction' description: Get up and running with PSAppDeployToolkit in minutes. -hide_title: true +hide_title: false id: introduction tags: - Documentation - Introduction --- -# Introduction +## What is PSAppDeployToolkit? -PSAppDeployToolkit is a framework that simplifies complex scripting for enterprise application deployment, providing a consistent user experience. It provides a set of well-defined functions for common application deployment tasks, as well as user interface elements for end user interaction during a deployment. It simplifies the complex scripting challenges of deploying applications in the enterprise, provides a consistent deployment experience for your end users and as a result of this, improves the overall success rate of your deployments. +A *PowerShell* based framework, to **simplify and standardize** the process of **deploying software** to **Windows** based computers, ***at scale***. -In this documentation, you'll find information on the features and benefits of PSAppDeployToolkit, its system requirements and support, as well as instructions for downloading and deploying applications using the toolkit. +It is typically use to wrap an existing vendor-supplied installer package (e.g. source files containing an MSI or EXE file), and to extend it's functionality using: -## Open-source & Contributing +- A standardized, battle-tested **workflow** for every application install, uninstall and repair. +- A highly-customizable **User Interface** that remains consistent for end users, for every deployment. +- An extensive **library of functions** to simplify common deployment tasks. -PSAppDeployToolkit is an open-source project (see [`COPYING.Lesser`](https://github.com/psappdeploytoolkit/psappdeploytoolkit/blob/master/COPYING.Lesser) file for more information). The core project, as well as the documentation and any related tools can be found in the [PSAppDeployToolkit](https://github.com/psappdeploytoolkit) GitHub organization. +... which results in a **consistent and brandable user experience** and **highly successful deployments**. -PSAppDeployToolkit is open to code contributions, including feature requests, bug reports, and pull requests. +In this documentation, you'll find information on how to quickly get up and running with PSADT, how to get to grips with creating you first deployment, guides on how to use some of the more advanced features, and a reference for every function and variable available to use. + +## Getting Help / Support + +PSAppDeployToolkit is open-source software and provided free for anyone to use. The development team provide support on a best-effort basis. In our experience, most questions can be answered by searching the documentation or the community platforms for an answer. + +- [Documentation](https://psappdeploytoolkit.com/docs/introduction) + - Everything you need to know about how to use PSAppDeployToolkit, including step-by-step guides. +- [Functions Reference](https://psappdeploytoolkit.com/docs/reference/functions) + - A reference for all the functions provided by PSAppDeployToolkit, including parameters and examples of how to use them. + +:::info Enterpise Support -:::info -Want to join the community? -You can join [GitHub](https://github.com/psappdeploytoolkit/psappdeploytoolkit), the [Forum](https://discourse.psappdeploytoolkit.com), or the [#psappdeploytoolkit channel on Discord](https://discord.com/channels/618712310185197588/627204361545842688) to share your ideas and opinions with other community members and the PSAppDeployToolkit team. If you're looking for news and updates about PSAppDeployToolkit, [Twitter](https://twitter.com/psappdeploytoolkitjs) and the [blog](https://psappdeploytoolkit.io/blog) are pretty good places to start! +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). ::: -## Support +## Reporting Issues -PSAppDeployToolkit is offered as free and open-source for users who wish to use it. When having an issue or a question, the [forum](https://discourse.psappdeploytoolkit.com), or the [#psappdeploytoolkit channel on Discord](https://discord.com/channels/618712310185197588/627204361545842688) are great places to reach out for help. Both the PSAppDeployToolkit community and core developers often check this platform and answer posts. +Failing that, we have a great community of users and contributors who are often happy to help answer questions, share their knowledge and experience, and even contribute code to the project. They are: + +- [GitHub Repository](https://github.com/psappdeploytoolkit/psappdeploytoolkit) + - Best place for reporting issues or to get stuck into the code. +- [Reddit Community](https://www.reddit.com/r/PSADT/) + - Plenty of active posts and discussions, with a helpful community of users and contributors. +- [Discourse Forum](https://discourse.psappdeploytoolkit.com) + - Great repository of knowledge, with an active helpful community. +- [WinAdmins Discord](https://discord.com/channels/618712310185197588/627204361545842688) **#psappdeploytoolkit** channel + - Great for realtime help with issues or quick questions answered by our helpful community members and the dev team. + - We typically share news and updates about upcoming releases and sometimes ask for help with beta testing, so it's a good place to stay up to date with the project. + +## Open-source & Contributing + +PSAppDeployToolkit is an open-source project (see [`COPYING.Lesser`](https://github.com/psappdeploytoolkit/psappdeploytoolkit/blob/master/COPYING.Lesser) file for more information). The core project, as well as the documentation and any related tools can be found in the [PSAppDeployToolkit](https://github.com/psappdeploytoolkit) GitHub organization. + +PSAppDeployToolkit is open to code contributions, including feature requests, bug reports, and pull requests. -## Something missing? +## Something missing? Typos? -If you find issues with the documentation or have suggestions on how to improve the documentation or the project in general, please [file an issue](https://github.com/PSAppDeployToolkit/PSAppDeployToolkit/issues) for us. +If you find issues with the documentation or have ideas for improvements, please [file an issue](https://github.com/PSAppDeployToolkit/PSAppDeployToolkit/issues) :) diff --git a/docs/reference.mdx b/docs/reference.mdx index 7d41e80..d9c8c6a 100644 --- a/docs/reference.mdx +++ b/docs/reference.mdx @@ -2,7 +2,6 @@ sidebar_position: 1 title: 'Reference' description: 'A handy reference to the Exit Codes used by PSAppDeployToolkit, as well as the Variables and Functions made available for you to use.' -hide_title: true id: reference tags: - Reference @@ -10,11 +9,9 @@ tags: # Reference -PSAppDeployToolkit provides various functions to simplify script writing and uses an ADT Session object to store deployment information. +PSAppDeployToolkit has an extensive library of functions to simplify common deployment tasks. Every function adheres to the same security standards and best pratices, including documentation. You can find a complete list of functions in the sidebar, or alternatiively, or by using the search bar. -PSAppDeployToolkit uses pre-defined **Exit Codes** to indicate the success or failure of a deployment and can be used to control the flow of your deployment logic, or just to understand what happened during a deployment. - -You can find a complete list of Exit Codes, Functions, and ADT Session properties in the sidebar or by using the search bar. +Pre-defined **Exit Codes** are used to indicate the success or failure of a deployment and can be used to control the flow of your deployment logic, or just to understand what happened during a deployment. You can find a list of Exit Codes, Functions, and ADT Session properties in the sidebar or by using the search bar. ## Something missing? diff --git a/docs/reference/adtsession-object.mdx b/docs/reference/adtsession-object.mdx index 848bcab..73d9f68 100644 --- a/docs/reference/adtsession-object.mdx +++ b/docs/reference/adtsession-object.mdx @@ -1,4 +1,4 @@ ---- +--- sidebar_position: 1 sidebar_label: 'ADTSession Object' title: 'ADTSession Object' @@ -33,7 +33,7 @@ The following properties are settable via parameters of the `Open-ADTSession` fu ## Deployment Properties -| **Property** | **Description** | +| Property | Description | |-----------------------|----------------------------------------------------------------------------------------| | `AppVendor` | The vendor of the application. | | `AppName` | The name of the application being deployed. | @@ -46,7 +46,7 @@ The following properties are settable via parameters of the `Open-ADTSession` fu ## Script Properties -| **Property** | **Description** | +| Property | Description | |-------------------------------|--------------------------------------------------------------------------| | `AppScriptAuthor` | The author of the deployment script. | | `AppScriptDate` | The creation date of the deployment script. | @@ -57,7 +57,7 @@ The following properties are settable via parameters of the `Open-ADTSession` fu ## Deployment Settings -| **Property** | **Description** | +| Property | Description | |--------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------| | `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"). | @@ -79,15 +79,15 @@ The following properties are settable via parameters of the `Open-ADTSession` fu ## Path Settings -| **Property** | **Description** | -|-----------------|-------------------------------------------------------------| +| Property | Description | +|-------------------|-----------------------------------------------------------| | `DirFiles` | Path to the "Files" directory used by the toolkit. | | `DirSupportFiles` | Path to the "SupportFiles" directory used by the toolkit. | | `ScriptDirectory` | The directory where the deployment script is located. | ## Logging Settings -| **Property** | **Description** | +| Property | Description | |------------------|---------------------------| | `DisableLogging` | Disable logging. | | `LogName` | The name of the log file. | @@ -96,7 +96,7 @@ The following properties are settable via parameters of the `Open-ADTSession` fu The following properties are not parameters of `Open-ADTSession`, but are available as additional properties of the returned `ADTSession` object: -| **Property** | **Description** | +| Property | Description | |-------------------|----------------------------------------------------------------------------------------------------------------| | `CurrentDate` | The current date. | | `CurrentDateTime` | The current date and time. | diff --git a/docs/reference/config-settings.mdx b/docs/reference/config-settings.mdx index 147dd6b..605cb04 100644 --- a/docs/reference/config-settings.mdx +++ b/docs/reference/config-settings.mdx @@ -11,9 +11,9 @@ tags: # Configuration Settings -PSAppDeployToolkit v4.1 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: Group Policy (highest precedence), local configuration files, and built-in defaults. -PSAppDeployToolkit v4.1 introduces **Group Policy ADMX templates** for centralized enterprise configuration management. Group Policy settings override local configuration files. +In PSADT v4.1, we've introduced **Group Policy ADMX templates** for centralized enterprise configuration management. Group Policy settings override local configuration files. **Configuration Precedence (Highest to Lowest):** @@ -25,11 +25,11 @@ PSAppDeployToolkit v4.1 introduces **Group Policy ADMX templates** for centraliz ## Assets -| Setting | Description | Group Policy | -| :---------------- | :-------------------------------- | :----------- | -| `Assets.Banner` | Specifies the banner asset. | ✅ | -| `Assets.Logo` | Specifies the logo asset. | ✅ | -| `Assets.LogoDark` | Path to the dark mode logo image. | ✅ | +| Setting | Description | +|:------------------|:----------------------------------| +| `Assets.Banner` | Specifies the banner asset. | +| `Assets.Logo` | Specifies the logo asset. | +| `Assets.LogoDark` | Path to the dark mode logo image. | :::note Dark Mode Support `Assets.LogoDark` enables different logos for light and dark themes in the modern Fluent UI framework. @@ -37,30 +37,30 @@ PSAppDeployToolkit v4.1 introduces **Group Policy ADMX templates** for centraliz ## Toolkit Settings -| Setting | Description | Group Policy | -| :---------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----------- | -| `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 admin rights 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.OobeDetection` | Detects Out-of-Box Experience (OOBE) state. If enabled, the toolkit will check if the device has completed OOBE (including User ESP phase as of 4.1) and may switch DeployMode to Silent if not. | ✅ | -| `Toolkit.ProcessDetection` | Auto-change DeployMode if there are no processes to close. | ✅ | -| `Toolkit.RegPath` | Specifies the registry path for the toolkit. | ✅ | -| `Toolkit.RegPathNoAdminRights` | Specifies the registry path when no admin rights are available. | ✅ | -| `Toolkit.SessionDetection` | Detects user session state. If enabled, the toolkit will check for an active user session and may switch DeployMode to Silent if none is found. | ✅ | -| `Toolkit.TempPath` | Specifies the temporary path for the toolkit. | ✅ | -| `Toolkit.TempPathNoAdminRights` | Specifies the temporary path when no admin rights are available. | ✅ | +| 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 admin rights 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.OobeDetection` | Detects Out-of-Box Experience (OOBE) state. If enabled, the toolkit will check if the device has completed OOBE (including User ESP phase as of 4.1) and may switch DeployMode to Silent if not. | +| `Toolkit.ProcessDetection` | Auto-change DeployMode if there are no processes to close. | +| `Toolkit.RegPath` | Specifies the registry path for the toolkit. | +| `Toolkit.RegPathNoAdminRights` | Specifies the registry path when no admin rights are available. | +| `Toolkit.SessionDetection` | Detects user session state. If enabled, the toolkit will check for an active user session and may switch DeployMode to Silent if none is found. | +| `Toolkit.TempPath` | Specifies the temporary path for the toolkit. | +| `Toolkit.TempPathNoAdminRights` | Specifies the temporary path when no admin rights are available. | :::tip Automatic Silent Switching When `Toolkit.ProcessDetection` is enabled and no processes from `AppProcessesToClose` are running, deployments automatically switch to Silent mode for optimal user experience. @@ -68,30 +68,30 @@ When `Toolkit.ProcessDetection` is enabled and no processes from `AppProcessesTo ## Windows Installer (MSI) Execution Settings -| Setting | Description | Group Policy | -| :------------------------- | :---------------------------------------------------------------------------------------------------------------------- | :----------- | -| `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 admin rights 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 | +| :------------------------- | :---------------------------------------------------------------------------------------------------------------------- | +| `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 admin rights 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. | ## User Interface Settings -| Setting | Description | Group Policy | -| :-------------------------------- | :------------------------------------------------------------------------ | :----------- | -| `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.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. **Default changed to 1602** | +| `UI.DialogStyle` | Defines the appearance of dialogs. | +| `UI.FluentAccentColor` | Specifies the accent color for Fluent UI dialogs. | +| `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. | :::tip Custom Branding Use `UI.FluentAccentColor` to match your organization's branding in modern Fluent UI dialogs. Supports standard color names and hex values. diff --git a/docs/reference/exit-codes.mdx b/docs/reference/exit-codes.mdx index 456de5b..c7f4721 100644 --- a/docs/reference/exit-codes.mdx +++ b/docs/reference/exit-codes.mdx @@ -1,4 +1,4 @@ ---- +--- sidebar_position: 5 sidebar_label: 'Exit Codes' title: 'Exit Codes' @@ -13,12 +13,12 @@ tags: PSAppDeployToolkit uses pre-defined exit codes to indicate whether a deployment succeeds or fails. You can use these codes to control deployment flow or to understand what occurred. -| Exit Code | Description | -|:--------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| 60000 - 68999 | Reserved for built-in exit codes in _Invoke-AppDeployToolkit.ps1_, _Invoke-AppDeployToolkit.exe_, and _AppDeployToolkitMain.ps1_. | -| 60001 | An error occurred in `Invoke-AppDeployToolkit.ps1`. Check your script syntax use. | -| 60008 | Failure when importing the module or opening a new session. | -| 60010 | `Invoke-AppDeployToolkit.exe` failed before PowerShell.exe process could be launched. | -| 60011 | `Invoke-AppDeployToolkit.exe` failed to execute the PowerShell.exe process. | -| 69000 - 69999 | Recommended for user customized exit codes in `Invoke-AppDeployToolkit.ps1`. | -| 70000 - 79999 | Recommended for user customized exit codes in PSAppDeployToolkit.Extensions module.. | +| Exit Code | Description | +|:--------------|:----------------------------------------------------------------------------------------------------------------------------------| +| 60000 - 68999 | Reserved for built-in exit codes in _Invoke-AppDeployToolkit.ps1_, _Invoke-AppDeployToolkit.exe_, and _AppDeployToolkitMain.ps1_. | +| 60001 | An error occurred in `Invoke-AppDeployToolkit.ps1`. Check your script syntax use. | +| 60008 | Failure when importing the module or opening a new session. | +| 60010 | `Invoke-AppDeployToolkit.exe` failed before PowerShell.exe process could be launched. | +| 60011 | `Invoke-AppDeployToolkit.exe` failed to execute the PowerShell.exe process. | +| 69000 - 69999 | Recommended for user customized exit codes in `Invoke-AppDeployToolkit.ps1`. | +| 70000 - 79999 | Recommended for user customized exit codes in PSAppDeployToolkit.Extensions module.. | \ No newline at end of file diff --git a/docs/reference/functions/Get-ADTSession.mdx b/docs/reference/functions/Get-ADTSession.mdx index a61b0e6..b77c23e 100644 --- a/docs/reference/functions/Get-ADTSession.mdx +++ b/docs/reference/functions/Get-ADTSession.mdx @@ -55,7 +55,7 @@ This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable ### You cannot pipe objects to this function. ## OUTPUTS -### PSAppDeployToolkit.Foundation.DeploymentSession +### PSAppDeployToolkit.SessionManagement.DeploymentSession ### Returns the most recent session object from the ADT module data. ## NOTES diff --git a/docs/reference/functions/Open-ADTSession.mdx b/docs/reference/functions/Open-ADTSession.mdx index 8e361ad..42822ea 100644 --- a/docs/reference/functions/Open-ADTSession.mdx +++ b/docs/reference/functions/Open-ADTSession.mdx @@ -674,7 +674,7 @@ Accept wildcard characters: False ### -SessionClass -Specifies an override for PSAppDeployToolkit.Foundation.DeploymentSession class. +Specifies an override for PSAppDeployToolkit.SessionManagement.DeploymentSession class. Use this if you're deriving a class inheriting off PSAppDeployToolkit's base. ```yaml @@ -684,7 +684,7 @@ Aliases: Required: False Position: 28 -Default value: PSAppDeployToolkit.Foundation.DeploymentSession +Default value: PSAppDeployToolkit.SessionManagement.DeploymentSession Accept pipeline input: False Accept wildcard characters: False ``` diff --git a/docs/reference/functions/Set-ADTRegistryKey.mdx b/docs/reference/functions/Set-ADTRegistryKey.mdx index 880b4c2..6514a43 100644 --- a/docs/reference/functions/Set-ADTRegistryKey.mdx +++ b/docs/reference/functions/Set-ADTRegistryKey.mdx @@ -13,7 +13,7 @@ Creates or sets a registry key name, value, and value data. ```powershell Set-ADTRegistryKey [-LiteralPath] [[-Name] ] [[-Value] ] [[-Type] ] - [[-MultiStringValueMode] ] [-Wow6432Node] [[-RegistryOptions] ] + [[-MultiStringValueMode] ] [-Wow6432Node] [[-RegistryOptions] ] [[-SID] ] [-WhatIf] [-Confirm] [] ``` @@ -136,12 +136,13 @@ Accept wildcard characters: False ### -MultiStringValueMode The mode to operate when working with MultiString objects. -The default is Replace, but Add and Remove modes are supported also. +The default is replace, but add and remove modes are supported also. ```yaml -Type: String +Type: MultiStringValueMode Parameter Sets: (All) Aliases: +Accepted values: Replace, Add, Remove Required: False Position: 5 diff --git a/docs/reference/functions/Start-ADTProcess.mdx b/docs/reference/functions/Start-ADTProcess.mdx index 4ec9462..6abc0bf 100644 --- a/docs/reference/functions/Start-ADTProcess.mdx +++ b/docs/reference/functions/Start-ADTProcess.mdx @@ -28,12 +28,11 @@ Start-ADTProcess -FilePath [-ArgumentList ] [-SecureArgumentL Start-ADTProcess -FilePath [-ArgumentList ] [-SecureArgumentList] [-WorkingDirectory ] -RunAsActiveUser [-UseLinkedAdminToken] [-UseHighestAvailableToken] [-InheritEnvironmentVariables] [-DenyUserTermination] - [-ExpandEnvironmentVariables] [-CreateNoWindow] [-StreamEncoding ] [-StandardInput ] - [-NoStreamLogging] [-WaitForMsiExec] [-MsiExecWaitTime ] [-WaitForChildProcesses] - [-KillChildProcessesWithParent] -Timeout [-TimeoutAction ] - [-NoTerminateOnTimeout] [-SuccessExitCodes ] [-RebootExitCodes ] - [-IgnoreExitCodes ] [-PriorityClass ] [-ExitOnProcessFailure] [-PassThru] - [-WhatIf] [-Confirm] [] + [-ExpandEnvironmentVariables] [-CreateNoWindow] [-StreamEncoding ] [-NoStreamLogging] + [-WaitForMsiExec] [-MsiExecWaitTime ] [-WaitForChildProcesses] [-KillChildProcessesWithParent] + -Timeout [-TimeoutAction ] [-NoTerminateOnTimeout] [-SuccessExitCodes ] + [-RebootExitCodes ] [-IgnoreExitCodes ] [-PriorityClass ] + [-ExitOnProcessFailure] [-PassThru] [-WhatIf] [-Confirm] [] ``` ### RunAsActiveUser_CreateNoWindow_NoWait @@ -42,10 +41,9 @@ Start-ADTProcess -FilePath [-ArgumentList ] [-SecureArgumentL Start-ADTProcess -FilePath [-ArgumentList ] [-SecureArgumentList] [-WorkingDirectory ] -RunAsActiveUser [-UseLinkedAdminToken] [-UseHighestAvailableToken] [-InheritEnvironmentVariables] [-DenyUserTermination] - [-ExpandEnvironmentVariables] [-CreateNoWindow] [-StreamEncoding ] [-StandardInput ] - [-NoStreamLogging] [-WaitForMsiExec] [-MsiExecWaitTime ] [-WaitForChildProcesses] - [-KillChildProcessesWithParent] [-PriorityClass ] [-NoWait] [-PassThru] [-WhatIf] - [-Confirm] [] + [-ExpandEnvironmentVariables] [-CreateNoWindow] [-StreamEncoding ] [-NoStreamLogging] + [-WaitForMsiExec] [-MsiExecWaitTime ] [-WaitForChildProcesses] [-KillChildProcessesWithParent] + [-PriorityClass ] [-NoWait] [-PassThru] [-WhatIf] [-Confirm] [] ``` ### RunAsActiveUser_CreateNoWindow_Wait @@ -54,11 +52,11 @@ Start-ADTProcess -FilePath [-ArgumentList ] [-SecureArgumentL Start-ADTProcess -FilePath [-ArgumentList ] [-SecureArgumentList] [-WorkingDirectory ] -RunAsActiveUser [-UseLinkedAdminToken] [-UseHighestAvailableToken] [-InheritEnvironmentVariables] [-DenyUserTermination] - [-ExpandEnvironmentVariables] [-CreateNoWindow] [-StreamEncoding ] [-StandardInput ] - [-NoStreamLogging] [-WaitForMsiExec] [-MsiExecWaitTime ] [-WaitForChildProcesses] - [-KillChildProcessesWithParent] [-SuccessExitCodes ] [-RebootExitCodes ] - [-IgnoreExitCodes ] [-PriorityClass ] [-ExitOnProcessFailure] [-PassThru] - [-WhatIf] [-Confirm] [] + [-ExpandEnvironmentVariables] [-CreateNoWindow] [-StreamEncoding ] [-NoStreamLogging] + [-WaitForMsiExec] [-MsiExecWaitTime ] [-WaitForChildProcesses] [-KillChildProcessesWithParent] + [-SuccessExitCodes ] [-RebootExitCodes ] [-IgnoreExitCodes ] + [-PriorityClass ] [-ExitOnProcessFailure] [-PassThru] [-WhatIf] [-Confirm] + [] ``` ### RunAsActiveUser_WindowStyle_Timeout @@ -139,8 +137,8 @@ Start-ADTProcess -FilePath [-ArgumentList ] [-SecureArgumentL ```powershell Start-ADTProcess -FilePath [-ArgumentList ] [-SecureArgumentList] [-WorkingDirectory ] [-UseUnelevatedToken] [-ExpandEnvironmentVariables] [-CreateNoWindow] - [-StreamEncoding ] [-StandardInput ] [-NoStreamLogging] [-WaitForMsiExec] - [-MsiExecWaitTime ] [-WaitForChildProcesses] [-KillChildProcessesWithParent] -Timeout + [-StreamEncoding ] [-NoStreamLogging] [-WaitForMsiExec] [-MsiExecWaitTime ] + [-WaitForChildProcesses] [-KillChildProcessesWithParent] -Timeout [-TimeoutAction ] [-NoTerminateOnTimeout] [-SuccessExitCodes ] [-RebootExitCodes ] [-IgnoreExitCodes ] [-PriorityClass ] [-ExitOnProcessFailure] [-PassThru] [-WhatIf] [-Confirm] [] @@ -151,9 +149,9 @@ Start-ADTProcess -FilePath [-ArgumentList ] [-SecureArgumentL ```powershell Start-ADTProcess -FilePath [-ArgumentList ] [-SecureArgumentList] [-WorkingDirectory ] [-UseUnelevatedToken] [-ExpandEnvironmentVariables] [-CreateNoWindow] - [-StreamEncoding ] [-StandardInput ] [-NoStreamLogging] [-WaitForMsiExec] - [-MsiExecWaitTime ] [-WaitForChildProcesses] [-KillChildProcessesWithParent] - [-PriorityClass ] [-NoWait] [-PassThru] [-WhatIf] [-Confirm] [] + [-StreamEncoding ] [-NoStreamLogging] [-WaitForMsiExec] [-MsiExecWaitTime ] + [-WaitForChildProcesses] [-KillChildProcessesWithParent] [-PriorityClass ] [-NoWait] + [-PassThru] [-WhatIf] [-Confirm] [] ``` ### Default_CreateNoWindow_Wait @@ -161,11 +159,10 @@ Start-ADTProcess -FilePath [-ArgumentList ] [-SecureArgumentL ```powershell Start-ADTProcess -FilePath [-ArgumentList ] [-SecureArgumentList] [-WorkingDirectory ] [-UseUnelevatedToken] [-ExpandEnvironmentVariables] [-CreateNoWindow] - [-StreamEncoding ] [-StandardInput ] [-NoStreamLogging] [-WaitForMsiExec] - [-MsiExecWaitTime ] [-WaitForChildProcesses] [-KillChildProcessesWithParent] - [-SuccessExitCodes ] [-RebootExitCodes ] [-IgnoreExitCodes ] - [-PriorityClass ] [-ExitOnProcessFailure] [-PassThru] [-WhatIf] [-Confirm] - [] + [-StreamEncoding ] [-NoStreamLogging] [-WaitForMsiExec] [-MsiExecWaitTime ] + [-WaitForChildProcesses] [-KillChildProcessesWithParent] [-SuccessExitCodes ] + [-RebootExitCodes ] [-IgnoreExitCodes ] [-PriorityClass ] + [-ExitOnProcessFailure] [-PassThru] [-WhatIf] [-Confirm] [] ``` ### Default_WindowStyle_Timeout @@ -670,7 +667,7 @@ Accept wildcard characters: False ### -StreamEncoding -Specifies the encoding type to use when reading stdin/stdout/stderr. +Specifies the encoding type to use when reading stdout/stderr. Some apps like WinGet encode using UTF8, which will corrupt if incorrectly set. ```yaml @@ -685,23 +682,6 @@ Accept pipeline input: False Accept wildcard characters: False ``` -### -StandardInput - -Specifies a stirng to write to the process's stdin stream. -This is handy for answering known prompts, etc. - -```yaml -Type: String[] -Parameter Sets: RunAsActiveUser_CreateNoWindow_Timeout, RunAsActiveUser_CreateNoWindow_NoWait, RunAsActiveUser_CreateNoWindow_Wait, Default_CreateNoWindow_Timeout, Default_CreateNoWindow_NoWait, Default_CreateNoWindow_Wait -Aliases: - -Required: False -Position: Named -Default value: None -Accept pipeline input: False -Accept wildcard characters: False -``` - ### -NoStreamLogging Don't log any available stdout/stderr data to the log file. diff --git a/docs/reference/functions/Start-ADTProcessAsUser.mdx b/docs/reference/functions/Start-ADTProcessAsUser.mdx index 505ef0d..a79e1db 100644 --- a/docs/reference/functions/Start-ADTProcessAsUser.mdx +++ b/docs/reference/functions/Start-ADTProcessAsUser.mdx @@ -65,8 +65,8 @@ Start-ADTProcessAsUser [-Username ] -FilePath [-ArgumentList Start-ADTProcessAsUser [-Username ] -FilePath [-ArgumentList ] [-SecureArgumentList] [-WorkingDirectory ] [-UseLinkedAdminToken] [-UseHighestAvailableToken] [-InheritEnvironmentVariables] [-ExpandEnvironmentVariables] [-DenyUserTermination] [-CreateNoWindow] - [-StreamEncoding ] [-StandardInput ] [-NoStreamLogging] [-WaitForMsiExec] - [-MsiExecWaitTime ] [-WaitForChildProcesses] [-KillChildProcessesWithParent] -Timeout + [-StreamEncoding ] [-NoStreamLogging] [-WaitForMsiExec] [-MsiExecWaitTime ] + [-WaitForChildProcesses] [-KillChildProcessesWithParent] -Timeout [-TimeoutAction ] [-NoTerminateOnTimeout] [-SuccessExitCodes ] [-RebootExitCodes ] [-IgnoreExitCodes ] [-PriorityClass ] [-ExitOnProcessFailure] [-PassThru] [-WhatIf] [-Confirm] [] @@ -78,9 +78,9 @@ Start-ADTProcessAsUser [-Username ] -FilePath [-ArgumentList Start-ADTProcessAsUser [-Username ] -FilePath [-ArgumentList ] [-SecureArgumentList] [-WorkingDirectory ] [-UseLinkedAdminToken] [-UseHighestAvailableToken] [-InheritEnvironmentVariables] [-ExpandEnvironmentVariables] [-DenyUserTermination] [-CreateNoWindow] - [-StreamEncoding ] [-StandardInput ] [-NoStreamLogging] [-WaitForMsiExec] - [-MsiExecWaitTime ] [-WaitForChildProcesses] [-KillChildProcessesWithParent] - [-PriorityClass ] [-NoWait] [-PassThru] [-WhatIf] [-Confirm] [] + [-StreamEncoding ] [-NoStreamLogging] [-WaitForMsiExec] [-MsiExecWaitTime ] + [-WaitForChildProcesses] [-KillChildProcessesWithParent] [-PriorityClass ] [-NoWait] + [-PassThru] [-WhatIf] [-Confirm] [] ``` ### Default_CreateNoWindow_Wait @@ -89,11 +89,10 @@ Start-ADTProcessAsUser [-Username ] -FilePath [-ArgumentList Start-ADTProcessAsUser [-Username ] -FilePath [-ArgumentList ] [-SecureArgumentList] [-WorkingDirectory ] [-UseLinkedAdminToken] [-UseHighestAvailableToken] [-InheritEnvironmentVariables] [-ExpandEnvironmentVariables] [-DenyUserTermination] [-CreateNoWindow] - [-StreamEncoding ] [-StandardInput ] [-NoStreamLogging] [-WaitForMsiExec] - [-MsiExecWaitTime ] [-WaitForChildProcesses] [-KillChildProcessesWithParent] - [-SuccessExitCodes ] [-RebootExitCodes ] [-IgnoreExitCodes ] - [-PriorityClass ] [-ExitOnProcessFailure] [-PassThru] [-WhatIf] [-Confirm] - [] + [-StreamEncoding ] [-NoStreamLogging] [-WaitForMsiExec] [-MsiExecWaitTime ] + [-WaitForChildProcesses] [-KillChildProcessesWithParent] [-SuccessExitCodes ] + [-RebootExitCodes ] [-IgnoreExitCodes ] [-PriorityClass ] + [-ExitOnProcessFailure] [-PassThru] [-WhatIf] [-Confirm] [] ``` ### Default_CreateWindow_Timeout @@ -392,7 +391,7 @@ Accept wildcard characters: False ### -StreamEncoding -Specifies the encoding type to use when reading stdin/stdout/stderr. +Specifies the encoding type to use when reading stdout/stderr. Some apps like WinGet encode using UTF8, which will corrupt if incorrectly set. ```yaml @@ -407,23 +406,6 @@ Accept pipeline input: False Accept wildcard characters: False ``` -### -StandardInput - -Specifies a stirng to write to the process's stdin stream. -This is handy for answering known prompts, etc. - -```yaml -Type: String[] -Parameter Sets: Default_CreateNoWindow_Timeout, Default_CreateNoWindow_NoWait, Default_CreateNoWindow_Wait -Aliases: - -Required: False -Position: Named -Default value: None -Accept pipeline input: False -Accept wildcard characters: False -``` - ### -NoStreamLogging Don't log any available stdout/stderr data to the log file. diff --git a/docs/reference/functions/Update-ADTGroupPolicy.mdx b/docs/reference/functions/Update-ADTGroupPolicy.mdx index f15899b..8a2c0ca 100644 --- a/docs/reference/functions/Update-ADTGroupPolicy.mdx +++ b/docs/reference/functions/Update-ADTGroupPolicy.mdx @@ -12,12 +12,13 @@ Performs a gpupdate command to refresh Group Policies on the local machine. ## SYNTAX ```powershell -Update-ADTGroupPolicy [[-Target] ] [-Force] [-NoWait] [] +Update-ADTGroupPolicy [] ``` ## DESCRIPTION This function performs a gpupdate command to refresh Group Policies on the local machine. +It updates both Computer and User policies by forcing a refresh using the gpupdate.exe utility. ## EXAMPLES @@ -31,56 +32,6 @@ Performs a gpupdate command to refresh Group Policies on the local machine. ## PARAMETERS -### -Target - -Specifies that only User or only Computer policy settings are updated. -By default, both User and Computer policy settings are updated. - -```yaml -Type: String[] -Parameter Sets: (All) -Aliases: - -Required: False -Position: 1 -Default value: ('Computer', 'User') -Accept pipeline input: False -Accept wildcard characters: False -``` - -### -Force - -Reapplies all policy settings. -By default, only policy settings that have changed are applied. - -```yaml -Type: SwitchParameter -Parameter Sets: (All) -Aliases: - -Required: False -Position: Named -Default value: False -Accept pipeline input: False -Accept wildcard characters: False -``` - -### -NoWait - -Starts the underlying gpupdate.exe call without waiting for it to finish. - -```yaml -Type: SwitchParameter -Parameter Sets: (All) -Aliases: - -Required: False -Position: Named -Default value: False -Accept pipeline input: False -Accept wildcard characters: False -``` - ### CommonParameters This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). diff --git a/docs/reference/module-structure.mdx b/docs/reference/module-structure.mdx index f1cd139..3a48d2f 100644 --- a/docs/reference/module-structure.mdx +++ b/docs/reference/module-structure.mdx @@ -3,7 +3,6 @@ sidebar_position: 1 title: 'Module Structure' description: 'The file / folder structure of the PSADT module explained.' slug: /reference/module-structure -hide_title: true tags: - Usage - Archive diff --git a/docs/reference/text-formatting.mdx b/docs/reference/text-formatting.mdx index 5abc756..cf4c0f6 100644 --- a/docs/reference/text-formatting.mdx +++ b/docs/reference/text-formatting.mdx @@ -15,6 +15,7 @@ tags: PSAppDeployToolkit v4.1 supports rich text formatting in dialog messages, allowing you to create more visually appealing and informative user interfaces. This feature works with the Fluent dialog style and supports nested formatting for complex text styling. The text formatting system allows you to apply various styles to text displayed in dialogs using simple markup tags. These tags can be: + - Used individually for simple formatting - Combined for cumulative effects @@ -22,15 +23,16 @@ The text formatting system allows you to apply various styles to text displayed ### Basic Formatting -| Tag | Description | Example | -|-----|-------------|---------| -| `[bold]...[/bold]` | Makes text bold | `[bold]Important text[/bold]` | -| `[italic]...[/italic]` | Makes text italic | `[italic]Emphasized text[/italic]` | -| `[accent]...[/accent]` | Applies accent color and bold | `[accent]Highlighted text[/accent]` | -| `[url]...[/url]` | Creates a simple clickable hyperlink | `[url]https://psappdeploytoolkit.com[/url]` | +| Tag | Description | Example | +|-----------------------------------|--------------------------------------------------------------------------|-------------------------------------------------------------------------| +| `[bold]...[/bold]` | Makes text bold | `[bold]Important text[/bold]` | +| `[italic]...[/italic]` | Makes text italic | `[italic]Emphasized text[/italic]` | +| `[accent]...[/accent]` | Applies accent color and bold | `[accent]Highlighted text[/accent]` | +| `[url]...[/url]` | Creates a simple clickable hyperlink | `[url]https://psappdeploytoolkit.com[/url]` | | `[url=...]Link Description[/url]` | Creates a clickable hyperlink with a link description instead of the URL | `[url=https://psappdeploytoolkit.com]PSAppDeployToolkit Homepage[/url]` | The formatting system automatically adapts to the user's theme: + - Accent colors adjust for optimal contrast - Hyperlinks use theme-appropriate colors - Bold and italic formatting remain consistent @@ -76,6 +78,7 @@ Text formatting can be used in your `Strings\strings.psd1` configuration: } } ``` + ### Custom Messages You can use formatting tags in custom messages passed to dialogs: @@ -95,11 +98,13 @@ For help, visit [url]https://support.company.com[/url]" -ButtonText "OK" While formatting enhances readability, overuse can make text difficult to read: ❌ **Bad:** + ```text [bold][italic][accent]Everything[/accent][/italic][/bold] is [bold]formatted[/bold] [italic]differently[/italic]! ``` ✅ **Good:** + ```text [bold]Important:[/bold] Please [accent]save your work[/accent] before continuing. ``` @@ -124,11 +129,13 @@ Use formatting consistently throughout your deployment: Always close tags in the reverse order they were opened: ❌ **Incorrect:** + ```text [bold][italic]Text[/bold][/italic] ``` ✅ **Correct:** + ```text [bold][italic]Text[/italic][/bold] ``` diff --git a/docs/reference/v4-function-mapping.mdx b/docs/reference/v4-function-mapping.mdx index ff4a1a5..4f4bdd4 100644 --- a/docs/reference/v4-function-mapping.mdx +++ b/docs/reference/v4-function-mapping.mdx @@ -3,102 +3,101 @@ sidebar_position: 6 title: 'v4 Function Mapping' description: 'Reference list of v3 Functions and how they are mapped to the new v4 functions.' slug: /reference/v4-function-mapping -hide_title: true tags: - v4 Upgrade - Functions - Reference --- -# v4 Function Mapping +## Mapping The following table lists the v3 functions and their compatibility with v4. If a compatibility wrapper exists, the corresponding v4 function is shown. If there is no compatibility wrapper, "NO" is listed. -| v3 Function | Compatibility Wrapper Exists? | v4 Function | -|:---------------------------------------------------------------------------------------------------------------------------------------------|:------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| [Block-AppExecution](../../versioned_docs/version-3.10.2/reference/functions/Block-AppExecution.mdx) | Yes | [Block-ADTAppExecution](./functions/Block-ADTAppExecution.mdx) | -| [Close-InstallationProgress](../../versioned_docs/version-3.10.2/reference/functions/Close-InstallationProgress.mdx) | Yes | [Close-ADTInstallationProgress](./functions/Close-ADTInstallationProgress.mdx) | -| [Configure-EdgeExtension](../../versioned_docs/version-3.10.2/reference/functions/Configure-EdgeExtension.mdx) | Yes | [Add-ADTEdgeExtension](./functions/Add-ADTEdgeExtension.mdx) / [Remove-ADTEdgeExtension](./functions/Remove-ADTEdgeExtension.mdx) | -| [Convert-RegistryPath](../../versioned_docs/version-3.10.2/reference/functions/Convert-RegistryPath.mdx) | Yes | [Convert-ADTRegistryPath](./functions/Convert-ADTRegistryPath.mdx) | -| [ConvertTo-NTAccountOrSID](../../versioned_docs/version-3.10.2/reference/functions/ConvertTo-NTAccountOrSID.mdx) | Yes | [ConvertTo-ADTNTAccountOrSID](./functions/ConvertTo-ADTNTAccountOrSID.mdx) | -| [Copy-ContentToCache](../../versioned_docs/version-3.10.2/reference/functions/Copy-ContentToCache.mdx) | Yes | [Copy-ADTContentToCache](./functions/Copy-ADTContentToCache.mdx) | -| [Copy-File](../../versioned_docs/version-3.10.2/reference/functions/Copy-File.mdx) | Yes | [Copy-ADTFile](./functions/Copy-ADTFile.mdx) | -| [Copy-FileToUserProfiles](../../versioned_docs/version-3.10.2/reference/functions/Copy-FileToUserProfiles.mdx) | Yes | [Copy-ADTFileToUserProfiles](./functions/Copy-ADTFileToUserProfiles.mdx) | -| [Disable-TerminalServerInstallMode](../../versioned_docs/version-3.10.2/reference/functions/Disable-TerminalServerInstallMode.mdx) | Yes | [Disable-ADTTerminalServerInstallMode](./functions/Disable-ADTTerminalServerInstallMode.mdx) | -| [Enable-TerminalServerInstallMode](../../versioned_docs/version-3.10.2/reference/functions/Enable-TerminalServerInstallMode.mdx) | Yes | [Enable-ADTTerminalServerInstallMode](./functions/Enable-ADTTerminalServerInstallMode.mdx) | -| [Execute-MSI](../../versioned_docs/version-3.10.2/reference/functions/Execute-MSI.mdx) | Yes | [Start-ADTMsiProcess](./functions/Start-ADTMsiProcess.mdx) | -| [Execute-MSP](../../versioned_docs/version-3.10.2/reference/functions/Execute-MSP.mdx) | Yes | [Start-ADTMspProcess](./functions/Start-ADTMspProcess.mdx) | -| [Execute-Process](../../versioned_docs/version-3.10.2/reference/functions/Execute-Process.mdx) | Yes | [Start-ADTProcess](./functions/Start-ADTProcess.mdx) | -| [Execute-ProcessAsUser](../../versioned_docs/version-3.10.2/reference/functions/Execute-ProcessAsUser.mdx) | Yes | [Start-ADTProcessAsUser](./functions/Start-ADTProcessAsUser.mdx) | -| [Exit-Script](../../versioned_docs/version-3.10.2/reference/functions/Exit-Script.mdx) | Yes | [Close-ADTSession](./functions/Close-ADTSession.mdx) | -| [Get-DeferHistory](../../versioned_docs/version-3.10.2/reference/functions/Get-DeferHistory.mdx) | Yes | [Get-ADTDeferHistory](./functions/Get-ADTDeferHistory.mdx) | -| [Get-FileVersion](../../versioned_docs/version-3.10.2/reference/functions/Get-FileVersion.mdx) | Yes | [Get-ADTFileVersion](./functions/Get-ADTFileVersion.mdx) | -| [Get-FreeDiskSpace](../../versioned_docs/version-3.10.2/reference/functions/Get-FreeDiskSpace.mdx) | Yes | [Get-ADTFreeDiskSpace](./functions/Get-ADTFreeDiskSpace.mdx) | -| [Get-HardwarePlatform](../../versioned_docs/version-3.10.2/reference/functions/Get-HardwarePlatform.mdx) | **No** | **Deprecated** | -| [Get-IniValue](../../versioned_docs/version-3.10.2/reference/functions/Get-IniValue.mdx) | Yes | [Get-ADTIniValue](./functions/Get-ADTIniValue.mdx) | -| [Get-InstalledApplication](../../versioned_docs/version-3.10.2/reference/functions/Get-InstalledApplication.mdx) | Yes | [Get-ADTApplication](./functions/Get-ADTApplication.mdx) | -| [Get-LoggedOnUser](../../versioned_docs/version-3.10.2/reference/functions/Get-LoggedOnUser.mdx) | Yes | [Get-ADTLoggedOnUser](./functions/Get-ADTLoggedOnUser.mdx) | -| [Get-MsiExitCodeMessage](../../versioned_docs/version-3.10.2/reference/functions/Get-MsiExitCodeMessage.mdx) | Yes | [Get-ADTMsiExitCodeMessage](./functions/Get-ADTMsiExitCodeMessage.mdx) | -| [Get-MsiTableProperty](../../versioned_docs/version-3.10.2/reference/functions/Get-MsiTableProperty.mdx) | Yes | [Get-ADTMsiTableProperty](./functions/Get-ADTMsiTableProperty.mdx) | -| [Get-ObjectProperty](../../versioned_docs/version-3.10.2/reference/functions/Get-ObjectProperty.mdx) | Yes | [Get-ADTObjectProperty](./functions/Get-ADTObjectProperty.mdx) | -| [Get-PEFileArchitecture](../../versioned_docs/version-3.10.2/reference/functions/Get-PEFileArchitecture.mdx) | Yes | [Get-ADTPEFileArchitecture](./functions/Get-ADTPEFileArchitecture.mdx) | -| [Get-PendingReboot](../../versioned_docs/version-3.10.2/reference/functions/Get-PendingReboot.mdx) | Yes | [Get-ADTPendingReboot](./functions/Get-ADTPendingReboot.mdx) | -| [Get-RegistryKey](../../versioned_docs/version-3.10.2/reference/functions/Get-RegistryKey.mdx) | Yes | [Get-ADTRegistryKey](./functions/Get-ADTRegistryKey.mdx) | -| [Get-RunningProcesses](../../versioned_docs/version-3.10.2/reference/functions/Get-RunningProcesses.mdx) | Yes | [Get-ADTRunningProcesses](./functions/Get-ADTRunningProcesses.mdx) | -| [Get-SchedulerTask](../../versioned_docs/version-3.10.2/reference/functions/Get-SchedulerTask.mdx) | **No** | **Deprecated** | -| [Get-ServiceStartMode](../../versioned_docs/version-3.10.2/reference/functions/Get-ServiceStartMode.mdx) | Yes | [Get-ADTServiceStartMode](./functions/Get-ADTServiceStartMode.mdx) | -| [Get-Shortcut](../../versioned_docs/version-3.10.2/reference/functions/Get-Shortcut.mdx) | Yes | [Get-ADTShortcut](./functions/Get-ADTShortcut.mdx) | -| [Get-UniversalDate](../../versioned_docs/version-3.10.2/reference/functions/Get-UniversalDate.mdx) | **No** | **Deprecated** | -| [Get-UserProfiles](../../versioned_docs/version-3.10.2/reference/functions/Get-UserProfiles.mdx) | Yes | [Get-ADTUserProfiles](./functions/Get-ADTUserProfiles.mdx) | -| [Get-WindowTitle](../../versioned_docs/version-3.10.2/reference/functions/Get-WindowTitle.mdx) | Yes | [Get-ADTWindowTitle](./functions/Get-ADTWindowTitle.mdx) | -| [Install-MSUpdates](../../versioned_docs/version-3.10.2/reference/functions/Install-MSUpdates.mdx) | Yes | [Install-ADTMSUpdates](./functions/Install-ADTMSUpdates.mdx) | -| [Install-SCCMSoftwareUpdates](../../versioned_docs/version-3.10.2/reference/functions/Install-SCCMSoftwareUpdates.mdx) | Yes | [Install-ADTSCCMSoftwareUpdates](./functions/Install-ADTSCCMSoftwareUpdates.mdx) | -| [Invoke-HKCURegistrySettingsForAllUsers](../../versioned_docs/version-3.10.2/reference/functions/Invoke-HKCURegistrySettingsForAllUsers.mdx) | Yes | [Invoke-ADTAllUsersRegistryAction](./functions/Invoke-ADTAllUsersRegistryAction.mdx) | -| [Invoke-ObjectMethod](../../versioned_docs/version-3.10.2/reference/functions/Invoke-ObjectMethod.mdx) | Yes | [Invoke-ADTObjectMethod](./functions/Invoke-ADTObjectMethod.mdx) | -| [Invoke-RegisterOrUnregisterDLL](../../versioned_docs/version-3.10.2/reference/functions/Invoke-RegisterOrUnregisterDLL.mdx) | Yes | [Invoke-ADTRegSvr32](./functions/Invoke-ADTRegSvr32.mdx) / [Register-ADTDll](./functions/Register-ADTDll.mdx) / [Unregister-ADTDll](./functions/Unregister-ADTDll.mdx) | -| [Invoke-SCCMTask](../../versioned_docs/version-3.10.2/reference/functions/Invoke-SCCMTask.mdx) | Yes | [Invoke-ADTSCCMTask](./functions/Invoke-ADTSCCMTask.mdx) | -| [New-Folder](../../versioned_docs/version-3.10.2/reference/functions/New-Folder.mdx) | Yes | [New-ADTFolder](./functions/New-ADTFolder.mdx) | -| [New-MsiTransform](../../versioned_docs/version-3.10.2/reference/functions/New-MsiTransform.mdx) | Yes | [New-ADTMsiTransform](./functions/New-ADTMsiTransform.mdx) | -| [New-Shortcut](../../versioned_docs/version-3.10.2/reference/functions/New-Shortcut.mdx) | Yes | [New-ADTShortcut](./functions/New-ADTShortcut.mdx) | -| [New-ZipFile](../../versioned_docs/version-3.10.2/reference/functions/New-ZipFile.mdx) | Yes | [New-ADTZipFile](./functions/New-ADTZipFile.mdx) | -| [Remove-ContentFromCache](../../versioned_docs/version-3.10.2/reference/functions/Remove-ContentFromCache.mdx) | Yes | [Remove-ADTContentFromCache](./functions/Remove-ADTContentFromCache.mdx) | -| [Remove-File](../../versioned_docs/version-3.10.2/reference/functions/Remove-File.mdx) | Yes | [Remove-ADTFile](./functions/Remove-ADTFile.mdx) | -| [Remove-FileFromUserProfiles](../../versioned_docs/version-3.10.2/reference/functions/Remove-FileFromUserProfiles.mdx) | Yes | [Remove-ADTFileFromUserProfiles](./functions/Remove-ADTFileFromUserProfiles.mdx) | -| [Remove-Folder](../../versioned_docs/version-3.10.2/reference/functions/Remove-Folder.mdx) | Yes | [Remove-ADTFolder](./functions/Remove-ADTFolder.mdx) | -| [Remove-InvalidFileNameChars](../../versioned_docs/version-3.10.2/reference/functions/Remove-InvalidFileNameChars.mdx) | Yes | [Remove-ADTInvalidFileNameChars](./functions/Remove-ADTInvalidFileNameChars.mdx) | -| [Remove-MSIApplications](../../versioned_docs/version-3.10.2/reference/functions/Remove-MSIApplications.mdx) | Yes | [Uninstall-ADTApplication](./functions/Uninstall-ADTApplication.mdx) | -| [Remove-RegistryKey](../../versioned_docs/version-3.10.2/reference/functions/Remove-RegistryKey.mdx) | Yes | [Remove-ADTRegistryKey](./functions/Remove-ADTRegistryKey.mdx) | -| [Resolve-Error](../../versioned_docs/version-3.10.2/reference/functions/Resolve-Error.mdx) | Yes | [Resolve-ADTErrorRecord](./functions/Resolve-ADTErrorRecord.mdx) | -| [Resolve-Parameters](../../versioned_docs/version-3.10.2/reference/functions/Resolve-Parameters.mdx) | **No** | **Deprecated** | -| [Send-Keys](../../versioned_docs/version-3.10.2/reference/functions/Send-Keys.mdx) | Yes | [Send-ADTKeys](./functions/Send-ADTKeys.mdx) | -| [Set-ActiveSetup](../../versioned_docs/version-3.10.2/reference/functions/Set-ActiveSetup.mdx) | Yes | [Set-ADTActiveSetup](./functions/Set-ADTActiveSetup.mdx) | -| [Set-DeferHistory](../../versioned_docs/version-3.10.2/reference/functions/Set-DeferHistory.mdx) | Yes | [Set-ADTDeferHistory](./functions/Set-ADTDeferHistory.mdx) | -| [Set-IniValue](../../versioned_docs/version-3.10.2/reference/functions/Set-IniValue.mdx) | Yes | [Set-ADTIniValue](./functions/Set-ADTIniValue.mdx) | -| [Set-ItemPermission](../../versioned_docs/version-3.10.2/reference/functions/Set-ItemPermission.mdx) | Yes | [Set-ADTItemPermission](./functions/Set-ADTItemPermission.mdx) | -| [Set-MsiProperty](../../versioned_docs/version-3.10.2/reference/functions/Set-MsiProperty.mdx) | Yes | [Set-ADTMsiProperty](./functions/Set-ADTMsiProperty.mdx) | -| [Set-PinnedApplication](../../versioned_docs/version-3.10.2/reference/functions/Set-PinnedApplication.mdx) | **No** | **Deprecated** | -| [Set-RegistryKey](../../versioned_docs/version-3.10.2/reference/functions/Set-RegistryKey.mdx) | Yes | [Set-ADTRegistryKey](./functions/Set-ADTRegistryKey.mdx) | -| [Set-ServiceStartMode](../../versioned_docs/version-3.10.2/reference/functions/Set-ServiceStartMode.mdx) | Yes | [Set-ADTServiceStartMode](./functions/Set-ADTServiceStartMode.mdx) | -| [Set-Shortcut](../../versioned_docs/version-3.10.2/reference/functions/Set-Shortcut.mdx) | Yes | [Set-ADTShortcut](./functions/Set-ADTShortcut.mdx) | -| [Show-BalloonTip](../../versioned_docs/version-3.10.2/reference/functions/Show-BalloonTip.mdx) | Yes | [Show-ADTBalloonTip](./functions/Show-ADTBalloonTip.mdx) | -| [Show-DialogBox](../../versioned_docs/version-3.10.2/reference/functions/Show-DialogBox.mdx) | Yes | [Show-ADTDialogBox](./functions/Show-ADTDialogBox.mdx) | -| [Show-InstallationProgress](../../versioned_docs/version-3.10.2/reference/functions/Show-InstallationProgress.mdx) | Yes | [Show-ADTInstallationProgress](./functions/Show-ADTInstallationProgress.mdx) | -| [Show-InstallationPrompt](../../versioned_docs/version-3.10.2/reference/functions/Show-InstallationPrompt.mdx) | Yes | [Show-ADTInstallationPrompt](./functions/Show-ADTInstallationPrompt.mdx) | -| [Show-InstallationRestartPrompt](../../versioned_docs/version-3.10.2/reference/functions/Show-InstallationRestartPrompt.mdx) | Yes | [Show-ADTInstallationRestartPrompt](./functions/Show-ADTInstallationRestartPrompt.mdx) | -| [Show-InstallationWelcome](../../versioned_docs/version-3.10.2/reference/functions/Show-InstallationWelcome.mdx) | Yes | [Show-ADTInstallationWelcome](./functions/Show-ADTInstallationWelcome.mdx) | -| [Show-WelcomePrompt](../../versioned_docs/version-3.10.2/reference/functions/Show-WelcomePrompt.mdx) | Yes | [Show-ADTInstallationWelcome](./functions/Show-ADTInstallationWelcome.mdx) | -| [Start-ServiceAndDependencies](../../versioned_docs/version-3.10.2/reference/functions/Start-ServiceAndDependencies.mdx) | Yes | [Start-ADTServiceAndDependencies](./functions/Start-ADTServiceAndDependencies.mdx) | -| [Stop-ServiceAndDependencies](../../versioned_docs/version-3.10.2/reference/functions/Stop-ServiceAndDependencies.mdx) | Yes | [Stop-ADTServiceAndDependencies](./functions/Stop-ADTServiceAndDependencies.mdx) | -| [Test-Battery](../../versioned_docs/version-3.10.2/reference/functions/Test-Battery.mdx) | Yes | [Test-ADTBattery](./functions/Test-ADTBattery.mdx) | -| [Test-IsMutexAvailable](../../versioned_docs/version-3.10.2/reference/functions/Test-IsMutexAvailable.mdx) | Yes | [Test-ADTMutexAvailability](./functions/Test-ADTMutexAvailability.mdx) | -| [Test-MSUpdates](../../versioned_docs/version-3.10.2/reference/functions/Test-MSUpdates.mdx) | Yes | [Test-ADTMSUpdates](./functions/Test-ADTMSUpdates.mdx) | -| [Test-NetworkConnection](../../versioned_docs/version-3.10.2/reference/functions/Test-NetworkConnection.mdx) | Yes | [Test-ADTNetworkConnection](./functions/Test-ADTNetworkConnection.mdx) | -| [Test-PowerPoint](../../versioned_docs/version-3.10.2/reference/functions/Test-PowerPoint.mdx) | Yes | [Test-ADTPowerPoint](./functions/Test-ADTPowerPoint.mdx) | -| [Test-RegistryValue](../../versioned_docs/version-3.10.2/reference/functions/Test-RegistryValue.mdx) | Yes | [Test-ADTRegistryValue](./functions/Test-ADTRegistryValue.mdx) | -| [Test-ServiceExists](../../versioned_docs/version-3.10.2/reference/functions/Test-ServiceExists.mdx) | Yes | [Test-ADTServiceExists](./functions/Test-ADTServiceExists.mdx) | -| [Unblock-AppExecution](../../versioned_docs/version-3.10.2/reference/functions/Unblock-AppExecution.mdx) | Yes | [Unblock-ADTAppExecution](./functions/Unblock-ADTAppExecution.mdx) | -| [Update-Desktop](../../versioned_docs/version-3.10.2/reference/functions/Update-Desktop.mdx) | Yes | [Update-ADTDesktop](./functions/Update-ADTDesktop.mdx) | -| [Update-GroupPolicy](../../versioned_docs/version-3.10.2/reference/functions/Update-GroupPolicy.mdx) | Yes | [Update-ADTGroupPolicy](./functions/Update-ADTGroupPolicy.mdx) | -| [Update-SessionEnvironmentVariables](../../versioned_docs/version-3.10.2/reference/functions/Update-SessionEnvironmentVariables.mdx) | Yes | [Update-ADTEnvironmentPsProvider](./functions/Update-ADTEnvironmentPsProvider.mdx) | -| [Write-FunctionHeaderOrFooter](../../versioned_docs/version-3.10.2/reference/functions/Write-FunctionHeaderOrFooter.mdx) | Yes | [Initialize-ADTFunction](./functions/Initialize-ADTFunction.mdx) / [Complete-ADTFunction](./functions/Complete-ADTFunction.mdx) | -| [Write-Log](../../versioned_docs/version-3.10.2/reference/functions/Write-Log.mdx) | Yes | [Write-ADTLogEntry](./functions/Write-ADTLogEntry.mdx) | +| 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) | +| [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) | +| [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) | diff --git a/docs/usage/adding-ui-elements.mdx b/docs/usage/adding-ui-elements.mdx index 1915a5c..40ada40 100644 --- a/docs/usage/adding-ui-elements.mdx +++ b/docs/usage/adding-ui-elements.mdx @@ -3,7 +3,6 @@ sidebar_position: 2 title: 'Adding UI Elements' description: 'How to add UI elements to a deployment script.' slug: /usage/adding-ui-elements -hide_title: true tags: - Usage - User Interface diff --git a/docs/usage/admx-templates.mdx b/docs/usage/admx-templates.mdx index 1d48df3..01e442e 100644 --- a/docs/usage/admx-templates.mdx +++ b/docs/usage/admx-templates.mdx @@ -3,7 +3,6 @@ sidebar_position: 1 title: 'ADMX Templates' description: 'How to customize deployments using admx templates' slug: /usage/admx/admx-templates -hide_title: true tags: - Usage - Customizing @@ -76,4 +75,4 @@ When the Policies apply, the policies can be found in the Registry here: HKEY_LOCAL_MACHINE\SOFTWARE\Policies\PSAppDeployToolkit ``` -![Registry Policy Location](../images/psadt-admx-registry.png) \ No newline at end of file +![Registry Policy Location](../images/psadt-admx-registry.png) diff --git a/docs/usage/customizing-deployments.mdx b/docs/usage/customizing-deployments.mdx index f3e35b1..d75a5b2 100644 --- a/docs/usage/customizing-deployments.mdx +++ b/docs/usage/customizing-deployments.mdx @@ -3,7 +3,6 @@ sidebar_position: 3 title: 'Customizing Deployments' description: 'How to customize the look and behavior of a deployment.' slug: /usage/customizing-deployments -hide_title: true tags: - Usage - Customizing diff --git a/docs/usage/how-to-deploy.mdx b/docs/usage/how-to-deploy.mdx index 6a5d893..524ffe5 100644 --- a/docs/usage/how-to-deploy.mdx +++ b/docs/usage/how-to-deploy.mdx @@ -3,7 +3,6 @@ sidebar_position: 1 title: 'How to Deploy' description: 'How to deploy the toolkit using the command line / ConfigMgr / Intune.' slug: /usage/how-to-deploy -hide_title: true tags: - Usage - How to Deploy @@ -35,8 +34,8 @@ The following parameters are accepted by `Invoke-AppDeployToolkit.ps1` and `Invo | Parameter | Values | Description | | --------- | ------ | ----------- | -| `-DeploymentType` | Install *(default)*
Uninstall
Repair | Specifies the deployment type. | -| `-DeployMode` | Auto *(default)*
Interactive
Silent
NonInteractive | Controls dialog display behavior. NonInteractive allows progress dialogs but suppresses any UI elements requiring interaction. | +| `-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. | diff --git a/docs/usage/installing-applications.mdx b/docs/usage/installing-applications.mdx index 6f56a0a..7fcc381 100644 --- a/docs/usage/installing-applications.mdx +++ b/docs/usage/installing-applications.mdx @@ -1,9 +1,8 @@ ---- +--- sidebar_position: 4 title: 'Installing Applications' description: 'Guidance for installing applications with PSAppDeployToolkit.' slug: /usage/installing applications -hide_title: true tags: - Usage --- @@ -16,7 +15,7 @@ The `Start-ADTProcess` function can be used to execute a typical setup.exe insta ### Parameters Full parameter descriptions can be found in the [Start-ADTProcess](../reference/functions/Start-ADTProcess.mdx) documentation, but here are some of the most commonly used parameters: -| **Parameter** | **Description** | +| Parameter | Description | | ------------- | --------------- | | -FilePath | Path to the file to be executed. If the file is located directly in the **Files** directory, only the filename needs to be specified. | | -ArgumentList | Arguments to be passed to the executable. | @@ -56,7 +55,7 @@ The `Start-ADTProcessAsUser` function is used to run a process in the context of This function is actually a wrapper around `Start-ADTProcess`, which also accepts a `-Username` parameter on top of the options listed above, therefore the parameters available are almost identical. Full parameter descriptions can be found in the [Start-ADTProcessAsUser](../reference/functions/Start-ADTProcessAsUser.mdx) documentation, but here are some of the most commonly used ones that are only available when starting processes as a user: -| **Parameter** | **Description** | +| Parameter | Description | | ------------- | --------------- | | -UseLinkedAdminToken | Run the process with the user's admin token if available. | | -InheritEnvironmentVariables | Inherit environment variables from the current deployment process; user environment variables such as APPDATA are always layered on top so take precedence. | @@ -75,7 +74,7 @@ For installing / uninstalling / repairing MSI files, use the `Start-ADTMsiProces Again this wraps `Start-ADTProcess` and provides a lot of the same parameters, but also includes some additional parameters specific to MSI installations. Full parameter descriptions can be found in the [Start-ADTMsiProcess](../reference/functions/Start-ADTMsiProcess.mdx) documentation, but here are some of the most commonly used parameters specific to this function: -| **Parameter** | **Description** | +| Parameter | Description | | ------------- | --------------- | | -Action | The action to perform on the MSI file. Options: Install, Uninstall, Repair, Patch. Defaults to Install. | | -FilePath | Path to the MSI file to be executed. If the file is located directly in the **Files** directory, only the filename needs to be specified. | diff --git a/docusaurus.config.js b/docusaurus.config.js index 77a653a..5313782 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -9,7 +9,7 @@ import { themes as prismThemes } from 'prism-react-renderer'; /** @type {import('@docusaurus/types').Config} */ const config = { future: { - v4: true + v4: true, // experimental_router: 'hash', }, title: 'PSAppDeployToolkit', @@ -22,15 +22,19 @@ const config = { projectName: 'website', // Usually your repo name. titleDelimiter: '·', onBrokenLinks: 'throw', + markdown: { + hooks: { onBrokenMarkdownLinks: 'warn', + }, + }, i18n: { defaultLocale: 'en', locales: ['en'], }, stylesheets: [ - 'https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&family=Roboto+Mono:ital,wght@0,100..700;1,100..700&family=Roboto:ital,wght@0,100..900;1,100..900&display=swap', - ], + 'https://fonts.googleapis.com/css2?family=Cabin:ital,wght@0,400..700;1,400..700&family=Expletus+Sans:ital,wght@0,400..700;1,400..700&family=Funnel+Display:wght@300..800&family=Fustat:wght@200..800&family=Gantari:ital,wght@0,100..900;1,100..900&family=Geologica:wght,CRSV@100..900,0&family=Golos+Text:wght@400..900&family=Google+Sans+Code:ital,wght@0,300..800;1,300..800&family=Inclusive+Sans:ital,wght@0,300..700;1,300..700&family=League+Spartan:wght@100..900&family=Liter&family=Manrope:wght@200..800&family=Onest:wght@100..900&family=Outfit:wght@100..900&family=Oxygen:wght@300;400;700&family=PT+Sans+Caption:wght@400;700&family=Parkinsans:wght@300..800&family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&family=Reddit+Sans:ital,wght@0,200..900;1,200..900&family=Rethink+Sans:ital,wght@0,400..800;1,400..800&family=Rubik:ital,wght@0,300..900;1,300..900&family=Sen:wght@400..800&family=Sometype+Mono:ital,wght@0,400..700;1,400..700&family=Zain:ital,wght@0,200;0,300;0,400;0,700;0,800;0,900;1,300;1,400&display=swap', + ], customFields: { meta: { @@ -49,27 +53,38 @@ const config = { customCss: require.resolve('./src/css/custom.css'), }, docs: { + exclude: ['**/docs/plans/**'], sidebarPath: require.resolve('./sidebars.js'), - lastVersion: 'current', + lastVersion: '4.1.x', versions: { current: { - label: '4.1.x', + label: '4.2.x (In Development)', + path: '/', + banner: 'unreleased', // editUrl: 'https://github.com/psappdeploytoolkit/website/edit/main', }, - '4.0.0': { + '4.1.x': { + label: '4.1.x (Stable)', + path: '4.1.x', + }, + '4.0.x': { label: '4.0.x', - path: '4.0.0', - banner: 'unmaintained' + path: '4.0.x', + banner: 'unmaintained', }, '3.10.2': { label: '3.10.x', path: '3.10.2', - banner: 'unmaintained' + banner: 'unmaintained', }, }, }, blog: { - showReadingTime: false, + showReadingTime: true, + blogSidebarTitle: 'Recent Posts', + blogSidebarCount: 'ALL', + authorsMapPath: 'authors.yml', + onInlineAuthors: 'ignore', }, sitemap: { ignorePatterns: ['/blog/tags/**', '/docs/tags/**', '/error/'], @@ -113,14 +128,6 @@ const config = { minHeadingLevel: 2, maxHeadingLevel: 2, }, - // announcementBar: { - // id: 'support_us', - // content: - // 'Watch the PSADT v4 launch webinar to see the new features and changes, then find out how to download the new version in our Getting Started guide.', - // backgroundColor: '#0081c6', - // textColor: '#fff', - // isCloseable: true, - // }, navbar: { title: 'PSAppDeployToolkit', logo: { @@ -130,21 +137,7 @@ const config = { }, items: [ { to: 'features', label: 'Features', position: 'left' }, - // { - // label: "Docs", - // to: "/docs", - // items: [ - // { - // label: "Getting Started", - // to: "/docs/getting-started/requirements", - // }, - // { - // label: "Reference", - // to: "/docs/reference", - // }, - // ], - // position: "left" - // }, + { to: 'ecosystem', label: 'Ecosystem', position: 'left' }, { type: 'doc', position: 'left', @@ -157,19 +150,10 @@ const config = { docId: 'reference', label: 'Reference', }, - // { - // href: 'https://github.com/psappdeploytoolkit/psappdeploytoolkit/releases', - // label: 'Download', - // position: 'left', - // }, + { to: 'training', label: 'Training', position: 'left' }, { to: 'blog', label: 'News', position: 'left' }, { to: 'about', label: 'About', position: 'left' }, - { - type: 'docsVersionDropdown', - position: 'right', - dropdownActiveClassDisabled: true, - }, { type: 'search', position: 'right', @@ -178,6 +162,7 @@ const config = { { href: 'https://github.com/psappdeploytoolkit/psappdeploytoolkit', className: 'header-github-link', + 'aria-label': 'GitHub repository', position: 'right', }, ], @@ -190,19 +175,31 @@ const config = { items: [ { label: 'Features', - to: 'https://psappdeploytoolkit.com/features', + to: '/features', + }, + { + label: 'Ecosystem', + to: '/ecosystem', }, { label: 'Documentation', - to: 'https://psappdeploytoolkit.com/docs/introduction', + to: '/docs/introduction', }, { label: 'Reference', - to: 'https://psappdeploytoolkit.com/docs/reference', + to: '/docs/reference', + }, + { + label: 'Training', + to: '/training', }, { label: 'News', - to: 'https://psappdeploytoolkit.com/blog', + to: '/blog', + }, + { + label: 'About', + to: '/about', }, ], }, diff --git a/package.json b/package.json index 4c68449..e767408 100644 --- a/package.json +++ b/package.json @@ -22,31 +22,29 @@ "dependencies": { "@docusaurus/core": "^3.9.2", "@docusaurus/faster": "^3.9.2", + "@docusaurus/plugin-content-docs": "3.9.2", "@docusaurus/preset-classic": "3.9.2", "@docusaurus/theme-common": "^3.9.2", "@docusaurus/types": "^3.9.2", - "@easyops-cn/docusaurus-search-local": "^0.54.0", - "@eslint/markdown": "^7.5.1", + "@easyops-cn/docusaurus-search-local": "^0.52.3", "@fec/remark-a11y-emoji": "^4.0.2", "@mdx-js/react": "^3.1.1", "clsx": "^2.1.1", + "framer-motion": "^12.34.0", "prism-react-renderer": "^2.4.1", "react": "^19.2.4", "react-dom": "^19.2.4", - "react-icons": "^5.5.0", - "search-insights": "^2.17.3" + "react-icons": "^5.5.0" }, "devDependencies": { "@docusaurus/eslint-plugin": "^3.9.2", "@docusaurus/module-type-aliases": "3.9.2", - "@docusaurus/preset-classic": "^3.9.2", "@docusaurus/theme-classic": "^3.9.2", "@docusaurus/tsconfig": "^3.9.2", - "@docusaurus/types": "3.9.2", - "@fec/remark-a11y-emoji": "^4.0.2", + "@eslint/markdown": "^7.5.1", "@types/node": "^25.2.2", "@types/react": "^19.2.13", - "@typescript-eslint/eslint-plugin": "^8.54.0", + "@typescript-eslint/eslint-plugin": "^8.55.0", "@typescript-eslint/parser": "^8.55.0", "eslint": "^9.39.2", "eslint-config-prettier": "^10.1.8", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 29e2712..106beb9 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -10,25 +10,25 @@ importers: dependencies: '@docusaurus/core': specifier: ^3.9.2 - version: 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.4)(debug@4.4.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3) + version: 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.5)(debug@4.4.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3) '@docusaurus/faster': specifier: ^3.9.2 version: 3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)) + '@docusaurus/plugin-content-docs': + specifier: 3.9.2 + version: 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.5)(debug@4.4.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3) '@docusaurus/preset-classic': specifier: 3.9.2 - version: 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.4)(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(search-insights@2.17.3)(typescript@5.9.3) + version: 3.9.2(@algolia/client-search@5.48.0)(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.5)(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3) '@docusaurus/theme-common': specifier: ^3.9.2 - version: 3.9.2(@docusaurus/plugin-content-docs@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.4)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + version: 3.9.2(@docusaurus/plugin-content-docs@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.5)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@docusaurus/types': specifier: ^3.9.2 version: 3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@easyops-cn/docusaurus-search-local': - specifier: ^0.54.0 - version: 0.54.0(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@docusaurus/theme-common@3.9.2(@docusaurus/plugin-content-docs@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.4)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.4)(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3) - '@eslint/markdown': - specifier: ^7.5.1 - version: 7.5.1 + specifier: ^0.52.3 + version: 0.52.3(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@docusaurus/theme-common@3.9.2(@docusaurus/plugin-content-docs@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.5)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.5)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3) '@fec/remark-a11y-emoji': specifier: ^4.0.2 version: 4.0.2 @@ -38,6 +38,9 @@ importers: clsx: specifier: ^2.1.1 version: 2.1.1 + framer-motion: + specifier: ^12.34.0 + version: 12.34.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) prism-react-renderer: specifier: ^2.4.1 version: 2.4.1(react@19.2.4) @@ -50,9 +53,6 @@ importers: react-icons: specifier: ^5.5.0 version: 5.5.0(react@19.2.4) - search-insights: - specifier: ^2.17.3 - version: 2.17.3 devDependencies: '@docusaurus/eslint-plugin': specifier: ^3.9.2 @@ -62,10 +62,13 @@ importers: version: 3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@docusaurus/theme-classic': specifier: ^3.9.2 - version: 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@rspack/core@1.7.4)(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3) + version: 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@rspack/core@1.7.5)(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3) '@docusaurus/tsconfig': specifier: ^3.9.2 version: 3.9.2 + '@eslint/markdown': + specifier: ^7.5.1 + version: 7.5.1 '@types/node': specifier: ^25.2.2 version: 25.2.2 @@ -73,8 +76,8 @@ importers: specifier: ^19.2.13 version: 19.2.13 '@typescript-eslint/eslint-plugin': - specifier: ^8.54.0 - version: 8.54.0(@typescript-eslint/parser@8.55.0(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3))(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3) + specifier: ^8.55.0 + version: 8.55.0(@typescript-eslint/parser@8.55.0(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3))(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3) '@typescript-eslint/parser': specifier: ^8.55.0 version: 8.55.0(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3) @@ -99,63 +102,77 @@ importers: packages: - '@algolia/abtesting@1.13.0': - resolution: {integrity: sha512-Zrqam12iorp3FjiKMXSTpedGYznZ3hTEOAr2oCxI8tbF8bS1kQHClyDYNq/eV0ewMNLyFkgZVWjaS+8spsOYiQ==} + '@algolia/abtesting@1.14.0': + resolution: {integrity: sha512-cZfj+1Z1dgrk3YPtNQNt0H9Rr67P8b4M79JjUKGS0d7/EbFbGxGgSu6zby5f22KXo3LT0LZa4O2c6VVbupJuDg==} engines: {node: '>= 14.0.0'} - '@algolia/client-abtesting@5.47.0': - resolution: {integrity: sha512-aOpsdlgS9xTEvz47+nXmw8m0NtUiQbvGWNuSEb7fA46iPL5FxOmOUZkh8PREBJpZ0/H8fclSc7BMJCVr+Dn72w==} + '@algolia/autocomplete-core@1.19.2': + resolution: {integrity: sha512-mKv7RyuAzXvwmq+0XRK8HqZXt9iZ5Kkm2huLjgn5JoCPtDy+oh9yxUMfDDaVCw0oyzZ1isdJBc7l9nuCyyR7Nw==} + + '@algolia/autocomplete-plugin-algolia-insights@1.19.2': + resolution: {integrity: sha512-TjxbcC/r4vwmnZaPwrHtkXNeqvlpdyR+oR9Wi2XyfORkiGkLTVhX2j+O9SaCCINbKoDfc+c2PB8NjfOnz7+oKg==} + peerDependencies: + search-insights: '>= 1 < 3' + + '@algolia/autocomplete-shared@1.19.2': + resolution: {integrity: sha512-jEazxZTVD2nLrC+wYlVHQgpBoBB5KPStrJxLzsIFl6Kqd1AlG9sIAGl39V5tECLpIQzB3Qa2T6ZPJ1ChkwMK/w==} + peerDependencies: + '@algolia/client-search': '>= 4.9.1 < 6' + algoliasearch: '>= 4.9.1 < 6' + + '@algolia/client-abtesting@5.48.0': + resolution: {integrity: sha512-n17WSJ7vazmM6yDkWBAjY12J8ERkW9toOqNgQ1GEZu/Kc4dJDJod1iy+QP5T/UlR3WICgZDi/7a/VX5TY5LAPQ==} engines: {node: '>= 14.0.0'} - '@algolia/client-analytics@5.47.0': - resolution: {integrity: sha512-EcF4w7IvIk1sowrO7Pdy4Ako7x/S8+nuCgdk6En+u5jsaNQM4rTT09zjBPA+WQphXkA2mLrsMwge96rf6i7Mow==} + '@algolia/client-analytics@5.48.0': + resolution: {integrity: sha512-v5bMZMEqW9U2l40/tTAaRyn4AKrYLio7KcRuHmLaJtxuJAhvZiE7Y62XIsF070juz4MN3eyvfQmI+y5+OVbZuA==} engines: {node: '>= 14.0.0'} - '@algolia/client-common@5.47.0': - resolution: {integrity: sha512-Wzg5Me2FqgRDj0lFuPWFK05UOWccSMsIBL2YqmTmaOzxVlLZ+oUqvKbsUSOE5ud8Fo1JU7JyiLmEXBtgDKzTwg==} + '@algolia/client-common@5.48.0': + resolution: {integrity: sha512-7H3DgRyi7UByScc0wz7EMrhgNl7fKPDjKX9OcWixLwCj7yrRXDSIzwunykuYUUO7V7HD4s319e15FlJ9CQIIFQ==} engines: {node: '>= 14.0.0'} - '@algolia/client-insights@5.47.0': - resolution: {integrity: sha512-Ci+cn/FDIsDxSKMRBEiyKrqybblbk8xugo6ujDN1GSTv9RIZxwxqZYuHfdLnLEwLlX7GB8pqVyqrUSlRnR+sJA==} + '@algolia/client-insights@5.48.0': + resolution: {integrity: sha512-tXmkB6qrIGAXrtRYHQNpfW0ekru/qymV02bjT0w5QGaGw0W91yT+53WB6dTtRRsIrgS30Al6efBvyaEosjZ5uw==} engines: {node: '>= 14.0.0'} - '@algolia/client-personalization@5.47.0': - resolution: {integrity: sha512-gsLnHPZmWcX0T3IigkDL2imCNtsQ7dR5xfnwiFsb+uTHCuYQt+IwSNjsd8tok6HLGLzZrliSaXtB5mfGBtYZvQ==} + '@algolia/client-personalization@5.48.0': + resolution: {integrity: sha512-4tXEsrdtcBZbDF73u14Kb3otN+xUdTVGop1tBjict+Rc/FhsJQVIwJIcTrOJqmvhtBfc56Bu65FiVOnpAZCxcw==} engines: {node: '>= 14.0.0'} - '@algolia/client-query-suggestions@5.47.0': - resolution: {integrity: sha512-PDOw0s8WSlR2fWFjPQldEpmm/gAoUgLigvC3k/jCSi/DzigdGX6RdC0Gh1RR1P8Cbk5KOWYDuL3TNzdYwkfDyA==} + '@algolia/client-query-suggestions@5.48.0': + resolution: {integrity: sha512-unzSUwWFpsDrO8935RhMAlyK0Ttua/5XveVIwzfjs5w+GVBsHgIkbOe8VbBJccMU/z1LCwvu1AY3kffuSLAR5Q==} engines: {node: '>= 14.0.0'} - '@algolia/client-search@5.47.0': - resolution: {integrity: sha512-b5hlU69CuhnS2Rqgsz7uSW0t4VqrLMLTPbUpEl0QVz56rsSwr1Sugyogrjb493sWDA+XU1FU5m9eB8uH7MoI0g==} + '@algolia/client-search@5.48.0': + resolution: {integrity: sha512-RB9bKgYTVUiOcEb5bOcZ169jiiVW811dCsJoLT19DcbbFmU4QaK0ghSTssij35QBQ3SCOitXOUrHcGgNVwS7sQ==} engines: {node: '>= 14.0.0'} '@algolia/events@4.0.1': resolution: {integrity: sha512-FQzvOCgoFXAbf5Y6mYozw2aj5KCJoA3m4heImceldzPSMbdyS4atVjJzXKMsfX3wnZTFYwkkt8/z8UesLHlSBQ==} - '@algolia/ingestion@1.47.0': - resolution: {integrity: sha512-WvwwXp5+LqIGISK3zHRApLT1xkuEk320/EGeD7uYy+K8WwDd5OjXnhjuXRhYr1685KnkvWkq1rQ/ihCJjOfHpQ==} + '@algolia/ingestion@1.48.0': + resolution: {integrity: sha512-rhoSoPu+TDzDpvpk3cY/pYgbeWXr23DxnAIH/AkN0dUC+GCnVIeNSQkLaJ+CL4NZ51cjLIjksrzb4KC5Xu+ktw==} engines: {node: '>= 14.0.0'} - '@algolia/monitoring@1.47.0': - resolution: {integrity: sha512-j2EUFKAlzM0TE4GRfkDE3IDfkVeJdcbBANWzK16Tb3RHz87WuDfQ9oeEW6XiRE1/bEkq2xf4MvZesvSeQrZRDA==} + '@algolia/monitoring@1.48.0': + resolution: {integrity: sha512-aSe6jKvWt+8VdjOaq2ERtsXp9+qMXNJ3mTyTc1VMhNfgPl7ArOhRMRSQ8QBnY8ZL4yV5Xpezb7lAg8pdGrrulg==} engines: {node: '>= 14.0.0'} - '@algolia/recommend@5.47.0': - resolution: {integrity: sha512-+kTSE4aQ1ARj2feXyN+DMq0CIDHJwZw1kpxIunedkmpWUg8k3TzFwWsMCzJVkF2nu1UcFbl7xsIURz3Q3XwOXA==} + '@algolia/recommend@5.48.0': + resolution: {integrity: sha512-p9tfI1bimAaZrdiVExL/dDyGUZ8gyiSHsktP1ZWGzt5hXpM3nhv4tSjyHtXjEKtA0UvsaHKwSfFE8aAAm1eIQA==} engines: {node: '>= 14.0.0'} - '@algolia/requester-browser-xhr@5.47.0': - resolution: {integrity: sha512-Ja+zPoeSA2SDowPwCNRbm5Q2mzDvVV8oqxCQ4m6SNmbKmPlCfe30zPfrt9ho3kBHnsg37pGucwOedRIOIklCHw==} + '@algolia/requester-browser-xhr@5.48.0': + resolution: {integrity: sha512-XshyfpsQB7BLnHseMinp3fVHOGlTv6uEHOzNK/3XrEF9mjxoZAcdVfY1OCXObfwRWX5qXZOq8FnrndFd44iVsQ==} engines: {node: '>= 14.0.0'} - '@algolia/requester-fetch@5.47.0': - resolution: {integrity: sha512-N6nOvLbaR4Ge+oVm7T4W/ea1PqcSbsHR4O58FJ31XtZjFPtOyxmnhgCmGCzP9hsJI6+x0yxJjkW5BMK/XI8OvA==} + '@algolia/requester-fetch@5.48.0': + resolution: {integrity: sha512-Q4XNSVQU89bKNAPuvzSYqTH9AcbOOiIo6AeYMQTxgSJ2+uvT78CLPMG89RIIloYuAtSfE07s40OLV50++l1Bbw==} engines: {node: '>= 14.0.0'} - '@algolia/requester-node-http@5.47.0': - resolution: {integrity: sha512-z1oyLq5/UVkohVXNDEY70mJbT/sv/t6HYtCvCwNrOri6pxBJDomP9R83KOlwcat+xqBQEdJHjbrPh36f1avmZA==} + '@algolia/requester-node-http@5.48.0': + resolution: {integrity: sha512-ZgxV2+5qt3NLeUYBTsi6PLyHcENQWC0iFppFZekHSEDA2wcLdTUjnaJzimTEULHIvJuLRCkUs4JABdhuJktEag==} engines: {node: '>= 14.0.0'} '@babel/code-frame@7.29.0': @@ -170,8 +187,8 @@ packages: resolution: {integrity: sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==} engines: {node: '>=6.9.0'} - '@babel/generator@7.29.0': - resolution: {integrity: sha512-vSH118/wwM/pLR38g/Sgk05sNtro6TlTJKuiMXDaZqPUfjTFcudpCOt00IhOfj+1BFAX+UFAlzCU+6WXr3GLFQ==} + '@babel/generator@7.29.1': + resolution: {integrity: sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==} engines: {node: '>=6.9.0'} '@babel/helper-annotate-as-pure@7.27.3': @@ -1036,8 +1053,8 @@ packages: resolution: {integrity: sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==} engines: {node: '>=10.0.0'} - '@docsearch/core@4.5.3': - resolution: {integrity: sha512-x/P5+HVzv9ALtbuJIfpkF8Eyc5RE8YCsFcOgLrrtWa9Ui+53ggZA5seIAanCRORbS4+m982lu7rZmebSiuMIcw==} + '@docsearch/core@4.5.4': + resolution: {integrity: sha512-DbkfZbJyYAPFJtF71eAFOTQSy5z5c/hdSN0UrErORKDwXKLTJBR0c+5WxE5l+IKZx4xIaEa8RkrL7T28DTCOYw==} peerDependencies: '@types/react': '>= 16.8.0 < 20.0.0' react: '>= 16.8.0 < 20.0.0' @@ -1050,11 +1067,11 @@ packages: react-dom: optional: true - '@docsearch/css@4.5.3': - resolution: {integrity: sha512-kUpHaxn0AgI3LQfyzTYkNUuaFY4uEz/Ym9/N/FvyDE+PzSgZsCyDH9jE49B6N6f1eLCm9Yp64J9wENd6vypdxA==} + '@docsearch/css@4.5.4': + resolution: {integrity: sha512-gzO4DJwyM9c4YEPHwaLV1nUCDC2N6yoh0QJj44dce2rcfN71mB+jpu3+F+Y/KMDF1EKV0C3m54leSWsraE94xg==} - '@docsearch/react@4.5.3': - resolution: {integrity: sha512-Hm3Lg/FD9HXV57WshhWOHOprbcObF5ptLzcjA5zdgJDzYOMwEN+AvY8heQ5YMTWyC6kW2d+Qk25AVlHnDWMSvA==} + '@docsearch/react@4.5.4': + resolution: {integrity: sha512-iBNFfvWoUFRUJmGQ/r+0AEp2OJgJMoYIKRiRcTDON0hObBRSLlrv2ktb7w3nc1MeNm1JIpbPA99i59TiIR49fA==} peerDependencies: '@types/react': '>= 16.8.0 < 20.0.0' react: '>= 16.8.0 < 20.0.0' @@ -1255,8 +1272,8 @@ packages: '@easyops-cn/autocomplete.js@0.38.1': resolution: {integrity: sha512-drg76jS6syilOUmVNkyo1c7ZEBPcPuK+aJA7AksM5ZIIbV57DMHCywiCr+uHyv8BE5jUTU98j/H7gVrkHrWW3Q==} - '@easyops-cn/docusaurus-search-local@0.54.0': - resolution: {integrity: sha512-CHLJ+zEDz+pc+RMAbkQkw3vC0bYUj9n+D3Vvspn7G23S/R9WXdvxXRRutUsdBs2rXwQTWuUdE4wYpv5m36FgMw==} + '@easyops-cn/docusaurus-search-local@0.52.3': + resolution: {integrity: sha512-bkKHD+FoAY+sBvd9vcHudx8X5JQXkyGBcpstpJwOUTTpKwT0rOtUtnfmizpMu113LqdHxOxvlekYkGeTNGYYvw==} engines: {node: '>=12'} peerDependencies: '@docusaurus/theme-common': ^2 || ^3 @@ -1373,8 +1390,8 @@ packages: peerDependencies: tslib: '2' - '@jsonjoy.com/base64@17.65.0': - resolution: {integrity: sha512-Xrh7Fm/M0QAYpekSgmskdZYnFdSGnsxJ/tHaolA4bNwWdG9i65S8m83Meh7FOxyJyQAdo4d4J97NOomBLEfkDQ==} + '@jsonjoy.com/base64@17.67.0': + resolution: {integrity: sha512-5SEsJGsm15aP8TQGkDfJvz9axgPwAEm98S5DxOuYe8e1EbfajcDmgeXXzccEjh+mLnjqEKrkBdjHWS5vFNwDdw==} engines: {node: '>=10.0'} peerDependencies: tslib: '2' @@ -1385,8 +1402,8 @@ packages: peerDependencies: tslib: '2' - '@jsonjoy.com/buffers@17.65.0': - resolution: {integrity: sha512-eBrIXd0/Ld3p9lpDDlMaMn6IEfWqtHMD+z61u0JrIiPzsV1r7m6xDZFRxJyvIFTEO+SWdYF9EiQbXZGd8BzPfA==} + '@jsonjoy.com/buffers@17.67.0': + resolution: {integrity: sha512-tfExRpYxBvi32vPs9ZHaTjSP4fHAfzSmcahOfNxtvGHcyJel+aibkPlGeBB+7AoC6hL7lXIE++8okecBxx7lcw==} engines: {node: '>=10.0'} peerDependencies: tslib: '2' @@ -1397,8 +1414,8 @@ packages: peerDependencies: tslib: '2' - '@jsonjoy.com/codegen@17.65.0': - resolution: {integrity: sha512-7MXcRYe7n3BG+fo3jicvjB0+6ypl2Y/bQp79Sp7KeSiiCgLqw4Oled6chVv07/xLVTdo3qa1CD0VCCnPaw+RGA==} + '@jsonjoy.com/codegen@17.67.0': + resolution: {integrity: sha512-idnkUplROpdBOV0HMcwhsCUS5TRUi9poagdGs70A6S4ux9+/aPuKbh8+UYRTLYQHtXvAdNfQWXDqZEx5k4Dj2Q==} engines: {node: '>=10.0'} peerDependencies: tslib: '2' @@ -1457,8 +1474,8 @@ packages: peerDependencies: tslib: '2' - '@jsonjoy.com/json-pack@17.65.0': - resolution: {integrity: sha512-e0SG/6qUCnVhHa0rjDJHgnXnbsacooHVqQHxspjvlYQSkHm+66wkHw6Gql+3u/WxI/b1VsOdUi0M+fOtkgKGdQ==} + '@jsonjoy.com/json-pack@17.67.0': + resolution: {integrity: sha512-t0ejURcGaZsn1ClbJ/3kFqSOjlryd92eQY465IYrezsXmPcfHPE/av4twRSxf6WE+TkZgLY+71vCZbiIiFKA/w==} engines: {node: '>=10.0'} peerDependencies: tslib: '2' @@ -1469,8 +1486,8 @@ packages: peerDependencies: tslib: '2' - '@jsonjoy.com/json-pointer@17.65.0': - resolution: {integrity: sha512-uhTe+XhlIZpWOxgPcnO+iSCDgKKBpwkDVTyYiXX9VayGV8HSFVJM67M6pUE71zdnXF1W0Da21AvnhlmdwYPpow==} + '@jsonjoy.com/json-pointer@17.67.0': + resolution: {integrity: sha512-+iqOFInH+QZGmSuaybBUNdh7yvNrXvqR+h3wjXm0N/3JK1EyyFAeGJvqnmQL61d1ARLlk/wJdFKSL+LHJ1eaUA==} engines: {node: '>=10.0'} peerDependencies: tslib: '2' @@ -1481,8 +1498,8 @@ packages: peerDependencies: tslib: '2' - '@jsonjoy.com/util@17.65.0': - resolution: {integrity: sha512-cWiEHZccQORf96q2y6zU3wDeIVPeidmGqd9cNKJRYoVHTV0S1eHPy5JTbHpMnGfDvtvujQwQozOqgO9ABu6h0w==} + '@jsonjoy.com/util@17.67.0': + resolution: {integrity: sha512-6+8xBaz1rLSohlGh68D1pdw3AwDi9xydm8QNlAFkvnavCJYSze+pxoW2VKP8p308jtlMRLs5NTHfPlZLd4w7ew==} engines: {node: '>=10.0'} peerDependencies: tslib: '2' @@ -1568,24 +1585,28 @@ packages: engines: {node: '>= 10'} cpu: [arm64] os: [linux] + libc: [glibc] '@node-rs/jieba-linux-arm64-musl@1.10.4': resolution: {integrity: sha512-Y/tiJ1+HeS5nnmLbZOE+66LbsPOHZ/PUckAYVeLlQfpygLEpLYdlh0aPpS5uiaWMjAXYZYdFkpZHhxDmSLpwpw==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] + libc: [musl] '@node-rs/jieba-linux-x64-gnu@1.10.4': resolution: {integrity: sha512-WZO8ykRJpWGE9MHuZpy1lu3nJluPoeB+fIJJn5CWZ9YTVhNDWoCF4i/7nxz1ntulINYGQ8VVuCU9LD86Mek97g==} engines: {node: '>= 10'} cpu: [x64] os: [linux] + libc: [glibc] '@node-rs/jieba-linux-x64-musl@1.10.4': resolution: {integrity: sha512-uBBD4S1rGKcgCyAk6VCKatEVQb6EDD5I40v/DxODi5CuZVCANi9m5oee/MQbAoaX7RydA2f0OSCE9/tcwXEwUg==} engines: {node: '>= 10'} cpu: [x64] os: [linux] + libc: [musl] '@node-rs/jieba-wasm32-wasi@1.10.4': resolution: {integrity: sha512-Y2umiKHjuIJy0uulNDz9SDYHdfq5Hmy7jY5nORO99B4pySKkcrMjpeVrmWXJLIsEKLJwcCXHxz8tjwU5/uhz0A==} @@ -1675,265 +1696,64 @@ packages: '@polka/url@1.0.0-next.29': resolution: {integrity: sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==} - '@radix-ui/number@1.1.1': - resolution: {integrity: sha512-MkKCwxlXTgz6CFoJx3pCwn07GKp36+aZyu/u2Ln2VrA5DcdyCZkASEDBTd8x5whTQQL5CiYf4prXKLcgQdv29g==} - - '@radix-ui/primitive@1.1.3': - resolution: {integrity: sha512-JTF99U/6XIjCBo0wqkU5sK10glYe27MRRsfwoiq5zzOEZLHU3A3KCMa5X/azekYRCJ0HlwI0crAXS/5dEHTzDg==} - - '@radix-ui/react-compose-refs@1.1.2': - resolution: {integrity: sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - - '@radix-ui/react-context@1.1.2': - resolution: {integrity: sha512-jCi/QKUM2r1Ju5a3J64TH2A5SpKAgh0LpknyqdQ4m6DCV0xJ2HG1xARRwNGPQfi1SLdLWZ1OJz6F4OMBBNiGJA==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - - '@radix-ui/react-dialog@1.1.15': - resolution: {integrity: sha512-TCglVRtzlffRNxRMEyR36DGBLJpeusFcgMVD9PZEzAKnUs1lKCgX5u9BmC2Yg+LL9MgZDugFFs1Vl+Jp4t/PGw==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - - '@radix-ui/react-direction@1.1.1': - resolution: {integrity: sha512-1UEWRX6jnOA2y4H5WczZ44gOOjTEmlqv1uNW4GAJEO5+bauCBhv8snY65Iw5/VOS/ghKN9gr2KjnLKxrsvoMVw==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - - '@radix-ui/react-dismissable-layer@1.1.11': - resolution: {integrity: sha512-Nqcp+t5cTB8BinFkZgXiMJniQH0PsUt2k51FUhbdfeKvc4ACcG2uQniY/8+h1Yv6Kza4Q7lD7PQV0z0oicE0Mg==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - - '@radix-ui/react-focus-guards@1.1.3': - resolution: {integrity: sha512-0rFg/Rj2Q62NCm62jZw0QX7a3sz6QCQU0LpZdNrJX8byRGaGVTqbrW9jAoIAHyMQqsNpeZ81YgSizOt5WXq0Pw==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - - '@radix-ui/react-focus-scope@1.1.7': - resolution: {integrity: sha512-t2ODlkXBQyn7jkl6TNaw/MtVEVvIGelJDCG41Okq/KwUsJBwQ4XVZsHAVUkK4mBv3ewiAS3PGuUWuY2BoK4ZUw==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - - '@radix-ui/react-id@1.1.1': - resolution: {integrity: sha512-kGkGegYIdQsOb4XjsfM97rXsiHaBwco+hFI66oO4s9LU+PLAC5oJ7khdOVFxkhsmlbpUqDAvXw11CluXP+jkHg==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - - '@radix-ui/react-portal@1.1.9': - resolution: {integrity: sha512-bpIxvq03if6UNwXZ+HTK71JLh4APvnXntDc6XOX8UVq4XQOVl7lwok0AvIl+b8zgCw3fSaVTZMpAPPagXbKmHQ==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - - '@radix-ui/react-presence@1.1.5': - resolution: {integrity: sha512-/jfEwNDdQVBCNvjkGit4h6pMOzq8bHkopq458dPt2lMjx+eBQUohZNG9A7DtO/O5ukSbxuaNGXMjHicgwy6rQQ==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - - '@radix-ui/react-primitive@2.1.3': - resolution: {integrity: sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - - '@radix-ui/react-scroll-area@1.2.10': - resolution: {integrity: sha512-tAXIa1g3sM5CGpVT0uIbUx/U3Gs5N8T52IICuCtObaos1S8fzsrPXG5WObkQN3S6NVl6wKgPhAIiBGbWnvc97A==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - - '@radix-ui/react-slot@1.2.3': - resolution: {integrity: sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - - '@radix-ui/react-slot@1.2.4': - resolution: {integrity: sha512-Jl+bCv8HxKnlTLVrcDE8zTMJ09R9/ukw4qBs/oZClOfoQk/cOTbDn+NceXfV7j09YPVQUryJPHurafcSg6EVKA==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - - '@radix-ui/react-use-callback-ref@1.1.1': - resolution: {integrity: sha512-FkBMwD+qbGQeMu1cOHnuGB6x4yzPjho8ap5WtbEJ26umhgqVXbhekKUQO+hZEL1vU92a3wHwdp0HAcqAUF5iDg==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - - '@radix-ui/react-use-controllable-state@1.2.2': - resolution: {integrity: sha512-BjasUjixPFdS+NKkypcyyN5Pmg83Olst0+c6vGov0diwTEo6mgdqVR6hxcEgFuh4QrAs7Rc+9KuGJ9TVCj0Zzg==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - - '@radix-ui/react-use-effect-event@0.0.2': - resolution: {integrity: sha512-Qp8WbZOBe+blgpuUT+lw2xheLP8q0oatc9UpmiemEICxGvFLYmHm9QowVZGHtJlGbS6A6yJ3iViad/2cVjnOiA==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - - '@radix-ui/react-use-escape-keydown@1.1.1': - resolution: {integrity: sha512-Il0+boE7w/XebUHyBjroE+DbByORGR9KKmITzbR7MyQ4akpORYP/ZmbhAr0DG7RmmBqoOnZdy2QlvajJ2QA59g==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - - '@radix-ui/react-use-layout-effect@1.1.1': - resolution: {integrity: sha512-RbJRS4UWQFkzHTTwVymMTUv8EqYhOp8dOOviLj2ugtTiXRaRQS7GLGxZTLL1jWhMeoSCf5zmcZkqTl9IiYfXcQ==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - - '@rspack/binding-darwin-arm64@1.7.4': - resolution: {integrity: sha512-d4FTW/TkqvU9R1PsaK2tbLG1uY0gAlxy3rEiQYrFRAOVTMOFkPasypmvhwD5iWrPIhkjIi79IkgrSzRJaP2ZwA==} + '@rspack/binding-darwin-arm64@1.7.5': + resolution: {integrity: sha512-dg2/IrF+g498NUt654N8LFWfIiUsHlTankWieE1S3GWEQM6jweeRbNuu1Py1nWIUsjR2yQtv7ziia7c9Q8UTaQ==} cpu: [arm64] os: [darwin] - '@rspack/binding-darwin-x64@1.7.4': - resolution: {integrity: sha512-Oq65S5szs3+In9hVWfPksdL6EUu1+SFZK3oQINP3kMJ5zPzrdyiue+L5ClpTU/VMKVxfQTdCBsI6OVJNnaLBiA==} + '@rspack/binding-darwin-x64@1.7.5': + resolution: {integrity: sha512-RQJX4boQJUu3lo1yiN344+y8W6iSO08ARXIZqFPg66coOgfX1lhsXQSRJGQEQG4PAcYuC0GmrYFzErliifbc1Q==} cpu: [x64] os: [darwin] - '@rspack/binding-linux-arm64-gnu@1.7.4': - resolution: {integrity: sha512-sTpfCraAtYZBhdw9Xx5a19OgJ/mBELTi61utZzrO3bV6BFEulvOdmnNjpgb0xv1KATtNI8YxECohUzekk1WsOA==} + '@rspack/binding-linux-arm64-gnu@1.7.5': + resolution: {integrity: sha512-R7CO1crkJQLIQpJQzf+6DMHjvcvH/VxsatS5CG897IIT2aAfBeQuQAO+ERJko/UwSZam2K8Rxjuopcu5A2jsTQ==} cpu: [arm64] os: [linux] + libc: [glibc] - '@rspack/binding-linux-arm64-musl@1.7.4': - resolution: {integrity: sha512-sw8jZbUe13Ry0/tnUt1pSdwkaPtSzKuveq+b6/CUT26I3DKfJQoG0uJbjj2quMe4ks3jDmoGlxuRe4D/fWUoSg==} + '@rspack/binding-linux-arm64-musl@1.7.5': + resolution: {integrity: sha512-moDVFD06ISZi+wCIjJLzQSr8WO8paViacSHk+rOKQxwKI96cPoC4JFkz0+ibT2uks4i2ecs4Op48orsoguiXxw==} cpu: [arm64] os: [linux] + libc: [musl] - '@rspack/binding-linux-x64-gnu@1.7.4': - resolution: {integrity: sha512-1W6LU0wR/TxB+8pogt0pn0WRwbQmKfu9839p/VBuSkNdWR4aljAhYO6RxsLQLCLrDAqEyrpeYWsWJBvAJ4T/pA==} + '@rspack/binding-linux-x64-gnu@1.7.5': + resolution: {integrity: sha512-LGtdsdhtA5IxdMptj2NDVEbuZF4aqM99BVn3saHp92A4Fn20mW9UtQ+19PtaOFdbQBUN1GcP+cosrJ1wY56hOg==} cpu: [x64] os: [linux] + libc: [glibc] - '@rspack/binding-linux-x64-musl@1.7.4': - resolution: {integrity: sha512-rkmu8qLnm/q8J14ZQZ04SnPNzdRNgzAoKJCTbnhCzcuL5k5e20LUFfGuS6j7Io1/UdVMOjz/u7R6b9h/qA1Scw==} + '@rspack/binding-linux-x64-musl@1.7.5': + resolution: {integrity: sha512-V1HTvuj0XF/e4Xnixqf7FrxdCtTkYqn26EKwH7ExUFuVBh4SsLGr29EK5SOXBG0xdy5TSEUokMup7cuONPb3Hw==} cpu: [x64] os: [linux] + libc: [musl] - '@rspack/binding-wasm32-wasi@1.7.4': - resolution: {integrity: sha512-6BQvLbDtUVkTN5o1QYLYKAYuXavC4ER5Vn/amJEoecbM9F25MNAv28inrXs7BQ4cHSU4WW/F4yZPGnA+jUZLyw==} + '@rspack/binding-wasm32-wasi@1.7.5': + resolution: {integrity: sha512-rGNHrk2QuLFfwOTib91skuLh2aMYeTP4lgM4zanDhtt95DLDlwioETFY7FzY1WmS+Z3qnEyrgQIRp8osy0NKTw==} cpu: [wasm32] - '@rspack/binding-win32-arm64-msvc@1.7.4': - resolution: {integrity: sha512-kipggu7xVPhnAkAV7koSDVbBuuMDMA4hX60DNJKTS6fId3XNHcZqWKIsWGOt0yQ6KV7I3JRRBDotKLx6uYaRWw==} + '@rspack/binding-win32-arm64-msvc@1.7.5': + resolution: {integrity: sha512-eLyD9URS9M2pYa7sPICu9S0OuDAMnnGfuqrZYlrtgnEOEgimaG39gX6ENLwHvlNulaVMMFTNbDnS/2MELZ7r7g==} cpu: [arm64] os: [win32] - '@rspack/binding-win32-ia32-msvc@1.7.4': - resolution: {integrity: sha512-9Zdozc13AUQHqagDDHxHml1FnZZWuSj/uP+SxtlTlQaiIE9GDH3n0cUio1GUq+cBKbcXeiE3dJMGJxhiFaUsxA==} + '@rspack/binding-win32-ia32-msvc@1.7.5': + resolution: {integrity: sha512-ZT4eC8hHWzweA6S4Tl2c/z/fvhbU7Wnh+l76z+qmDy8wuA8uNrHgIb1mHLPli/wsqcjmIy8rDO9gkIBitg5I+w==} cpu: [ia32] os: [win32] - '@rspack/binding-win32-x64-msvc@1.7.4': - resolution: {integrity: sha512-3a/jZTUrvU340IuRcxul+ccsDtdrMaGq/vi4HNcWalL0H2xeOeuieBAV8AZqaRjmxMu8OyRcpcSrkHtN1ol/eA==} + '@rspack/binding-win32-x64-msvc@1.7.5': + resolution: {integrity: sha512-a2j10QS3dZvW+gdu+FXteAkChxsK2g9BRUOmpt13w22LkiGrdmOkMQyDWRgJNxUGJTlqIUqtXxs72nTTlzo2Sw==} cpu: [x64] os: [win32] - '@rspack/binding@1.7.4': - resolution: {integrity: sha512-BOACDXd9aTrdJgqa88KGxnTGdUdVLAClTCLhSvdNvQZIcaVLOB1qtW0TvqjZ19MxuQB/Cba5u/ILc5DNXxuDhg==} + '@rspack/binding@1.7.5': + resolution: {integrity: sha512-tlZfDHfGu765FBL3hIyjrr8slJZztv7rCM+KIczZS7UlJQDl1+WsDKUe/+E1Fw9SlmorLWK40+y3rLTHmMrN2A==} - '@rspack/core@1.7.4': - resolution: {integrity: sha512-6QNqcsRSy1WbAGvjA2DAEx4yyAzwrvT6vd24Kv4xdZHdvF6FmcUbr5J+mLJ1jSOXvpNhZ+RzN37JQ8fSmytEtw==} + '@rspack/core@1.7.5': + resolution: {integrity: sha512-W1ChLhjBxGg6y4AHjEVjhcww/FZJ2O9obR0EOlYcfrfQGojCAUMeQjbmaF2sse5g5m0vSCaPtNYkycZ0qVRk1A==} engines: {node: '>=18.12.0'} peerDependencies: '@swc/helpers': '>=0.5.1' @@ -1953,8 +1773,8 @@ packages: '@sideway/pinpoint@2.0.0': resolution: {integrity: sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==} - '@sinclair/typebox@0.27.8': - resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} + '@sinclair/typebox@0.27.10': + resolution: {integrity: sha512-MTBk/3jGLNB2tVxv6uLlFh1iu64iYOQ2PbdOSK3NW8JZsmlaOh2q6sdtKowBhfw8QFLmYNzTW4/oK4uATIi6ZA==} '@sindresorhus/is@4.6.0': resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==} @@ -2074,24 +1894,28 @@ packages: engines: {node: '>=10'} cpu: [arm64] os: [linux] + libc: [glibc] '@swc/core-linux-arm64-musl@1.15.11': resolution: {integrity: sha512-PYftgsTaGnfDK4m6/dty9ryK1FbLk+LosDJ/RJR2nkXGc8rd+WenXIlvHjWULiBVnS1RsjHHOXmTS4nDhe0v0w==} engines: {node: '>=10'} cpu: [arm64] os: [linux] + libc: [musl] '@swc/core-linux-x64-gnu@1.15.11': resolution: {integrity: sha512-DKtnJKIHiZdARyTKiX7zdRjiDS1KihkQWatQiCHMv+zc2sfwb4Glrodx2VLOX4rsa92NLR0Sw8WLcPEMFY1szQ==} engines: {node: '>=10'} cpu: [x64] os: [linux] + libc: [glibc] '@swc/core-linux-x64-musl@1.15.11': resolution: {integrity: sha512-mUjjntHj4+8WBaiDe5UwRNHuEzLjIWBTSGTw0JT9+C9/Yyuh4KQqlcEQ3ro6GkHmBGXBFpGIj/o5VMyRWfVfWw==} engines: {node: '>=10'} cpu: [x64] os: [linux] + libc: [musl] '@swc/core-win32-arm64-msvc@1.15.11': resolution: {integrity: sha512-ZkNNG5zL49YpaFzfl6fskNOSxtcZ5uOYmWBkY4wVAvgbSAQzLRVBp+xArGWh2oXlY/WgL99zQSGTv7RI5E6nzA==} @@ -2146,24 +1970,28 @@ packages: engines: {node: '>=10'} cpu: [arm64] os: [linux] + libc: [glibc] '@swc/html-linux-arm64-musl@1.15.11': resolution: {integrity: sha512-aNACh2/HPy52VbKPqHieVRDeKzkO66DQdlhiVUi+fggdn8khvllni6Xr52INeAMjYFASrTTth/3vKXMv215t3A==} engines: {node: '>=10'} cpu: [arm64] os: [linux] + libc: [musl] '@swc/html-linux-x64-gnu@1.15.11': resolution: {integrity: sha512-8YOar0XeRLBzA+UMMW5smGpsQamoZLtaQ5RKGfap21FxOUUXqkPhkDTRr+kBVCYb47yz3NokjTPaDGTWOYNyww==} engines: {node: '>=10'} cpu: [x64] os: [linux] + libc: [glibc] '@swc/html-linux-x64-musl@1.15.11': resolution: {integrity: sha512-em2Ur0uGFA/nw2JbMclXu9mLuUC7q/1J06i8FZTRHqZzNGt9Q0UMdgH9T8HkGLT5e7dZ6ROJoq1H4st6B8N3uw==} engines: {node: '>=10'} cpu: [x64] os: [linux] + libc: [musl] '@swc/html-win32-arm64-msvc@1.15.11': resolution: {integrity: sha512-Xf9Vd4UsYTs4ejBwS+j9zShkyp3KQ+qfn/ZKVMKDygWjuOjU6FFXWYm93/PdTmS5qD0c58FhmoqTv+uFEZ4nxQ==} @@ -2345,11 +2173,11 @@ packages: '@types/yargs@17.0.35': resolution: {integrity: sha512-qUHkeCyQFxMXg79wQfTtfndEC+N9ZZg76HJftDJp+qH2tV7Gj4OJi7l+PiWwJ+pWtW8GwSmqsDj/oymhrTWXjg==} - '@typescript-eslint/eslint-plugin@8.54.0': - resolution: {integrity: sha512-hAAP5io/7csFStuOmR782YmTthKBJ9ND3WVL60hcOjvtGFb+HJxH4O5huAcmcZ9v9G8P+JETiZ/G1B8MALnWZQ==} + '@typescript-eslint/eslint-plugin@8.55.0': + resolution: {integrity: sha512-1y/MVSz0NglV1ijHC8OT49mPJ4qhPYjiK08YUQVbIOyu+5k862LKUHFkpKHWu//zmr7hDR2rhwUm6gnCGNmGBQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^8.54.0 + '@typescript-eslint/parser': ^8.55.0 eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' @@ -2360,12 +2188,6 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/project-service@8.54.0': - resolution: {integrity: sha512-YPf+rvJ1s7MyiWM4uTRhE4DvBXrEV+d8oC3P9Y2eT7S+HBS0clybdMIPnhiATi9vZOYDc7OQ1L/i6ga6NFYK/g==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/project-service@8.55.0': resolution: {integrity: sha512-zRcVVPFUYWa3kNnjaZGXSu3xkKV1zXy8M4nO/pElzQhFweb7PPtluDLQtKArEOGmjXoRjnUZ29NjOiF0eCDkcQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -2376,28 +2198,18 @@ packages: resolution: {integrity: sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - '@typescript-eslint/scope-manager@8.54.0': - resolution: {integrity: sha512-27rYVQku26j/PbHYcVfRPonmOlVI6gihHtXFbTdB5sb6qA0wdAQAbyXFVarQ5t4HRojIz64IV90YtsjQSSGlQg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/scope-manager@8.55.0': resolution: {integrity: sha512-fVu5Omrd3jeqeQLiB9f1YsuK/iHFOwb04bCtY4BSCLgjNbOD33ZdV6KyEqplHr+IlpgT0QTZ/iJ+wT7hvTx49Q==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/tsconfig-utils@8.54.0': - resolution: {integrity: sha512-dRgOyT2hPk/JwxNMZDsIXDgyl9axdJI3ogZ2XWhBPsnZUv+hPesa5iuhdYt2gzwA9t8RE5ytOJ6xB0moV0Ujvw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/tsconfig-utils@8.55.0': resolution: {integrity: sha512-1R9cXqY7RQd7WuqSN47PK9EDpgFUK3VqdmbYrvWJZYDd0cavROGn+74ktWBlmJ13NXUQKlZ/iAEQHI/V0kKe0Q==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/type-utils@8.54.0': - resolution: {integrity: sha512-hiLguxJWHjjwL6xMBwD903ciAwd7DmK30Y9Axs/etOkftC3ZNN9K44IuRD/EB08amu+Zw6W37x9RecLkOo3pMA==} + '@typescript-eslint/type-utils@8.55.0': + resolution: {integrity: sha512-x1iH2unH4qAt6I37I2CGlsNs+B9WGxurP2uyZLRz6UJoZWDBx9cJL1xVN/FiOmHEONEg6RIufdvyT0TEYIgC5g==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -2407,10 +2219,6 @@ packages: resolution: {integrity: sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - '@typescript-eslint/types@8.54.0': - resolution: {integrity: sha512-PDUI9R1BVjqu7AUDsRBbKMtwmjWcn4J3le+5LpcFgWULN3LvHC5rkc9gCVxbrsrGmO1jfPybN5s6h4Jy+OnkAA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/types@8.55.0': resolution: {integrity: sha512-ujT0Je8GI5BJWi+/mMoR0wxwVEQaxM+pi30xuMiJETlX80OPovb2p9E8ss87gnSVtYXtJoU9U1Cowcr6w2FE0w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -2424,12 +2232,6 @@ packages: typescript: optional: true - '@typescript-eslint/typescript-estree@8.54.0': - resolution: {integrity: sha512-BUwcskRaPvTk6fzVWgDPdUndLjB87KYDrN5EYGetnktoeAvPtO4ONHlAZDnj5VFnUANg0Sjm7j4usBlnoVMHwA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/typescript-estree@8.55.0': resolution: {integrity: sha512-EwrH67bSWdx/3aRQhCoxDaHM+CrZjotc2UCCpEDVqfCE+7OjKAGWNY2HsCSTEVvWH2clYQK8pdeLp42EVs+xQw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -2442,8 +2244,8 @@ packages: peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - '@typescript-eslint/utils@8.54.0': - resolution: {integrity: sha512-9Cnda8GS57AQakvRyG0PTejJNlA2xhvyNtEVIMlDWOOeEyBkYWhGPnfrIAnqxLMTSTo6q8g12XVjjev5l1NvMA==} + '@typescript-eslint/utils@8.55.0': + resolution: {integrity: sha512-BqZEsnPGdYpgyEIkDC1BadNY8oMwckftxBT+C8W0g1iKPdeqKZBtTfnvcq0nf60u7MkjFO8RBvpRGZBPw4L2ow==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -2453,10 +2255,6 @@ packages: resolution: {integrity: sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - '@typescript-eslint/visitor-keys@8.54.0': - resolution: {integrity: sha512-VFlhGSl4opC0bprJiItPQ1RfUhGDIBokcPwaFH4yiBCaNPeld/9VeXbiPO1cLyorQi1G1vL+ecBk1x8o1axORA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/visitor-keys@8.55.0': resolution: {integrity: sha512-AxNRwEie8Nn4eFS1FzDMJWIISMGoXMb037sgCBJ3UR6o0fQTzr2tqN9WT+DkWJPhIdQCfV7T6D387566VtnCJA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -2571,8 +2369,8 @@ packages: peerDependencies: algoliasearch: '>= 3.1 < 6' - algoliasearch@5.47.0: - resolution: {integrity: sha512-AGtz2U7zOV4DlsuYV84tLp2tBbA7RPtLA44jbVH4TTpDcc1dIWmULjHSsunlhscbzDydnjuFlNhflR3nV4VJaQ==} + algoliasearch@5.48.0: + resolution: {integrity: sha512-aD8EQC6KEman6/S79FtPdQmB7D4af/etcRL/KwiKFKgAE62iU8c5PeEQvpvIcBPurC3O/4Lj78nOl7ZcoazqSw==} engines: {node: '>= 14.0.0'} ansi-align@3.0.1: @@ -2616,10 +2414,6 @@ packages: argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} - aria-hidden@1.2.6: - resolution: {integrity: sha512-ik3ZgC9dY/lYVVM++OISsaYDeg1tb0VtP5uL3ouh1koGOaUMDPpbFIei4JkFimWUFPn90sbMNMXQAIVOlnYKJA==} - engines: {node: '>=10'} - array-buffer-byte-length@1.0.2: resolution: {integrity: sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==} engines: {node: '>= 0.4'} @@ -2818,8 +2612,8 @@ packages: caniuse-api@3.0.0: resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==} - caniuse-lite@1.0.30001766: - resolution: {integrity: sha512-4C0lfJ0/YPjJQHagaE9x2Elb69CIqEPZeG0anQt9SIvIoOH4a4uaRl73IavyO+0qZh6MDLH//DrXThEYKHkmYA==} + caniuse-lite@1.0.30001769: + resolution: {integrity: sha512-BCfFL1sHijQlBGWBMuJyhZUhzo7wer5sVj9hqekB/7xn0Ypy+pER/edCYQm4exbXj4WiySGp40P8UuTh6w1srg==} ccount@2.0.1: resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} @@ -3198,8 +2992,8 @@ packages: resolution: {integrity: sha512-x1VCxdX4t+8wVfd1so/9w+vQ4vx7lKd2Qp5tDRutErwmR85OgmfX7RlLRMWafRMY7hbEiXIbudNrjOAPa/hL8Q==} engines: {node: '>=18'} - default-browser@5.4.0: - resolution: {integrity: sha512-XDuvSq38Hr1MdN47EDvYtx3U0MTqpCEn+F6ft8z2vYDzMrvQhVp0ui9oQdqW3MvK3vqUETglt1tVGgjLuJ5izg==} + default-browser@5.5.0: + resolution: {integrity: sha512-H9LMLr5zwIbSxrmvikGuI/5KGhZ8E2zH3stkMgM5LpOWDutGM2JZaj460Udnf1a+946zc7YBgrqEWwbk7zHvGw==} engines: {node: '>=18'} defer-to-connect@2.0.1: @@ -3242,9 +3036,6 @@ packages: resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==} engines: {node: '>=8'} - detect-node-es@1.1.0: - resolution: {integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==} - detect-node@2.1.0: resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==} @@ -3314,8 +3105,8 @@ packages: ee-first@1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} - electron-to-chromium@1.5.283: - resolution: {integrity: sha512-3vifjt1HgrGW/h76UEeny+adYApveS9dH2h3p57JYzBSXJIKUJAvtmIytDKjcSCt9xHfrNCFJ7gts6vkhuq++w==} + electron-to-chromium@1.5.286: + resolution: {integrity: sha512-9tfDXhJ4RKFNerfjdCcZfufu49vg620741MNs26a9+bhLThdB+plgMeou98CAaHu/WATj2iHOOHTp1hWtABj2A==} emoji-regex@10.6.0: resolution: {integrity: sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==} @@ -3343,10 +3134,6 @@ packages: encoding-sniffer@0.2.1: resolution: {integrity: sha512-5gvq20T6vfpekVtqrYQsSCFZ1wEg5+wW0/QaZMWkFr6BqD3NfKs0rLCx4rrVlSWJeZb5NBJgVLswK/w2MWU+Gw==} - enhanced-resolve@5.18.4: - resolution: {integrity: sha512-LgQMM4WXU3QI+SYgEc2liRgznaD5ojbmY3sb8LxyguVkIg5FxdpTkvk72te2R38/TGKxH634oLxXRGY6d7AP+Q==} - engines: {node: '>=10.13.0'} - enhanced-resolve@5.19.0: resolution: {integrity: sha512-phv3E1Xl4tQOShqSte26C7Fl84EwUdZsyOuSSk9qtAGyyQs2s3jJzComh+Abf4g187lUUAvH+H26omrqia2aGg==} engines: {node: '>=10.13.0'} @@ -3676,6 +3463,20 @@ packages: fraction.js@5.3.4: resolution: {integrity: sha512-1X1NTtiJphryn/uLQz3whtY6jK3fTqoE3ohKs0tT+Ujr1W59oopxmoEh7Lu5p6vBaPbgoM0bzveAW4Qi5RyWDQ==} + framer-motion@12.34.0: + resolution: {integrity: sha512-+/H49owhzkzQyxtn7nZeF4kdH++I2FWrESQ184Zbcw5cEqNHYkE5yxWxcTLSj5lNx3NWdbIRy5FHqUvetD8FWg==} + peerDependencies: + '@emotion/is-prop-valid': '*' + react: ^18.0.0 || ^19.0.0 + react-dom: ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + '@emotion/is-prop-valid': + optional: true + react: + optional: true + react-dom: + optional: true + fresh@0.5.2: resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} engines: {node: '>= 0.6'} @@ -3718,10 +3519,6 @@ packages: resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} engines: {node: '>= 0.4'} - get-nonce@1.0.1: - resolution: {integrity: sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==} - engines: {node: '>=6'} - get-own-enumerable-property-symbols@3.0.2: resolution: {integrity: sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==} @@ -3839,9 +3636,6 @@ packages: hast-util-from-parse5@8.0.3: resolution: {integrity: sha512-3kxEVkEKt0zvcZ3hCRYI8rqrgwtlIOFMWkbclACvjlDw8Li9S2hk/d51OI0nr/gIpdMHNepwgOKqZ/sy0Clpyg==} - hast-util-is-element@3.0.0: - resolution: {integrity: sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==} - hast-util-parse-selector@4.0.0: resolution: {integrity: sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==} @@ -3857,9 +3651,6 @@ packages: hast-util-to-parse5@8.0.1: resolution: {integrity: sha512-MlWT6Pjt4CG9lFCjiz4BH7l9wmrMkfkJYCxFwKQic8+RTZgWPuWxwAfjJElsXkex7DJjfSJsQIt931ilUgmwdA==} - hast-util-to-text@4.0.2: - resolution: {integrity: sha512-KK6y/BN8lbaq654j7JgBydev7wuNMcID54lkRav1P0CaE1e47P72AWWPiGKXTJU271ooYzcvTAn/Zt0REnvc7A==} - hast-util-whitespace@3.0.0: resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==} @@ -3876,10 +3667,6 @@ packages: hermes-parser@0.25.1: resolution: {integrity: sha512-6pEjquH3rqaI6cYAXYPcz9MS4rY6R4ngRgrgfDshRptUZIc3lw0MCIJIGDj9++mfySOuPTHB4nrSW99BCvOPIA==} - highlight.js@11.11.1: - resolution: {integrity: sha512-Xwwo44whKBVCYoliBQwaPvtd/2tYFkRQtXDWj1nackaV2JPXx3L0+Jvd8/qCJ2p+ML0/XVkJ2q+Mr+UVdpJK5w==} - engines: {node: '>=12.0.0'} - history@4.10.1: resolution: {integrity: sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==} @@ -3906,9 +3693,6 @@ packages: resolution: {integrity: sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==} engines: {node: '>=8'} - html-url-attributes@3.0.1: - resolution: {integrity: sha512-ol6UPyBWqsrO6EJySPz2O7ZSr856WDrEzM5zMqp+FJJLGMW35cLYmmZnl0vztAZxRUoNZJFTCohfjuIJ8I4QBQ==} - html-void-elements@3.0.0: resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==} @@ -4404,24 +4188,28 @@ packages: engines: {node: '>= 12.0.0'} cpu: [arm64] os: [linux] + libc: [glibc] lightningcss-linux-arm64-musl@1.31.1: resolution: {integrity: sha512-mVZ7Pg2zIbe3XlNbZJdjs86YViQFoJSpc41CbVmKBPiGmC4YrfeOyz65ms2qpAobVd7WQsbW4PdsSJEMymyIMg==} engines: {node: '>= 12.0.0'} cpu: [arm64] os: [linux] + libc: [musl] lightningcss-linux-x64-gnu@1.31.1: resolution: {integrity: sha512-xGlFWRMl+0KvUhgySdIaReQdB4FNudfUTARn7q0hh/V67PVGCs3ADFjw+6++kG1RNd0zdGRlEKa+T13/tQjPMA==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [linux] + libc: [glibc] lightningcss-linux-x64-musl@1.31.1: resolution: {integrity: sha512-eowF8PrKHw9LpoZii5tdZwnBcYDxRw2rRCyvAXLi34iyeYfqCQNA9rmUM0ce62NlPhCvof1+9ivRaTY6pSKDaA==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [linux] + libc: [musl] lightningcss-win32-arm64-msvc@1.31.1: resolution: {integrity: sha512-aJReEbSEQzx1uBlQizAOBSjcmr9dCdL3XuC/6HLXAxmtErsj2ICo5yYggg1qOODQMtnjNQv2UHb9NpOuFtYe4w==} @@ -4491,17 +4279,9 @@ packages: resolution: {integrity: sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - lowlight@3.3.0: - resolution: {integrity: sha512-0JNhgFoPvP6U6lE/UdVsSq99tn6DhjjpAj5MxG49ewd2mOBVtwWYIT8ClyABhq198aXXODMU6Ox8DrGy/CpTZQ==} - lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} - lucide-react@0.563.0: - resolution: {integrity: sha512-8dXPB2GI4dI8jV4MgUDGBeLdGk8ekfqVZ0BdLcrRzocGgG75ltNEmWS+gE7uokKF/0oSUuczNDT+g9hFJ23FkA==} - peerDependencies: - react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0 - lunr-languages@1.14.0: resolution: {integrity: sha512-hWUAb2KqM3L7J5bcrngszzISY4BxrXn/Xhbb9TTCJYEGqlR1nG67/M14sp09+PTIRklobrn57IAxcdcO/ZFyNA==} @@ -4798,6 +4578,12 @@ packages: minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + motion-dom@12.34.0: + resolution: {integrity: sha512-Lql3NuEcScRDxTAO6GgUsRHBZOWI/3fnMlkMcH5NftzcN37zJta+bpbMAV9px4Nj057TuvRooMK7QrzMCgtz6Q==} + + motion-utils@12.29.2: + resolution: {integrity: sha512-G3kc34H2cX2gI63RqU+cZq+zWRRPSsNIOjpdl9TN4AQwC4sgwYPl/Q/Obf/d53nOm569T0fYK+tcoSV50BWx8A==} + mrmime@2.0.1: resolution: {integrity: sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==} engines: {node: '>=10'} @@ -4908,12 +4694,6 @@ packages: resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} engines: {node: '>=6'} - open-ask-ai@0.7.3: - resolution: {integrity: sha512-UxV0HGds4TEUTKQ4B2Ip2uI0sE4UnKhE8Rj1rjfheOXKKWflpgAMsB+jBbiT648zzUfkuS6MHrMrrF5Ee8RiIA==} - peerDependencies: - react: ^18.0.0 || ^19.0.0 - react-dom: ^18.0.0 || ^19.0.0 - open@10.2.0: resolution: {integrity: sha512-YgBpdJHPyQ2UE5x+hlSXcnejzAvD0b22U2OuAP+8OnlJT+PjWPxtgmGqKKc+RgTM63U9gN0YzrYc71R2WT/hTA==} engines: {node: '>=18'} @@ -5575,32 +5355,6 @@ packages: react-loadable: '*' webpack: '>=4.41.1 || 5.x' - react-markdown@10.1.0: - resolution: {integrity: sha512-qKxVopLT/TyA6BX3Ue5NwabOsAzm0Q7kAPwq6L+wWDwisYs7R8vZ0nRXqq6rkueboxpkjvLGU9fWifiX/ZZFxQ==} - peerDependencies: - '@types/react': '>=18' - react: '>=18' - - react-remove-scroll-bar@2.3.8: - resolution: {integrity: sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==} - engines: {node: '>=10'} - peerDependencies: - '@types/react': '*' - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - peerDependenciesMeta: - '@types/react': - optional: true - - react-remove-scroll@2.7.2: - resolution: {integrity: sha512-Iqb9NjCCTt6Hf+vOdNIZGdTiH1QSqr27H/Ek9sv/a97gfueI/5h1s3yRi1nngzMUaOOToin5dI1dXKdXiF+u0Q==} - engines: {node: '>=10'} - peerDependencies: - '@types/react': '*' - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - react-router-config@5.1.1: resolution: {integrity: sha512-DuanZjaD8mQp1ppHjgnnUnyOlqYXZVjnov/JzFhjLEwd3Z4dYjMSnqrEzzGThH47vpCOqPPwJM2FtthLeJ8Pbg==} peerDependencies: @@ -5617,16 +5371,6 @@ packages: peerDependencies: react: '>=15' - react-style-singleton@2.2.3: - resolution: {integrity: sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ==} - engines: {node: '>=10'} - peerDependencies: - '@types/react': '*' - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - react@19.2.4: resolution: {integrity: sha512-9nfp2hYpCwOjAN+8TZFGhtWEwgvWHXqESH8qT89AT/lWklpLON22Lc8pEtnpsZz7VmawabSU0gCjnj8aC0euHQ==} engines: {node: '>=0.10.0'} @@ -5693,9 +5437,6 @@ packages: resolution: {integrity: sha512-NZQZdC5wOE/H3UT28fVGL+ikOZcEzfMGk/c3iN9UGxzWHMa1op7274oyiUVrAG4B2EuFhus8SvkaYnhvW92p9Q==} hasBin: true - rehype-highlight@7.0.2: - resolution: {integrity: sha512-k158pK7wdC2qL3M5NcZROZ2tR/l7zOzjxXd5VGdcfIyoijjQqpHd3JKtYSBDpDZ38UI2WJWuFAtkMDxmx5kstA==} - rehype-raw@7.0.0: resolution: {integrity: sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==} @@ -5830,9 +5571,6 @@ packages: resolution: {integrity: sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==} engines: {node: '>= 10.13.0'} - search-insights@2.17.3: - resolution: {integrity: sha512-RQPdCYTa8A68uM2jwxoY842xDhvx3E5LFL1LxvxCNMev4o5mLuokczhzjAgGwUZBAmOKZknArSxLKmXtIi2AxQ==} - section-matter@1.0.0: resolution: {integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==} engines: {node: '>=4'} @@ -5852,11 +5590,6 @@ packages: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true - semver@7.7.3: - resolution: {integrity: sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==} - engines: {node: '>=10'} - hasBin: true - semver@7.7.4: resolution: {integrity: sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==} engines: {node: '>=10'} @@ -6292,9 +6025,6 @@ packages: resolution: {integrity: sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==} engines: {node: '>=12'} - unist-util-find-after@5.0.0: - resolution: {integrity: sha512-amQa0Ep2m6hE2g72AugUItjbuM8X8cGQnFoHk0pGfrFeT9GZhzN5SW8nRsiGKK7Aif4CrACPENkA6P/Lw6fHGQ==} - unist-util-is@4.1.0: resolution: {integrity: sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==} @@ -6353,26 +6083,6 @@ packages: file-loader: optional: true - use-callback-ref@1.3.3: - resolution: {integrity: sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==} - engines: {node: '>=10'} - peerDependencies: - '@types/react': '*' - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - - use-sidecar@1.1.3: - resolution: {integrity: sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ==} - engines: {node: '>=10'} - peerDependencies: - '@types/react': '*' - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} @@ -6456,16 +6166,6 @@ packages: resolution: {integrity: sha512-yd1RBzSGanHkitROoPFd6qsrxt+oFhg/129YzheDGqeustzX0vTZJZsSsQjVQC4yzBQ56K55XU8gaNCtIzOnTg==} engines: {node: '>=10.13.0'} - webpack@5.104.1: - resolution: {integrity: sha512-Qphch25abbMNtekmEGJmeRUhLDbe+QfiWTiqpKYkpCOWY64v9eyl+KRRLmqOFA2AvKPpc9DC6+u2n76tQLBoaA==} - engines: {node: '>=10.13.0'} - hasBin: true - peerDependencies: - webpack-cli: '*' - peerDependenciesMeta: - webpack-cli: - optional: true - webpack@5.105.0: resolution: {integrity: sha512-gX/dMkRQc7QOMzgTe6KsYFM7DxeIONQSui1s0n/0xht36HvrgbxtM1xBlgx596NbpHuQU8P7QpKwrZYwUX48nw==} engines: {node: '>=10.13.0'} @@ -6603,91 +6303,112 @@ packages: snapshots: - '@algolia/abtesting@1.13.0': + '@algolia/abtesting@1.14.0': + dependencies: + '@algolia/client-common': 5.48.0 + '@algolia/requester-browser-xhr': 5.48.0 + '@algolia/requester-fetch': 5.48.0 + '@algolia/requester-node-http': 5.48.0 + + '@algolia/autocomplete-core@1.19.2(@algolia/client-search@5.48.0)(algoliasearch@5.48.0)': dependencies: - '@algolia/client-common': 5.47.0 - '@algolia/requester-browser-xhr': 5.47.0 - '@algolia/requester-fetch': 5.47.0 - '@algolia/requester-node-http': 5.47.0 + '@algolia/autocomplete-plugin-algolia-insights': 1.19.2(@algolia/client-search@5.48.0)(algoliasearch@5.48.0) + '@algolia/autocomplete-shared': 1.19.2(@algolia/client-search@5.48.0)(algoliasearch@5.48.0) + transitivePeerDependencies: + - '@algolia/client-search' + - algoliasearch + - search-insights + + '@algolia/autocomplete-plugin-algolia-insights@1.19.2(@algolia/client-search@5.48.0)(algoliasearch@5.48.0)': + dependencies: + '@algolia/autocomplete-shared': 1.19.2(@algolia/client-search@5.48.0)(algoliasearch@5.48.0) + transitivePeerDependencies: + - '@algolia/client-search' + - algoliasearch + + '@algolia/autocomplete-shared@1.19.2(@algolia/client-search@5.48.0)(algoliasearch@5.48.0)': + dependencies: + '@algolia/client-search': 5.48.0 + algoliasearch: 5.48.0 - '@algolia/client-abtesting@5.47.0': + '@algolia/client-abtesting@5.48.0': dependencies: - '@algolia/client-common': 5.47.0 - '@algolia/requester-browser-xhr': 5.47.0 - '@algolia/requester-fetch': 5.47.0 - '@algolia/requester-node-http': 5.47.0 + '@algolia/client-common': 5.48.0 + '@algolia/requester-browser-xhr': 5.48.0 + '@algolia/requester-fetch': 5.48.0 + '@algolia/requester-node-http': 5.48.0 - '@algolia/client-analytics@5.47.0': + '@algolia/client-analytics@5.48.0': dependencies: - '@algolia/client-common': 5.47.0 - '@algolia/requester-browser-xhr': 5.47.0 - '@algolia/requester-fetch': 5.47.0 - '@algolia/requester-node-http': 5.47.0 + '@algolia/client-common': 5.48.0 + '@algolia/requester-browser-xhr': 5.48.0 + '@algolia/requester-fetch': 5.48.0 + '@algolia/requester-node-http': 5.48.0 - '@algolia/client-common@5.47.0': {} + '@algolia/client-common@5.48.0': {} - '@algolia/client-insights@5.47.0': + '@algolia/client-insights@5.48.0': dependencies: - '@algolia/client-common': 5.47.0 - '@algolia/requester-browser-xhr': 5.47.0 - '@algolia/requester-fetch': 5.47.0 - '@algolia/requester-node-http': 5.47.0 + '@algolia/client-common': 5.48.0 + '@algolia/requester-browser-xhr': 5.48.0 + '@algolia/requester-fetch': 5.48.0 + '@algolia/requester-node-http': 5.48.0 - '@algolia/client-personalization@5.47.0': + '@algolia/client-personalization@5.48.0': dependencies: - '@algolia/client-common': 5.47.0 - '@algolia/requester-browser-xhr': 5.47.0 - '@algolia/requester-fetch': 5.47.0 - '@algolia/requester-node-http': 5.47.0 + '@algolia/client-common': 5.48.0 + '@algolia/requester-browser-xhr': 5.48.0 + '@algolia/requester-fetch': 5.48.0 + '@algolia/requester-node-http': 5.48.0 - '@algolia/client-query-suggestions@5.47.0': + '@algolia/client-query-suggestions@5.48.0': dependencies: - '@algolia/client-common': 5.47.0 - '@algolia/requester-browser-xhr': 5.47.0 - '@algolia/requester-fetch': 5.47.0 - '@algolia/requester-node-http': 5.47.0 + '@algolia/client-common': 5.48.0 + '@algolia/requester-browser-xhr': 5.48.0 + '@algolia/requester-fetch': 5.48.0 + '@algolia/requester-node-http': 5.48.0 - '@algolia/client-search@5.47.0': + '@algolia/client-search@5.48.0': dependencies: - '@algolia/client-common': 5.47.0 - '@algolia/requester-browser-xhr': 5.47.0 - '@algolia/requester-fetch': 5.47.0 - '@algolia/requester-node-http': 5.47.0 + '@algolia/client-common': 5.48.0 + '@algolia/requester-browser-xhr': 5.48.0 + '@algolia/requester-fetch': 5.48.0 + '@algolia/requester-node-http': 5.48.0 '@algolia/events@4.0.1': {} - '@algolia/ingestion@1.47.0': + '@algolia/ingestion@1.48.0': dependencies: - '@algolia/client-common': 5.47.0 - '@algolia/requester-browser-xhr': 5.47.0 - '@algolia/requester-fetch': 5.47.0 - '@algolia/requester-node-http': 5.47.0 + '@algolia/client-common': 5.48.0 + '@algolia/requester-browser-xhr': 5.48.0 + '@algolia/requester-fetch': 5.48.0 + '@algolia/requester-node-http': 5.48.0 - '@algolia/monitoring@1.47.0': + '@algolia/monitoring@1.48.0': dependencies: - '@algolia/client-common': 5.47.0 - '@algolia/requester-browser-xhr': 5.47.0 - '@algolia/requester-fetch': 5.47.0 - '@algolia/requester-node-http': 5.47.0 + '@algolia/client-common': 5.48.0 + '@algolia/requester-browser-xhr': 5.48.0 + '@algolia/requester-fetch': 5.48.0 + '@algolia/requester-node-http': 5.48.0 - '@algolia/recommend@5.47.0': + '@algolia/recommend@5.48.0': dependencies: - '@algolia/client-common': 5.47.0 - '@algolia/requester-browser-xhr': 5.47.0 - '@algolia/requester-fetch': 5.47.0 - '@algolia/requester-node-http': 5.47.0 + '@algolia/client-common': 5.48.0 + '@algolia/requester-browser-xhr': 5.48.0 + '@algolia/requester-fetch': 5.48.0 + '@algolia/requester-node-http': 5.48.0 - '@algolia/requester-browser-xhr@5.47.0': + '@algolia/requester-browser-xhr@5.48.0': dependencies: - '@algolia/client-common': 5.47.0 + '@algolia/client-common': 5.48.0 - '@algolia/requester-fetch@5.47.0': + '@algolia/requester-fetch@5.48.0': dependencies: - '@algolia/client-common': 5.47.0 + '@algolia/client-common': 5.48.0 - '@algolia/requester-node-http@5.47.0': + '@algolia/requester-node-http@5.48.0': dependencies: - '@algolia/client-common': 5.47.0 + '@algolia/client-common': 5.48.0 '@babel/code-frame@7.29.0': dependencies: @@ -6700,7 +6421,7 @@ snapshots: '@babel/core@7.29.0': dependencies: '@babel/code-frame': 7.29.0 - '@babel/generator': 7.29.0 + '@babel/generator': 7.29.1 '@babel/helper-compilation-targets': 7.28.6 '@babel/helper-module-transforms': 7.28.6(@babel/core@7.29.0) '@babel/helpers': 7.28.6 @@ -6717,7 +6438,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/generator@7.29.0': + '@babel/generator@7.29.1': dependencies: '@babel/parser': 7.29.0 '@babel/types': 7.29.0 @@ -7428,7 +7149,7 @@ snapshots: '@babel/traverse@7.29.0': dependencies: '@babel/code-frame': 7.29.0 - '@babel/generator': 7.29.0 + '@babel/generator': 7.29.1 '@babel/helper-globals': 7.28.0 '@babel/parser': 7.29.0 '@babel/template': 7.28.6 @@ -7756,28 +7477,31 @@ snapshots: '@discoveryjs/json-ext@0.5.7': {} - '@docsearch/core@4.5.3(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + '@docsearch/core@4.5.4(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': optionalDependencies: '@types/react': 19.2.13 react: 19.2.4 react-dom: 19.2.4(react@19.2.4) - '@docsearch/css@4.5.3': {} + '@docsearch/css@4.5.4': {} - '@docsearch/react@4.5.3(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(search-insights@2.17.3)': + '@docsearch/react@4.5.4(@algolia/client-search@5.48.0)(@types/react@19.2.13)(algoliasearch@5.48.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: - '@docsearch/core': 4.5.3(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@docsearch/css': 4.5.3 + '@algolia/autocomplete-core': 1.19.2(@algolia/client-search@5.48.0)(algoliasearch@5.48.0) + '@docsearch/core': 4.5.4(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@docsearch/css': 4.5.4 optionalDependencies: '@types/react': 19.2.13 react: 19.2.4 react-dom: 19.2.4(react@19.2.4) - search-insights: 2.17.3 + transitivePeerDependencies: + - '@algolia/client-search' + - algoliasearch '@docusaurus/babel@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: '@babel/core': 7.29.0 - '@babel/generator': 7.29.0 + '@babel/generator': 7.29.1 '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.29.0) '@babel/plugin-transform-runtime': 7.29.0(@babel/core@7.29.0) '@babel/preset-env': 7.29.0(@babel/core@7.29.0) @@ -7800,7 +7524,7 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/bundler@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@rspack/core@1.7.4)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3)': + '@docusaurus/bundler@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@rspack/core@1.7.5)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3)': dependencies: '@babel/core': 7.29.0 '@docusaurus/babel': 3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4) @@ -7808,24 +7532,24 @@ snapshots: '@docusaurus/logger': 3.9.2 '@docusaurus/types': 3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@docusaurus/utils': 3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - babel-loader: 9.2.1(@babel/core@7.29.0)(webpack@5.104.1) + babel-loader: 9.2.1(@babel/core@7.29.0)(webpack@5.105.0) clean-css: 5.3.3 - copy-webpack-plugin: 11.0.0(webpack@5.104.1) - css-loader: 6.11.0(@rspack/core@1.7.4)(webpack@5.104.1) - css-minimizer-webpack-plugin: 5.0.1(clean-css@5.3.3)(webpack@5.104.1) + copy-webpack-plugin: 11.0.0(webpack@5.105.0) + css-loader: 6.11.0(@rspack/core@1.7.5)(webpack@5.105.0) + css-minimizer-webpack-plugin: 5.0.1(clean-css@5.3.3)(webpack@5.105.0) cssnano: 6.1.2(postcss@8.5.6) - file-loader: 6.2.0(webpack@5.104.1) + file-loader: 6.2.0(webpack@5.105.0) html-minifier-terser: 7.2.0 - mini-css-extract-plugin: 2.10.0(webpack@5.104.1) - null-loader: 4.0.1(webpack@5.104.1) + mini-css-extract-plugin: 2.10.0(webpack@5.105.0) + null-loader: 4.0.1(webpack@5.105.0) postcss: 8.5.6 - postcss-loader: 7.3.4(postcss@8.5.6)(typescript@5.9.3)(webpack@5.104.1) + postcss-loader: 7.3.4(postcss@8.5.6)(typescript@5.9.3)(webpack@5.105.0) postcss-preset-env: 10.6.1(postcss@8.5.6) - terser-webpack-plugin: 5.3.16(webpack@5.104.1) + terser-webpack-plugin: 5.3.16(@swc/core@1.15.11)(webpack@5.105.0) tslib: 2.8.1 - url-loader: 4.1.1(file-loader@6.2.0(webpack@5.104.1))(webpack@5.104.1) - webpack: 5.104.1 - webpackbar: 6.0.1(webpack@5.104.1) + url-loader: 4.1.1(file-loader@6.2.0(webpack@5.105.0))(webpack@5.105.0) + webpack: 5.105.0(@swc/core@1.15.11) + webpackbar: 6.0.1(webpack@5.105.0) optionalDependencies: '@docusaurus/faster': 3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)) transitivePeerDependencies: @@ -7843,10 +7567,10 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/core@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.4)(debug@4.4.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3)': + '@docusaurus/core@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.5)(debug@4.4.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3)': dependencies: '@docusaurus/babel': 3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@docusaurus/bundler': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@rspack/core@1.7.4)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3) + '@docusaurus/bundler': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@rspack/core@1.7.5)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3) '@docusaurus/logger': 3.9.2 '@docusaurus/mdx-loader': 3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@docusaurus/utils': 3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4) @@ -7867,7 +7591,7 @@ snapshots: execa: 5.1.1 fs-extra: 11.3.3 html-tags: 3.3.1 - html-webpack-plugin: 5.6.6(@rspack/core@1.7.4)(webpack@5.104.1) + html-webpack-plugin: 5.6.6(@rspack/core@1.7.5)(webpack@5.105.0) leven: 3.1.0 lodash: 4.17.23 open: 8.4.2 @@ -7877,18 +7601,18 @@ snapshots: react-dom: 19.2.4(react@19.2.4) react-helmet-async: '@slorber/react-helmet-async@1.3.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4)' react-loadable: '@docusaurus/react-loadable@6.0.0(react@19.2.4)' - react-loadable-ssr-addon-v5-slorber: 1.0.1(@docusaurus/react-loadable@6.0.0(react@19.2.4))(webpack@5.104.1) + react-loadable-ssr-addon-v5-slorber: 1.0.1(@docusaurus/react-loadable@6.0.0(react@19.2.4))(webpack@5.105.0) react-router: 5.3.4(react@19.2.4) react-router-config: 5.1.1(react-router@5.3.4(react@19.2.4))(react@19.2.4) react-router-dom: 5.3.4(react@19.2.4) - semver: 7.7.3 + semver: 7.7.4 serve-handler: 6.1.6 tinypool: 1.1.1 tslib: 2.8.1 update-notifier: 6.0.2 - webpack: 5.104.1 + webpack: 5.105.0(@swc/core@1.15.11) webpack-bundle-analyzer: 4.10.2 - webpack-dev-server: 5.2.3(debug@4.4.3)(tslib@2.8.1)(webpack@5.104.1) + webpack-dev-server: 5.2.3(debug@4.4.3)(tslib@2.8.1)(webpack@5.105.0) webpack-merge: 6.0.1 transitivePeerDependencies: - '@docusaurus/faster' @@ -7926,14 +7650,14 @@ snapshots: '@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4))': dependencies: '@docusaurus/types': 3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@rspack/core': 1.7.4 + '@rspack/core': 1.7.5 '@swc/core': 1.15.11 '@swc/html': 1.15.11 browserslist: 4.28.1 lightningcss: 1.31.1 - swc-loader: 0.2.7(@swc/core@1.15.11)(webpack@5.104.1(@swc/core@1.15.11)) + swc-loader: 0.2.7(@swc/core@1.15.11)(webpack@5.105.0) tslib: 2.8.1 - webpack: 5.104.1(@swc/core@1.15.11) + webpack: 5.105.0(@swc/core@1.15.11) transitivePeerDependencies: - '@swc/helpers' - esbuild @@ -7954,7 +7678,7 @@ snapshots: '@slorber/remark-comment': 1.0.0 escape-html: 1.0.3 estree-util-value-to-estree: 3.5.0 - file-loader: 6.2.0(webpack@5.104.1) + file-loader: 6.2.0(webpack@5.105.0) fs-extra: 11.3.3 image-size: 2.0.2 mdast-util-mdx: 3.0.0 @@ -7970,9 +7694,9 @@ snapshots: tslib: 2.8.1 unified: 11.0.5 unist-util-visit: 5.1.0 - url-loader: 4.1.1(file-loader@6.2.0(webpack@5.104.1))(webpack@5.104.1) + url-loader: 4.1.1(file-loader@6.2.0(webpack@5.105.0))(webpack@5.105.0) vfile: 6.0.3 - webpack: 5.104.1 + webpack: 5.105.0(@swc/core@1.15.11) transitivePeerDependencies: - '@swc/core' - esbuild @@ -7998,13 +7722,13 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/plugin-content-blog@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@docusaurus/plugin-content-docs@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.4)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.4)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3)': + '@docusaurus/plugin-content-blog@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@docusaurus/plugin-content-docs@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.5)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.5)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3)': dependencies: - '@docusaurus/core': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.4)(debug@4.4.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3) + '@docusaurus/core': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.5)(debug@4.4.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3) '@docusaurus/logger': 3.9.2 '@docusaurus/mdx-loader': 3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@docusaurus/plugin-content-docs': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.4)(debug@4.4.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3) - '@docusaurus/theme-common': 3.9.2(@docusaurus/plugin-content-docs@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.4)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@docusaurus/plugin-content-docs': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.5)(debug@4.4.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3) + '@docusaurus/theme-common': 3.9.2(@docusaurus/plugin-content-docs@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.5)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@docusaurus/types': 3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@docusaurus/utils': 3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@docusaurus/utils-common': 3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4) @@ -8020,7 +7744,7 @@ snapshots: tslib: 2.8.1 unist-util-visit: 5.1.0 utility-types: 3.11.0 - webpack: 5.104.1 + webpack: 5.105.0(@swc/core@1.15.11) transitivePeerDependencies: - '@docusaurus/faster' - '@mdx-js/react' @@ -8039,13 +7763,13 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/plugin-content-docs@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.4)(debug@4.4.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3)': + '@docusaurus/plugin-content-docs@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.5)(debug@4.4.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3)': dependencies: - '@docusaurus/core': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.4)(debug@4.4.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3) + '@docusaurus/core': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.5)(debug@4.4.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3) '@docusaurus/logger': 3.9.2 '@docusaurus/mdx-loader': 3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@docusaurus/module-type-aliases': 3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@docusaurus/theme-common': 3.9.2(@docusaurus/plugin-content-docs@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.4)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@docusaurus/theme-common': 3.9.2(@docusaurus/plugin-content-docs@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.5)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@docusaurus/types': 3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@docusaurus/utils': 3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@docusaurus/utils-common': 3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4) @@ -8060,7 +7784,7 @@ snapshots: schema-dts: 1.1.5 tslib: 2.8.1 utility-types: 3.11.0 - webpack: 5.105.0 + webpack: 5.105.0(@swc/core@1.15.11) transitivePeerDependencies: - '@docusaurus/faster' - '@mdx-js/react' @@ -8079,9 +7803,9 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/plugin-content-pages@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.4)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3)': + '@docusaurus/plugin-content-pages@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.5)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3)': dependencies: - '@docusaurus/core': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.4)(debug@4.4.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3) + '@docusaurus/core': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.5)(debug@4.4.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3) '@docusaurus/mdx-loader': 3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@docusaurus/types': 3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@docusaurus/utils': 3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4) @@ -8090,7 +7814,7 @@ snapshots: react: 19.2.4 react-dom: 19.2.4(react@19.2.4) tslib: 2.8.1 - webpack: 5.104.1 + webpack: 5.105.0(@swc/core@1.15.11) transitivePeerDependencies: - '@docusaurus/faster' - '@mdx-js/react' @@ -8109,9 +7833,9 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/plugin-css-cascade-layers@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.4)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3)': + '@docusaurus/plugin-css-cascade-layers@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.5)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3)': dependencies: - '@docusaurus/core': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.4)(debug@4.4.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3) + '@docusaurus/core': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.5)(debug@4.4.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3) '@docusaurus/types': 3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@docusaurus/utils': 3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@docusaurus/utils-validation': 3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4) @@ -8136,9 +7860,9 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/plugin-debug@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.4)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3)': + '@docusaurus/plugin-debug@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.5)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3)': dependencies: - '@docusaurus/core': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.4)(debug@4.4.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3) + '@docusaurus/core': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.5)(debug@4.4.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3) '@docusaurus/types': 3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@docusaurus/utils': 3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4) fs-extra: 11.3.3 @@ -8164,9 +7888,9 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/plugin-google-analytics@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.4)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3)': + '@docusaurus/plugin-google-analytics@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.5)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3)': dependencies: - '@docusaurus/core': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.4)(debug@4.4.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3) + '@docusaurus/core': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.5)(debug@4.4.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3) '@docusaurus/types': 3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@docusaurus/utils-validation': 3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4) react: 19.2.4 @@ -8190,9 +7914,9 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/plugin-google-gtag@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.4)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3)': + '@docusaurus/plugin-google-gtag@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.5)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3)': dependencies: - '@docusaurus/core': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.4)(debug@4.4.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3) + '@docusaurus/core': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.5)(debug@4.4.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3) '@docusaurus/types': 3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@docusaurus/utils-validation': 3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@types/gtag.js': 0.0.12 @@ -8217,9 +7941,9 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/plugin-google-tag-manager@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.4)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3)': + '@docusaurus/plugin-google-tag-manager@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.5)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3)': dependencies: - '@docusaurus/core': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.4)(debug@4.4.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3) + '@docusaurus/core': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.5)(debug@4.4.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3) '@docusaurus/types': 3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@docusaurus/utils-validation': 3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4) react: 19.2.4 @@ -8243,9 +7967,9 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/plugin-sitemap@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.4)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3)': + '@docusaurus/plugin-sitemap@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.5)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3)': dependencies: - '@docusaurus/core': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.4)(debug@4.4.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3) + '@docusaurus/core': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.5)(debug@4.4.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3) '@docusaurus/logger': 3.9.2 '@docusaurus/types': 3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@docusaurus/utils': 3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4) @@ -8274,9 +7998,9 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/plugin-svgr@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.4)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3)': + '@docusaurus/plugin-svgr@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.5)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3)': dependencies: - '@docusaurus/core': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.4)(debug@4.4.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3) + '@docusaurus/core': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.5)(debug@4.4.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3) '@docusaurus/types': 3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@docusaurus/utils': 3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@docusaurus/utils-validation': 3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4) @@ -8285,7 +8009,7 @@ snapshots: react: 19.2.4 react-dom: 19.2.4(react@19.2.4) tslib: 2.8.1 - webpack: 5.104.1 + webpack: 5.105.0(@swc/core@1.15.11) transitivePeerDependencies: - '@docusaurus/faster' - '@mdx-js/react' @@ -8304,26 +8028,27 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/preset-classic@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.4)(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(search-insights@2.17.3)(typescript@5.9.3)': - dependencies: - '@docusaurus/core': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.4)(debug@4.4.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3) - '@docusaurus/plugin-content-blog': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@docusaurus/plugin-content-docs@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.4)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.4)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3) - '@docusaurus/plugin-content-docs': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.4)(debug@4.4.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3) - '@docusaurus/plugin-content-pages': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.4)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3) - '@docusaurus/plugin-css-cascade-layers': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.4)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3) - '@docusaurus/plugin-debug': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.4)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3) - '@docusaurus/plugin-google-analytics': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.4)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3) - '@docusaurus/plugin-google-gtag': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.4)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3) - '@docusaurus/plugin-google-tag-manager': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.4)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3) - '@docusaurus/plugin-sitemap': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.4)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3) - '@docusaurus/plugin-svgr': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.4)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3) - '@docusaurus/theme-classic': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@rspack/core@1.7.4)(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3) - '@docusaurus/theme-common': 3.9.2(@docusaurus/plugin-content-docs@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.4)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@docusaurus/theme-search-algolia': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.4)(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(search-insights@2.17.3)(typescript@5.9.3) + '@docusaurus/preset-classic@3.9.2(@algolia/client-search@5.48.0)(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.5)(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3)': + dependencies: + '@docusaurus/core': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.5)(debug@4.4.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3) + '@docusaurus/plugin-content-blog': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@docusaurus/plugin-content-docs@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.5)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.5)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3) + '@docusaurus/plugin-content-docs': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.5)(debug@4.4.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3) + '@docusaurus/plugin-content-pages': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.5)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3) + '@docusaurus/plugin-css-cascade-layers': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.5)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3) + '@docusaurus/plugin-debug': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.5)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3) + '@docusaurus/plugin-google-analytics': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.5)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3) + '@docusaurus/plugin-google-gtag': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.5)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3) + '@docusaurus/plugin-google-tag-manager': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.5)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3) + '@docusaurus/plugin-sitemap': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.5)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3) + '@docusaurus/plugin-svgr': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.5)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3) + '@docusaurus/theme-classic': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@rspack/core@1.7.5)(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3) + '@docusaurus/theme-common': 3.9.2(@docusaurus/plugin-content-docs@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.5)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@docusaurus/theme-search-algolia': 3.9.2(@algolia/client-search@5.48.0)(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.5)(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3) '@docusaurus/types': 3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4) react: 19.2.4 react-dom: 19.2.4(react@19.2.4) transitivePeerDependencies: + - '@algolia/client-search' - '@docusaurus/faster' - '@mdx-js/react' - '@parcel/css' @@ -8348,16 +8073,16 @@ snapshots: '@types/react': 19.2.13 react: 19.2.4 - '@docusaurus/theme-classic@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@rspack/core@1.7.4)(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3)': + '@docusaurus/theme-classic@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@rspack/core@1.7.5)(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3)': dependencies: - '@docusaurus/core': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.4)(debug@4.4.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3) + '@docusaurus/core': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.5)(debug@4.4.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3) '@docusaurus/logger': 3.9.2 '@docusaurus/mdx-loader': 3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@docusaurus/module-type-aliases': 3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@docusaurus/plugin-content-blog': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@docusaurus/plugin-content-docs@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.4)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.4)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3) - '@docusaurus/plugin-content-docs': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.4)(debug@4.4.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3) - '@docusaurus/plugin-content-pages': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.4)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3) - '@docusaurus/theme-common': 3.9.2(@docusaurus/plugin-content-docs@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.4)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@docusaurus/plugin-content-blog': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@docusaurus/plugin-content-docs@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.5)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.5)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3) + '@docusaurus/plugin-content-docs': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.5)(debug@4.4.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3) + '@docusaurus/plugin-content-pages': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.5)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3) + '@docusaurus/theme-common': 3.9.2(@docusaurus/plugin-content-docs@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.5)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@docusaurus/theme-translations': 3.9.2 '@docusaurus/types': 3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@docusaurus/utils': 3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4) @@ -8395,11 +8120,11 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/theme-common@3.9.2(@docusaurus/plugin-content-docs@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.4)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + '@docusaurus/theme-common@3.9.2(@docusaurus/plugin-content-docs@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.5)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: '@docusaurus/mdx-loader': 3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@docusaurus/module-type-aliases': 3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@docusaurus/plugin-content-docs': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.4)(debug@4.4.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3) + '@docusaurus/plugin-content-docs': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.5)(debug@4.4.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3) '@docusaurus/utils': 3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@docusaurus/utils-common': 3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@types/history': 4.7.11 @@ -8419,18 +8144,18 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/theme-search-algolia@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.4)(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(search-insights@2.17.3)(typescript@5.9.3)': + '@docusaurus/theme-search-algolia@3.9.2(@algolia/client-search@5.48.0)(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.5)(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3)': dependencies: - '@docsearch/react': 4.5.3(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(search-insights@2.17.3) - '@docusaurus/core': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.4)(debug@4.4.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3) + '@docsearch/react': 4.5.4(@algolia/client-search@5.48.0)(@types/react@19.2.13)(algoliasearch@5.48.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@docusaurus/core': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.5)(debug@4.4.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3) '@docusaurus/logger': 3.9.2 - '@docusaurus/plugin-content-docs': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.4)(debug@4.4.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3) - '@docusaurus/theme-common': 3.9.2(@docusaurus/plugin-content-docs@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.4)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@docusaurus/plugin-content-docs': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.5)(debug@4.4.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3) + '@docusaurus/theme-common': 3.9.2(@docusaurus/plugin-content-docs@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.5)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@docusaurus/theme-translations': 3.9.2 '@docusaurus/utils': 3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@docusaurus/utils-validation': 3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - algoliasearch: 5.47.0 - algoliasearch-helper: 3.27.0(algoliasearch@5.47.0) + algoliasearch: 5.48.0 + algoliasearch-helper: 3.27.0(algoliasearch@5.48.0) clsx: 2.1.1 eta: 2.2.0 fs-extra: 11.3.3 @@ -8440,6 +8165,7 @@ snapshots: tslib: 2.8.1 utility-types: 3.11.0 transitivePeerDependencies: + - '@algolia/client-search' - '@docusaurus/faster' - '@mdx-js/react' - '@parcel/css' @@ -8478,7 +8204,7 @@ snapshots: react-dom: 19.2.4(react@19.2.4) react-helmet-async: '@slorber/react-helmet-async@1.3.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4)' utility-types: 3.11.0 - webpack: 5.104.1 + webpack: 5.105.0(@swc/core@1.15.11) webpack-merge: 5.10.0 transitivePeerDependencies: - '@swc/core' @@ -8541,7 +8267,7 @@ snapshots: tslib: 2.8.1 url-loader: 4.1.1(file-loader@6.2.0(webpack@5.105.0))(webpack@5.105.0) utility-types: 3.11.0 - webpack: 5.105.0 + webpack: 5.105.0(@swc/core@1.15.11) transitivePeerDependencies: - '@swc/core' - esbuild @@ -8556,10 +8282,10 @@ snapshots: cssesc: 3.0.0 immediate: 3.3.0 - '@easyops-cn/docusaurus-search-local@0.54.0(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@docusaurus/theme-common@3.9.2(@docusaurus/plugin-content-docs@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.4)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.4)(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3)': + '@easyops-cn/docusaurus-search-local@0.52.3(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@docusaurus/theme-common@3.9.2(@docusaurus/plugin-content-docs@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.5)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.5)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3)': dependencies: - '@docusaurus/plugin-content-docs': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.4)(debug@4.4.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3) - '@docusaurus/theme-common': 3.9.2(@docusaurus/plugin-content-docs@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.4)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@docusaurus/plugin-content-docs': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.5)(debug@4.4.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3) + '@docusaurus/theme-common': 3.9.2(@docusaurus/plugin-content-docs@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4))(@rspack/core@1.7.5)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@docusaurus/theme-translations': 3.9.2 '@docusaurus/utils': 3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@docusaurus/utils-common': 3.9.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4) @@ -8578,8 +8304,6 @@ snapshots: react: 19.2.4 react-dom: 19.2.4(react@19.2.4) tslib: 2.8.1 - optionalDependencies: - open-ask-ai: 0.7.3(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) transitivePeerDependencies: - '@docusaurus/faster' - '@mdx-js/react' @@ -8587,8 +8311,6 @@ snapshots: - '@rspack/core' - '@swc/core' - '@swc/css' - - '@types/react' - - '@types/react-dom' - bufferutil - csso - esbuild @@ -8701,7 +8423,7 @@ snapshots: '@jest/schemas@29.6.3': dependencies: - '@sinclair/typebox': 0.27.8 + '@sinclair/typebox': 0.27.10 '@jest/types@29.6.3': dependencies: @@ -8740,7 +8462,7 @@ snapshots: dependencies: tslib: 2.8.1 - '@jsonjoy.com/base64@17.65.0(tslib@2.8.1)': + '@jsonjoy.com/base64@17.67.0(tslib@2.8.1)': dependencies: tslib: 2.8.1 @@ -8748,7 +8470,7 @@ snapshots: dependencies: tslib: 2.8.1 - '@jsonjoy.com/buffers@17.65.0(tslib@2.8.1)': + '@jsonjoy.com/buffers@17.67.0(tslib@2.8.1)': dependencies: tslib: 2.8.1 @@ -8756,7 +8478,7 @@ snapshots: dependencies: tslib: 2.8.1 - '@jsonjoy.com/codegen@17.65.0(tslib@2.8.1)': + '@jsonjoy.com/codegen@17.67.0(tslib@2.8.1)': dependencies: tslib: 2.8.1 @@ -8810,10 +8532,10 @@ snapshots: '@jsonjoy.com/fs-snapshot@4.56.10(tslib@2.8.1)': dependencies: - '@jsonjoy.com/buffers': 17.65.0(tslib@2.8.1) + '@jsonjoy.com/buffers': 17.67.0(tslib@2.8.1) '@jsonjoy.com/fs-node-utils': 4.56.10(tslib@2.8.1) - '@jsonjoy.com/json-pack': 17.65.0(tslib@2.8.1) - '@jsonjoy.com/util': 17.65.0(tslib@2.8.1) + '@jsonjoy.com/json-pack': 17.67.0(tslib@2.8.1) + '@jsonjoy.com/util': 17.67.0(tslib@2.8.1) tslib: 2.8.1 '@jsonjoy.com/json-pack@1.21.0(tslib@2.8.1)': @@ -8828,13 +8550,13 @@ snapshots: tree-dump: 1.1.0(tslib@2.8.1) tslib: 2.8.1 - '@jsonjoy.com/json-pack@17.65.0(tslib@2.8.1)': + '@jsonjoy.com/json-pack@17.67.0(tslib@2.8.1)': dependencies: - '@jsonjoy.com/base64': 17.65.0(tslib@2.8.1) - '@jsonjoy.com/buffers': 17.65.0(tslib@2.8.1) - '@jsonjoy.com/codegen': 17.65.0(tslib@2.8.1) - '@jsonjoy.com/json-pointer': 17.65.0(tslib@2.8.1) - '@jsonjoy.com/util': 17.65.0(tslib@2.8.1) + '@jsonjoy.com/base64': 17.67.0(tslib@2.8.1) + '@jsonjoy.com/buffers': 17.67.0(tslib@2.8.1) + '@jsonjoy.com/codegen': 17.67.0(tslib@2.8.1) + '@jsonjoy.com/json-pointer': 17.67.0(tslib@2.8.1) + '@jsonjoy.com/util': 17.67.0(tslib@2.8.1) hyperdyperid: 1.2.0 thingies: 2.5.0(tslib@2.8.1) tree-dump: 1.1.0(tslib@2.8.1) @@ -8846,9 +8568,9 @@ snapshots: '@jsonjoy.com/util': 1.9.0(tslib@2.8.1) tslib: 2.8.1 - '@jsonjoy.com/json-pointer@17.65.0(tslib@2.8.1)': + '@jsonjoy.com/json-pointer@17.67.0(tslib@2.8.1)': dependencies: - '@jsonjoy.com/util': 17.65.0(tslib@2.8.1) + '@jsonjoy.com/util': 17.67.0(tslib@2.8.1) tslib: 2.8.1 '@jsonjoy.com/util@1.9.0(tslib@2.8.1)': @@ -8857,10 +8579,10 @@ snapshots: '@jsonjoy.com/codegen': 1.0.0(tslib@2.8.1) tslib: 2.8.1 - '@jsonjoy.com/util@17.65.0(tslib@2.8.1)': + '@jsonjoy.com/util@17.67.0(tslib@2.8.1)': dependencies: - '@jsonjoy.com/buffers': 17.65.0(tslib@2.8.1) - '@jsonjoy.com/codegen': 17.65.0(tslib@2.8.1) + '@jsonjoy.com/buffers': 17.67.0(tslib@2.8.1) + '@jsonjoy.com/codegen': 17.67.0(tslib@2.8.1) tslib: 2.8.1 '@leichtgewicht/ip-codec@2.0.5': {} @@ -9119,244 +8841,55 @@ snapshots: '@polka/url@1.0.0-next.29': {} - '@radix-ui/number@1.1.1': + '@rspack/binding-darwin-arm64@1.7.5': optional: true - '@radix-ui/primitive@1.1.3': + '@rspack/binding-darwin-x64@1.7.5': optional: true - '@radix-ui/react-compose-refs@1.1.2(@types/react@19.2.13)(react@19.2.4)': - dependencies: - react: 19.2.4 - optionalDependencies: - '@types/react': 19.2.13 + '@rspack/binding-linux-arm64-gnu@1.7.5': optional: true - '@radix-ui/react-context@1.1.2(@types/react@19.2.13)(react@19.2.4)': - dependencies: - react: 19.2.4 - optionalDependencies: - '@types/react': 19.2.13 + '@rspack/binding-linux-arm64-musl@1.7.5': optional: true - '@radix-ui/react-dialog@1.1.15(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': - dependencies: - '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.13)(react@19.2.4) - '@radix-ui/react-context': 1.1.2(@types/react@19.2.13)(react@19.2.4) - '@radix-ui/react-dismissable-layer': 1.1.11(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.2.13)(react@19.2.4) - '@radix-ui/react-focus-scope': 1.1.7(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-id': 1.1.1(@types/react@19.2.13)(react@19.2.4) - '@radix-ui/react-portal': 1.1.9(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-presence': 1.1.5(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-primitive': 2.1.3(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-slot': 1.2.3(@types/react@19.2.13)(react@19.2.4) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.13)(react@19.2.4) - aria-hidden: 1.2.6 - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) - react-remove-scroll: 2.7.2(@types/react@19.2.13)(react@19.2.4) - optionalDependencies: - '@types/react': 19.2.13 + '@rspack/binding-linux-x64-gnu@1.7.5': optional: true - '@radix-ui/react-direction@1.1.1(@types/react@19.2.13)(react@19.2.4)': - dependencies: - react: 19.2.4 - optionalDependencies: - '@types/react': 19.2.13 + '@rspack/binding-linux-x64-musl@1.7.5': optional: true - '@radix-ui/react-dismissable-layer@1.1.11(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + '@rspack/binding-wasm32-wasi@1.7.5': dependencies: - '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.13)(react@19.2.4) - '@radix-ui/react-primitive': 2.1.3(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.13)(react@19.2.4) - '@radix-ui/react-use-escape-keydown': 1.1.1(@types/react@19.2.13)(react@19.2.4) - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) - optionalDependencies: - '@types/react': 19.2.13 + '@napi-rs/wasm-runtime': 1.0.7 optional: true - '@radix-ui/react-focus-guards@1.1.3(@types/react@19.2.13)(react@19.2.4)': - dependencies: - react: 19.2.4 - optionalDependencies: - '@types/react': 19.2.13 + '@rspack/binding-win32-arm64-msvc@1.7.5': optional: true - '@radix-ui/react-focus-scope@1.1.7(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': - dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.13)(react@19.2.4) - '@radix-ui/react-primitive': 2.1.3(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.13)(react@19.2.4) - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) - optionalDependencies: - '@types/react': 19.2.13 - optional: true - - '@radix-ui/react-id@1.1.1(@types/react@19.2.13)(react@19.2.4)': - dependencies: - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.13)(react@19.2.4) - react: 19.2.4 - optionalDependencies: - '@types/react': 19.2.13 + '@rspack/binding-win32-ia32-msvc@1.7.5': optional: true - '@radix-ui/react-portal@1.1.9(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': - dependencies: - '@radix-ui/react-primitive': 2.1.3(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.13)(react@19.2.4) - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) - optionalDependencies: - '@types/react': 19.2.13 + '@rspack/binding-win32-x64-msvc@1.7.5': optional: true - '@radix-ui/react-presence@1.1.5(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': - dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.13)(react@19.2.4) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.13)(react@19.2.4) - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) + '@rspack/binding@1.7.5': optionalDependencies: - '@types/react': 19.2.13 - optional: true - - '@radix-ui/react-primitive@2.1.3(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': - dependencies: - '@radix-ui/react-slot': 1.2.3(@types/react@19.2.13)(react@19.2.4) - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) - optionalDependencies: - '@types/react': 19.2.13 - optional: true - - '@radix-ui/react-scroll-area@1.2.10(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': - dependencies: - '@radix-ui/number': 1.1.1 - '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.13)(react@19.2.4) - '@radix-ui/react-context': 1.1.2(@types/react@19.2.13)(react@19.2.4) - '@radix-ui/react-direction': 1.1.1(@types/react@19.2.13)(react@19.2.4) - '@radix-ui/react-presence': 1.1.5(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-primitive': 2.1.3(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.13)(react@19.2.4) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.13)(react@19.2.4) - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) - optionalDependencies: - '@types/react': 19.2.13 - optional: true - - '@radix-ui/react-slot@1.2.3(@types/react@19.2.13)(react@19.2.4)': - dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.13)(react@19.2.4) - react: 19.2.4 - optionalDependencies: - '@types/react': 19.2.13 - optional: true - - '@radix-ui/react-slot@1.2.4(@types/react@19.2.13)(react@19.2.4)': - dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.13)(react@19.2.4) - react: 19.2.4 - optionalDependencies: - '@types/react': 19.2.13 - optional: true - - '@radix-ui/react-use-callback-ref@1.1.1(@types/react@19.2.13)(react@19.2.4)': - dependencies: - react: 19.2.4 - optionalDependencies: - '@types/react': 19.2.13 - optional: true - - '@radix-ui/react-use-controllable-state@1.2.2(@types/react@19.2.13)(react@19.2.4)': - dependencies: - '@radix-ui/react-use-effect-event': 0.0.2(@types/react@19.2.13)(react@19.2.4) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.13)(react@19.2.4) - react: 19.2.4 - optionalDependencies: - '@types/react': 19.2.13 - optional: true - - '@radix-ui/react-use-effect-event@0.0.2(@types/react@19.2.13)(react@19.2.4)': - dependencies: - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.13)(react@19.2.4) - react: 19.2.4 - optionalDependencies: - '@types/react': 19.2.13 - optional: true - - '@radix-ui/react-use-escape-keydown@1.1.1(@types/react@19.2.13)(react@19.2.4)': - dependencies: - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.13)(react@19.2.4) - react: 19.2.4 - optionalDependencies: - '@types/react': 19.2.13 - optional: true - - '@radix-ui/react-use-layout-effect@1.1.1(@types/react@19.2.13)(react@19.2.4)': - dependencies: - react: 19.2.4 - optionalDependencies: - '@types/react': 19.2.13 - optional: true - - '@rspack/binding-darwin-arm64@1.7.4': - optional: true - - '@rspack/binding-darwin-x64@1.7.4': - optional: true - - '@rspack/binding-linux-arm64-gnu@1.7.4': - optional: true - - '@rspack/binding-linux-arm64-musl@1.7.4': - optional: true - - '@rspack/binding-linux-x64-gnu@1.7.4': - optional: true - - '@rspack/binding-linux-x64-musl@1.7.4': - optional: true - - '@rspack/binding-wasm32-wasi@1.7.4': - dependencies: - '@napi-rs/wasm-runtime': 1.0.7 - optional: true - - '@rspack/binding-win32-arm64-msvc@1.7.4': - optional: true - - '@rspack/binding-win32-ia32-msvc@1.7.4': - optional: true - - '@rspack/binding-win32-x64-msvc@1.7.4': - optional: true - - '@rspack/binding@1.7.4': - optionalDependencies: - '@rspack/binding-darwin-arm64': 1.7.4 - '@rspack/binding-darwin-x64': 1.7.4 - '@rspack/binding-linux-arm64-gnu': 1.7.4 - '@rspack/binding-linux-arm64-musl': 1.7.4 - '@rspack/binding-linux-x64-gnu': 1.7.4 - '@rspack/binding-linux-x64-musl': 1.7.4 - '@rspack/binding-wasm32-wasi': 1.7.4 - '@rspack/binding-win32-arm64-msvc': 1.7.4 - '@rspack/binding-win32-ia32-msvc': 1.7.4 - '@rspack/binding-win32-x64-msvc': 1.7.4 - - '@rspack/core@1.7.4': + '@rspack/binding-darwin-arm64': 1.7.5 + '@rspack/binding-darwin-x64': 1.7.5 + '@rspack/binding-linux-arm64-gnu': 1.7.5 + '@rspack/binding-linux-arm64-musl': 1.7.5 + '@rspack/binding-linux-x64-gnu': 1.7.5 + '@rspack/binding-linux-x64-musl': 1.7.5 + '@rspack/binding-wasm32-wasi': 1.7.5 + '@rspack/binding-win32-arm64-msvc': 1.7.5 + '@rspack/binding-win32-ia32-msvc': 1.7.5 + '@rspack/binding-win32-x64-msvc': 1.7.5 + + '@rspack/core@1.7.5': dependencies: '@module-federation/runtime-tools': 0.22.0 - '@rspack/binding': 1.7.4 + '@rspack/binding': 1.7.5 '@rspack/lite-tapable': 1.1.0 '@rspack/lite-tapable@1.1.0': {} @@ -9369,7 +8902,7 @@ snapshots: '@sideway/pinpoint@2.0.0': {} - '@sinclair/typebox@0.27.8': {} + '@sinclair/typebox@0.27.10': {} '@sindresorhus/is@4.6.0': {} @@ -9762,14 +9295,14 @@ snapshots: dependencies: '@types/yargs-parser': 21.0.3 - '@typescript-eslint/eslint-plugin@8.54.0(@typescript-eslint/parser@8.55.0(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3))(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3)': + '@typescript-eslint/eslint-plugin@8.55.0(@typescript-eslint/parser@8.55.0(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3))(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3)': dependencies: '@eslint-community/regexpp': 4.12.2 '@typescript-eslint/parser': 8.55.0(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3) - '@typescript-eslint/scope-manager': 8.54.0 - '@typescript-eslint/type-utils': 8.54.0(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3) - '@typescript-eslint/utils': 8.54.0(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3) - '@typescript-eslint/visitor-keys': 8.54.0 + '@typescript-eslint/scope-manager': 8.55.0 + '@typescript-eslint/type-utils': 8.55.0(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3) + '@typescript-eslint/utils': 8.55.0(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.55.0 eslint: 9.39.2(jiti@1.21.7) ignore: 7.0.5 natural-compare: 1.4.0 @@ -9790,15 +9323,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/project-service@8.54.0(typescript@5.9.3)': - dependencies: - '@typescript-eslint/tsconfig-utils': 8.55.0(typescript@5.9.3) - '@typescript-eslint/types': 8.55.0 - debug: 4.4.3 - typescript: 5.9.3 - transitivePeerDependencies: - - supports-color - '@typescript-eslint/project-service@8.55.0(typescript@5.9.3)': dependencies: '@typescript-eslint/tsconfig-utils': 8.55.0(typescript@5.9.3) @@ -9813,29 +9337,20 @@ snapshots: '@typescript-eslint/types': 5.62.0 '@typescript-eslint/visitor-keys': 5.62.0 - '@typescript-eslint/scope-manager@8.54.0': - dependencies: - '@typescript-eslint/types': 8.54.0 - '@typescript-eslint/visitor-keys': 8.54.0 - '@typescript-eslint/scope-manager@8.55.0': dependencies: '@typescript-eslint/types': 8.55.0 '@typescript-eslint/visitor-keys': 8.55.0 - '@typescript-eslint/tsconfig-utils@8.54.0(typescript@5.9.3)': - dependencies: - typescript: 5.9.3 - '@typescript-eslint/tsconfig-utils@8.55.0(typescript@5.9.3)': dependencies: typescript: 5.9.3 - '@typescript-eslint/type-utils@8.54.0(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3)': + '@typescript-eslint/type-utils@8.55.0(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3)': dependencies: - '@typescript-eslint/types': 8.54.0 - '@typescript-eslint/typescript-estree': 8.54.0(typescript@5.9.3) - '@typescript-eslint/utils': 8.54.0(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3) + '@typescript-eslint/types': 8.55.0 + '@typescript-eslint/typescript-estree': 8.55.0(typescript@5.9.3) + '@typescript-eslint/utils': 8.55.0(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3) debug: 4.4.3 eslint: 9.39.2(jiti@1.21.7) ts-api-utils: 2.4.0(typescript@5.9.3) @@ -9845,8 +9360,6 @@ snapshots: '@typescript-eslint/types@5.62.0': {} - '@typescript-eslint/types@8.54.0': {} - '@typescript-eslint/types@8.55.0': {} '@typescript-eslint/typescript-estree@5.62.0(typescript@5.9.3)': @@ -9856,28 +9369,13 @@ snapshots: debug: 4.4.3 globby: 11.1.0 is-glob: 4.0.3 - semver: 7.7.3 + semver: 7.7.4 tsutils: 3.21.0(typescript@5.9.3) optionalDependencies: typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/typescript-estree@8.54.0(typescript@5.9.3)': - dependencies: - '@typescript-eslint/project-service': 8.54.0(typescript@5.9.3) - '@typescript-eslint/tsconfig-utils': 8.54.0(typescript@5.9.3) - '@typescript-eslint/types': 8.54.0 - '@typescript-eslint/visitor-keys': 8.54.0 - debug: 4.4.3 - minimatch: 9.0.5 - semver: 7.7.4 - tinyglobby: 0.2.15 - ts-api-utils: 2.4.0(typescript@5.9.3) - typescript: 5.9.3 - transitivePeerDependencies: - - supports-color - '@typescript-eslint/typescript-estree@8.55.0(typescript@5.9.3)': dependencies: '@typescript-eslint/project-service': 8.55.0(typescript@5.9.3) @@ -9903,17 +9401,17 @@ snapshots: '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.9.3) eslint: 9.39.2(jiti@1.21.7) eslint-scope: 5.1.1 - semver: 7.7.3 + semver: 7.7.4 transitivePeerDependencies: - supports-color - typescript - '@typescript-eslint/utils@8.54.0(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3)': + '@typescript-eslint/utils@8.55.0(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3)': dependencies: '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.2(jiti@1.21.7)) - '@typescript-eslint/scope-manager': 8.54.0 - '@typescript-eslint/types': 8.54.0 - '@typescript-eslint/typescript-estree': 8.54.0(typescript@5.9.3) + '@typescript-eslint/scope-manager': 8.55.0 + '@typescript-eslint/types': 8.55.0 + '@typescript-eslint/typescript-estree': 8.55.0(typescript@5.9.3) eslint: 9.39.2(jiti@1.21.7) typescript: 5.9.3 transitivePeerDependencies: @@ -9924,11 +9422,6 @@ snapshots: '@typescript-eslint/types': 5.62.0 eslint-visitor-keys: 3.4.3 - '@typescript-eslint/visitor-keys@8.54.0': - dependencies: - '@typescript-eslint/types': 8.54.0 - eslint-visitor-keys: 4.2.1 - '@typescript-eslint/visitor-keys@8.55.0': dependencies: '@typescript-eslint/types': 8.55.0 @@ -10069,27 +9562,27 @@ snapshots: json-schema-traverse: 1.0.0 require-from-string: 2.0.2 - algoliasearch-helper@3.27.0(algoliasearch@5.47.0): + algoliasearch-helper@3.27.0(algoliasearch@5.48.0): dependencies: '@algolia/events': 4.0.1 - algoliasearch: 5.47.0 - - algoliasearch@5.47.0: - dependencies: - '@algolia/abtesting': 1.13.0 - '@algolia/client-abtesting': 5.47.0 - '@algolia/client-analytics': 5.47.0 - '@algolia/client-common': 5.47.0 - '@algolia/client-insights': 5.47.0 - '@algolia/client-personalization': 5.47.0 - '@algolia/client-query-suggestions': 5.47.0 - '@algolia/client-search': 5.47.0 - '@algolia/ingestion': 1.47.0 - '@algolia/monitoring': 1.47.0 - '@algolia/recommend': 5.47.0 - '@algolia/requester-browser-xhr': 5.47.0 - '@algolia/requester-fetch': 5.47.0 - '@algolia/requester-node-http': 5.47.0 + algoliasearch: 5.48.0 + + algoliasearch@5.48.0: + dependencies: + '@algolia/abtesting': 1.14.0 + '@algolia/client-abtesting': 5.48.0 + '@algolia/client-analytics': 5.48.0 + '@algolia/client-common': 5.48.0 + '@algolia/client-insights': 5.48.0 + '@algolia/client-personalization': 5.48.0 + '@algolia/client-query-suggestions': 5.48.0 + '@algolia/client-search': 5.48.0 + '@algolia/ingestion': 1.48.0 + '@algolia/monitoring': 1.48.0 + '@algolia/recommend': 5.48.0 + '@algolia/requester-browser-xhr': 5.48.0 + '@algolia/requester-fetch': 5.48.0 + '@algolia/requester-node-http': 5.48.0 ansi-align@3.0.1: dependencies: @@ -10124,11 +9617,6 @@ snapshots: argparse@2.0.1: {} - aria-hidden@1.2.6: - dependencies: - tslib: 2.8.1 - optional: true - array-buffer-byte-length@1.0.2: dependencies: call-bound: 1.0.4 @@ -10203,7 +9691,7 @@ snapshots: autoprefixer@10.4.24(postcss@8.5.6): dependencies: browserslist: 4.28.1 - caniuse-lite: 1.0.30001766 + caniuse-lite: 1.0.30001769 fraction.js: 5.3.4 picocolors: 1.1.1 postcss: 8.5.6 @@ -10213,12 +9701,12 @@ snapshots: dependencies: possible-typed-array-names: 1.1.0 - babel-loader@9.2.1(@babel/core@7.29.0)(webpack@5.104.1): + babel-loader@9.2.1(@babel/core@7.29.0)(webpack@5.105.0): dependencies: '@babel/core': 7.29.0 find-cache-dir: 4.0.0 schema-utils: 4.3.3 - webpack: 5.104.1 + webpack: 5.105.0(@swc/core@1.15.11) babel-plugin-dynamic-import-node@2.3.3: dependencies: @@ -10330,8 +9818,8 @@ snapshots: browserslist@4.28.1: dependencies: baseline-browser-mapping: 2.9.19 - caniuse-lite: 1.0.30001766 - electron-to-chromium: 1.5.283 + caniuse-lite: 1.0.30001769 + electron-to-chromium: 1.5.286 node-releases: 2.0.27 update-browserslist-db: 1.2.3(browserslist@4.28.1) @@ -10390,11 +9878,11 @@ snapshots: caniuse-api@3.0.0: dependencies: browserslist: 4.28.1 - caniuse-lite: 1.0.30001766 + caniuse-lite: 1.0.30001769 lodash.memoize: 4.1.2 lodash.uniq: 4.5.0 - caniuse-lite@1.0.30001766: {} + caniuse-lite@1.0.30001769: {} ccount@2.0.1: {} @@ -10565,7 +10053,7 @@ snapshots: cookie@0.7.2: {} - copy-webpack-plugin@11.0.0(webpack@5.104.1): + copy-webpack-plugin@11.0.0(webpack@5.105.0): dependencies: fast-glob: 3.3.3 glob-parent: 6.0.2 @@ -10573,7 +10061,7 @@ snapshots: normalize-path: 3.0.0 schema-utils: 4.3.3 serialize-javascript: 6.0.2 - webpack: 5.104.1 + webpack: 5.105.0(@swc/core@1.15.11) core-js-compat@3.48.0: dependencies: @@ -10620,7 +10108,7 @@ snapshots: postcss-selector-parser: 7.1.1 postcss-value-parser: 4.2.0 - css-loader@6.11.0(@rspack/core@1.7.4)(webpack@5.104.1): + css-loader@6.11.0(@rspack/core@1.7.5)(webpack@5.105.0): dependencies: icss-utils: 5.1.0(postcss@8.5.6) postcss: 8.5.6 @@ -10631,10 +10119,10 @@ snapshots: postcss-value-parser: 4.2.0 semver: 7.7.4 optionalDependencies: - '@rspack/core': 1.7.4 - webpack: 5.104.1 + '@rspack/core': 1.7.5 + webpack: 5.105.0(@swc/core@1.15.11) - css-minimizer-webpack-plugin@5.0.1(clean-css@5.3.3)(webpack@5.104.1): + css-minimizer-webpack-plugin@5.0.1(clean-css@5.3.3)(webpack@5.105.0): dependencies: '@jridgewell/trace-mapping': 0.3.31 cssnano: 6.1.2(postcss@8.5.6) @@ -10642,7 +10130,7 @@ snapshots: postcss: 8.5.6 schema-utils: 4.3.3 serialize-javascript: 6.0.2 - webpack: 5.104.1 + webpack: 5.105.0(@swc/core@1.15.11) optionalDependencies: clean-css: 5.3.3 @@ -10787,7 +10275,7 @@ snapshots: default-browser-id@5.0.1: {} - default-browser@5.4.0: + default-browser@5.5.0: dependencies: bundle-name: 4.1.0 default-browser-id: 5.0.1 @@ -10820,9 +10308,6 @@ snapshots: detect-libc@2.1.2: {} - detect-node-es@1.1.0: - optional: true - detect-node@2.1.0: {} detect-port@1.6.1: @@ -10907,7 +10392,7 @@ snapshots: ee-first@1.1.1: {} - electron-to-chromium@1.5.283: {} + electron-to-chromium@1.5.286: {} emoji-regex@10.6.0: {} @@ -10928,11 +10413,6 @@ snapshots: iconv-lite: 0.6.3 whatwg-encoding: 3.1.1 - enhanced-resolve@5.18.4: - dependencies: - graceful-fs: 4.2.11 - tapable: 2.3.0 - enhanced-resolve@5.19.0: dependencies: graceful-fs: 4.2.11 @@ -11341,17 +10821,11 @@ snapshots: dependencies: flat-cache: 4.0.1 - file-loader@6.2.0(webpack@5.104.1): - dependencies: - loader-utils: 2.0.4 - schema-utils: 3.3.0 - webpack: 5.104.1 - file-loader@6.2.0(webpack@5.105.0): dependencies: loader-utils: 2.0.4 schema-utils: 3.3.0 - webpack: 5.105.0 + webpack: 5.105.0(@swc/core@1.15.11) fill-range@7.1.1: dependencies: @@ -11409,6 +10883,15 @@ snapshots: fraction.js@5.3.4: {} + framer-motion@12.34.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4): + dependencies: + motion-dom: 12.34.0 + motion-utils: 12.29.2 + tslib: 2.8.1 + optionalDependencies: + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + fresh@0.5.2: {} fs-extra@10.1.0: @@ -11458,9 +10941,6 @@ snapshots: hasown: 2.0.2 math-intrinsics: 1.1.0 - get-nonce@1.0.1: - optional: true - get-own-enumerable-property-symbols@3.0.2: {} get-proto@1.0.1: @@ -11590,11 +11070,6 @@ snapshots: vfile-location: 5.0.3 web-namespaces: 2.0.1 - hast-util-is-element@3.0.0: - dependencies: - '@types/hast': 3.0.4 - optional: true - hast-util-parse-selector@4.0.0: dependencies: '@types/hast': 3.0.4 @@ -11666,14 +11141,6 @@ snapshots: web-namespaces: 2.0.1 zwitch: 2.0.4 - hast-util-to-text@4.0.2: - dependencies: - '@types/hast': 3.0.4 - '@types/unist': 3.0.3 - hast-util-is-element: 3.0.0 - unist-util-find-after: 5.0.0 - optional: true - hast-util-whitespace@3.0.0: dependencies: '@types/hast': 3.0.4 @@ -11694,9 +11161,6 @@ snapshots: dependencies: hermes-estree: 0.25.1 - highlight.js@11.11.1: - optional: true - history@4.10.1: dependencies: '@babel/runtime': 7.28.6 @@ -11741,12 +11205,9 @@ snapshots: html-tags@3.3.1: {} - html-url-attributes@3.0.1: - optional: true - html-void-elements@3.0.0: {} - html-webpack-plugin@5.6.6(@rspack/core@1.7.4)(webpack@5.104.1): + html-webpack-plugin@5.6.6(@rspack/core@1.7.5)(webpack@5.105.0): dependencies: '@types/html-minifier-terser': 6.1.0 html-minifier-terser: 6.1.0 @@ -11754,8 +11215,8 @@ snapshots: pretty-error: 4.0.0 tapable: 2.3.0 optionalDependencies: - '@rspack/core': 1.7.4 - webpack: 5.104.1 + '@rspack/core': 1.7.5 + webpack: 5.105.0(@swc/core@1.15.11) htmlparser2@10.1.0: dependencies: @@ -12272,22 +11733,10 @@ snapshots: lowercase-keys@3.0.0: {} - lowlight@3.3.0: - dependencies: - '@types/hast': 3.0.4 - devlop: 1.1.0 - highlight.js: 11.11.1 - optional: true - lru-cache@5.1.1: dependencies: yallist: 3.1.1 - lucide-react@0.563.0(react@19.2.4): - dependencies: - react: 19.2.4 - optional: true - lunr-languages@1.14.0: {} lunr@2.3.9: {} @@ -12855,11 +12304,11 @@ snapshots: mimic-response@4.0.0: {} - mini-css-extract-plugin@2.10.0(webpack@5.104.1): + mini-css-extract-plugin@2.10.0(webpack@5.105.0): dependencies: schema-utils: 4.3.3 tapable: 2.3.0 - webpack: 5.104.1 + webpack: 5.105.0(@swc/core@1.15.11) minimalistic-assert@1.0.1: {} @@ -12873,6 +12322,12 @@ snapshots: minimist@1.2.8: {} + motion-dom@12.34.0: + dependencies: + motion-utils: 12.29.2 + + motion-utils@12.29.2: {} + mrmime@2.0.1: {} ms@2.0.0: {} @@ -12922,11 +12377,11 @@ snapshots: dependencies: boolbase: 1.0.0 - null-loader@4.0.1(webpack@5.104.1): + null-loader@4.0.1(webpack@5.105.0): dependencies: loader-utils: 2.0.4 schema-utils: 3.3.0 - webpack: 5.104.1 + webpack: 5.105.0(@swc/core@1.15.11) object-assign@4.1.1: {} @@ -12976,27 +12431,9 @@ snapshots: dependencies: mimic-fn: 2.1.0 - open-ask-ai@0.7.3(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4): - dependencies: - '@radix-ui/react-dialog': 1.1.15(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-scroll-area': 1.2.10(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-slot': 1.2.4(@types/react@19.2.13)(react@19.2.4) - lowlight: 3.3.0 - lucide-react: 0.563.0(react@19.2.4) - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) - react-markdown: 10.1.0(@types/react@19.2.13)(react@19.2.4) - rehype-highlight: 7.0.2 - remark-gfm: 4.0.1 - transitivePeerDependencies: - - '@types/react' - - '@types/react-dom' - - supports-color - optional: true - open@10.2.0: dependencies: - default-browser: 5.4.0 + default-browser: 5.5.0 define-lazy-prop: 3.0.0 is-inside-container: 1.0.0 wsl-utils: 0.1.0 @@ -13301,13 +12738,13 @@ snapshots: '@csstools/utilities': 2.0.0(postcss@8.5.6) postcss: 8.5.6 - postcss-loader@7.3.4(postcss@8.5.6)(typescript@5.9.3)(webpack@5.104.1): + postcss-loader@7.3.4(postcss@8.5.6)(typescript@5.9.3)(webpack@5.105.0): dependencies: cosmiconfig: 8.3.6(typescript@5.9.3) jiti: 1.21.7 postcss: 8.5.6 semver: 7.7.4 - webpack: 5.104.1 + webpack: 5.105.0(@swc/core@1.15.11) transitivePeerDependencies: - typescript @@ -13700,51 +13137,11 @@ snapshots: dependencies: react: 19.2.4 - react-loadable-ssr-addon-v5-slorber@1.0.1(@docusaurus/react-loadable@6.0.0(react@19.2.4))(webpack@5.104.1): + react-loadable-ssr-addon-v5-slorber@1.0.1(@docusaurus/react-loadable@6.0.0(react@19.2.4))(webpack@5.105.0): dependencies: '@babel/runtime': 7.28.6 react-loadable: '@docusaurus/react-loadable@6.0.0(react@19.2.4)' - webpack: 5.104.1 - - react-markdown@10.1.0(@types/react@19.2.13)(react@19.2.4): - dependencies: - '@types/hast': 3.0.4 - '@types/mdast': 4.0.4 - '@types/react': 19.2.13 - devlop: 1.1.0 - hast-util-to-jsx-runtime: 2.3.6 - html-url-attributes: 3.0.1 - mdast-util-to-hast: 13.2.1 - react: 19.2.4 - remark-parse: 11.0.0 - remark-rehype: 11.1.2 - unified: 11.0.5 - unist-util-visit: 5.1.0 - vfile: 6.0.3 - transitivePeerDependencies: - - supports-color - optional: true - - react-remove-scroll-bar@2.3.8(@types/react@19.2.13)(react@19.2.4): - dependencies: - react: 19.2.4 - react-style-singleton: 2.2.3(@types/react@19.2.13)(react@19.2.4) - tslib: 2.8.1 - optionalDependencies: - '@types/react': 19.2.13 - optional: true - - react-remove-scroll@2.7.2(@types/react@19.2.13)(react@19.2.4): - dependencies: - react: 19.2.4 - react-remove-scroll-bar: 2.3.8(@types/react@19.2.13)(react@19.2.4) - react-style-singleton: 2.2.3(@types/react@19.2.13)(react@19.2.4) - tslib: 2.8.1 - use-callback-ref: 1.3.3(@types/react@19.2.13)(react@19.2.4) - use-sidecar: 1.1.3(@types/react@19.2.13)(react@19.2.4) - optionalDependencies: - '@types/react': 19.2.13 - optional: true + webpack: 5.105.0(@swc/core@1.15.11) react-router-config@5.1.1(react-router@5.3.4(react@19.2.4))(react@19.2.4): dependencies: @@ -13776,15 +13173,6 @@ snapshots: tiny-invariant: 1.3.3 tiny-warning: 1.0.3 - react-style-singleton@2.2.3(@types/react@19.2.13)(react@19.2.4): - dependencies: - get-nonce: 1.0.1 - react: 19.2.4 - tslib: 2.8.1 - optionalDependencies: - '@types/react': 19.2.13 - optional: true - react@19.2.4: {} readable-stream@2.3.8: @@ -13887,15 +13275,6 @@ snapshots: dependencies: jsesc: 3.1.0 - rehype-highlight@7.0.2: - dependencies: - '@types/hast': 3.0.4 - hast-util-to-text: 4.0.2 - lowlight: 3.3.0 - unist-util-visit: 5.1.0 - vfile: 6.0.3 - optional: true - rehype-raw@7.0.0: dependencies: '@types/hast': 3.0.4 @@ -14078,8 +13457,6 @@ snapshots: ajv-formats: 2.1.1 ajv-keywords: 5.1.0(ajv@8.17.1) - search-insights@2.17.3: {} - section-matter@1.0.0: dependencies: extend-shallow: 2.0.1 @@ -14098,8 +13475,6 @@ snapshots: semver@6.3.1: {} - semver@7.7.3: {} - semver@7.7.4: {} send@0.19.2: @@ -14435,43 +13810,25 @@ snapshots: csso: 5.0.5 picocolors: 1.1.1 - swc-loader@0.2.7(@swc/core@1.15.11)(webpack@5.104.1(@swc/core@1.15.11)): + swc-loader@0.2.7(@swc/core@1.15.11)(webpack@5.105.0): dependencies: '@swc/core': 1.15.11 '@swc/counter': 0.1.3 - webpack: 5.104.1(@swc/core@1.15.11) + webpack: 5.105.0(@swc/core@1.15.11) tapable@2.3.0: {} - terser-webpack-plugin@5.3.16(@swc/core@1.15.11)(webpack@5.104.1(@swc/core@1.15.11)): + terser-webpack-plugin@5.3.16(@swc/core@1.15.11)(webpack@5.105.0): dependencies: '@jridgewell/trace-mapping': 0.3.31 jest-worker: 27.5.1 schema-utils: 4.3.3 serialize-javascript: 6.0.2 terser: 5.46.0 - webpack: 5.104.1(@swc/core@1.15.11) + webpack: 5.105.0(@swc/core@1.15.11) optionalDependencies: '@swc/core': 1.15.11 - terser-webpack-plugin@5.3.16(webpack@5.104.1): - dependencies: - '@jridgewell/trace-mapping': 0.3.31 - jest-worker: 27.5.1 - schema-utils: 4.3.3 - serialize-javascript: 6.0.2 - terser: 5.46.0 - webpack: 5.104.1 - - terser-webpack-plugin@5.3.16(webpack@5.105.0): - dependencies: - '@jridgewell/trace-mapping': 0.3.31 - jest-worker: 27.5.1 - schema-utils: 4.3.3 - serialize-javascript: 6.0.2 - terser: 5.46.0 - webpack: 5.105.0 - terser@5.46.0: dependencies: '@jridgewell/source-map': 0.3.11 @@ -14621,12 +13978,6 @@ snapshots: dependencies: crypto-random-string: 4.0.0 - unist-util-find-after@5.0.0: - dependencies: - '@types/unist': 3.0.3 - unist-util-is: 6.0.1 - optional: true - unist-util-is@4.1.0: {} unist-util-is@6.0.1: @@ -14690,7 +14041,7 @@ snapshots: is-yarn-global: 0.4.1 latest-version: 7.0.0 pupa: 3.3.0 - semver: 7.7.3 + semver: 7.7.4 semver-diff: 4.0.0 xdg-basedir: 5.1.0 @@ -14698,41 +14049,15 @@ snapshots: dependencies: punycode: 2.3.1 - url-loader@4.1.1(file-loader@6.2.0(webpack@5.104.1))(webpack@5.104.1): - dependencies: - loader-utils: 2.0.4 - mime-types: 2.1.35 - schema-utils: 3.3.0 - webpack: 5.104.1 - optionalDependencies: - file-loader: 6.2.0(webpack@5.104.1) - url-loader@4.1.1(file-loader@6.2.0(webpack@5.105.0))(webpack@5.105.0): dependencies: loader-utils: 2.0.4 mime-types: 2.1.35 schema-utils: 3.3.0 - webpack: 5.105.0 + webpack: 5.105.0(@swc/core@1.15.11) optionalDependencies: file-loader: 6.2.0(webpack@5.105.0) - use-callback-ref@1.3.3(@types/react@19.2.13)(react@19.2.4): - dependencies: - react: 19.2.4 - tslib: 2.8.1 - optionalDependencies: - '@types/react': 19.2.13 - optional: true - - use-sidecar@1.1.3(@types/react@19.2.13)(react@19.2.4): - dependencies: - detect-node-es: 1.1.0 - react: 19.2.4 - tslib: 2.8.1 - optionalDependencies: - '@types/react': 19.2.13 - optional: true - util-deprecate@1.0.2: {} utila@0.4.0: {} @@ -14791,7 +14116,7 @@ snapshots: - bufferutil - utf-8-validate - webpack-dev-middleware@7.4.5(tslib@2.8.1)(webpack@5.104.1): + webpack-dev-middleware@7.4.5(tslib@2.8.1)(webpack@5.105.0): dependencies: colorette: 2.0.20 memfs: 4.56.10(tslib@2.8.1) @@ -14800,11 +14125,11 @@ snapshots: range-parser: 1.2.1 schema-utils: 4.3.3 optionalDependencies: - webpack: 5.104.1 + webpack: 5.105.0(@swc/core@1.15.11) transitivePeerDependencies: - tslib - webpack-dev-server@5.2.3(debug@4.4.3)(tslib@2.8.1)(webpack@5.104.1): + webpack-dev-server@5.2.3(debug@4.4.3)(tslib@2.8.1)(webpack@5.105.0): dependencies: '@types/bonjour': 3.5.13 '@types/connect-history-api-fallback': 1.5.4 @@ -14832,10 +14157,10 @@ snapshots: serve-index: 1.9.2 sockjs: 0.3.24 spdy: 4.0.2 - webpack-dev-middleware: 7.4.5(tslib@2.8.1)(webpack@5.104.1) + webpack-dev-middleware: 7.4.5(tslib@2.8.1)(webpack@5.105.0) ws: 8.19.0 optionalDependencies: - webpack: 5.104.1 + webpack: 5.105.0(@swc/core@1.15.11) transitivePeerDependencies: - bufferutil - debug @@ -14857,71 +14182,7 @@ snapshots: webpack-sources@3.3.3: {} - webpack@5.104.1: - dependencies: - '@types/eslint-scope': 3.7.7 - '@types/estree': 1.0.8 - '@types/json-schema': 7.0.15 - '@webassemblyjs/ast': 1.14.1 - '@webassemblyjs/wasm-edit': 1.14.1 - '@webassemblyjs/wasm-parser': 1.14.1 - acorn: 8.15.0 - acorn-import-phases: 1.0.4(acorn@8.15.0) - browserslist: 4.28.1 - chrome-trace-event: 1.0.4 - enhanced-resolve: 5.18.4 - es-module-lexer: 2.0.0 - eslint-scope: 5.1.1 - events: 3.3.0 - glob-to-regexp: 0.4.1 - graceful-fs: 4.2.11 - json-parse-even-better-errors: 2.3.1 - loader-runner: 4.3.1 - mime-types: 2.1.35 - neo-async: 2.6.2 - schema-utils: 4.3.3 - tapable: 2.3.0 - terser-webpack-plugin: 5.3.16(webpack@5.104.1) - watchpack: 2.5.1 - webpack-sources: 3.3.3 - transitivePeerDependencies: - - '@swc/core' - - esbuild - - uglify-js - - webpack@5.104.1(@swc/core@1.15.11): - dependencies: - '@types/eslint-scope': 3.7.7 - '@types/estree': 1.0.8 - '@types/json-schema': 7.0.15 - '@webassemblyjs/ast': 1.14.1 - '@webassemblyjs/wasm-edit': 1.14.1 - '@webassemblyjs/wasm-parser': 1.14.1 - acorn: 8.15.0 - acorn-import-phases: 1.0.4(acorn@8.15.0) - browserslist: 4.28.1 - chrome-trace-event: 1.0.4 - enhanced-resolve: 5.18.4 - es-module-lexer: 2.0.0 - eslint-scope: 5.1.1 - events: 3.3.0 - glob-to-regexp: 0.4.1 - graceful-fs: 4.2.11 - json-parse-even-better-errors: 2.3.1 - loader-runner: 4.3.1 - mime-types: 2.1.35 - neo-async: 2.6.2 - schema-utils: 4.3.3 - tapable: 2.3.0 - terser-webpack-plugin: 5.3.16(@swc/core@1.15.11)(webpack@5.104.1(@swc/core@1.15.11)) - watchpack: 2.5.1 - webpack-sources: 3.3.3 - transitivePeerDependencies: - - '@swc/core' - - esbuild - - uglify-js - - webpack@5.105.0: + webpack@5.105.0(@swc/core@1.15.11): dependencies: '@types/eslint-scope': 3.7.7 '@types/estree': 1.0.8 @@ -14945,7 +14206,7 @@ snapshots: neo-async: 2.6.2 schema-utils: 4.3.3 tapable: 2.3.0 - terser-webpack-plugin: 5.3.16(webpack@5.105.0) + terser-webpack-plugin: 5.3.16(@swc/core@1.15.11)(webpack@5.105.0) watchpack: 2.5.1 webpack-sources: 3.3.3 transitivePeerDependencies: @@ -14953,7 +14214,7 @@ snapshots: - esbuild - uglify-js - webpackbar@6.0.1(webpack@5.104.1): + webpackbar@6.0.1(webpack@5.105.0): dependencies: ansi-escapes: 4.3.2 chalk: 4.1.2 @@ -14962,7 +14223,7 @@ snapshots: markdown-table: 2.0.0 pretty-time: 1.1.0 std-env: 3.10.0 - webpack: 5.104.1 + webpack: 5.105.0(@swc/core@1.15.11) wrap-ansi: 7.0.0 websocket-driver@0.7.4: diff --git a/sidebars.js b/sidebars.js index b1d28ca..159cd6c 100644 --- a/sidebars.js +++ b/sidebars.js @@ -1,4 +1,4 @@ -/** +/** * Creating a sidebar enables you to: - create an ordered group of docs - render a sidebar for each doc of that group @@ -31,8 +31,8 @@ const sidebars = { 'getting-started/release-notes', 'getting-started/upgrade-guidance-4x-to-v41', 'getting-started/upgrade-guidance-v3x-to-v41', - 'getting-started/faq' - ] + 'getting-started/faq', + ], }, { type: 'category', @@ -44,8 +44,8 @@ const sidebars = { items: [ 'deployment-concepts/deployment-structure', 'deployment-concepts/invoke-appdeploytoolkit', - 'deployment-concepts/zero-config-deployment' - ] + 'deployment-concepts/zero-config-deployment', + ], }, { type: 'category', @@ -59,8 +59,8 @@ const sidebars = { 'usage/adding-ui-elements', 'usage/customizing-deployments', 'usage/installing-applications', - 'usage/admx-templates' - ] + 'usage/admx-templates', + ], }, { type: 'category', @@ -70,8 +70,8 @@ const sidebars = { }, collapsed: false, items: [ - 'examples/admxtemplate-LogPath'/*, - 'examples/googlechrome-configmgr'*/ + 'examples/admxtemplate-LogPath' /*, + 'examples/googlechrome-configmgr'*/, ], }, ], diff --git a/src/components/DocsVersionSelector/DocsVersionSelector.module.css b/src/components/DocsVersionSelector/DocsVersionSelector.module.css new file mode 100644 index 0000000..e522a66 --- /dev/null +++ b/src/components/DocsVersionSelector/DocsVersionSelector.module.css @@ -0,0 +1,107 @@ +.container { + position: relative; + flex-shrink: 0; + display: inline-flex; + align-items: center; + gap: var(--psadt-space-md); +} + +.label { + font-size: var(--ifm-font-size-base); + font-weight: var(--ifm-font-weight-semibold); + color: var(--ifm-color-content-secondary); + white-space: nowrap; +} + +.trigger { + display: inline-flex; + align-items: center; + gap: var(--psadt-space-sm); + padding: 0.5rem 0.75rem; + background-color: var(--ifm-color-primary); + color: var(--ifm-color-content); + border: 1px solid var(--ifm-color-primary-dark); + border-radius: var(--psadt-radius-sm); + box-shadow: var(--psadt-shadow-sm); + font-size: var(--ifm-font-size-sm); + font-weight: var(--ifm-font-weight-semibold); + font-family: var(--ifm-font-family-base); + cursor: pointer; + transition: background-color var(--psadt-transition-fast), border-color var(--psadt-transition-fast), box-shadow var(--psadt-transition-fast); + line-height: 1.25; +} + +.trigger:hover { + background-color: var(--ifm-color-primary-light); + box-shadow: var(--psadt-shadow-md); +} + + +.chevron { + transition: transform var(--psadt-transition-fast); +} + +.chevronOpen { + transform: rotate(180deg); +} + +.dropdown { + position: absolute; + right: 0; + top: calc(100%); + min-width: 140px; + margin: 0; + padding: var(--psadt-space-xs) 0; + list-style: none; + background-color: var(--ifm-color-white); + border: 1px solid var(--ifm-color-content); + border-radius: var(--psadt-radius-sm); + box-shadow: var(--psadt-shadow-lg); + z-index: 100; + opacity: 1; + -webkit-backdrop-filter: none; + backdrop-filter: none; +} + +[data-theme='dark'] .dropdown { + background-color: var(--ifm-color-emphasis-200); + border-color: var(--ifm-color-emphasis-300); +} + +.item { + display: block; + padding: 0.4rem 0.75rem; + font-size: var(--ifm-font-size-sm); + font-weight: var(--ifm-font-weight-normal); + color: var(--ifm-color-content-inverse); + cursor: pointer; + transition: background-color var(--psadt-transition-normal); +} + +.item:hover { + background-color: var(--ifm-color-primary-dark); +} + +.itemActive { + color: var(--ifm-color-content-inverse); + font-weight: var(--ifm-font-weight-bold); + background-color: var(--ifm-color-primary); +} + +.itemActive:hover { + background-color: var(--ifm-color-primary-dark); + color: var(--ifm-color-content-inverse); +} + + + +.trigger:focus-visible, +.item:focus-visible { + outline: 2px solid var(--ifm-color-primary-lightest); + outline-offset: 2px; + box-shadow: 0 0 0 4px rgba(25, 25, 25, 0.3); +} + +[data-theme='dark'] .itemActive:hover { + background-color: var(--ifm-color-primary-dark); +} diff --git a/src/components/DocsVersionSelector/index.tsx b/src/components/DocsVersionSelector/index.tsx new file mode 100644 index 0000000..23410ca --- /dev/null +++ b/src/components/DocsVersionSelector/index.tsx @@ -0,0 +1,146 @@ +import React, {useState, useRef, useEffect, useCallback} from 'react'; +import {useHistory} from '@docusaurus/router'; +import { + useVersions, + useActiveDocContext, + useDocsVersionCandidates, + useDocsPreferredVersion, +} from '@docusaurus/plugin-content-docs/client'; +import {useHistorySelector} from '@docusaurus/theme-common'; +import styles from './DocsVersionSelector.module.css'; + +function getVersionMainDoc(version) { + return version.docs.find((doc) => doc.id === version.mainDocId); +} + +function getVersionTargetDoc(version, activeDocContext) { + return ( + activeDocContext.alternateDocVersions[version.name] ?? + getVersionMainDoc(version) + ); +} + +export default function DocsVersionSelector(): React.JSX.Element | null { + const [open, setOpen] = useState(false); + const containerRef = useRef(null); + const history = useHistory(); + + const docsPluginId = undefined; // default plugin + const versions = useVersions(docsPluginId); + const activeDocContext = useActiveDocContext(docsPluginId); + const candidates = useDocsVersionCandidates(docsPluginId); + const {savePreferredVersionName} = useDocsPreferredVersion(docsPluginId); + const search = useHistorySelector((h) => h.location.search); + const hash = useHistorySelector((h) => h.location.hash); + + // Determine displayed version from candidates + const displayedVersion = + candidates.find((c) => versions.includes(c)) ?? versions[0]; + + // Close on click outside + const handleClickOutside = useCallback( + (e: MouseEvent) => { + if ( + containerRef.current && + !containerRef.current.contains(e.target as Node) + ) { + setOpen(false); + } + }, + [], + ); + + useEffect(() => { + if (open) { + document.addEventListener('mousedown', handleClickOutside); + } + return () => document.removeEventListener('mousedown', handleClickOutside); + }, [open, handleClickOutside]); + + // Close on Escape + useEffect(() => { + const handleKeyDown = (e: KeyboardEvent) => { + if (e.key === 'Escape') { + setOpen(false); + } + }; + if (open) { + document.addEventListener('keydown', handleKeyDown); + } + return () => document.removeEventListener('keydown', handleKeyDown); + }, [open]); + + // Single version: render static label + if (versions.length <= 1) { + return ( +
+ Docs Version: + {displayedVersion?.label} +
+ ); + } + + const handleVersionClick = (version) => { + const targetDoc = getVersionTargetDoc(version, activeDocContext); + savePreferredVersionName(version.name); + setOpen(false); + history.push(`${targetDoc.path}${search}${hash}`); + }; + + return ( +
+ Docs Version: + + + {open && ( +
    + {versions.map((version) => { + const isActive = version === activeDocContext.activeVersion; + return ( +
  • handleVersionClick(version)} + onKeyDown={(e) => { + if (e.key === 'Enter' || e.key === ' ') { + e.preventDefault(); + handleVersionClick(version); + } + }} + tabIndex={0} + > + {version.label} +
  • + ); + })} +
+ )} +
+ ); +} diff --git a/src/components/EventsSidebar.module.css b/src/components/EventsSidebar.module.css deleted file mode 100644 index 91c18cd..0000000 --- a/src/components/EventsSidebar.module.css +++ /dev/null @@ -1,577 +0,0 @@ -.floatingSidebar { - position: fixed; - top: 82%; - left: 50%; - transform: translateX(-50%) translateY(-50%); - width: 85%; - height: auto; - z-index: 1000; - background: linear-gradient(135deg, rgba(255, 255, 255, 0.75), rgba(255, 255, 255, 0.65)); - border-radius: var(--radius-lg); - box-shadow: - var(--shadow-xl), - 0 4px 20px rgba(0, 0, 0, 0.15); - -webkit-backdrop-filter: blur(20px); - backdrop-filter: blur(20px); - border: 1px solid rgba(0, 0, 0, 0.2); - overflow: hidden; - animation: slideInFromBottom 0.4s var(--transition-bezier); - transition: all var(--transition-normal) var(--transition-bezier); -} - -html[data-theme='dark'] .floatingSidebar { - background: linear-gradient(135deg, rgba(0, 0, 0, 0.75), rgba(0, 0, 0, 0.65)); - border: 1px solid rgba(255, 255, 255, 0.2); - box-shadow: - var(--shadow-xl), - 0 4px 20px rgba(0, 0, 0, 0.4); -} - -.floatingSidebar.closing { - animation: slideOutToBottom 0.3s cubic-bezier(0.4, 0, 0.2, 1) forwards; -} - -.sidebarContent { - padding: 1rem 1.5rem; - position: relative; - text-align: center; - font-weight: 500; - animation: fadeIn 0.5s ease-out 0.2s both; -} - -.closeButton { - position: absolute; - top: 1rem; - right: 1rem; - background: none; - border: none; - font-size: 1.5rem; - color: var(--ifm-color-emphasis-600); - cursor: pointer; - width: 2rem; - height: 2rem; - display: flex; - align-items: center; - justify-content: center; - border-radius: 50%; - transition: all 0.2s ease; -} - -.closeButton:hover { - background: rgba(0, 0, 0, 0.1); - color: var(--ifm-color-emphasis-900); -} - -html[data-theme='dark'] .closeButton:hover { - background: rgba(255, 255, 255, 0.1); - color: var(--ifm-color-emphasis-100); -} - -.sidebarTitle { - padding-top: 0.5rem; - font-size: 0.9rem; - font-family: 'Roboto'; - font-weight: 700; - color: var(--ifm-color-emphasis-800); -} - -.sidebarText { - font-size: 1rem; - margin-bottom: 1rem; - color: var(--palette-blue); -} - -/* Events Container */ -.eventsContainer { - display: flex; - gap: 1rem; - align-items: center; - width: 100%; -} - -/* Side Events */ -.sideEvents { - flex: 1; - display: flex; - flex-direction: column; - align-items: center; - justify-content: center; -} - -/* Up Next Section */ -.upNextSection { - flex: 1.2; - padding: 1rem; - background: linear-gradient(135deg, rgba(0, 123, 255, 0.1), rgba(0, 123, 255, 0.05)); - border-radius: var(--radius-md); - border: 2px solid var(--palette-blue); - position: relative; - display: flex; - flex-direction: column; - align-items: center; -} - -html[data-theme='dark'] .upNextSection { - background: linear-gradient(135deg, rgba(0, 123, 255, 0.15), rgba(0, 123, 255, 0.08)); - border-color: var(--palette-blue-light); -} - -.upNextTitle { - font-size: 1.2rem; - font-weight: 700; - color: var(--palette-blue); - text-align: center; - margin-bottom: 0.75rem; - text-transform: uppercase; - letter-spacing: 1px; -} - -html[data-theme='dark'] .upNextTitle { - color: var(--palette-blue-light); -} - -.upNextEvent { - display: flex; - flex-direction: column; - align-items: center; - gap: 0.75rem; - text-align: center; - width: 100%; -} - -.upNextImage { - max-width: 100%; - border-top: 6px solid var(--palette-blue); - box-shadow: 0 8px 25px rgba(0, 123, 255, 0.2); - transform: scale(1.02); -} - -html[data-theme='dark'] .upNextImage { - box-shadow: 0 8px 25px rgba(0, 123, 255, 0.3); -} - -.upNextEvent .eventText a { - font-size: 1.2rem; - font-weight: 700; - color: var(--palette-blue); -} - -html[data-theme='dark'] .upNextEvent .eventText a { - font-size: 1.3rem; - font-weight: 800; - color: var(--palette-blue-light); -} - -.upNextEvent .eventDate { - font-size: 0.9rem; - font-weight: 600; - color: var(--ifm-color-emphasis-800); -} - -html[data-theme='dark'] .upNextEvent .eventDate { - color: var(--ifm-color-emphasis-200); -} - -.sidebarEvent { - flex: 1; - min-width: 0; - margin-bottom: 0; - padding-bottom: 0; - text-align: center; - display: flex; - flex-direction: column; - align-items: center; - gap: 0.5rem; - width: 100%; -} - -.sidebarEvent:last-child { - border-bottom: none; - margin-bottom: 0; - padding-bottom: 0; -} - -.eventImage { - margin-bottom: 0; - display: flex; - justify-content: center; -} - -.eventInfo { - display: flex; - flex-direction: column; - gap: 0.25rem; - text-align: center; -} - -.eventImage a { - display: block; - transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1); - animation: fadeIn 0.6s ease-out 0.4s both; -} - -.eventImage a:hover { - transform: scale(1.05); -} - -.eventImage a:hover .sidebarImage { - transform: scale(1.05); - border-color: var(--palette-blue); -} - -.eventText { - margin-bottom: 0; -} - -.eventText a { - font-size: 1rem; - color: var(--palette-blue); - text-decoration: none; -} - -html[data-theme='dark'] .eventText a { - font-size: 1.1rem; - font-weight: 800; - color: var(--palette-blue-light); -} - -.eventDate { - font-size: 0.8rem; - color: var(--ifm-color-emphasis-700); - line-height: 1.3; -} - -.sidebarImage { - width: 50%; - max-width: 100%; - height: auto; - border: 1px solid rgba(255, 255, 255, 0.1); - border-top: 4px solid var(--palette-blue-dark); - border-radius: 8px; - background-color: rgba(255, 255, 255, 0.75); - box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1); - transition: all 0.3s ease; - object-fit: cover; -} - -html[data-theme='dark'] .sidebarImage { - background-color: rgba(0, 0, 0, 0.75); - border: 1px solid rgba(255, 255, 255, 0.1); - border-top: 4px solid var(--palette-blue-dark); - box-shadow: 0 4px 16px rgba(0, 0, 0, 0.3); -} - -a:hover .sidebarImage { - border-color: var(--palette-blue); -} - -html[data-theme='dark'] .eventImage a:hover .sidebarImage { - border-color: var(--palette-blue); -} - -/* Theme-specific image visibility */ -.lightImage { - display: block; -} - -.darkImage { - display: none; -} - -html[data-theme='dark'] .lightImage { - display: none; -} - -html[data-theme='dark'] .darkImage { - display: block; -} - -.logoThickText { - color: var(--palette-blue-dark); - font-size: 1rem; - font-weight: 600 !important; -} - -/* Minimized button styles */ -.minimizedButton { - position: fixed; - bottom: 2rem; - right: 2rem; - background: var(--palette-blue); - color: white; - border: none; - padding: 1rem; - border-radius: 50px; - cursor: pointer; - z-index: 1000; - box-shadow: 0 4px 16px rgba(0, 0, 0, 0.2); - transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); - display: flex; - align-items: center; - gap: 0.5rem; - font-weight: 600; - min-width: 60px; - height: 60px; - animation: bounceIn 0.5s cubic-bezier(0.68, -0.55, 0.265, 1.55); -} - -.minimizedButton:hover { - background: var(--palette-blue-dark); - transform: scale(1.05); - box-shadow: - 0 6px 20px rgba(0, 0, 0, 0.3), - 0 2px 8px rgba(0, 0, 0, 0.4); -} - -.eventsIcon { - display: flex; - align-items: center; - justify-content: center; -} - -.eventsLabel { - font-size: 0.9rem; - white-space: nowrap; -} - -/* Mobile responsive adjustments */ -@media screen and (max-width: 996px) { - .floatingSidebar { - width: 95vw; - top: 75%; - left: 50%; - transform: translateX(-50%) translateY(-50%); - max-height: 50vh; - } - - .eventsContainer { - flex-direction: column; - gap: 1rem; - } - - .sideEvents { - flex: 1; - } - - .upNextSection { - flex: 1; - padding: 0.75rem; - margin-bottom: 0; - } - - .upNextTitle { - font-size: 1rem; - } - - .upNextEvent .eventText a { - font-size: 1rem; - } - - html[data-theme='dark'] .upNextEvent .eventText a { - font-size: 1.1rem; - } - - .sidebarEvent { - min-width: 0; - width: 100%; - gap: 0.4rem; - } - - .sidebarContent { - padding: 0.75rem; - } - - .minimizedButton { - bottom: 1rem; - right: 1rem; - padding: 0.8rem; - min-width: 50px; - height: 50px; - } - - .eventsLabel { - font-size: 0.8rem; - } -} - -@media screen and (max-width: 1000px) { - .floatingSidebar { - width: 99%; - max-width: none; - top: 75%; - } - - .eventsContainer { - gap: 0.25rem; - flex-wrap: nowrap; - } - - .sideEvents { - flex: 0.6; - min-width: 0; - } - - .upNextSection { - flex: 1; - padding: 0.5rem; - margin-bottom: 0; - } - - .sidebarContent { - padding: 0.5rem 0.75rem; - } - - .sidebarTitle { - font-size: 0.8rem; - margin-bottom: 0.25rem; - } - - .upNextTitle { - font-size: 0.9rem; - margin-bottom: 0.25rem; - } - - .upNextEvent { - gap: 0.5rem; - } - - .upNextEvent .eventText a { - font-size: 0.9rem; - } - - html[data-theme='dark'] .upNextEvent .eventText a { - font-size: 1rem; - } - - .upNextEvent .eventDate { - font-size: 0.7rem; - } - - .sidebarEvent { - min-width: 0; - flex: 1; - gap: 0.25rem; - } - - .eventText a { - font-size: 0.75rem; - } - - html[data-theme='dark'] .eventText a { - font-size: 0.8rem; - } - - .eventDate { - font-size: 0.6rem; - line-height: 1.2; - } - - .sidebarImage { - width: 30%; - } -} - -@media screen and (max-width: 1200px) { - .floatingSidebar { - width: 95%; - max-width: 1000px; - } - - .eventsContainer { - gap: 0.75rem; - } - - .sidebarContent { - padding: 1.25rem 1.5rem; - } - - .sidebarTitle { - font-size: 1.1rem; - } - - .sidebarText { - font-size: 0.9rem; - } - - .upNextSection { - padding: 1.25rem; - margin-bottom: 0; - } - - .upNextTitle { - font-size: 1.3rem; - } - - .upNextEvent .eventText a { - font-size: 1.3rem; - } - - html[data-theme='dark'] .upNextEvent .eventText a { - font-size: 1.4rem; - } - - .sidebarEvent { - min-width: 0; - flex: 1; - } -} - -/* Animation keyframes */ -@keyframes slideInFromBottom { - 0% { - transform: translateX(-50%) translateY(-50%) translateY(100%); - opacity: 0; - } - 100% { - transform: translateX(-50%) translateY(-50%) translateY(0); - opacity: 1; - } -} - -@keyframes slideOutToBottom { - 0% { - transform: translateX(-50%) translateY(-50%) translateY(0); - opacity: 1; - } - 100% { - transform: translateX(-50%) translateY(-50%) translateY(100%); - opacity: 0; - } -} - -@keyframes bounceIn { - 0% { - transform: scale(0); - opacity: 0; - } - 50% { - transform: scale(1.1); - opacity: 0.8; - } - 100% { - transform: scale(1); - opacity: 1; - } -} - -@keyframes fadeOut { - 0% { - opacity: 1; - transform: scale(1); - } - 100% { - opacity: 0; - transform: scale(0.8); - } -} - -@keyframes fadeIn { - 0% { - opacity: 0; - transform: scale(0.8); - } - 100% { - opacity: 1; - transform: scale(1); - } -} diff --git a/src/components/EventsSidebar.tsx b/src/components/EventsSidebar.tsx deleted file mode 100644 index 3c2eb1e..0000000 --- a/src/components/EventsSidebar.tsx +++ /dev/null @@ -1,150 +0,0 @@ -import React, { useState, useEffect } from 'react'; -// @ts-ignore -import Link from '@docusaurus/Link'; -// @ts-ignore -import styles from './EventsSidebar.module.css'; - -export default function EventsSidebar() { - const [isOpen, setIsOpen] = useState(true); - const [isMinimized, setIsMinimized] = useState(false); - const [isAnimating, setIsAnimating] = useState(false); - - // Load state from localStorage on mount - useEffect(() => { - try { - const savedState = localStorage.getItem('eventsSidebarState'); - if (savedState) { - const { isOpen: savedIsOpen, isMinimized: savedIsMinimized } = JSON.parse(savedState); - setIsOpen(savedIsOpen); - setIsMinimized(savedIsMinimized); - } - } catch (error) { - console.log('Error loading sidebar state:', error); - } - }, []); - - // Save state to localStorage whenever it changes - useEffect(() => { - try { - localStorage.setItem('eventsSidebarState', JSON.stringify({ isOpen, isMinimized })); - } catch (error) { - console.log('Error saving sidebar state:', error); - } - }, [isOpen, isMinimized]); - - const handleClose = () => { - setIsAnimating(true); - setTimeout(() => { - setIsOpen(false); - setIsMinimized(true); - setIsAnimating(false); - }, 300); // Match animation duration - }; - - const handleOpen = () => { - setIsOpen(true); - setIsMinimized(false); - }; - - if (isMinimized) { - return ( - - ); - } - - if (!isOpen) return null; - - return ( -
-
- - -

- Look for us at these events... -

- -
-
-
-
- - MMS: Music City Edition 2025 - -
-
-
- MMS Music City Edition 2025 -
-
October 12th to 15th • Nashville, Tennessee, USA
-
-
-
- -
-
Up Next
-
-
- - AppManage2025 - AppManage2025 - -
-
-
- AppManagEvent 2025 -
-
October 10th • Utrecht, The Netherlands
-
-
-
- -
-
-
- - MAEDS Fall Conference 2025 - MAEDS Fall Conference 2025 - -
-
-
- MAEDS Fall Conference 2025 -
-
October 29th to 31st • Michigan, USA
-
-
-
-
-
-
- ); -} diff --git a/src/components/HomepageFeatures.module.css b/src/components/HomepageFeatures.module.css deleted file mode 100644 index 8992c3b..0000000 --- a/src/components/HomepageFeatures.module.css +++ /dev/null @@ -1,371 +0,0 @@ -/* Feature Columns */ -.featureColumns { - border: 1px solid var(--ifm-color-emphasis-200); - background-color: var(--ifm-background-color); - border-radius: var(--radius-md); - box-shadow: var(--shadow-sm); - transition: all var(--transition-normal); -} - -html[data-theme='dark'] .featureColumns { - background-color: var(--ifm-background-surface-color); - border-color: var(--ifm-color-emphasis-300); - box-shadow: var(--shadow-md); -} - -/* Desktop Layout */ -@media (min-width: 997px) { - .featureColumns { - max-width: calc(4 / 12 * 96%); - margin: var(--space-md) calc(4 / 12 * 2%) var(--space-xl); - padding: var(--space-3xl) var(--space-2xl) var(--space-2xl); - } - - .capabilityColumns { - padding: var(--space-2xl) var(--space-lg) var(--space-lg); - } - - .featureImage { - background-color: var(--ifm-color-emphasis-100); - } - - html[data-theme='dark'] .featureImage { - background-color: var(--ifm-color-emphasis-200); - } -} - -.horizAlign { - text-align: right; -} - -/* Mobile & Tablet Layout */ -@media (max-width: 996px) { - .featureColumns { - padding: var(--space-xl) var(--space-xl) var(--space-lg); - margin: var(--space-sm) auto; - } - - .capabilityColumns { - padding: var(--space-2xl) var(--space-xl) var(--space-xl); - margin: var(--space-md) auto; - } - - .featureImage { - width: 50%; - max-width: 120px; - } - - .introText { - width: 90% !important; - font-size: var(--text-sm); - margin: var(--space-xl) auto var(--space-2xl); - } - - .blockImage { - display: none; - } - - .buttonLink { - float: none !important; - text-align: center; - margin-top: var(--space-md); - } - - .capabilitiesTitle { - text-align: left !important; - } - - .webinarHeader { - text-align: left !important; - padding-left: 0 !important; - } - - .leftAlign { - text-align: left !important; - width: 100% !important; - } - - .blockStyling { - margin: var(--space-2xl) 0 !important; - } -} - -.buttonLink { - float: right; -} - -.col--2 .button.button--secondary { - margin: 0; -} - -.buttonLink a { - text-decoration: none; - color: var(--ifm-heading-color); -} - -.featureImage { - width: 75px; - padding: 1rem; - border-radius: var(--ifm-global-radius); - margin-bottom: 1.5rem; - background-color: rgba(16, 36, 69, 0.05); -} - -.featureHeader { - font-size: 1.2rem; - font-weight: 500; -} - -.capabilityHeader { - font-size: 1.5rem; - font-weight: 700; - padding-bottom: 1rem; -} - -.webinarHeader { - text-align: center; - font-size: 1.5rem; - font-weight: 700; - padding: 1rem; -} - -.contrastContainer { - background-color: var(--ifm-pre-background); - padding: 2rem var(--ifm-spacing-horizontal) 3rem; -} - -.containerPadding { - padding: 2rem var(--ifm-spacing-horizontal) 3rem; -} - -.featureText { - font-size: 0.9rem; -} - -.introHeader { - text-align: center; - font-weight: 300; - font-size: 1.5rem; -} - -.introText { - text-align: center; - width: 80%; - font-size: 1rem; - display: block; - margin: 2rem auto 2.5rem; -} - -.blockStyling { - margin: 7rem 0 7rem; -} - -.blockTitle { - text-align: left; - font-weight: 500; - font-size: 2.2em; - padding: 0rem 0 0.5rem; - line-height: 1.3em; - margin: 0 0 0.8rem; -} - -.capabilitiesTitle { - text-align: center; - font-weight: 500; - font-size: 2.2em; - padding: 2rem 0 0.5rem; - line-height: 1.3em; - margin: 0 0 0.8rem; -} - -.logoThickText { - color: var(--palette-blue); - font-weight: 700 !important; -} - -.blockText { - text-align: left; - font-size: 1.1rem; -} - -.blockImage { - max-height: 400px; -} - -.upcomingConferences { - margin: 2rem 0; - display: flex; - align-items: center; - min-height: 100%; -} - -.imageContainer { - display: flex; - flex-direction: column; - gap: 2rem; - align-items: center; - justify-content: center; - height: 100%; - padding: 2rem 0; - position: relative; - top: 50%; - transform: translateY(-25%); -} - -.conferencesImage { - max-width: 100%; - width: 100%; - height: auto; - display: block; - margin: 0 auto; -} - -main.features { - align-items: center; - width: 100%; - background-color: rgba(0, 0, 0, 0.05) !important; -} - -.blockText ul { - list-style: none; - padding: 0; - margin: 0; - display: flex; - flex-direction: column; - gap: 1.5rem; -} - -.blockText li { - margin: 0; - padding: 0 0 0 2rem; - position: relative; - white-space: normal; - display: flex; - flex-direction: column; - text-align: left; - text-indent: 0; -} - -.blockText li > div { - text-align: left; - width: 100%; -} - -.blockText li a { - display: inline-block; - width: 100%; -} - -.blockText li::before { - content: ''; - position: absolute; - left: 0.5rem; - top: 0.4em; - width: 1em; - height: 1em; - background-image: url('@site/static/images/checkmark.svg'); - background-size: contain; - background-repeat: no-repeat; -} - -.blockText li > div:first-child { - margin-bottom: 0.25rem; -} - -.nextUpText { - color: var(--palette-blue); - font-weight: 700; - font-size: 0.9rem; - text-transform: uppercase; - letter-spacing: 0.5px; - margin-right: 0.5rem; -} - -.conferencesSidebar { - background-color: var(--ifm-pre-background); - padding: 2rem; - border-radius: var(--ifm-global-radius); - border: 1px solid rgba(0, 0, 0, 0.1); - margin-top: 2rem; - position: sticky; - top: 2rem; -} - -html[data-theme='dark'] .conferencesSidebar { - border: 1px solid rgba(255, 255, 255, 0.1); -} - -.sidebarTitle { - font-size: 1.5rem; - font-weight: 500; - margin-bottom: 1rem; - line-height: 1.3; -} - -.sidebarText { - font-size: 0.9rem; - margin-bottom: 1.5rem; - color: var(--ifm-color-emphasis-700); -} - -.sidebarEvents { - margin-bottom: 2rem; -} - -.sidebarEvent { - margin-bottom: 1rem; - padding-bottom: 1rem; - border-bottom: 1px solid rgba(0, 0, 0, 0.1); -} - -html[data-theme='dark'] .sidebarEvent { - border-bottom: 1px solid rgba(255, 255, 255, 0.1); -} - -.sidebarEvent:last-child { - border-bottom: none; - margin-bottom: 0; - padding-bottom: 0; -} - -.sidebarEvent > div:first-child { - margin-bottom: 0.25rem; -} - -.sidebarEvent > div:first-child a { - font-size: 0.9rem; -} - -.sidebarEvent > div:last-child { - font-size: 0.8rem; - color: var(--ifm-color-emphasis-600); -} - -.sidebarImages { - display: flex; - flex-direction: column; - gap: 1rem; -} - -.sidebarImage { - width: 100%; - height: auto; - border-radius: var(--ifm-global-radius); -} - -/* Mobile responsive adjustments */ -@media (max-width: 996px) { - .conferencesSidebar { - position: static; - margin-top: 0; - margin-bottom: 2rem; - } - - .sidebarTitle { - font-size: 1.3rem; - } - - .sidebarText { - font-size: 0.85rem; - } -} diff --git a/src/components/HomepageFeatures.tsx b/src/components/HomepageFeatures.tsx deleted file mode 100644 index 58a0e4f..0000000 --- a/src/components/HomepageFeatures.tsx +++ /dev/null @@ -1,210 +0,0 @@ -import React from 'react'; -import clsx from 'clsx'; -// @ts-ignore -import Link from '@docusaurus/Link'; -// @ts-ignore -import useDocusaurusContext from '@docusaurus/useDocusaurusContext'; -// @ts-ignore -import { useColorMode } from '@docusaurus/theme-common'; -// @ts-ignore -import styles from './HomepageFeatures.module.css'; -// @ts-ignore -import Newsletter from './Newsletter'; - -const FeatureList = [ - { - title: 'PSAppDeployToolkit', - image: require('@site/static/images/powershell.png').default, - description: ('PSADT is a framework for deploying applications in a business / corporate environment.'), - }, - { - title: 'Best Practices', - image: require('@site/static/images/deployment.png').default, - description: ('Our standardized deployment template ensures app deployments adhere to best practices and follow a standard workflow.'), - }, - { - title: 'Community Driven', - image: require('@site/static/images/global.png').default, - description: ('PSAppDeployToolkit is a community-oriented project with an emphasis on transparency.'), - }, -]; - -const CapabilityList = [ - { - title: 'Pre-Built PowerShell Functions', - description: ( - <> - Pre-built functions come with automated logging - so you can quickly find problems in your scripts if they occur. -
-
- Supports installation of applications on Citrix / Remote Desktop Session Host Servers -

-

- Perform MCM actions such as Machine and User Policy Refresh, Inventory Update and Software Update - - ), - }, - { - title: '3rd-Party Integration', - description: ( - <> - Handles MCM exit codes, including time sensitive dialogs supporting *MCM Fast Retry* - providing more accurate - Reporting (no more Failed due to timeout errors). -

-

- Supports the MCM application model by providing an install and uninstall deployment type for every deployment - script. - - ), - }, - { - title: 'User Experience', - description: ( - <> - An indeterminate progress dialog with customizable message text that can be updated throughout the deployment. -

-

- Branding of the above UI components using a custom logo icon and banner for your own Organization. -

-

- The UI is localized into several languages and more can be easily added using the XML configuration file. - - ), - }, -]; - -// Not used. remove? -function Feature({ image, title, description }: { image: string; title: string; description: React.ReactNode }) { - return ( -
-
-

{title}

-

{description}

-
-
- ); -} - -type CapabilityProps = { - title: string; - description: React.JSX.Element; -}; - -function Capability({ title, description }: CapabilityProps) { - return ( -
-
-

{title}

-

{description}

-
-
- ); -} - -export default function HomepageFeatures() { - return ( -
- {/*
-
- {FeatureList.map((feature) => ( - - ))} -
-
*/} - -
-
-
- PSAppDeployToolkit -
-
-

- Standardize and enhance every software deployment -

-

- PSAppDeployToolkit allows you to encapsulate a typical Windows Installer MSI or Setup executable to - provide it with enhanced capabilities. -

-
-
-
-
    -
  • -

    Validate prerequisites such as dependencies on minimum software versions

    -
  • -
  • -

    Ensure that in-use applications are closed and prevent reopening during the deployment

    -
  • -
-
-
-
    -
  • -

    Capture any important settings that may be required for an upgrade or migration

    -
  • -
  • -

    Run the installation silently and capture logs in the event of an issue

    -
  • -
-
-
-
- - - -
-
-
- -
-
-
-

- A robust and battle-tested deployment framework -

-

- PSAppDeployToolkit was built with large enterprise environments in mind, where stability is absolutely - crucial to ensure the success of mass deployments. -

-

- That stability is exactly why PSAppDeployToolkit is used by Fortune 500 companies and federal governments, - banks, globally recognized brands, white-label packaging factories, defense contractors and military, - in-house IT teams, consultants and managed service providers to deploy applications on millions of Windows - endpoints all over the world every day. -

- - - -
-
- PSAppDeployToolkit -
-
-
- -
-
-

- Feature capabilities -

-
- {CapabilityList.map((feature) => ( - - ))} -
-
-
- - {/*
-
- -
-
*/} -
- ); -} diff --git a/src/components/Newsletter.module.css b/src/components/Newsletter.module.css index 137a338..a3bf6a4 100644 --- a/src/components/Newsletter.module.css +++ b/src/components/Newsletter.module.css @@ -1,12 +1,12 @@ .blockTitle { - font-size: 2.2em; - font-weight: 500; + font-size: var(--ifm-h2-font-size); + font-weight: var(--ifm-font-weight-semibold); line-height: 1.3em; margin: 0 0 0.8rem; padding: 0 0 0.5rem; } .logoThickText { - color: var(--palette-blue); + color: var(--ifm-color-primary); font-weight: 800 !important; } diff --git a/src/components/Newsletter.tsx b/src/components/Newsletter.tsx index 58413a8..504cfa3 100644 --- a/src/components/Newsletter.tsx +++ b/src/components/Newsletter.tsx @@ -1,15 +1,14 @@ -import React, { useEffect } from 'react'; -// @ts-ignore +import { useEffect } from 'react'; import styles from './Newsletter.module.css'; export default function Newsletter() { return ( <>
-

+

Stay on top of the latest updates from PSAppDeployToolkit with our newsletter -

+

PSAppDeployToolkit officially has a newsletter to keep you in the loop with all the latest updates, features, @@ -32,20 +31,31 @@ declare global { } const HubSpotForm: React.FC = () => { + const isProduction = process.env.NODE_ENV === 'production'; + useEffect(() => { + // Only load HubSpot form in production mode + if (!isProduction) { + return; + } + const loadHubSpotForm = (): void => { if (window.hbspt) { + try { window.hbspt.forms.create({ region: 'na1', portalId: '43903473', formId: '7a0bb757-0873-4ce5-bcfd-ebc16bec7dde', target: '#hubspotForm', }); + } catch (error) { + console.error('Error creating HubSpot form:', error); + } } }; const script = document.createElement('script'); - script.src = '//js.hsforms.net/forms/v2.js'; + script.src = 'https://js.hsforms.net/forms/v2.js'; script.async = true; script.defer = true; document.body.appendChild(script); @@ -57,9 +67,21 @@ const HubSpotForm: React.FC = () => { }; return () => { - document.body.removeChild(script); + if (script.parentNode) { + script.parentNode.removeChild(script); + } }; - }, []); + }, [isProduction]); + + if (!isProduction) { + return ( +

+

Newsletter Form

+

Only runs in Production Mode.

+
+ + ); + } return
; }; diff --git a/src/css/custom.css b/src/css/custom.css index 07b8b1d..5e43cbe 100644 --- a/src/css/custom.css +++ b/src/css/custom.css @@ -1,4 +1,3 @@ -@import url('https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&family=Roboto+Mono:ital,wght@0,100..700;1,100..700&family=Roboto:ital,wght@0,100..900;1,100..900&display=swap'); /** * Any CSS included here will be global. The classic template * bundles Infima by default. Infima is a CSS framework designed to @@ -7,161 +6,187 @@ /* You can override the default Infima variables here. */ :root { - /* Color System - Primary Palette */ - --palette-blue-darkest: #001220; - --palette-blue-darker: #004466; - --palette-blue-dark: #0167a2; - --palette-blue: #0081c6; - --palette-blue-light: #2fbdfa; - --palette-blue-lighter: #76d2fd; - --palette-blue-lightest: #def3fe; + /* Primary Color Mapping */ + --ifm-color-primary-darkest: #021a27; + --ifm-color-primary-darker: #005a8a; + --ifm-color-primary-dark: #06537d; + --ifm-color-primary: #0081c6; + --ifm-color-primary-light: #289fe2; + --ifm-color-primary-lighter: #77cfff; + --ifm-color-primary-lightest: #a8e1ff; + --ifm-color-primary-contrast-background: rgb(235, 242, 252); + --ifm-color-primary-contrast-foreground: rgb(16, 36, 69); /* Semantic Colors */ - --color-success: #10b981; - --color-warning: #f59e0b; - --color-error: #ef4444; - --color-info: var(--palette-blue); + --ifm-color-secondary: #ebedf0; + --ifm-color-success: #10b981; + --ifm-color-warning: #fbbf24; + --ifm-color-danger: #ef4444; + --ifm-color-info: var(--ifm-color-primary); + --ifm-font-weight-semibold: 600; + + /* Colors */ + --ifm-color-content: var(--ifm-color-emphasis-1000); + --ifm-color-content-secondary: var(--ifm-color-emphasis-700); + --ifm-color-content-inverse: var(--ifm-color-emphasis-0); + + + --psadt-badge-license-commercial-bg: var(--ifm-color-warning-contrast-background); + --psadt-badge-license-commercial-text: var(--ifm-color-warning-darkest); + --psadt-badge-license-free-bg: var(--ifm-color-success-contrast-background); + --psadt-badge-license-free-text: var(--ifm-color-success-darkest); + --psadt-badge-workswith-bg: var(--ifm-color-info-lightest); + --psadt-badge-workswith-text: var(--ifm-color-info-darkest); + --psadt-badge-capability-bg: var(--ifm-color-danger-contrast-background); + --psadt-badge-capability-text: var(--ifm-color-danger-darkest); + --psadt-sidebar-glass-surface: linear-gradient(135deg, + rgba(255, 255, 255, 0.6), + rgba(255, 255, 255, 0.3)); /* Spacing Scale */ - --space-xs: 0.25rem; /* 4px */ - --space-sm: 0.5rem; /* 8px */ - --space-md: 1rem; /* 16px */ - --space-lg: 1.5rem; /* 24px */ - --space-xl: 2rem; /* 32px */ - --space-2xl: 3rem; /* 48px */ - --space-3xl: 4rem; /* 64px */ + --psadt-space-xs: 0.25rem; + /* 4px */ + --psadt-space-sm: 0.5rem; + /* 8px */ + --psadt-space-md: 1rem; + /* 16px */ + --psadt-space-lg: 1.5rem; + /* 24px */ + --psadt-space-xl: 2rem; + /* 32px */ + --psadt-space-2xl: 3rem; + /* 48px */ + --psadt-space-3xl: 4rem; + /* 64px */ /* Border Radius Scale */ - --radius-sm: 4px; - --radius-md: 8px; - --radius-lg: 12px; - --radius-xl: 16px; + --psadt-radius-sm: 4px; + --psadt-radius-md: 8px; + --psadt-radius-lg: 12px; - --ifm-global-radius: var(--radius-sm); - - /* Primary Color Mapping */ - --ifm-color-primary-darkest: var(--palette-blue-darkest); - --ifm-color-primary-darker: var(--palette-blue-darker); - --ifm-color-primary-dark: var(--palette-blue-dark); - --ifm-color-primary: var(--palette-blue); - --ifm-color-primary-light: var(--palette-blue-light); - --ifm-color-primary-lighter: var(--palette-blue-lighter); - --ifm-color-primary-lightest: var(--palette-blue-lightest); + --ifm-global-border-width: 1px; + --ifm-global-radius: 8px; /* Shadows */ - --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.05); - --shadow-md: 0 4px 6px rgba(0, 0, 0, 0.1); - --shadow-lg: 0 10px 15px rgba(0, 0, 0, 0.1); - --shadow-xl: 0 20px 25px rgba(0, 0, 0, 0.1); - --image-shadow: 0 5px 61px 5px rgba(34, 34, 34, 0.94); + --psadt-shadow-sm: 0 1px 2px rgba(20, 102, 159, 0.05); + --psadt-shadow-md: 0 4px 12px rgba(20, 102, 159, 0.1); + --psadt-shadow-lg: 0 10px 15px rgba(20, 102, 159, 0.15); + --psadt-shadow-xl: 0 20px 25px rgba(20, 102, 159, 0.2); /* Transitions */ - --transition-fast: 150ms ease; - --transition-normal: 250ms ease; - --transition-slow: 350ms ease; - --transition-bezier: cubic-bezier(0.4, 0, 0.2, 1); - --transition-fastest: 100ms; - + --psadt-ease-standard: cubic-bezier(0.4, 0, 0.2, 1); + --psadt-transition-fast: 150ms var(--psadt-ease-standard); + --psadt-transition-normal: 250ms var(--psadt-ease-standard); + --psadt-focus-ring-color: rgba(0, 129, 198, 0.35); + --psadt-sidebar-active-indicator-color: var(--ifm-color-primary-lightest); - --ifm-font-family-base: - 'Roboto', -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Helvetica Neue', Arial, sans-serif; - --ifm-font-family-monospace: 'Roboto Mono', monospace; + --ifm-font-family-base: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Helvetica Neue', Arial, sans-serif; + --ifm-font-family-monospace: 'Google Sans Code', monospace; /* Typography Scale */ --ifm-font-size-base: 16px; --ifm-line-height-base: 1.6; + + /* Typography - Heading */ --ifm-heading-line-height: 1.2; + --ifm-heading-color: var(--ifm-color-emphasis-1000); + --ifm-heading-font-family: 'Poppins', var(--ifm-font-family-base) !important; /* Font Sizes */ - --text-xs: 0.75rem; /* 12px */ - --text-sm: 0.875rem; /* 14px */ - --text-base: 1rem; /* 16px */ - --text-lg: 1.125rem; /* 18px */ - --text-xl: 1.25rem; /* 20px */ - --text-2xl: 1.5rem; /* 24px */ - --text-3xl: 1.875rem; /* 30px */ - --text-4xl: 2.25rem; /* 36px */ - --text-5xl: 3rem; /* 48px */ + --ifm-font-size-xs: 0.75rem; + /* 12px */ + --ifm-font-size-sm: 0.875rem; + /* 14px */ + --ifm-font-size-base: 1rem; + /* 16px */ + --ifm-font-size-lg: 1.125rem; + /* 18px */ + --ifm-font-size-xl: 1.25rem; + /* 20px */ + --ifm-font-size-2xl: 1.5rem; + /* 24px */ + --ifm-font-size-3xl: 1.875rem; + /* 30px */ + --ifm-font-size-4xl: 2.25rem; + /* 36px */ + --ifm-font-size-5xl: 3rem; + /* 48px */ /* Heading Sizes */ - --ifm-h1-font-size: var(--text-5xl); - --ifm-h2-font-size: var(--text-4xl); - --ifm-h3-font-size: var(--text-3xl); - --ifm-h4-font-size: var(--text-2xl); - --ifm-h5-font-size: var(--text-xl); - --ifm-h6-font-size: var(--text-lg); + --ifm-h1-font-size: var(--ifm-font-size-5xl); + --ifm-h2-font-size: var(--ifm-font-size-4xl); + --ifm-h3-font-size: var(--ifm-font-size-3xl); + --ifm-h4-font-size: var(--ifm-font-size-2xl); + --ifm-h5-font-size: var(--ifm-font-size-xl); + --ifm-h6-font-size: var(--ifm-font-size-lg); /* Font Weights */ - --font-normal: 400; - --font-medium: 500; - --font-semibold: 600; - --font-bold: 700; - --font-extrabold: 800; - --font-black: 900; - - --ifm-heading-font-weight: var(--font-semibold); - --ifm-code-font-size: 0.875em; - --ifm-code-padding-vertical: 0.2em 0.4em; - --ifm-code-background: rgba(0, 0, 0, 0.05); + --ifm-font-weight-normal: 400; + --ifm-font-weight-medium: 500; + --ifm-font-weight-semibold: 600; + --ifm-font-weight-bold: 700; + --ifm-font-weight-extrabold: 800; + --ifm-font-weight-black: 900; + + --ifm-heading-font-weight: var(--ifm-font-weight-semibold); + --ifm-body-font-weight: var(--ifm-font-weight-normal); + --ifm-code-font-size: 1em; + --ifm-code-padding-vertical: 0.1em; + --ifm-code-padding-horizontal: 0.3em; + + --ifm-code-background: rgba(116, 208, 255, 0.2); + + + + /* Body/background surfaces should be colors; page gradient is a custom layer. */ + --ifm-background-color: transparent; + --ifm-background-surface-color: transparent; + --psadt-page-gradient: linear-gradient(135deg, rgba(208, 239, 252, 0.8) 0%, rgba(251, 253, 255, 0.9) 100%); + + /* Card Design Tokens */ + --psadt-card-background-color: linear-gradient(135deg, rgba(212, 239, 255, 0.5) 0%, rgba(245, 245, 245, 0.8) 100%); + --psadt-card-border-color: var(--ifm-color-primary-contrast-foreground); + --psadt-card-border-color-hover: var(--ifm-color-primary); + --psadt-card-background: var(--psadt-card-background-color); + --psadt-card-shadow: var(--psadt-shadow-md); + --psadt-card-shadow-hover: var(--psadt-shadow-xl); + --psadt-card-image-background: var(--ifm-background-surface-color); + --psadt-card-image-shadow: var(--psadt-shadow-lg); + --psadt-card-radius: var(--psadt-radius-lg); - /* Colors */ - --ifm-color-content: #2e3440; - --ifm-color-content-secondary: #4c566a; - --ifm-link-color: var(--ifm-color-primary); - --ifm-link-hover-color: var(--palette-blue-dark); - --ifm-link-decoration: none; - --ifm-link-hover-decoration: underline; - --ifm-toc-link-color: var(--ifm-color-content-secondary); - - --ifm-navbar-shadow: 5px 0px rgba(0, 0, 0, 0.05), 0 5px 5px 0 rgba(0, 0, 0, 0.05); --docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.1); - --doc-sidebar-width: 360px !important; + --doc-sidebar-width: 420px !important; - /* Code blocks */ - --prism-background-color: #f8f9fa; - --prism-color: #2e3440; -} -table { - width: 100%; - display: block; - overflow-x: auto; - border-collapse: collapse; - margin: 1.5rem 0; - font-size: 0.9em; - min-width: 100%; - box-shadow: 0 0 20px rgba(0, 0, 0, 0.05); } -table thead tr { - background-color: var(--ifm-color-primary); - font-size: 1rem; - color: white; - text-align: left; -} +table { + align-items: center; + max-width: 100%; + display: inline-block; + margin: 2rem; + border-radius: 8px 8px 0px 0px; + background-color: var(--ifm-code-background); + box-shadow: var(--psadt-shadow-lg); -table th, -table td { - padding: 12px 15px; - border: 1px solid var(--ifm-color-emphasis-200); } -table tbody tr { - border-bottom: 1px solid var(--ifm-color-emphasis-200); +table thead tr { + background-color: var(--ifm-color-primary-darker); + color: var(--ifm-color-content-inverse); + font-size: 1.1rem; + color: var(--ifm-color-white); } -table tbody tr:nth-of-type(even) { - background-color: var(--ifm-color-emphasis-50); -} table tbody tr:last-of-type { - border-bottom: 2px solid var(--ifm-color-primary); + border-bottom: 2px solid var(--ifm-color-primary-darker); } -/* Make all markdown tables full-width */ -.markdown table { - width: 100%; - table-layout: auto; +/* Documentation list markers: primary color */ +.markdown ul li::marker, +.markdown ol li::marker { + color: var(--ifm-color-primary); } /* Responsive tables */ @@ -171,40 +196,27 @@ table tbody tr:last-of-type { width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; + min-width: 100%; } table thead { - display: none; + display: table-header-group; } table tbody { - display: block; + display: table-row-group; width: 100%; } table tr { - display: block; - margin-bottom: 1rem; - border: 1px solid var(--ifm-color-emphasis-200); - border-radius: var(--ifm-global-radius); - overflow: hidden; - } - - table td { - display: block; - padding-left: 50%; - position: relative; - text-align: left; + display: table-row; } - table td::before { - content: attr(data-label); - position: absolute; - left: 0; - width: 50%; - padding-left: 15px; - font-weight: 600; - text-align: left; + table td, + table th { + display: table-cell; + width: auto; + white-space: normal; } } @@ -212,75 +224,195 @@ html { -webkit-font-smoothing: auto; } -.button { - border: var(--ifm-button-border-width) solid #1c1e21; +/* Global Page Gradient */ +body { + background: var(--psadt-page-gradient); + background-attachment: fixed; +} + +/* Sidebar */ +.menu { + padding: 0.5rem; + font-size: 0.9rem; +} + +.menu__list { + font-size: 0.9rem; +} + +.menu__list .menu__list { + font-size: 1em; + /* Prevent font size inheritance issues */ +} + +/* Sidebar active states */ +.menu__link--active { + background-color: var(--ifm-color-primary) !important; + color: var(--ifm-color-content-inverse) !important; + font-weight: var(--ifm-font-weight-bold) !important; + border-left: 3px solid var(--psadt-sidebar-active-indicator-color); + padding-left: calc(0.75rem - 3px); +} + +.menu__link--active:hover { + background-color: var(--ifm-color-primary-dark) !important; + color: var(--ifm-color-content-inverse) !important; +} + +.menu__link--sublist.menu__link--active { + background-color: var(--ifm-color-primary) !important; + color: var(--ifm-color-content-inverse) !important; + border-left: 3px solid var(--psadt-sidebar-active-indicator-color); + padding-left: calc(0.75rem - 3px); +} + +.menu__link--sublist.menu__link--active:hover { + background-color: var(--ifm-color-primary-dark) !important; +} + +/* Category row selected (category page OR child page selected) */ +.menu__list-item-collapsible--active, +.menu__list-item-collapsible:has(> .menu__link.menu__link--active) { + background-color: var(--ifm-color-primary) !important; + border-left: 3px solid var(--psadt-sidebar-active-indicator-color); + padding-left: 0; +} + +.menu__list-item-collapsible--active > .menu__link, +.menu__list-item-collapsible:has(> .menu__link.menu__link--active) > .menu__link { + background-color: transparent !important; + color: var(--ifm-color-content-inverse) !important; + font-weight: var(--ifm-font-weight-bold) !important; + border-left: 0; + padding-left: 0.75rem; } -.theme-code-block-highlighted-line { - display: block; - margin: 0 calc(-1 * var(--ifm-pre-padding)); - padding: 0 var(--ifm-pre-padding); +.menu__list-item-collapsible--active > .menu__caret, +.menu__list-item-collapsible:has(> .menu__link.menu__link--active) > .menu__caret { + background-color: transparent !important; + color: var(--ifm-color-content-inverse) !important; } -.docusaurus-highlight-code-line { - display: block; - margin: 0 calc(-1 * var(--ifm-pre-padding)); - padding: 0 var(--ifm-pre-padding); +.menu__list-item-collapsible--active:hover, +.menu__list-item-collapsible:has(> .menu__link.menu__link--active):hover { + background-color: var(--ifm-color-primary-dark) !important; } -[data-theme='dark'] { - /* Dark Theme Color Overrides */ - --docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.3); - --ifm-color-primary: var(--palette-blue-light); - --ifm-background-color: #0f1419; - --ifm-background-surface-color: #1a1b1e; - --ifm-card-background-color: #242526; - --ifm-toc-border-color: #2d2d2d; - --ifm-color-content: #e5e9f0; - --ifm-color-content-secondary: #d8dee9; - --ifm-menu-color-background-active: rgba(47, 189, 250, 0.15); - --ifm-menu-color-background-hover: rgba(47, 189, 250, 0.08); - --ifm-table-border-color: #2d2d2d; - --ifm-table-stripe-background: rgba(255, 255, 255, 0.02); - --prism-background-color: #1e293b; - --prism-color: #e2e8f0; +.menu__list-item-collapsible--active > .menu__caret::before, +.menu__list-item-collapsible:has(> .menu__link.menu__link--active) > .menu__caret::before { + background: url('data:image/svg+xml;utf8,') 50%/2rem 2rem !important; + filter: none !important; +} + + +.breadcrumbsContainer_dN9t { + --ifm-breadcrumb-size-multiplier: 0.8; + margin-bottom: 0.8rem; +} + + +.label_VEzi { + font-size: var(--ifm-font-size-sm); +} - /* Enhanced Dark Theme Shadows */ - --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.3); - --shadow-md: 0 4px 6px rgba(0, 0, 0, 0.4); - --shadow-lg: 0 10px 15px rgba(0, 0, 0, 0.4); - --shadow-xl: 0 20px 25px rgba(0, 0, 0, 0.4); +.trigger_lQy_ { + padding: 0.25rem 0.5rem; } +/* Footer styling with hardcoded gradient background (for both light and dark mode) */ +.footer { + background: linear-gradient(135deg, + #0167a2 0%, + #001220 100%); + border-top: var(--ifm-global-border-width) solid var(--ifm-color-primary-dark); +} + +.footer__title { + font-family: 'Poppins', var(--ifm-font-family-base); + font-weight: var(--ifm-font-weight-bold); +} + + +html[data-theme='dark'] { + --ifm-color-primary-darkest: #033854; + --ifm-color-primary-darker: #0d5d89; + --ifm-color-primary-dark: #1393d8; + --ifm-color-primary: #44beff; + --ifm-color-primary-light: #77cfff; + --ifm-color-primary-lighter: #9de0ff; + --ifm-color-primary-lightest: #c5f0ff; + --ifm-color-primary-contrast-background: #021a27; + --ifm-color-primary-contrast-foreground: #ddefef; + + --psadt-badge-license-commercial-bg: var(--ifm-color-warning-darkest); + --psadt-badge-license-commercial-text: var(--ifm-color-warning-lightest); + --psadt-badge-license-free-bg: var(--ifm-color-success-darkest); + --psadt-badge-license-free-text: var(--ifm-color-success-lightest); + --psadt-badge-workswith-bg: var(--ifm-color-info-darkest); + --psadt-badge-workswith-text: var(--ifm-color-info-lightest); + --psadt-badge-capability-bg: var(--ifm-color-danger-darkest); + --psadt-badge-capability-text: var(--ifm-color-danger-lightest); + + --ifm-border-color: var(--ifm-color-primary-darker); + --ifm-toc-border-color: var(--ifm-color-primary); + + --psadt-page-gradient: linear-gradient(135deg, rgba(2, 58, 108, 0.2) 25%, rgba(1, 68, 162, 0.3) 100%); + + /* Card Design Tokens - Dark */ + --psadt-card-background-color: linear-gradient(135deg, rgba(2, 28, 53, 0.08), rgba(0, 140, 200, 0.15)); + + /* Colors */ + --ifm-color-content: var(--ifm-color-emphasis-0); + --ifm-color-content-secondary: var(--ifm-color-emphasis-100); + --ifm-color-content-inverse: var(--ifm-color-emphasis-900); + + + --psadt-card-background: var(--psadt-card-background-color); + --psadt-card-image-background: rgba(255, 255, 255, 0.1); + --psadt-card-border-color: rgba(159, 221, 253, 0.45); + --psadt-focus-ring-color: rgba(159, 221, 253, 0.45); + + --psadt-sidebar-glass-surface: linear-gradient(135deg, + rgba(0, 0, 0, 0.3), + rgba(0, 0, 0, 0.15)); +} /* Button System */ .button { - font-weight: var(--font-medium); - border-radius: var(--radius-sm); - transition: all var(--transition-fast); + font-weight: var(--ifm-font-weight-medium); + border-radius: var(--psadt-radius-sm); + transition: background-color var(--psadt-transition-normal), border-color var(--psadt-transition-normal), color var(--psadt-transition-normal), transform var(--psadt-transition-normal), box-shadow var(--psadt-transition-normal); text-transform: none; letter-spacing: 0.025em; - border: 1px solid transparent; - padding: var(--space-sm) var(--space-lg); - font-size: var(--text-sm); + border: var(--ifm-global-border-width) solid transparent; + padding: var(--psadt-space-sm) var(--psadt-space-lg); + font-size: var(--ifm-font-size-sm); line-height: 1.5; display: inline-flex; align-items: center; justify-content: center; - gap: var(--space-xs); + gap: var(--psadt-space-xs); +} + +.button:active { + transform: scale(0.97); } .button--primary { background-color: var(--ifm-color-primary); border-color: var(--ifm-color-primary); - color: white; + color: var(--ifm-color-content-inverse); +} + +.button:hover { + will-change: transform, box-shadow; } .button--primary:hover { - background-color: var(--palette-blue-dark); - border-color: var(--palette-blue-dark); + background-color: var(--ifm-color-primary-dark); + border-color: var(--ifm-color-primary-dark); transform: translateY(-1px); - box-shadow: var(--shadow-md); - color: white; + box-shadow: var(--psadt-shadow-md); + color: var(--ifm-color-content-inverse); } .button--secondary { @@ -291,413 +423,383 @@ html { .button--secondary:hover { background-color: var(--ifm-color-primary); - color: white; + color: var(--ifm-color-content-inverse); transform: translateY(-1px); - box-shadow: var(--shadow-md); + box-shadow: var(--psadt-shadow-md); } [data-theme='dark'] .button--secondary { - border-color: var(--palette-blue-light); - color: var(--palette-blue-light); + border-color: var(--ifm-color-primary-light); + color: var(--ifm-color-primary-light); } [data-theme='dark'] .button--secondary:hover { - background-color: var(--palette-blue-light); - color: var(--palette-blue-darkest); + background-color: var(--ifm-color-primary-light); + color: var(--ifm-color-primary-darkest); } /* Code blocks */ .theme-code-block { - border-radius: 2px; - box-shadow: 0 2px 6px rgba(0, 0, 0, 0.05); + border-radius: var(--psadt-radius-sm); + border: var(--ifm-global-border-width) solid var(--ifm-color-emphasis-400); + box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2); } -[data-theme='dark'] .theme-code-block { - box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2); +.theme-code-block pre, +.theme-code-block pre code, +.prism-code { + white-space: pre-wrap !important; + word-break: break-word; + overflow-wrap: anywhere; } -.theme-code-block-highlighted-line, -.docusaurus-highlight-code-line { - display: block; - margin: 0 calc(-1 * var(--ifm-pre-padding)); - padding: 0 var(--ifm-pre-padding); +.theme-code-block pre { + overflow-x: hidden !important; } /* Typography System */ h1 { font-family: 'Poppins', var(--ifm-font-family-base); - font-weight: var(--font-black); - font-size: var(--text-5xl); + font-weight: var(--ifm-font-weight-bold); + font-size: var(--ifm-h1-font-size); letter-spacing: -0.025em; line-height: 1.1; - margin-bottom: var(--space-lg); } -h2 { - font-family: 'Poppins', var(--ifm-font-family-base); - font-weight: var(--font-extrabold); - font-size: var(--text-4xl); - letter-spacing: -0.025em; - line-height: 1.2; - margin-top: var(--space-2xl); - margin-bottom: var(--space-lg); - padding-bottom: var(--space-sm); - border-bottom: 1px solid var(--ifm-color-emphasis-200); -} - -h3 { - font-family: var(--ifm-font-family-base); - font-weight: var(--font-bold); - font-size: var(--text-3xl); - letter-spacing: -0.02em; - line-height: 1.3; - margin-top: var(--space-xl); - margin-bottom: var(--space-md); -} - -h4 { - font-family: var(--ifm-font-family-base); - font-weight: var(--font-semibold); - font-size: var(--text-2xl); - letter-spacing: -0.015em; - line-height: 1.3; - margin-top: var(--space-lg); - margin-bottom: var(--space-sm); -} - -h5 { - font-family: var(--ifm-font-family-base); - font-weight: var(--font-semibold); - font-size: var(--text-xl); - letter-spacing: -0.01em; - line-height: 1.4; - margin-top: var(--space-md); - margin-bottom: var(--space-sm); -} - -h6 { - font-family: var(--ifm-font-family-base); - font-weight: var(--font-medium); - font-size: var(--text-lg); - letter-spacing: 0; - line-height: 1.4; - margin-top: var(--space-md); - margin-bottom: var(--space-sm); -} - -/* Reset font for non-heading elements */ -p, -li, -a, -.menu__link, -.button, -.navbar__title, -.navbar__item, -.footer__title, -.footer__item, -.table-of-contents { - font-weight: 400; - font-family: var(--ifm-font-family-base); -} - -/* Ensure code blocks use monospace */ -code, -pre, -.prism-code { - font-family: var(--ifm-font-family-monospace); +/* Keep navbar opaque despite transparent --ifm-background-color */ +.navbar { + height: 72px; + background: rgba(250, 250, 250, 0.85); + -webkit-backdrop-filter: saturate(50%) blur(20px); + backdrop-filter: saturate(100%) blur(20px); + + border-bottom: var(--ifm-global-border-width) solid var(--ifm-color-primary-darker); + box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2); } -/* Body text */ -p { - margin-bottom: 1.25rem; - line-height: 1.7; +html[data-theme='dark'] .navbar { + background: rgba(25, 25, 25, 0.85); + border-bottom: var(--ifm-global-border-width) solid var(--ifm-color-primary-dark); + box-shadow: 0 2px 6px rgba(47, 189, 250, 0.4); } -/* Tables */ -table { - border-radius: 6px; - overflow: hidden; - box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05); +/* Navbar dropdown menu */ +.navbar .dropdown__menu { + background-color: var(--ifm-color-white); + opacity: 1; + -webkit-backdrop-filter: none; + backdrop-filter: none; } -table th { - background-color: var(--ifm-color-primary); - color: white; - font-weight: 600; - text-transform: uppercase; - font-size: 0.8em; - letter-spacing: 0.5px; +html[data-theme='dark'] .navbar .dropdown__menu { + background-color: var(--ifm-color-emphasis-200); + opacity: 1; } -/* Sidebar */ -.menu { - padding: 0.5rem; - font-size: 0.9rem; +.navbar .dropdown__link--active, +.navbar .dropdown__link--active:hover { + background-color: var(--ifm-color-primary) !important; + color: var(--ifm-color-primary-lightest) !important; + font-weight: var(--ifm-font-weight-bold); } -.menu__list { - font-size: 0.9rem; +.navbar__link { + font-family: 'Poppins', var(--ifm-font-family-base); + font-weight: var(--ifm-font-weight-bold); } -.menu__list .menu__list { - font-size: 1em; - /* Prevent font size inheritance issues */ +.navbar__brand { + font-size: 1.0rem; } -/* Move version indicator to top of right sidebar */ -.theme-doc-sidebar-container { - display: flex; - flex-direction: column; +.navbar__title { + display: none !important; + font-weight: var(--ifm-font-weight-bold); + font-style: normal; } -.theme-doc-sidebar-menu { - order: 2; - flex-grow: 1; - overflow-y: auto; +.navbar__logo { + height: 48px; + margin-right: 1em; } -/* Style the version indicator in the right sidebar */ -.theme-doc-version-badge { - float: right; - background-color: var(--ifm-color-primary-lightest); +a.navbar__brand:hover { color: var(--ifm-color-primary); - padding: 0.5rem 1rem; - margin: 0.5rem 0.25rem 1rem 0.25rem; - border-radius: var(--ifm-global-radius); - font-size: 0.85rem; - font-weight: 700; - text-align: center; - border: 1px solid var(--ifm-color-primary-light); - box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1); - transition: all 0.2s ease; } -.theme-doc-version-badge:hover { - transform: translateY(-1px); - box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15); +.navbar__item { + font-weight: var(--ifm-font-weight-bold); + font-size: var(--ifm-font-size-base); } -[data-theme='dark'] .theme-doc-version-badge { - background-color: var(--ifm-color-primary-darkest); - color: var(--ifm-color-primary-light); - border-color: var(--ifm-color-primary-darker); - box-shadow: 0 2px 5px rgba(0, 0, 0, 0.3); + +.navbar__item svg { + display: none; } -[data-theme='dark'] .theme-doc-version-badge:hover { - box-shadow: 0 4px 8px rgba(0, 0, 0, 0.4); +.footer__copyright { + padding-top: 20px; } -.menu__link { - border-radius: 4px; - padding: 0.5rem 0.75rem; - margin: 0.15rem 0; - transition: background-color 0.2s ease; - font-size: 0.9rem; - font-weight: 400; +.footer__link-item svg { + display: none; } -.menu__link--active { - background-color: var(--ifm-color-primary-lightest); +header h2 a { + font-weight: var(--ifm-font-weight-semibold); color: var(--ifm-color-primary); - font-weight: 500; } -/* Fix for nested menu items */ -.menu__list-item-collapsible .menu__link { - font-weight: 400; +header h2 a:hover { + color: var(--ifm-color-primary-light); } -.menu__list-item-collapsible .menu__link--sublist { - font-weight: 400; +.button.button--secondary { + margin-right: 25px !important; } -/* Ensure consistent spacing in sidebar */ -.menu__list-item:not(:first-child) { - margin-top: 0.25rem; +header .col--5 { + display: flex; + justify-content: center; } -/* Fix for sidebar category headers */ -.menu__list-item-collapsible .menu__link--sublist { - font-size: 0.9rem; +/* Sidebar nested menu styling - add left border and indentation for nested items */ +.menu>.menu__list .menu__list { + border-left: var(--ifm-global-border-width) solid var(--ifm-color-primary); + margin-left: 15px; } -/* Fix for sidebar item indentation */ -.menu__list-item .menu__list { - padding-left: 0.75rem; -} -.hero__subtitle { - text-align: left; - font-family: Poppins; - font-weight: 900; - font-size: 3rem; - padding: 0 0 1rem; - line-height: 1.3em; +/* Hide icon for external links */ +.docusaurus-theme-classic-lib-theme-Icon-ExternalLink-styles-module { + display: none; } -@media screen and (max-width: 996px) { - :root { - --ifm-font-size-base: 16px; - } - - .hero__subtitle { - font-size: 2rem; - padding: 2em 0 0; - text-align: center; - } - - .flex-col-reverse { - flex-direction: column-reverse; - } - - .navbar--fixed-top { - height: 96px; - } +/* Search bar */ +.navbar__search-input { + border-radius: var(--ifm-global-radius); } -.navbar__link { - font-family: 'Poppins', var(--ifm-font-family-base); - font-weight: 700; +/* GitHub Icon */ +.header-github-link:before { + content: ''; + width: 26px; + height: 26px; + display: flex; + background: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12'/%3E%3C/svg%3E") no-repeat; } -.navbar__brand { - font-size: 1.5rem; +html[data-theme='dark'] .header-github-link:before { + background: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='white' d='M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12'/%3E%3C/svg%3E") no-repeat; } -.navbar__title { - display: none; - font-weight: 700; - font-style: normal; +/* GitHub Icon Hover */ +.header-github-link { + transition: opacity var(--psadt-transition-normal); } -.navbar__logo { - height: 42px; - margin-right: 1em; -} +.header-github-link:hover { -a.navbar__brand:hover { - color: var(--ifm-color-primary); + opacity: 0.6; } -.navbar__item { - font-family: 'Poppins', var(--ifm-font-family-base); - font-weight: 700; - font-size: 16px; +/* Keyboard focus visibility */ +a:focus-visible, +button:focus-visible, +[role='button']:focus-visible, +.menu__link:focus-visible, +.navbar__link:focus-visible, +.dropdown__link:focus-visible, +.header-github-link:focus-visible, +input:focus-visible, +select:focus-visible, +textarea:focus-visible { + outline: 2px solid var(--ifm-color-primary); + outline-offset: 2px; + box-shadow: 0 0 0 3px var(--psadt-focus-ring-color); + border-radius: var(--psadt-radius-sm); } -.DocSearch-Container { - z-index: 110; +a:focus-visible { + text-decoration: underline; + text-decoration-thickness: 2px; } -.navbar__item svg { - display: none; +/* Tighten gap between top tip and first section on this page */ +html[class*='docs-doc-id-getting-started/creating-a-new-deployment'] .theme-admonition+h2 { + margin-top: var(--psadt-space-lg); } -.footer__copyright { - padding-top: 20px; +/* Shared layout/media/motion system for marketing pages */ +.section-shell { + margin-block: clamp(var(--psadt-space-xl), 4vw, var(--psadt-space-3xl)); } -.footer__link-item svg { - display: none; +.page-shell { + padding-top: 4rem; + padding-bottom: 4rem; } -h1 { - font-size: 2.4rem; - font-weight: 600; +.split-row { + align-items: center; + row-gap: var(--psadt-space-xl); } -h2 { - font-size: 1.8rem; - font-weight: 600; +.section-copy { + max-width: 68ch; } -header h2 a { - font-weight: 600; - color: var(--ifm-heading-color); +.media-frame { + width: min(100%, 560px); + aspect-ratio: 4 / 3; + margin-inline: auto; + display: flex; + align-items: center; + justify-content: center; + overflow: hidden; + transition: transform var(--psadt-transition-normal), box-shadow var(--psadt-transition-normal), border-color var(--psadt-transition-normal); } -header h2 a:hover { - text-decoration: none; +.media-frame--hero { + width: min(100%, 640px); } -h3 { - font-size: 1.4rem; - font-weight: 500; +.media-frame>img, +.media-frame img { + width: 100%; + height: 100%; + object-fit: contain; } -h4 { - font-size: 1.25rem; - font-weight: 500; +.entity-avatar { + width: 104px; + height: 104px; + border-radius: 50%; + object-fit: cover; + border: 1px solid var(--psadt-card-border-color); + box-shadow: var(--psadt-card-image-shadow); + background: var(--psadt-card-image-background); } -img { - display: block; - margin: auto; +.calm-card { + height: 100%; + display: flex; + flex-direction: column; } +@keyframes calmReveal { + from { + opacity: 0; + transform: translateY(20px); + filter: blur(6px); + } -.logoThickText_jwJb { - text-align: left; - font-weight: 900; - font-family: Poppins; + to { + opacity: 1; + transform: translateY(0); + filter: blur(0); + } } -.blockTitle_JQed { +.reveal-section { + opacity: 0; + animation: calmReveal 900ms var(--psadt-ease-standard) forwards; +} - text-align: left; - font-weight: 900; - font-family: Poppins; +.theme-doc-markdown .alert+h2 { + margin-top: 0.6rem; } -.themedImage--light_node_modules-\@docusaurus-theme-classic-lib-theme-ThemedImage-styles-module { - display: block !important; +.theme-doc-markdown, +.blog-wrapper article { + animation: fadeInUp 500ms var(--psadt-ease-standard) both; } -.button.button--secondary { - margin-right: 25px !important; +.reveal-delay-1 { + animation-delay: 120ms; } -header .col--5 { - display: flex; +.reveal-delay-2 { + animation-delay: 240ms; } -.menu > .menu__list .menu__list { - border-left: 1px solid var(--ifm-color-primary); - margin-left: 15px; +.reveal-delay-3 { + animation-delay: 360ms; } -.docs-doc-id-reference .menu > .menu__list .menu__list { - font-size: 12px; +/* ─── Entrance Animations ─── */ +@keyframes fadeInUp { + from { + opacity: 0; + transform: translateY(8px); + } + + to { + opacity: 1; + transform: translateY(0); + } } -/* Hide icon for external links */ -.docusaurus-theme-classic-lib-theme-Icon-ExternalLink-styles-module { - display: none; +.fadeInUp { + animation: fadeInUp 0.4s var(--psadt-ease-standard) both; } -/* GitHub Icon */ -.header-github-link:before { - content: ''; - width: 26px; - height: 26px; - display: flex; +.fadeInUp-d1 { + animation-delay: 80ms; +} - background: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12'/%3E%3C/svg%3E") - no-repeat; +.fadeInUp-d2 { + animation-delay: 160ms; } -html[data-theme='dark'] .header-github-link:before { - background: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='white' d='M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12'/%3E%3C/svg%3E") - no-repeat; +.fadeInUp-d3 { + animation-delay: 240ms; } -/* GitHub Icon Hover */ -.header-github-link:hover { - opacity: 0.6; +/* Accessibility: Respect user preference for reduced motion */ +@media (prefers-reduced-motion: reduce) { + + *, + *::before, + *::after { + animation-duration: 0.01ms !important; + animation-iteration-count: 1 !important; + transition-duration: 0.01ms !important; + scroll-behavior: auto !important; + } } -html[data-theme='dark'] .theme-doc-version-badge { - background-color: var(--ifm-color-primary-dark); - color: white; +html[data-theme='dark'] { + --ifm-color-scheme: dark; + + /* Colors */ + --ifm-color-content: var(--ifm-color-emphasis-1000); + --ifm-color-content-secondary: var(--ifm-color-emphasis-700); + --ifm-color-content-inverse: var(--ifm-color-emphasis-0); + --ifm-heading-color: var(--ifm-color-emphasis-1000); + + + --ifm-hover-overlay: rgba(255, 255, 255, 0.05); + --ifm-breadcrumb-separator-filter: invert(64%) sepia(11%) saturate(0%) hue-rotate(149deg) brightness(99%) contrast(95%); + --ifm-code-background: rgba(255, 255, 255, 0.1); + + --ifm-scrollbar-track-background-color: #444444; + --ifm-scrollbar-thumb-background-color: #686868; + --ifm-scrollbar-thumb-hover-background-color: #7a7a7a; + + --ifm-table-stripe-background: rgba(255, 255, 255, 0.07); + + --ifm-toc-border-color: var(--ifm-color-emphasis-200); + --ifm-color-primary-contrast-background: rgb(16, 36, 69); + --ifm-color-primary-contrast-foreground: rgb(235, 242, 252); + --ifm-color-secondary-contrast-background: rgb(71, 71, 72); + --ifm-color-secondary-contrast-foreground: rgb(253, 253, 254); + --ifm-color-success-contrast-background: rgb(0, 49, 0); + --ifm-color-success-contrast-foreground: rgb(230, 246, 230); + --ifm-color-info-contrast-background: rgb(25, 60, 71); + --ifm-color-info-contrast-foreground: rgb(238, 249, 253); + --ifm-color-warning-contrast-background: rgb(77, 56, 0); + --ifm-color-warning-contrast-foreground: rgb(255, 248, 230); + --ifm-color-danger-contrast-background: rgb(75, 17, 19); + --ifm-color-danger-contrast-foreground: rgb(255, 235, 236) } diff --git a/src/data/devteam.tsx b/src/data/devteam.tsx new file mode 100644 index 0000000..be2c92d --- /dev/null +++ b/src/data/devteam.tsx @@ -0,0 +1,44 @@ +export const devteam = [ + { + name: 'Dan Cunningham', + subtitle: 'Founder / Developer', + image: '/images/about/dan.jpg', + github: 'https://github.com/sintaxasn', + linkedin: 'https://linkedin.com/in/sintaxasn', + }, + { + name: 'Mitch Richters', + subtitle: 'Lead Developer', + image: '/images/about/mitch.jpg', + github: 'https://github.com/mjr4077au', + linkedin: 'https://www.linkedin.com/in/mjrichters', + }, + { + name: 'Dan Gough', + subtitle: 'Developer', + image: '/images/about/dang.jpg', + github: 'https://github.com/DanGough', + linkedin: 'https://www.linkedin.com/in/danielgough', + }, + { + name: 'Jordan Benzing', + subtitle: 'Security', + image: '/images/about/jordanb.jpg', + github: 'https://github.com/JordanTheITGuy', + linkedin: 'https://www.linkedin.com/in/danielgough', + }, + { + name: 'Sean Lillis', + subtitle: 'Founder / Developer', + image: '/images/about/sean.jpg', + github: 'https://github.com/seanlillis', + linkedin: 'https://www.linkedin.com/in/sean-lillis-08a4288', + }, + { + name: 'Mo Mashwani', + subtitle: 'Founder / Developer', + image: '/images/about/mo.jpg', + github: 'https://github.com/mmashwani', + linkedin: 'https://linkedin.com/in/muhammad-mashwani', + }, +]; diff --git a/src/data/ecosystem.tsx b/src/data/ecosystem.tsx new file mode 100644 index 0000000..9bc623b --- /dev/null +++ b/src/data/ecosystem.tsx @@ -0,0 +1,167 @@ +export interface Solution { + name: string; + featured: boolean; + logo?: string; + logoDark?: string; + url: string; + description: string; + type: 'commercial' | 'free'; + worksWith: string[]; + categories: string[]; +} + +export const SOLUTION_WORKS_WITH = [ + 'configMgr', + 'intune', + 'standalone' +] as const; + +export const SOLUTION_CATEGORIES = [ + 'Software Update Catalog', + 'App Repackaging', + 'Package Authoring', + 'Deployment Automation', + 'Readiness & Testing', + 'Packaging Services', +] as const; + +export const solutions: Solution[] = [ + { + name: 'Patch My PC', + featured: true, + logo: '/images/solutions/pmpc_light.png', + logoDark: '/images/solutions/pmpc_dark.png', + url: 'https://patchmypc.com/', + description: 'Automation of 3rd party software updates for ConfigMgr and Intune. Stewards of PSAppDeployToolkit.', + type: 'commercial', + worksWith: ['ConfigMgr', 'Intune'], + categories: ['Software Update Catalog', 'Deployment Automation'], + }, + { + name: 'Master Packager', + featured: false, + logo: '/images/solutions/masterpackager.png', + url: 'https://www.masterpackager.com', + description: 'Everything you need to create professional, modern Windows installer packages.', + type: 'free', + worksWith: ['ConfigMgr', 'Intune', 'Standalone'], + categories: ['App Repackaging', 'Package Authoring'], + }, + { + name: 'Devicie', + featured: false, + logo: '/images/solutions/devicie_light.png', + logoDark: '/images/solutions/devicie_dark.png', + url: 'https://devicie.com', + type: 'commercial', + description: 'Intune Automation, Management & Visibility Platform which leverages PSADT for App Deployment.', + worksWith: ['SCCM', 'Intune'], + categories: ['Software Update Catalog', 'Deployment Automation', 'Packaging Services'], + }, + { + name: 'PacKit', + featured: false, + logo: '/images/solutions/packit.png', + url: 'https://www.getpackit.com', + type: 'commercial', + description: + 'Windows-based tool designed for centralized post-packaging configuration and deployment. Part of Advanced Installer suite.', + worksWith: ['ConfigMgr', 'Intune'], + categories: ['App Repackaging', 'Package Authoring'], + }, + { + featured: false, + name: 'Robopack', + logo: '/images/solutions/robopack.png', + url: 'https://robopack.com', + type: 'commercial', + description: + 'Package conversion and management tool for Intune - converts MSI / WinGet packages to PSADT scripts and manages Intune deployment.', + worksWith: ['Intune'], + categories: ['Software Update Catalog', 'App Repackaging', 'Deployment Automation'], + }, + { + name: 'Flexera AdminStudio', + featured: false, + logo: '/images/solutions/flexera_light.png', + logoDark: '/images/solutions/flexera_dark.png', + url: 'https://www.flexera.com/products/adminstudio', + type: 'commercial', + description: 'Packaging tool with automatic wrapping as PSADT deployment capabilities.', + worksWith: ['ConfigMgr', 'Intune'], + categories: ['App Repackaging', 'Package Authoring'], + }, + { + name: 'Juriba App Readiness', + featured: false, + logo: '/images/solutions/juriba_light.png', + logoDark: '/images/solutions/juriba_dark.png', + url: 'https://juriba.com/', + type: 'commercial', + description: 'Packaging and testing framework which leverages PSADT for app deployment.', + worksWith: ['ConfigMgr', 'Intune'], + categories: ['App Repackaging', 'Readiness & Testing'], + }, + { + name: 'neo42 Package Depot', + featured: false, + logo: '/images/solutions/neo42.png', + url: 'https://www.neo42.de/', + type: 'commercial', + description: + 'Delivers PSADT-based application packages ready for customer import. Uses Neo42 Extensions for PSADT.', + worksWith: ['ConfigMgr', 'Intune'], + categories: ['Software Update Catalog', 'App Repackaging'], + }, + { + name: 'Pckgr for Intune', + featured: false, + logo: '/images/solutions/pckgr.png', + url: 'https://pckgr.com', + type: 'commercial', + description: 'Cloud packaging automation that exports PSADT-powered apps directly into Intune.', + worksWith: ['Intune'], + categories: ['Software Update Catalog', 'App Repackaging'], + }, + { + name: 'Raynet RayPack Studio', + featured: false, + logo: '/images/solutions/raynet_light.png', + logoDark: '/images/solutions/raynet_dark.png', + url: 'https://raynet-inc.com/software-packaging/raypack-studio', + type: 'commercial', + description: 'RayPack Studio accelerates enterprise packaging with PSADT templates and deployment workflows.', + worksWith: ['ConfigMgr', 'Intune'], + categories: ['App Repackaging', 'Deployment Automation'], + }, + { + name: 'Apptimized Workspace', + featured: false, + logo: '/images/solutions/apptimized.png', + url: 'https://apptimized.com/en/product/packaging-tool', + type: 'commercial', + description: 'Cloud-based application packaging tool, exports PSADT deployment scripts.', + worksWith: ['Intune'], + categories: ['Readiness & Testing'], + }, + { + name: 'xoap.io Package Wizard', + featured: false, + logo: '/images/solutions/xoap.png', + url: 'https://xoap.io/psadt-package-wizard', + type: 'commercial', + description: 'IT Automation platform with GUI for creation of PSADT deployment scripts.', + worksWith: ['Standalone'], + categories: ['Deployment Automation'], + }, + { + name: 'Deployment Editor', + featured: false, + logo: '/images/solutions/deployment_editor.png', + url: 'https://blog.tugi.ch/deployment-editor-download', + type: 'free', + description: 'Package Windows applications or create any task for enterprise deployment. No coding needed. 😊', + worksWith: ['Standalone', 'Intune'], + categories: ['Package Authoring', 'Deployment Automation'], + }, +]; diff --git a/src/data/features.ts b/src/data/features.ts new file mode 100644 index 0000000..664f557 --- /dev/null +++ b/src/data/features.ts @@ -0,0 +1,162 @@ +export interface FeatureItem { + readonly text: string; + readonly version?: 'v4' | 'v4.1' | 'v4.2'; +} + +export interface FeatureGroup { + readonly title: string; + readonly icon: string; + readonly description: string; + readonly items: readonly FeatureItem[]; +} + +export const featureGroups: readonly FeatureGroup[] = [ + { + title: 'User Interface & Dialogs', + icon: '/images/features/application_window.png', + description: 'A polished, brandable deployment experience for end users with full dialog control.', + items: [ + { text: 'Modern Fluent UI with automatic light and dark mode', version: 'v4' }, + { 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: 'Progress bar with real-time percentage tracking', version: 'v4.1' }, + { text: 'Restart prompts with countdown, snooze, and deadline enforcement' }, + { text: 'Custom branding with organization logo, banner, and accent colors' }, + { text: 'Multi-language localization with formattable text and URL hyperlinks' }, + ], + }, + { + title: 'Application Lifecycle', + icon: '/images/features/construction_worker_beard_long.svg', + description: "Manage every stage of an application's deployment from discovery through removal.", + items: [ + { text: 'Install, Uninstall, and Repair deployment types with Pre/Main/Post phases' }, + { text: 'MSI installation with transforms, patches, and custom properties' }, + { text: 'EXE installation with automated exit code handling' }, + { text: 'Application discovery by name, version, publisher, or architecture' }, + { text: 'Bulk uninstallation with flexible matching and wildcards' }, + { text: 'Application blocking via IFEO to prevent launch during deployment' }, + { text: 'Zero-config deployment \u2014 auto-detect MSI or WIM in Files directory' }, + ], + }, + { + title: 'Process Execution & Control', + icon: '/images/features/devices_processor.svg', + description: 'Fine-grained control over how processes are launched, monitored, and terminated.', + items: [ + { text: 'Execute processes with window styles, priority classes, and timeouts' }, + { text: 'Run processes as the logged-in user from SYSTEM context' }, + { + text: 'Unelevated token support for Windows 11 Admin Protection', + version: 'v4.1', + }, + { text: 'Wait for or terminate child processes alongside parent', version: 'v4.1' }, + { text: 'Environment variable expansion in execution paths', version: 'v4.1' }, + { + text: 'Stream encoding control (UTF-8 for Winget and similar tools)', + version: 'v4.1', + }, + { text: 'Network drive and user-context MSI execution support', version: 'v4.1' }, + ], + }, + { + title: 'File, Registry & System Operations', + icon: '/images/features/code.svg', + description: 'Comprehensive primitives for files, folders, registry, INI, shortcuts, and permissions.', + items: [ + { text: 'File copy with Robocopy integration, delete, and folder management' }, + { text: 'Shortcut creation, modification, and icon extraction' }, + { text: 'Deploy or remove files across all local user profiles' }, + { text: 'Archive operations (zip) and WIM mount/unmount' }, + { + text: 'Registry CRUD with 32/64-bit hive support and MultiString values', + version: 'v4.1', + }, + { 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' }, + ], + }, + { + title: 'Logging & Diagnostics', + icon: '/images/features/tasklist.svg', + description: 'Automatic, structured logging that makes troubleshooting straightforward.', + items: [ + { text: 'Comprehensive automatic logging for every function call' }, + { text: 'Hierarchical log organization by Vendor, App, and Version' }, + { text: 'MSI installer log capture alongside PSADT logs' }, + { text: 'Log compression and configurable size/history management' }, + { text: 'Structured error handling with detailed error record analysis' }, + { text: 'Debug message logging for development and troubleshooting' }, + ], + }, + { + title: 'Enterprise Platform Integration', + icon: '/images/features/satellites.svg', + 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: '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' }, + ], + }, + { + title: 'Detection & Intelligence', + icon: '/images/features/devices_laptop.svg', + 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: 'Battery/laptop and microphone-in-use detection' }, + { text: 'PowerPoint full-screen presentation mode detection' }, + { + text: 'OOBE/Autopilot and Enrollment Status Page (ESP) detection', + version: 'v4.1', + }, + { text: 'Active user session and Terminal Server/Citrix detection' }, + { text: 'Network connectivity testing' }, + { text: 'Service management with dependency resolution and startup type control' }, + ], + }, + { + title: 'Security, Modes & Extensibility', + icon: '/images/features/shield_checkmark.svg', + description: 'Secure architecture, flexible deployment modes, and a fully extensible framework.', + items: [ + { text: 'Four deployment modes: Auto, Interactive, NonInteractive, Silent' }, + { + text: 'Client-server architecture for secure UI rendering from SYSTEM context', + version: 'v4', + }, + { + text: 'No ServiceUI dependency \u2014 eliminates privilege escalation risks', + version: 'v4', + }, + { + text: 'Per-app RequireAdmin setting with automatic modal dialog retry', + version: 'v4.1', + }, + { + text: 'ADMX Group Policy templates for centralized enterprise control', + version: 'v4.1', + }, + { + text: 'PowerShell 5.1 and 7 dual support with digitally signed module', + version: 'v4', + }, + { text: 'Config.psd1 with precedence hierarchy and extension module callbacks' }, + { + text: 'Template scaffolding and Invoke-AppDeployToolkit.exe with /Debug switch', + version: 'v4.1', + }, + ], + }, +]; diff --git a/src/data/instructors.tsx b/src/data/instructors.tsx new file mode 100644 index 0000000..10716b4 --- /dev/null +++ b/src/data/instructors.tsx @@ -0,0 +1,31 @@ +export interface Instructor { + name: string; + role: string; + bio: string; + image: string; + linkedin: string; +} + +export const instructors: Instructor[] = [ + { + name: 'Dan Cunningham', + role: 'PSADT Co-Founder & Project Lead', + bio: 'Dan co-created PSADT and served as Project Lead until February 2026. He remains an active contributor, leveraging his deep expertise in endpoint security & management, and enterprise application deployment. His insights in the classroom are backed by real-world packaging experience from Fortune 500 companies.', + image: '/images/about/dan.jpg', + linkedin: 'https://linkedin.com/in/sintaxasn', + }, + { + name: 'Johan Arwidmark', + role: 'Deployment Expert & Trainer', + bio: 'Johan is a renowned expert in operating system and application deployment, recognized for his work with Microsoft Configuration Manager and Intune. As the founder of Viamonstra Academy, he brings decades of training experience to help IT professionals master deployment technologies.', + image: '/images/about/johan.png', + linkedin: 'https://www.linkedin.com/in/jarwidmark/', + }, + { + name: 'Dan Gough', + role: 'PSADT Developer', + bio: 'Dan Gough is also part of the PSADT dev team and is a seasoned application packaging specialist and deployment expert at Patch My PC. With extensive hands-on experience in building and troubleshooting deployment scripts across the enterprise, he offers practical, real-world insights to the course.', + image: '/images/about/dang.jpg', + linkedin: 'https://www.linkedin.com/in/danielgough', + }, +]; diff --git a/src/data/testimonials.tsx b/src/data/testimonials.tsx new file mode 100644 index 0000000..16201c5 --- /dev/null +++ b/src/data/testimonials.tsx @@ -0,0 +1,12 @@ +export const testimonials = [ + { + quote: 'Truly powerful application deployment toolkit written in PowerShell! Solving some classic problems', + name: 'Jörgen Nilsson', + company: 'Microsoft MVP, Enterprise Client Management', + }, + { + quote: 'Another very cool SCCM must-have tool!', + name: 'Kent Agerlund', + company: 'Microsoft MVP, Enterprise Client Management', + }, +]; diff --git a/src/pages/about.module.css b/src/pages/about.module.css index c4dfe10..b4fda8d 100644 --- a/src/pages/about.module.css +++ b/src/pages/about.module.css @@ -1,20 +1,36 @@ +@keyframes fadeInUp { + from { + opacity: 0; + transform: translateY(12px); + } + to { + opacity: 1; + transform: translateY(0); + } +} + .aboutPage { - padding: 2rem 0; + animation: fadeInUp 0.5s var(--psadt-ease-standard) both; } .headerBlock { - text-align: center; + text-align: left; margin-bottom: 2rem; +} - h1 { - font-size: 18px; - } +.headerBlock h1 { + font-size: var(--ifm-h1-font-size); +} + +.accent { + font-family: 'Poppins', var(--ifm-font-family-base); + color: var(--ifm-color-primary); + font-weight: var(--ifm-font-weight-extrabold); } .heroBlock { - text-align: center; + text-align: left; padding: 4rem 0; - background-color: var(--ifm-color-gray-800); h2 { font-size: 2rem; @@ -23,55 +39,94 @@ } .introBlock { - margin: 4rem auto; + margin: 0 auto; + display: flex; + gap: var(--psadt-space-2xl); + align-items: flex-start; +} + +.introBody { + flex: 2.5; + min-width: 0; + + font-size: var(--ifm-font-size-base);} + +.introTestimonials { + flex: 1; + display: flex; + flex-direction: column; + gap: var(--psadt-space-lg); + align-self: stretch; +} + +.testimonialCard { + border-radius: var(--psadt-card-radius); + border: 1px solid var(--psadt-card-border-color); + background: var(--psadt-card-background); + box-shadow: var(--psadt-card-shadow); + overflow: hidden; + padding: var(--psadt-space-lg); + transition: box-shadow var(--psadt-transition-normal), border-color var(--psadt-transition-normal); + justify-content: center; +} + +.testimonialCard:hover { + border-color: var(--ifm-color-primary); + box-shadow: var(--psadt-card-shadow-hover); +} + +.testimonialQuote { + font-size: var(--ifm-font-size-lg); + font-style: italic; + line-height: 1.6; + margin: 0 0 var(--psadt-space-md); + color: var(--ifm-color-content); +} + +.testimonialAttribution { + font-size: var(--ifm-font-size-sm); + color: var(--ifm-color-content-secondary); +} + +.testimonialAttribution strong { + font-size: var(--ifm-font-size-lg); + color: var(--ifm-color-primary); + font-weight: var(--ifm-font-weight-bold); } .foundersBlock { - margin: 2rem auto; - text-align: center; - display: flexbox; + margin: 4rem auto; + text-align: left; + display: flex; flex-direction: column; - align-items: center; + align-items: left; + justify-content: left; h2 { - margin-bottom: 2rem; - font-size: 2rem; + font-size: var(--ifm-h2-font-size); + margin-bottom: var(--psadt-space-2xl); + font-weight: var(--ifm-font-weight-bold); + border-bottom: none; + + accent { + color: var(--ifm-color-primary); + } } .founderCard { - background: linear-gradient(135deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0.08)); - -webkit-backdrop-filter: blur(12px); - backdrop-filter: blur(12px); - margin: var(--space-lg) 0; - padding: var(--space-2xl) var(--space-lg); - border-radius: var(--radius-xl); - box-shadow: var(--shadow-lg); - border: 1px solid rgba(255, 255, 255, 0.25); - text-align: center; + border-radius: var(--psadt-card-radius); + border: 1px solid var(--psadt-card-border-color); + background: var(--psadt-card-background); + box-shadow: var(--psadt-card-shadow); + margin: 0; + padding: var(--psadt-space-xl); + text-align: left; display: flex; flex-direction: column; - gap: var(--space-lg); + gap: var(--psadt-space-sm); align-items: center; - transition: all var(--transition-normal) var(--transition-bezier); - position: relative; overflow: hidden; - - &::before { - content: ''; - position: absolute; - top: 0; - left: 0; - right: 0; - height: 4px; - background: linear-gradient(90deg, var(--palette-blue), var(--palette-blue-dark)); - border-radius: 20px 20px 0 0; - } - - &:hover { - transform: translateY(-8px); - box-shadow: var(--shadow-xl); - border-color: var(--palette-blue); - } + transition: box-shadow var(--psadt-transition-normal), border-color var(--psadt-transition-normal); p, h2, @@ -79,110 +134,157 @@ margin: 0; } - .founderImage { - width: 120px; - height: 120px; - border-radius: 50%; - margin-bottom: 0.5rem; - background: white; - border: 4px solid rgba(255, 255, 255, 0.3); - box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1); - transition: all 0.3s ease; - object-fit: cover; + &:hover { + box-shadow: var(--psadt-card-shadow-hover); + border-color: var(--ifm-color-primary); } - &:hover .founderImage { - transform: scale(1.05); - border-color: var(--palette-blue); + .founderImage { + width: 128px; + height: 128px; + border-radius: var(--psadt-card-radius); + margin-bottom: var(--psadt-space-sm); + border: 1px solid var(--psadt-card-border-color); + box-shadow: var(--psadt-card-image-shadow); + background: var(--psadt-card-image-background); } .founderTitle { - font-size: 1.4rem; - font-weight: 700; + font-family: 'Poppins', var(--ifm-font-family-base); + font-size: var(--ifm-font-size-xl); + font-weight: var(--ifm-font-weight-bold); color: var(--ifm-color-emphasis-900); - margin-bottom: 0.25rem; + margin: 0; } .founderSubtitle { - font-weight: 600; - color: var(--palette-blue); - font-size: 1rem; - margin-bottom: 1rem; + font-weight: var(--ifm-font-weight-bold); + color: var(--ifm-color-primary); + font-size: var(--ifm-font-size-base); + margin: 0 0 var(--psadt-space-sm); + } + + .founderLinks a { + color: var(--ifm-color-content-secondary); + margin: 0 0.5rem 0 .5rem; + transition: color var(--psadt-transition-normal); + } + + .founderLinks a:hover { + color: var(--ifm-color-primary); } } } + +.founderGrid { + width: 100%; + display: grid; + grid-template-columns: repeat(3, minmax(0, 1fr)); + gap: var(--psadt-space-xl); + +} + .contributorsBlock { - margin: 2rem auto; - text-align: center; - display: flexbox; + margin: 0 auto; + text-align: left; + display: flex; flex-direction: column; - align-items: center; + align-items: left; h2 { - margin-bottom: 2rem; - font-size: 2rem; + font-size: var(--ifm-h2-font-size); + margin-bottom: var(--psadt-space-2xl); + border-bottom: none; } } -.founderLinks a { - color: var(--ifm-color-primary-darker); - margin: 0 0.5rem; - transition: color 0.2s; -} +/* ─── Contributor Card Grid ─── */ -.founderLinks a:hover { - color: var(--ifm-color-primary); +.contributorGrid { + display: grid; + grid-template-columns: repeat(5, 1fr); + gap: var(--psadt-space-md); + width: 100%; } -/* Dark theme support for founder cards */ -html[data-theme='dark'] .founderCard { - background: linear-gradient(135deg, rgba(0, 0, 0, 0.3), rgba(0, 0, 0, 0.1)); - border: 1px solid rgba(255, 255, 255, 0.1); - box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3); +.contributorCard { + border-radius: var(--psadt-card-radius); + border: 1px solid var(--psadt-card-border-color); + background: var(--psadt-card-background); + box-shadow: var(--psadt-card-shadow); + padding: var(--psadt-space-md); + display: flex; + flex-direction: column; + align-items: center; + gap: var(--psadt-space-md); + text-decoration: none; + color: inherit; + overflow: hidden; + transition: border-color var(--psadt-transition-normal), box-shadow var(--psadt-transition-normal); + min-height: 130px; } -html[data-theme='dark'] .founderCard:hover { - box-shadow: 0 16px 48px rgba(0, 0, 0, 0.4); - border-color: var(--palette-blue); +.contributorCard:hover { + text-decoration: none; + color: inherit; + border-color: var(--ifm-color-primary); + box-shadow: var(--psadt-card-shadow-hover); } -html[data-theme='dark'] .founderCard .founderImage { - border: 4px solid rgba(255, 255, 255, 0.1); - box-shadow: 0 4px 16px rgba(0, 0, 0, 0.3); +.contributorAvatar { + width: 72px; + height: 72px; + border-radius: 25%; + object-fit: cover; + border: 1px solid var(--psadt-card-border-color); + box-shadow: var(--psadt-card-image-shadow); } -html[data-theme='dark'] .founderCard:hover .founderImage { - border-color: var(--palette-blue); +.contributorName { + font-size: var(--ifm-font-size-md); + font-weight: var(--ifm-font-weight-medium); + color: var(--ifm-color-content-secondary); + margin: 0; + text-align: center; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + max-width: 100%; + transition: color var(--psadt-transition-normal); } -html[data-theme='dark'] .founderCard .founderTitle { - color: white; +.contributorCard:hover .contributorName { + color: var(--ifm-color-primary); } /* Responsive adjustments */ @media screen and (max-width: 996px) { - .foundersBlock .row { - display: flex; + .introBlock { flex-direction: column; - align-items: center; + gap: var(--psadt-space-xl); } - .foundersBlock .col { - width: 100%; - max-width: 400px; - margin-bottom: 2rem; + .introTestimonials { + align-self: stretch; } - .founderCard { - margin: 1rem 0; - padding: 2rem 1rem; + .founderGrid { + grid-template-columns: repeat(2, minmax(240px, 1fr)); + } + + .contributorGrid { + grid-template-columns: repeat(4, 1fr); } } @media screen and (max-width: 768px) { + .founderGrid { + grid-template-columns: 1fr; + } + .founderCard { - padding: 1.5rem 1rem; + padding: var(--psadt-space-xl) var(--psadt-space-md); } .founderImage { @@ -195,6 +297,11 @@ html[data-theme='dark'] .founderCard .founderTitle { } .founderSubtitle { - font-size: 0.9rem; + font-size: var(--ifm-font-size-sm); + } + + .contributorGrid { + grid-template-columns: repeat(3, 1fr); + gap: var(--psadt-space-sm); } } diff --git a/src/pages/about.tsx b/src/pages/about.tsx index d693eb4..5045843 100644 --- a/src/pages/about.tsx +++ b/src/pages/about.tsx @@ -5,65 +5,68 @@ import Layout from '@theme/Layout'; import styles from './about.module.css'; import Heading from '@theme/Heading'; import Link from '@docusaurus/Link'; +import { devteam } from '../data/devteam'; +import { testimonials } from '../data/testimonials'; -const AboutPage = () => { - const founders = [ - { - name: 'Sean Lillis', - subtitle: 'Founder / Developer', - image: '../../images/about/sean.jpg', - github: 'https://github.com/seanlillis', - linkedin: 'https://www.linkedin.com/in/sean-lillis-08a4288', - }, - { - name: 'Dan Cunningham', - subtitle: 'Founder / Developer / Project Lead', - image: '../../images/about/dan.jpg', - github: 'https://github.com/sintaxasn', - linkedin: 'https://linkedin.com/in/sintaxasn', - }, - { - name: 'Mo Mashwani', - subtitle: 'Founder / Developer', - image: '../../images/about/mo.jpg', - github: 'https://www.linkedin.com/in/mmashwani', - linkedin: 'https://linkedin.com/in/muhammad-mashwani', - }, - { - name: 'Mitch Richters', - subtitle: 'Lead Developer', - image: '../../images/about/mitch.jpg', - github: 'https://github.com/mjr4077au', - linkedin: 'https://www.linkedin.com/in/mjrichters', - }, - { - name: 'Dan Gough', - subtitle: 'Developer', - image: '../../images/about/dang.jpg', - github: 'https://github.com/DanGough', - linkedin: 'https://www.linkedin.com/in/danielgough', - }, - ]; +interface Contributor { + login: string; + avatar_url: string; + html_url: string; +} + +const CACHE_KEY = 'psadt_contributors'; +const CACHE_TTL = 1000 * 60 * 60; // 1 hour - const [contributors, setContributors] = useState([]); +const AboutPage = () => { + const [contributors, setContributors] = useState([]); + const [isLoading, setIsLoading] = useState(true); + const [error, setError] = useState(null); useEffect(() => { + const excludedLogins = ['seanlillis', 'sintaxasn', 'mmashwani', 'mjr4077au', 'dangough']; + const fetchContributors = async () => { try { + // Check sessionStorage cache first + const cached = sessionStorage.getItem(CACHE_KEY); + if (cached) { + const { data, timestamp } = JSON.parse(cached); + if (Date.now() - timestamp < CACHE_TTL && Array.isArray(data)) { + setContributors(data); + setIsLoading(false); + return; + } + } + const response = await fetch('https://api.github.com/repos/PSAppDeployToolkit/PSAppDeployToolkit/contributors'); + if (!response.ok) { + throw new Error(`GitHub API returned ${response.status}`); + } const data = await response.json(); - const excludedLogins = ['seanlillis', 'sintaxasn', 'mmashwani', 'mjr4077au', 'dangough']; + if (!Array.isArray(data)) { + throw new Error('Unexpected API response format'); + } const contributorsData = data - .map((contributor: { login: string; html_url: string }) => ({ + .map((contributor: Contributor) => ({ login: contributor.login, + avatar_url: contributor.avatar_url, html_url: contributor.html_url, })) - .filter((contributor: { login: string }) => !excludedLogins.includes(contributor.login.toLowerCase())) - .sort((a: { login: string }, b: { login: string }) => a.login.localeCompare(b.login)); + .filter((contributor: Contributor) => !excludedLogins.includes(contributor.login.toLowerCase())) + .sort((a: Contributor, b: Contributor) => a.login.localeCompare(b.login)); setContributors(contributorsData); - } catch (error) { - console.error('Error fetching contributors:', error); + + // Cache the result + try { + sessionStorage.setItem(CACHE_KEY, JSON.stringify({ data: contributorsData, timestamp: Date.now() })); + } catch { + // sessionStorage may be unavailable + } + } catch (err) { + setError('Unable to load contributors at this time.'); + } finally { + setIsLoading(false); } }; @@ -71,112 +74,137 @@ const AboutPage = () => { }, []); return ( - -
+ +
{/* Header Block */} -
- About PSAppDeployToolkit -
- -
-

- The PowerShell App Deployment Toolkit (PSAppDeployToolkit) is an open-source framework which - simplifies the complex scripting challenges of application repackaging, customization, and deployment of - applications in a managed Windows environment. It compliments and enhances existing deployment and - configuration management solutions (such as Microsoft Intune, SCCM, IBM BigFix, Tanium Deploy and VMware - Workspace ONE) with new capabilities. It provides a consistent, corporate-branded deployment experience for - end users, ensures packaging teams follow best practices, and substantially improves overall deployment - success rates. -

-

- PSAppDeployToolkit was created by Sean Lillis, Dan Cunningham and Mo Mashwani in their - spare time while working for one of the 'Big Five' financial services companies, where it was quickly adopted as the global standard for deploying applications. - It was first released to CodePlex in August 2013. Since then, it has grown from a small project to being - almost universally adopted as the de facto deployment standard by companies all overthe world - largely due - to its reputation for stability and ease of use. From small companies to Fortune 500s and federal - governments, PSAppDeployToolkit is used by in-house IT teams, consultants, and managed service providers to - deploy applications on millions of endpoints all over the world. -

-

- - 'Truly powerful application deployment toolkit written in PowerShell! Solving some classic - problems'- Jörgen Nilsson, Microsoft MVP, Enterprise Client Management - -

-

- - 'Another very cool SCCM 2012 must have tool - PowerShell App Deployment Toolkit' -{' '} - Kent Agerlund, Microsoft MVP, Enterprise Client Management - -

+
+ + About PSAppDeployToolkit{' '} +
- {/* Founders Block */} -
- Development Team - - {/* First Row - 3 cards */} -
- {founders.slice(0, 3).map((founder, index) => ( -
-
- {`Image -

{founder.name}

-

{founder.subtitle}

-

- - - {' '} - - - -

{' '} -
+
+
+

+ The PowerShell App Deployment Toolkit (PSAppDeployToolkit or PSADT) is an open-source + framework which simplifies the complex scripting challenges of application repackaging, customization, and + deployment of applications in a managed Windows environment. It complements and enhances existing + deployment and configuration management solutions (such as Microsoft Intune, SCCM, IBM BigFix, Tanium + Deploy and VMware Workspace ONE) with new capabilities. It provides a consistent, corporate-branded + deployment experience for end users, ensures packaging teams follow best practices, and substantially + improves overall deployment success rates. +

+

+ PSAppDeployToolkit was created by Sean Lillis, Dan Cunningham and Mo Mashwani in + their spare time while working for one of the 'Big Five' financial services companies, where it + was quickly adopted as the global standard for deploying applications. It was first released to CodePlex + in August 2013. Since then, it has grown from a small project to being almost universally adopted as the + de facto deployment standard by companies all over the world - largely due to its reputation for stability + and ease of use. From small companies to Fortune 500s and federal governments, PSAppDeployToolkit is used + by in-house IT teams, consultants, and managed service providers to deploy applications on millions of + endpoints all over the world. +

+

+ In 2023, the PSADT team joined forces with Patch My PC, who now steward the project's ongoing + development and maintenance. PSADT finally saw its long awaited v4 release in December 2024, + followed by v4.1 in July 2025. The core team of developers and contributors continue to actively + 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. +

+
+
+ {testimonials.map((testimonial) => ( +
+

“{testimonial.quote}”

+

+ {testimonial.name} +
+ {testimonial.company} +

))}
+
- {/* Second Row - 2 centered cards */} -
-
- {founders.slice(3, 5).map((founder, index) => ( -
-
- {`Image -

{founder.name}

-

{founder.subtitle}

+ {/* Founders Block */} +
+ + Development Team + +

+ This is the ragtag bunch who have been flying the PSADT flag for 14+ years. Some haven't been around as + long, some aren't as active these days - but we've all put in countless hours building this, implementing + requested features, providing support, attended conferences and given talks. We all have a deep passion for + this project and are proud of what we've built together. +

+
+ {devteam.slice(0, 6).map((member) => ( +
+
+ {`${member.name}, +

{member.name}

+

{member.subtitle}

- - + +

{' '} +

))} -
{/* Contributors Block */} -
- Contributors -

- {contributors.map((contributor, index) => ( - - {contributor.html_url ? ( - - {contributor.login} - - ) : ( - `${contributor.login}` - )} - {index < contributors.length - 1 && ' '} - - ))} +

+ + Contributers +

+ We also want to give a shoutout to the many other contributors who have come and gone over the years - you + know who you are, and so do we! (thanks GitHub contributer stats!), and we thank you for your contributions, + whether it was a single bug fix, a feature enhancement or documentation improvement. +

+
+ {isLoading &&

Loading contributors...

} + {error &&

{error}

} + {!isLoading && !error && ( +
+ {contributors.map((contributor) => ( + + {contributor.login} +

{contributor.login}

+ + ))} +
+ )} +
diff --git a/src/pages/ecosystem.module.css b/src/pages/ecosystem.module.css new file mode 100644 index 0000000..f534e86 --- /dev/null +++ b/src/pages/ecosystem.module.css @@ -0,0 +1,462 @@ +@keyframes fadeInUp { + from { + opacity: 0; + transform: translateY(12px); + } + to { + opacity: 1; + transform: translateY(0); + } +} + +/* Ecosystem Page */ +.ecosystemPage { + padding: 3rem 0 4rem; + animation: fadeInUp 0.5s var(--psadt-ease-standard) both; +} + +/* Header */ +.headerBlock { + text-align: left; + gap: var(--psadt-space-lg); +} + +.headerBlock h1 { + text-align: left; + font-size: var(--ifm-font-size-4xl); + font-weight: var(--ifm-font-weight-extrabold); + color: var(--ifm-color-primary); + border-bottom: none; +} + +.subtitle { + padding-top: 2rem; + padding-bottom: 1rem; + max-width: 960px; +} + +/* Page Layout: sidebar + grid */ +.pageLayout { + display: grid; + grid-template-columns: 240px 1fr; + gap: var(--psadt-space-xl); + align-items: start; +} + +/* Filter Sidebar */ +.filterSidebar { + position: sticky; + top: calc(var(--ifm-navbar-height) + var(--psadt-space-lg)); + background: var(--psadt-sidebar-glass-surface); + -webkit-backdrop-filter: blur(12px); + backdrop-filter: blur(12px); + border: 1px solid var(--psadt-card-border-color); + border-radius: var(--ifm-global-radius); + padding: var(--psadt-space-lg); + box-shadow: var(--psadt-card-shadow); + max-height: calc(100vh - var(--ifm-navbar-height) - var(--psadt-space-xl)); + overflow-y: auto; +} + +.filterSection { + margin-bottom: var(--psadt-space-lg); +} + +.filterSection:last-of-type { + margin-bottom: 0; +} + +.filterLabel { + font-size: var(--ifm-font-size-xs); + font-weight: var(--ifm-font-weight-bold); + color: var(--ifm-color-content-secondary); + margin-bottom: var(--psadt-space-sm); + text-transform: uppercase; + letter-spacing: 0.06em; +} + +.filterButtons { + display: flex; + flex-direction: column; + gap: 4px; +} + +.filterButton { + padding: 5px 12px; + border-radius: var(--psadt-radius-sm); + border: 1px solid transparent; + background: transparent; + color: var(--ifm-color-content-secondary); + font-size: var(--ifm-font-size-sm); + font-weight: var(--ifm-font-weight-medium); + cursor: pointer; + transition: background-color var(--psadt-transition-normal), color var(--psadt-transition-normal); + line-height: 1.4; + text-align: left; +} + +.filterButton:hover { + background: var(--ifm-menu-color-background-hover); + color: var(--ifm-color-primary); +} + +.filterButtonActive { + background: var(--ifm-color-primary); + color: var(--ifm-color-content-inverse); + font-weight: var(--ifm-font-weight-bold); + border-color: var(--ifm-color-primary-dark); +} + +.filterButtonActive:hover { + background: var(--ifm-color-primary-dark); + color: var(--ifm-color-content-inverse); +} + +/* Filter Footer */ +.filterFooter { + margin-top: var(--psadt-space-lg); + padding-top: var(--psadt-space-md); + border-top: 1px solid var(--psadt-card-border-color); + display: flex; + flex-direction: column; + gap: var(--psadt-space-sm); +} + +.resultCount { + font-size: var(--ifm-font-size-xs); + color: var(--ifm-color-content-secondary); +} + +.clearButton { + padding: 5px 12px; + border-radius: var(--psadt-radius-sm); + border: 1px solid var(--psadt-card-border-color); + background: transparent; + color: var(--ifm-color-content-secondary); + font-size: var(--ifm-font-size-xs); + cursor: pointer; + transition: border-color var(--psadt-transition-normal), color var(--psadt-transition-normal); + text-align: center; +} + +.clearButton:hover { + border-color: var(--ifm-color-danger); + color: var(--ifm-color-danger); +} + +/* Solution Grid */ +.solutionGrid { + display: grid; + grid-template-columns: repeat(2, 1fr); + gap: var(--psadt-space-xl); +} + +/* Solution Card */ +.solutionCard { + background: var(--psadt-card-background); + border: 1px solid var(--psadt-card-border-color); + border-radius: var(--ifm-global-radius); + padding: var(--psadt-space-xl); + box-shadow: var(--psadt-card-shadow); + display: flex; + flex-direction: column; + position: relative; + overflow: hidden; + transition: box-shadow var(--psadt-transition-normal), border-color var(--psadt-transition-normal); +} + +.solutionCard:hover { + box-shadow: var(--psadt-card-shadow-hover); + border-color: var(--ifm-color-primary); +} + +/* Card Logo */ +.logoContainer { + width: 96px; + height: 96px; + border-radius: var(--ifm-global-radius); + background: var(--psadt-card-image-background); + display: flex; + align-items: center; + justify-content: center; + margin-bottom: var(--psadt-space-lg); + overflow: hidden; + object-fit: cover; + border: 1px solid var(--psadt-card-border-color); + box-shadow: var(--psadt-card-image-shadow); +} + +.logoContainer:hover { + border-color: var(--ifm-color-primary); + box-shadow: var(--psadt-card-image-shadow); +} + + +.logoImage { + width: 64px; + height: 64px; + object-fit: contain; +} + +.logoFallback { + width: 64px; + height: 64px; + display: flex; + align-items: center; + justify-content: center; + background: var(--ifm-color-primary); + border-radius: var(--ifm-global-radius); + color: white; + font-weight: var(--ifm-font-weight-bold); + font-size: var(--ifm-font-size-2xl); +} + +/* Card Content */ +.cardName { + font-size: var(--ifm-font-size-xl); + font-weight: var(--ifm-font-weight-bold); + margin-bottom: var(--psadt-space-sm); + line-height: 1.3; +} + +.cardName a { + color: var(--ifm-color-content); + text-decoration: none; + transition: color var(--psadt-transition-normal); +} + +.cardName a:hover { + color: var(--ifm-color-primary); + text-decoration: underline; +} + +.cardDescription { + font-size: var(--ifm-font-size-base); + color: var(--ifm-color-content-secondary); + line-height: 1.6; + margin-bottom: var(--psadt-space-lg); + flex-grow: 1; +} + +/* Badge Groups */ +.badgeGroups { + display: flex; + flex-direction: column; + gap: var(--psadt-space-sm); + margin-top: auto; +} + +.badgeRow { + display: flex; + flex-wrap: wrap; + align-items: center; + gap: 5px; +} + +.badgeRowLabel { + font-size: 10px; + font-weight: var(--ifm-font-weight-bold); + text-transform: uppercase; + letter-spacing: 0.04em; + color: var(--ifm-color-content-secondary); + margin-right: 2px; + white-space: nowrap; +} + +/* License badges */ +.badgeLicense { + padding: 2px 10px; + border-radius: var(--ifm-global-radius); + font-size: 11px; + font-weight: var(--ifm-font-weight-semibold); + white-space: nowrap; +} + +.badgeLicenseCommercial { + background: var(--psadt-badge-license-commercial-bg); + color: var(--psadt-badge-license-commercial-text); +} + +.badgeLicenseFree { + background: var(--psadt-badge-license-free-bg); + color: var(--psadt-badge-license-free-text); +} + +/* Works With badges */ +.badgeWorksWith { + padding: 2px 10px; + border-radius: var(--ifm-global-radius); + font-size: 11px; + font-weight: var(--ifm-font-weight-medium); + white-space: nowrap; + background-color: var(--psadt-badge-workswith-bg); + color: var(--psadt-badge-workswith-text); + } +/* Capabilities badges */ +.badgeCapability { + padding: 2px 10px; + border-radius: var(--ifm-global-radius); + font-size: 11px; + font-weight: var(--ifm-font-weight-medium); + white-space: nowrap; + background: var(--psadt-badge-capability-bg); + color: var(--psadt-badge-capability-text); + } + +/* Empty State */ +.emptyState { + grid-column: 1 / -1; + text-align: center; + padding: var(--psadt-space-3xl) var(--psadt-space-xl); + color: var(--ifm-color-content-secondary); +} + +.emptyState p { + font-size: var(--ifm-font-size-lg); + margin: 0; +} + +.footerBlock { + padding-top: 4rem; + padding-bottom: 0; + text-align: center; + font-size: var(--ifm-font-size-xl); +} + +.footerBlock .gitHubLink { + font-weight: var(--ifm-font-weight-extrabold); +} + +/* ============ Dark Mode ============ */ + +html[data-theme='dark'] .filterSidebar { + background: var(--psadt-sidebar-glass-surface); +} + +html[data-theme='dark'] .filterButton { + color: var(--ifm-color-content-secondary); +} + +html[data-theme='dark'] .filterButton:hover { + color: var(--ifm-color-content); + background: var(--ifm-menu-color-background-hover); +} + +html[data-theme='dark'] .filterButtonActive { + background: var(--ifm-color-primary); + color: var(--ifm-color-content-inverse); +} + +html[data-theme='dark'] .filterFooter { + border-top-color: var(--ifm-color-emphasis-300); +} + +html[data-theme='dark'] .clearButton { + border-color: var(--ifm-color-emphasis-300); + color: var(--ifm-color-content-secondary); +} + +html[data-theme='dark'] .cardName a { + color: var(--ifm-color-content); +} + +html[data-theme='dark'] .cardName a:hover { + color: var(--ifm-color-primary); +} + +html[data-theme='dark'] .badgeLicenseCommercial { + background: var(--psadt-badge-license-commercial-bg); + color: var(--psadt-badge-license-commercial-text); +} + +html[data-theme='dark'] .badgeLicenseFree { + background: var(--psadt-badge-license-free-bg); + color: var(--psadt-badge-license-free-text); +} + +html[data-theme='dark'] .badgeWorksWith { + background-color: var(--psadt-badge-workswith-bg); + color: var(--psadt-badge-workswith-text); +} + +html[data-theme='dark'] .badgeCapability { + background: var(--psadt-badge-capability-bg); + color: var(--psadt-badge-capability-text); +} + +html[data-theme='dark'] .badgeRowLabel { + color: var(--ifm-color-content-secondary); +} + +.filterButton:focus-visible, +.clearButton:focus-visible, +.cardName a:focus-visible { + outline: 2px solid var(--ifm-color-primary); + outline-offset: 2px; + box-shadow: 0 0 0 3px var(--psadt-focus-ring-color); +} + +/* ============ Responsive ============ */ + +/* 2-col grid at 1200px */ +@media (max-width: 1200px) { + .solutionGrid { + grid-template-columns: repeat(2, 1fr); + gap: var(--psadt-space-lg); + } +} + +/* Collapse sidebar at 996px */ +@media (max-width: 996px) { + .pageLayout { + grid-template-columns: 1fr; + } + + .filterSidebar { + position: static; + max-height: none; + } + + .filterButtons { + flex-direction: row; + flex-wrap: wrap; + } + + .filterButton { + padding: 5px 14px; + border: 1px solid var(--psadt-card-border-color); + border-radius: var(--ifm-global-radius); + } + + .solutionGrid { + grid-template-columns: repeat(2, 1fr); + gap: var(--psadt-space-lg); + } +} + +/* 1 column at 768px */ +@media (max-width: 768px) { + .solutionGrid { + grid-template-columns: 1fr; + gap: var(--psadt-space-md); + } + + .cardName { + font-size: var(--ifm-font-size-lg); + } +} + +/* Reduced motion support */ +@media (prefers-reduced-motion: reduce) { + .solutionCard { + transition: none; + } + + .solutionCard:hover { + transform: none; + } + + .filterButton { + transition: none; + } +} diff --git a/src/pages/ecosystem.tsx b/src/pages/ecosystem.tsx new file mode 100644 index 0000000..77f9589 --- /dev/null +++ b/src/pages/ecosystem.tsx @@ -0,0 +1,244 @@ +import { useState, useMemo, useCallback } from 'react'; +import clsx from 'clsx'; +import Layout from '@theme/Layout'; +import Heading from '@theme/Heading'; +import { useColorMode } from '@docusaurus/theme-common'; +import styles from './ecosystem.module.css'; +import { solutions, SOLUTION_CATEGORIES } from '../data/ecosystem'; +import type { Solution } from '../data/ecosystem'; + +type TypeFilter = 'all' | 'commercial' | 'free'; + +const EditPage = 'https://github.com/PSAppDeployToolkit/website/blob/main/src/data/ecosystem.tsx' as const; + +const WORKS_WITH_OPTIONS = ['ConfigMgr', 'Intune', 'Standalone'] as const; + +function SolutionCard({ solution }: { solution: Solution }) { + const initial = solution.name.charAt(0).toUpperCase(); + const { colorMode } = useColorMode(); + const logoSrc = + colorMode === 'dark' && solution.logoDark + ? solution.logoDark + : solution.logo; + + return ( +
+
+ {logoSrc ? ( + {`${solution.name} + ) : ( +
{initial}
+ )} +
+

+ + {solution.name} + +

+

{solution.description}

+
+ {/* License row */} +
+ License: + + {solution.type === 'commercial' ? 'Commercial' : 'Free'} + +
+ {/* Works With row */} +
+ Works with: + {solution.worksWith.map((w) => ( + + {w} + + ))} +
+ {/* Capabilities row */} +
+ Capabilities: + {solution.categories.map((cat) => ( + + {cat} + + ))} +
+
+
+ ); +} + +export default function EcosystemPage() { + const [typeFilter, setTypeFilter] = useState('all'); + const [selectedWorksWith, setSelectedWorksWith] = useState>(new Set()); + const [selectedCategories, setSelectedCategories] = useState>(new Set()); + + const toggleWorksWith = useCallback((value: string) => { + setSelectedWorksWith((prev) => { + const next = new Set(prev); + if (next.has(value)) { + next.delete(value); + } else { + next.add(value); + } + return next; + }); + }, []); + + const toggleCategory = useCallback((category: string) => { + setSelectedCategories((prev) => { + const next = new Set(prev); + if (next.has(category)) { + next.delete(category); + } else { + next.add(category); + } + return next; + }); + }, []); + + const clearFilters = useCallback(() => { + setTypeFilter('all'); + setSelectedWorksWith(new Set()); + setSelectedCategories(new Set()); + }, []); + + const filteredSolutions = useMemo(() => { + return solutions.filter((solution) => { + if (typeFilter !== 'all' && solution.type !== typeFilter) { + return false; + } + if (selectedWorksWith.size > 0) { + const hasMatch = solution.worksWith.some((w) => selectedWorksWith.has(w)); + if (!hasMatch) { + return false; + } + } + if (selectedCategories.size > 0) { + const hasMatch = solution.categories.some((cat) => selectedCategories.has(cat)); + if (!hasMatch) { + return false; + } + } + return true; + }); + }, [typeFilter, selectedWorksWith, selectedCategories]); + + const hasActiveFilters = + typeFilter !== 'all' || selectedWorksWith.size > 0 || selectedCategories.size > 0; + + return ( + +
+
+ Ecosystem +

+ Explore the PSADT ecosystem of partner solutions, integrations, and tools for application packaging and + deployment. +

+
+ +
+ {/* Filter Sidebar */} + + + {/* Solution Grid */} +
+ {filteredSolutions.length > 0 ? ( + filteredSolutions.map((solution) => ) + ) : ( +
+

No solutions match your current filters.

+
+ )} +
+
+ +
+

+ Want to see your solution added to this page? + + + {' '} + Add and submit a PR on GitHub. + + +

+
+
+
+ ); +} diff --git a/src/pages/features.module.css b/src/pages/features.module.css index bf43978..edfb823 100644 --- a/src/pages/features.module.css +++ b/src/pages/features.module.css @@ -1,182 +1,161 @@ -/* Desktop styling */ -.featureColumns { - border: 3px solid rgb(0, 0, 0, 0.1); - background-color: #fff; - border-radius: var(--ifm-global-radius); - padding: 2.5rem 2.5rem 1.5rem; - margin: 0 0 2.5rem; +/* ─── Page Header ─── */ +.featuresPage { + padding-bottom: var(--psadt-space-3xl); } -.featureColumns h3 { - font-size: 1.8rem; - padding-bottom: 1rem; - text-align: center; -} - -.featureImage { - width: 75px; - padding: 1rem; - border-radius: var(--ifm-global-radius); - margin-bottom: 1.5rem; - background-color: rgba(16, 36, 69, 0.05); -} - -.featureHeader { - font-size: 1.2rem; - font-weight: 500; -} - -.capabilityHeader { - font-size: 1.5rem; - font-weight: 700; - padding-bottom: 1rem; +.pageHeader { + text-align: left; + margin-bottom: var(--psadt-space-3xl); } -.capabilitiesContainer { - padding: 0 var(--ifm-spacing-horizontal) 7rem; +.pageTitle { + font-family: 'Poppins', var(--ifm-font-family-base); + font-weight: var(--ifm-font-weight-bold); + font-size: var(--ifm-h1-font-size); + letter-spacing: -0.025em; + line-height: 1.1; + font-family: 'Poppins', var(--ifm-font-family-base); + font-weight: var(--ifm-font-weight-bold); + font-size: var(--ifm-h1-font-size); + color: var(--ifm-color-primary); + margin-bottom: var(--psadt-space-md); } -.featureText ul { - padding: 0 6px 0 0; - list-style-type: none; +.pageSubtitle { + font-size: var(--ifm-font-size-xl); + color: var(--ifm-color-content-secondary); + max-width: 50ch; + line-height: 1.6; } -.featureText li { - padding: 0 0 1rem; +/* ─── Feature Group List ─── */ +.groupList { + display: flex; + flex-direction: column; + gap: var(--psadt-space-2xl); } -.featureText { - font-size: 0.9rem; +/* ─── Feature Group Card ─── */ +.groupCard { + padding: var(--psadt-space-lg) var(--psadt-space-xl); + border-radius: var(--psadt-card-radius); + background: var(--psadt-card-background); + border: 1px solid var(--psadt-card-border-color); + transition: + box-shadow var(--psadt-transition-normal), + border-color var(--psadt-transition-normal); } -.introHeader { - text-align: center; - font-weight: 600; - font-size: 1.5rem; +.groupCard:hover { + box-shadow: var(--psadt-card-shadow-hover); + border-color: var(--psadt-card-border-color-hover); } -.introText { - text-align: center; - width: 60%; - font-size: 0.9rem; - display: block; - margin: 2rem auto 2.5rem; +.groupHeader { + display: flex; + align-items: flex-start; + gap: var(--psadt-space-lg); + margin-bottom: var(--psadt-space-md); } -.blockStyling { - margin: 4rem 0 8rem; +.groupIcon { + width: 72px; + height: 72px; + flex-shrink: 0; + object-fit: contain; } -.blockTitle { - text-align: left; - font-weight: 500; - font-size: 2.2em; - padding: 0rem 0 1rem; - line-height: 1.3em; - margin: 0 0 0.8rem; +.groupHeaderText { + flex: 1; + min-width: 0; } -.capabilitiesContainer .blockTitle { - text-align: center; +.groupTitle { + font-family: 'Poppins', var(--ifm-font-family-base); + font-weight: var(--ifm-font-weight-bold); + font-size: var(--ifm-h3-font-size); + margin-bottom: var(--psadt-space-xs); } -.capabilitiesTitle { - text-align: center; - font-weight: 500; - font-size: 2.2em; - padding: 2rem 0 0.5rem; - line-height: 1.3em; - margin: 0 0 0.8rem; +.groupDescription { + font-size: var(--ifm-font-size-base); + color: var(--ifm-color-content-secondary); + line-height: 1.6; + margin: 0; } -.logoThickText { - color: var(--palette-blue); - font-weight: 800 !important; +/* ─── Feature Items Grid ─── */ +.itemsGrid { + display: grid; + grid-template-columns: repeat(2, 1fr); + gap: var(--psadt-space-sm) var(--psadt-space-sm); + list-style: none; + padding: 0; + margin: 0; } -.blockText { - text-align: left; - font-size: 1.1rem; +.featureItem { + display: flex; + align-items: flex-start; + gap: var(--psadt-space-sm); + padding: var(--psadt-space-sm) 0; } -.blockImage { - max-height: 400px; +.checkIcon { + flex-shrink: 1; + color: var(--ifm-color-success); + margin-top: 2px; } -main.features { - align-items: center; - width: 100%; - background-color: rgba(0, 0, 0, 0.05) !important; +.featureText { + font-size: var(--ifm-font-size-md); + line-height: 1.5; + color: var(--ifm-color-content); } -.blockText ul { - list-style-image: url('@site/static/images/checkmark.svg'); - font-size: 1rem; - padding: 0 6pxpx 0 15px; +.versionBadge { + display: inline-block; + margin-left: var(--psadt-space-sm); + padding: 1px 8px; + font-size: 0.7rem; + font-weight: var(--ifm-font-weight-semibold); + border-radius: 999px; + background-color: var(--ifm-color-primary-lighter); + color: var(--ifm-color-primary-darkest); + vertical-align: middle; + line-height: 1.6; } -.blockText li::marker { - font-size: 1.8em; - line-height: 0.1; +html[data-theme='dark'] .versionBadge { + background-color: var(--ifm-color-primary-darkest); + color: var(--ifm-color-primary-lightest); } -/* Forced Desktop styling only */ -@media (min-width: 997px) { - .capabilityColumns { - padding: 3rem 1.5rem 0; - } - - html[data-theme='dark'] .featureImage { - background-color: rgba(255, 255, 255, 0.1); +/* ─── Responsive: Tablet ─── */ +@media screen and (max-width: 996px) { + .groupCard { + padding: var(--psadt-space-xl); } } -/* Tablet and Phone styling */ -@media (max-width: 996px) { - .featureColumns { - padding: 2rem 2rem 1.5rem; - display: block; - } - - .capabilityColumns { - padding: 3rem 2rem 2rem; - margin: 1rem auto; - } - - .blockStyling { - margin: 1.5rem 0 5rem; - } - - .featureImage { - width: 50%; - } - - .introText { - width: 90% !important; - font-size: 0.9rem; - display: block; - margin: 2rem auto 2.5rem; +/* ─── Responsive: Mobile ─── */ +@media screen and (max-width: 768px) { + .groupHeader { + flex-direction: column; + align-items: left; + text-align: left; } - .blockImage { - display: none; + .groupIcon { + width: 48px; + height: 48px; } - .featureText ul { - margin: 0; + .itemsGrid { + grid-template-columns: 1fr; } - .capabilitiesContainer .blockTitle { - text-align: left; + .groupCard { + padding: var(--psadt-space-lg); } - - .featureColumns h3 { - text-align: left; - } -} - -/* Dark Theme Styling */ -html[data-theme='dark'] .featureColumns { - background-color: var(--ifm-navbar-background-color); - border: 1px solid rgba(255, 255, 255, 0.1); } diff --git a/src/pages/features.tsx b/src/pages/features.tsx index bd74bd7..9aa1b81 100644 --- a/src/pages/features.tsx +++ b/src/pages/features.tsx @@ -1,261 +1,107 @@ -// eslint-disable-next-line @typescript-eslint/no-unused-vars -import React from 'react'; import clsx from 'clsx'; -// @ts-ignore - -import styles from './features.module.css'; -// @ts-ignore import Layout from '@theme/Layout'; +import Heading from '@theme/Heading'; +import { featureGroups } from '../data/features'; +import type { FeatureGroup } from '../data/features'; +import { motion, useReducedMotion } from 'framer-motion'; +import styles from './features.module.css'; + +function PageHeader() { + const prefersReducedMotion = useReducedMotion(); -export default function FeaturesPage() { return ( - -
-
-
-
-

- Standardize and enhance every software deployment -

-

- PSAppDeployToolkit allows you to encapsulate a typical Windows Installer MSI or Setup executable to - provide it with enhanced capabilities. -

-
-
-
-
    -
  • -

    Validate prerequisites such as dependencies on minimum software versions

    -
  • -
  • -

    Ensure that in-use applications are closed and prevent reopening during the deployment

    -
  • -
  • -

    Check with the user if now is a good time to start an install and allow them to defer

    -
  • -
  • -

    Uninstall existing applications and perform clean up operations

    -
  • -
-
-
-
    -
  • -

    Capture any important settings that may be required for an upgrade or migration

    -
  • -
  • -

    Run the installation silently and capture logs in the event of an issue

    -
  • -
  • -

    Run post-installation configuration tasks to customize for your environment

    -
  • -
  • -

    - Prompt the user to restart their computer if required, immediately, on a timer and with a - deadline -

    -
  • -
-
-
-
-
-
- PSAppDeployToolkit -
-
-
+ + + Features + +

Everything you need to deploy applications with confidence.

+
+ ); +} -
-
-
- PSAppDeployToolkit -
-
-

- A robust and battle-tested deployment framework -

-

- PSAppDeployToolkit was built with large enterprise environments in mind, where stability is absolutely - crucial to ensure the success of mass deployments. -

-

- That stability is exactly why PSAppDeployToolkit is used by Fortune 500 companies and federal - governments, banks, globally recognized brands, white-label packaging factories, defence contractors and - military, in-house IT teams, consultants and managed service providers to deploy applications on - millions of Windows endpoints all over the world every day. -

-
-
-
+function FeatureGroupCard({ group, index }: { readonly group: FeatureGroup; readonly index: number }) { + const prefersReducedMotion = useReducedMotion(); -
-

- Capability and Feature Details -

-
-

Pre-Built Powershell Functions

-
-
-
-
-
    -
  • - Pre-built functions come with automated logging - so you can quickly find problems in your - scripts if they occur. -
  • -
  • - Provides the ability to execute any type of setup (Windows Installer or Executable-based) with - automated exit code handling, as well as MSI-based installers having their logs captured and - stored alongside PSAppDeployToolkit logs. -
  • -
  • - Mass remove MSI applications with a partial match (e.g. remove all versions of all MSI - applications which match *Office*) -
  • -
  • - Perform MCM actions such as Machine and User Policy Refresh, Inventory Update and Software - Update -
  • -
  • Supports installation of applications on Citrix / Remote Desktop Session Host Servers
  • -
  • Check whether a PowerPoint slide show is running in full screen presentation mode
  • -
-
-
-
-
-
-
-
    -
  • Update Group Policy
  • -
  • Copy / Delete Files
  • -
  • Get / Set / Remove Registry Keys and Values
  • -
  • Get / Set INI File Keys and Values
  • -
  • Check File versions
  • -
  • Pin or Unpin applications to the Start Menu or Task Bar
  • -
  • Create Start Menu Shortcuts
  • -
  • Register / Unregister DLL files
  • -
  • Refresh desktop icons / environment variables
  • -
  • Test network connectivity
  • -
  • Test power connectivity
  • -
-
-
-
-
-
+ const itemContainer = { + hidden: {}, + show: { transition: { staggerChildren: prefersReducedMotion ? 0 : 0.04 } }, + }; -
-

3rd-Party Integration

-
-
-
-
-
    -
  • - Handles MCM exit codes, including time sensitive dialogs supporting *MCM Fast Retry* - providing - more accurate Reporting (no more Failed due to timeout errors). -
  • -
  • - Ability to prevent reboot codes (3010) from being passed back to MCM, which would cause a reboot - prompt. -
  • -
  • - Supports the MCM application model by providing an install and uninstall deployment type for - every deployment script. -
  • -
-
-
-
-
-
-
-
    -
  • - Bundle multiple application installations to overcome the supported limit of 5 applications in - the MCM application dependency chain. -
  • -
  • - Compared to compiled deployment packages, e.g. WiseScript, PSAppDeployToolkit utilizes the - Microsoft Endpoint Configuration Management cache correctly and MCM Distribution Point bandwidth - more efficiently by using loose files. -
  • -
-
-
-
-
-
+ const itemVariant = { + hidden: { opacity: 0, x: -10 }, + show: { opacity: 1, x: 0, transition: { duration: prefersReducedMotion ? 0 : 0.3 } }, + }; -
-

User Experience

-
-
-
-
-
    -
  • - An interface to prompt the user to close specified applications that are open prior to starting - the application deployment. The user is prompted to save their documents and has the option to - close the programs themselves, have PSAppDeployToolkit close the programs, or optionally defer. - Optionally, a countdown can be displayed until the applications are automatically closed. -
  • -
  • - The ability to allow the user to defer an installation X number of times, X number of days or - until a deadline date is reached. -
  • -
  • - The ability to prevent the user from launching the applications that need to be closed while the - application installation is in progress. -
  • -
  • - An indeterminate progress dialog with customizable message text that can be updated throughout - the deployment. -
  • -
  • - A restart prompt with an option to restart later or restart now and a countdown to automatic - restart. -
  • -
-
-
-
-
-
-
-
    -
  • The ability to notify the user if disk space requirements are not met.
  • -
  • Custom dialog boxes with options to customize title, text, buttons & icon.
  • -
  • - Balloon tip notifications to indicate the beginning and end of an installation and the success - or failure of an installation. -
  • -
  • - Branding of the above UI components using a custom logo icon and banner for your own - Organization. -
  • -
  • - The ability to run in interactive, silent (no dialogs) or non-interactive mode (default for - running MCM task sequence or session 0). -
  • -
  • - The UI is localized into several languages and more can be easily added using the XML - configuration file. -
  • -
-
-
-
-
+ return ( + +
+ +
+ + {group.title} + +

{group.description}

+
+
+ + + {group.items.map((item) => ( + + + + {item.text} + {item.version && {item.version}} + + + ))} + +
+ ); +} + +export default function FeaturesPage() { + return ( + +
+
+ +
+ {featureGroups.map((group, i) => ( + + ))}
-
+
); } diff --git a/src/pages/index.module.css b/src/pages/index.module.css index 2aa5b3d..c497c45 100644 --- a/src/pages/index.module.css +++ b/src/pages/index.module.css @@ -1,88 +1,355 @@ -/** - * CSS files with the .module.css suffix will be treated as CSS modules - * and scoped locally. - */ - +/* ─── Hero ─── */ .heroBanner { - text-align: center; position: relative; - overflow: visible; - color: var(--palette-blue-darkest); - background-image: url('@site/static/images/background-image-light.jpg'); - background-size: cover; - padding: 4.5rem 0 3.5rem; + overflow: hidden; + padding: 6rem 0 4rem; } -html[data-theme='dark'] .heroBanner { - background-image: url('@site/static/images/background-image-dark.jpg'); - color: #f3f3f3; +.heroRow { + align-items: center; + row-gap: var(--psadt-space-2xl); } -.logo { - width: 350px; - pointer-events: none; +.heroTextCol { display: flex; - justify-content: center; + flex-direction: column; + align-items: flex-start; + gap: var(--psadt-space-md); +} + +.heroTitle { + font-family: 'Poppins', var(--ifm-font-family-base); + font-weight: var(--ifm-font-weight-semibold); + font-size: clamp(2.25rem, 5vw, 3.5rem); + line-height: 1.25; + margin-bottom: 0; } -.subtitle { - margin: 0 auto 2rem; +.heroAccent { + color: var(--ifm-color-primary); + font-weight: var(--ifm-font-weight-extrabold); } -.startedButton { +.heroSubtitle { + font-size: var(--ifm-font-size-xl); + color: var(--ifm-color-content-secondary); + max-width: 52ch; + line-height: 1.6; + margin-bottom: 0; +} + +.heroCtas { + display: flex; + gap: var(--psadt-space-md); + flex-wrap: wrap; + padding-top: var(--psadt-space-sm); +} + +/* ─── Hero Visual / Screenshots ─── */ +.heroVisualCol { display: flex; - align-items: center; justify-content: center; } -.startedButton a { - font-weight: 500; - padding: 0.8rem 1.5rem; - border: 1px solid #f3f3f3; - border-radius: var(--ifm-global-radius); - color: #f3f3f3; +.screenshotContainer { + position: relative; + width: 100%; + max-width: 480px; + min-height: clamp(360px, 44vw, 520px); + perspective: 800px; +} + +.heroWatermark { + position: absolute; + inset: -15% -10%; + width: 120%; + height: 120%; + object-fit: contain; + opacity: 0.045; + pointer-events: none; + z-index: 0; +} + +.screenshot { + position: absolute; + width: 100%; + object-fit: cover; + will-change: transform, opacity, filter; +} + +.screenshotLight { + top: 0%; + left: 0%; + z-index: 1; +} + +.screenshotDark { + top: 15%; + left: 9%; + z-index: 2; +} + +/* ─── What Is PSADT ─── */ +.whatIsSection { + padding-block: var(--psadt-space-3xl); +} + +.whatIsRow { + align-items: flex-start; + row-gap: var(--psadt-space-2xl); +} + +.whatIsText { + padding-right: var(--psadt-space-2xl); +} + +.sectionHeading { + font-family: 'Poppins', var(--ifm-font-family-base); + font-weight: var(--ifm-font-weight-bold); + font-size: var(--ifm-h2-font-size); + margin-bottom: var(--psadt-space-md); +} + +.sectionDescription { + font-size: var(--ifm-font-size-lg); + color: var(--ifm-color-content-secondary); + line-height: 1.7; + max-width: 65ch; +} + +.sectionDescriptionCenter { + margin-inline: auto; + text-align: center; + margin-bottom: var(--psadt-space-2xl); +} + +.valuePropGrid { + display: flex; + flex-direction: column; + gap: var(--psadt-space-lg); +} + +.valuePropCard { + display: flex; + align-items: flex-start; + gap: var(--psadt-space-md); + padding: var(--psadt-space-lg); + border-radius: var(--psadt-card-radius); + background: var(--psadt-card-background); + border: 1px solid var(--psadt-card-border-color); + transition: + box-shadow var(--psadt-transition-normal), + border-color var(--psadt-transition-normal); +} + +.valuePropCard:hover { + box-shadow: var(--psadt-card-shadow-hover); + border-color: var(--psadt-card-border-color-hover); } -html[data-theme='dark'] .startedButton a { - color: #fff; +.valuePropIcon { + width: 40px; + height: 40px; + flex-shrink: 0; + object-fit: contain; } -.introText { - text-align: left; - font-size: 1rem; +.valuePropTitle { display: block; - margin: 1rem auto 2.5rem; + font-weight: var(--ifm-font-weight-semibold); + margin-bottom: var(--psadt-space-xs); +} + +.valuePropDescription { + margin: 0; + font-size: var(--ifm-font-size-sm); + color: var(--ifm-color-content-secondary); + line-height: 1.5; +} + +/* ─── Highlights Strip ─── */ +.highlightsSection { + padding-block: var(--psadt-space-2xl); +} + +.highlightsGrid { + display: grid; + grid-template-columns: repeat(4, 1fr); + gap: var(--psadt-space-lg); + text-align: center; } +.highlightItem { + display: flex; + flex-direction: column; + align-items: center; + gap: var(--psadt-space-xs); + padding: var(--psadt-space-lg) var(--psadt-space-md); +} + +.highlightStat { + font-family: 'Poppins', var(--ifm-font-family-base); + font-size: var(--ifm-font-size-4xl); + font-weight: var(--ifm-font-weight-extrabold); + color: var(--ifm-color-primary); + line-height: 1.1; +} + +.highlightLabel { + font-weight: var(--ifm-font-weight-semibold); + font-size: var(--ifm-font-size-lg); + color: var(--ifm-color-content); +} + +.highlightDetail { + font-size: var(--ifm-font-size-sm); + color: var(--ifm-color-content-secondary); +} + +/* ─── Feature Preview ─── */ +.featureSection { + padding-block: var(--psadt-space-3xl); +} + +.featureGrid { + display: grid; + grid-template-columns: repeat(3, 1fr); + gap: var(--psadt-space-lg); +} + +.featureCard { + padding: var(--psadt-space-xl); + border-radius: var(--psadt-card-radius); + background: var(--psadt-card-background); + border: 1px solid var(--psadt-card-border-color); + transition: + box-shadow var(--psadt-transition-normal), + border-color var(--psadt-transition-normal), + transform var(--psadt-transition-normal); +} + +.featureCard:hover { + box-shadow: var(--psadt-card-shadow-hover); + border-color: var(--psadt-card-border-color-hover); + transform: translateY(-2px); +} + +.featureIcon { + width: 48px; + height: 48px; + object-fit: contain; + margin-bottom: var(--psadt-space-md); +} + +.featureCardTitle { + font-family: 'Poppins', var(--ifm-font-family-base); + font-size: var(--ifm-font-size-lg) !important; + font-weight: var(--ifm-font-weight-semibold); + margin-bottom: var(--psadt-space-sm); +} + +.featureCardDescription { + margin: 0; + font-size: var(--ifm-font-size-sm); + color: var(--ifm-color-content-secondary); + line-height: 1.6; +} + +.featureCtaRow { + display: flex; + justify-content: center; + margin-top: var(--psadt-space-2xl); +} + +/* ─── Newsletter ─── */ +.newsletterSection { + padding-block: var(--psadt-space-2xl); +} + +/* ─── Responsive: Tablet ─── */ @media screen and (max-width: 996px) { - .heroBanner .container { - padding: 2rem; + .heroBanner { + padding: 3rem 0 2rem; } - .logo { - max-width: 200px; + .heroRow { + flex-direction: column-reverse; } - .introText { + .heroTextCol { + align-items: center; text-align: center; - font-size: 0.9rem; - margin: 2rem 5vw 1rem; } -} -.logoThinText { - font-size: 1.5rem; - color: #fff; - text-align: left; - font-weight: 300; - letter-spacing: -0.8px; -} + .heroSubtitle { + text-align: center; + } + + .heroCtas { + justify-content: center; + } + + .screenshotContainer { + max-width: 360px; + margin-inline: auto; + min-height: clamp(320px, 58vw, 460px); + } + + .whatIsText { + padding-right: 0; + } -.logoThickText { - color: var(--palette-blue); - font-weight: 800 !important; + .featureGrid { + grid-template-columns: repeat(2, 1fr); + } + + .highlightsGrid { + grid-template-columns: repeat(2, 1fr); + } } -.mainContent { - margin-left: 0; +/* ─── Responsive: Mobile ─── */ +@media screen and (max-width: 768px) { + .heroBanner { + padding: 2rem 0 1.5rem; + } + + .heroTitle { + font-size: 2rem; + } + + .screenshotContainer { + max-width: 300px; + } + + .screenshot { + position: relative; + width: 100%; + top: auto; + left: auto; + } + + .screenshotContainer { + display: flex; + flex-direction: column; + gap: var(--psadt-space-md); + aspect-ratio: auto; + min-height: 0; + } + + .heroWatermark { + display: none; + } + + .featureGrid { + grid-template-columns: 1fr; + } + + .highlightsGrid { + grid-template-columns: repeat(2, 1fr); + } + + .whatIsRow { + flex-direction: column; + } } diff --git a/src/pages/index.tsx b/src/pages/index.tsx index f125aa6..83c843c 100644 --- a/src/pages/index.tsx +++ b/src/pages/index.tsx @@ -1,58 +1,122 @@ -// eslint-disable-next-line @typescript-eslint/no-unused-vars -import React from 'react'; import clsx from 'clsx'; -// @ts-ignore import Layout from '@theme/Layout'; -// @ts-ignore +import Heading from '@theme/Heading'; import Link from '@docusaurus/Link'; -// @ts-ignore -import useDocusaurusContext from '@docusaurus/useDocusaurusContext'; -// @ts-ignore +import Newsletter from '../components/Newsletter'; +import { featureGroups } from '../data/features'; +import { motion, useReducedMotion } from 'framer-motion'; import styles from './index.module.css'; -import HomepageFeatures from '../components/HomepageFeatures'; -// @ts-ignore -import Heading from '@theme/Heading'; -// @ts-ignore -import ThemedImage from '@theme/ThemedImage'; +const GITHUB_URL = 'https://github.com/psappdeploytoolkit/psappdeploytoolkit'; + +const VALUE_PROPS = [ + { + icon: '/images/features/worker_package.svg', + title: 'Battle-tested Workflow', + description: 'Standardized install, uninstall, and repair deployment types.', + }, + { + icon: '/images/features/application_window.png', + title: 'Customizable UI', + description: 'A consistent, branded deployment experience for end users.', + }, + { + icon: '/images/features/code.svg', + title: '120+ Functions', + description: 'An extensive library for common deployment tasks.', + }, +] as const; + +const HIGHLIGHTS = [ + { stat: '10+', label: 'Years', detail: 'Battle-tested since 2013' }, + { stat: 'Fortune 500', label: 'Trusted', detail: 'Enterprise-grade' }, + { stat: '120+', label: 'Functions', detail: 'Comprehensive toolkit' }, + { stat: '25', label: 'Languages', detail: 'Global localization' }, +] as const; -// @ts-ignore -import useBaseUrl from '@docusaurus/useBaseUrl'; -const heroImageDark = `/images/psadt-logo.svg`; -const heroImageLight = `/images/psadt-logo.svg`; +function HeroBanner() { + const prefersReducedMotion = useReducedMotion(); + const d = prefersReducedMotion ? 0 : undefined; + + const container = { + hidden: {}, + show: { transition: { staggerChildren: prefersReducedMotion ? 0 : 0.1 } }, + }; + + const fadeUp = { + hidden: { opacity: 0, y: 20 }, + show: { opacity: 1, y: 0, transition: { duration: d ?? 0.5 } }, + }; -function HomepageHeader() { - const { siteConfig } = useDocusaurusContext(); return ( -
+
-
-
-

{siteConfig.tagline}

-

- PSAppDeployToolkit uses a standardized workflow for Windows software deployment, a consistent unified User Experience for every software install, and a library of PowerShell functions to simplify common deployment tasks. -

-

- Combined with rich automated logging of every action, PSADT produces consistently high deployment success rates, and is the de facto standard framework used by organizations for deploying Windows software at scale. -

+
+ + + + Enterprise App Deployment. +
+ Simplified. +
+
- {/*
- - Start building - -
*/} -
-
- + + A PowerShell-based framework to simplify and standardize deploying software to Windows, at scale. + + + + + Get Started + + + View on GitHub + + + + +
+
+
@@ -60,12 +124,194 @@ function HomepageHeader() { ); } +function WhatIsSection() { + const prefersReducedMotion = useReducedMotion(); + + const sectionVariants = { + hidden: { opacity: 0, y: 30 }, + show: { opacity: 1, y: 0, transition: { duration: prefersReducedMotion ? 0 : 0.6 } }, + }; + + const cardContainer = { + hidden: {}, + show: { transition: { staggerChildren: prefersReducedMotion ? 0 : 0.12 } }, + }; + + const cardItem = { + hidden: { opacity: 0, y: 20 }, + show: { opacity: 1, y: 0, transition: { duration: prefersReducedMotion ? 0 : 0.4 } }, + }; + + return ( + +
+
+
+ + What is PSADT? + +

+ PSAppDeployToolkit is a free, open-source PowerShell framework that gives IT professionals a + battle-tested, enterprise-ready system for deploying applications to Windows endpoints. It handles every + stage of application lifecycle — from discovery and installation through removal — with a rich UI, deep + platform integration, and comprehensive logging. +

+
+ + +
+ {VALUE_PROPS.map((prop) => ( + + +
+ {prop.title} +

{prop.description}

+
+
+ ))} +
+
+
+
+
+ ); +} + +function HighlightsStrip() { + const prefersReducedMotion = useReducedMotion(); + + const container = { + hidden: {}, + show: { transition: { staggerChildren: prefersReducedMotion ? 0 : 0.1 } }, + }; + + const item = { + hidden: { opacity: 0, y: 20 }, + show: { opacity: 1, y: 0, transition: { duration: prefersReducedMotion ? 0 : 0.4 } }, + }; + + return ( + +
+
+ {HIGHLIGHTS.map((h) => ( + + {h.stat} + {h.label} + {h.detail} + + ))} +
+
+
+ ); +} + +function FeaturePreview() { + const prefersReducedMotion = useReducedMotion(); + const previewFeatures = featureGroups.slice(0, 6); + + const container = { + hidden: {}, + show: { transition: { staggerChildren: prefersReducedMotion ? 0 : 0.08 } }, + }; + + const item = { + hidden: { opacity: 0, y: 20 }, + show: { opacity: 1, y: 0, transition: { duration: prefersReducedMotion ? 0 : 0.4 } }, + }; + + return ( + +
+ + Built for Enterprise + +

+ Everything you need to deploy, manage, and monitor applications at scale. +

+ + + {previewFeatures.map((feature) => ( + + + + {feature.title} + +

{feature.description}

+
+ ))} +
+ +
+ + Explore All Features + +
+
+
+ ); +} + +function NewsletterSection() { + const prefersReducedMotion = useReducedMotion(); + + return ( + +
+
+ +
+
+
+ ); +} + export default function Home() { return ( - -
- + +
+ + + +
); diff --git a/src/pages/privacy-policy.mdx b/src/pages/privacy-policy.mdx index 206eb95..e41fd47 100644 --- a/src/pages/privacy-policy.mdx +++ b/src/pages/privacy-policy.mdx @@ -1,11 +1,14 @@ --- -sidebar_label: 'Privacy Policy' +title: 'Privacy Policy' +description: Get up and running with PSAppDeployToolkit in minutes. +hide_title: false +id: privacy-policy slug: /privacy-policy -title: Privacy Policy -description: Learn about our privacy policy. +tags: + - Privacy Policy --- -# Privacy Policy +## Privacy Policy Last updated: October 24, 2023 @@ -13,21 +16,21 @@ This Privacy Policy describes Our policies and procedures on the collection, use We use Your Personal data to provide and improve the Service. By using the Service, You agree to the collection and use of information in accordance with this Privacy Policy. -## Interpretation and Definitions +### Interpretation and Definitions -### Interpretation +#### Interpretation The words of which the initial letter is capitalized have meanings defined under the following conditions. The following definitions shall have the same meaning regardless of whether they appear in singular or in plural. -### Definitions +#### Definitions For the purposes of this Privacy Policy: - **Account** means a unique account created for You to access our Service or parts of our Service. - **Affiliate** means an entity that controls, is controlled by or is under common control with a party, where "control" means ownership of 50% or more of the shares, equity interest or other securities entitled to vote for election of directors or other managing authority. -- **Company** (referred to as either "the Company", "We", "Us" or "Our" in this Agreement) refers to PSAppDeployToolkit. +- **Company** (referred to as either "the Company", "We", "Us" or "Our" in this Agreement) refers to Patch My PC. - **Cookies** are small files that are placed on Your computer, mobile device or any other device by a website, containing the details of Your browsing history on that website among its many uses. -- **Country** refers to: Ontario, Canada +- **Country** refers to: Denver, Colorado, United States - **Device** means any device that can access the Service such as a computer, a cellphone or a digital tablet. - **Personal Data** is any information that relates to an identified or identifiable individual. - **Service** refers to the Website. @@ -42,18 +45,18 @@ For the purposes of this Privacy Policy: - **You** means the individual accessing or using the Service, or the company, or other legal entity on behalf of which such individual is accessing or using the Service, as applicable. -# Collecting and Using Your Personal Data +## Collecting and Using Your Personal Data -## Types of Data Collected +### Types of Data Collected -### Personal Data +#### Personal Data While using Our Service, We may ask You to provide Us with certain personally identifiable information that can be used to contact or identify You. Personally identifiable information may include, but is not limited to: - Email address - Usage Data -### Usage Data +#### Usage Data Usage Data is collected automatically when using the Service. @@ -63,7 +66,7 @@ When You access the Service by or through a mobile device, We may collect certai We may also collect information that Your browser sends whenever You visit our Service or when You access the Service by or through a mobile device. -### Information from Third-Party Social Media Services +#### Information from Third-Party Social Media Services The Company allows You to create an account and log in to use the Service through the following Third-party Social Media Services: @@ -77,7 +80,7 @@ If You decide to register through or otherwise grant us access to a Third-Party You may also have the option of sharing additional information with the Company through Your Third-Party Social Media Service's account. If You choose to provide such information and Personal Data, during registration or otherwise, You are giving the Company permission to use, share, and store it in a manner consistent with this Privacy Policy. -### Tracking Technologies and Cookies +#### Tracking Technologies and Cookies We use Cookies and similar tracking technologies to track the activity on Our Service and store certain information. Tracking technologies used are beacons, tags, and scripts to collect and track information and to improve and analyze Our Service. The technologies We use may include: @@ -114,7 +117,7 @@ Purpose: These Cookies allow us to remember choices You make when You use the We For more information about the cookies we use and your choices regarding cookies, please visit our Cookies Policy or the Cookies section of our Privacy Policy. -## Use of Your Personal Data +### Use of Your Personal Data The Company may use Personal Data for the following purposes: @@ -136,13 +139,13 @@ We may share Your personal information in the following situations: - **With other users:** when You share personal information or otherwise interact in the public areas with other users, such information may be viewed by all users and may be publicly distributed outside. If You interact with other users or register through a Third-Party Social Media Service, Your contacts on the Third-Party Social Media Service may see Your name, profile, pictures and description of Your activity. Similarly, other users will be able to view descriptions of Your activity, communicate with You and view Your profile. - **With Your consent**: We may disclose Your personal information for any other purpose with Your consent. -## Retention of Your Personal Data +### Retention of Your Personal Data The Company will retain Your Personal Data only for as long as is necessary for the purposes set out in this Privacy Policy. We will retain and use Your Personal Data to the extent necessary to comply with our legal obligations (for example, if we are required to retain your data to comply with applicable laws), resolve disputes, and enforce our legal agreements and policies. The Company will also retain Usage Data for internal analysis purposes. Usage Data is generally retained for a shorter period of time, except when this data is used to strengthen the security or to improve the functionality of Our Service, or We are legally obligated to retain this data for longer time periods. -## Transfer of Your Personal Data +### Transfer of Your Personal Data Your information, including Personal Data, is processed at the Company's operating offices and in any other places where the parties involved in the processing are located. It means that this information may be transferred to - and maintained on - computers located outside of Your state, province, country or other governmental jurisdiction where the data protection laws may differ than those from Your jurisdiction. @@ -150,7 +153,7 @@ Your consent to this Privacy Policy followed by Your submission of such informat The Company will take all steps reasonably necessary to ensure that Your data is treated securely and in accordance with this Privacy Policy and no transfer of Your Personal Data will take place to an organization or a country unless there are adequate controls in place including the security of Your data and other personal information. -## Delete Your Personal Data +### Delete Your Personal Data You have the right to delete or request that We assist in deleting the Personal Data that We have collected about You. @@ -160,17 +163,17 @@ You may update, amend, or delete Your information at any time by signing in to Y Please note, however, that We may need to retain certain information when we have a legal obligation or lawful basis to do so. -## Disclosure of Your Personal Data +### Disclosure of Your Personal Data -### Business Transactions +#### Business Transactions If the Company is involved in a merger, acquisition or asset sale, Your Personal Data may be transferred. We will provide notice before Your Personal Data is transferred and becomes subject to a different Privacy Policy. -### Law enforcement +#### Law enforcement Under certain circumstances, the Company may be required to disclose Your Personal Data if required to do so by law or in response to valid requests by public authorities (e.g. a court or a government agency). -### Other legal requirements +#### Other legal requirements The Company may disclose Your Personal Data in the good faith belief that such action is necessary to: @@ -180,23 +183,23 @@ The Company may disclose Your Personal Data in the good faith belief that such a - Protect the personal safety of Users of the Service or the public - Protect against legal liability -## Security of Your Personal Data +### Security of Your Personal Data The security of Your Personal Data is important to Us, but remember that no method of transmission over the Internet, or method of electronic storage is 100% secure. While We strive to use commercially acceptable means to protect Your Personal Data, We cannot guarantee its absolute security. -## Children's Privacy +### Children's Privacy Our Service does not address anyone under the age of 13. We do not knowingly collect personally identifiable information from anyone under the age of 13. If You are a parent or guardian and You are aware that Your child has provided Us with Personal Data, please contact Us. If We become aware that We have collected Personal Data from anyone under the age of 13 without verification of parental consent, We take steps to remove that information from Our servers. If We need to rely on consent as a legal basis for processing Your information and Your country requires consent from a parent, We may require Your parent's consent before We collect and use that information. -## Links to Other Websites +### Links to Other Websites Our Service may contain links to other websites that are not operated by Us. If You click on a third party link, You will be directed to that third party's site. We strongly advise You to review the Privacy Policy of every site You visit. We have no control over and assume no responsibility for the content, privacy policies or practices of any third party sites or services. -## Changes to this Privacy Policy +### Changes to this Privacy Policy We may update Our Privacy Policy from time to time. We will notify You of any changes by posting the new Privacy Policy on this page. @@ -204,8 +207,6 @@ We will let You know via email and/or a prominent notice on Our Service, prior t You are advised to review this Privacy Policy periodically for any changes. Changes to this Privacy Policy are effective when they are posted on this page. -## Contact Us +### Contact Us -If you have any questions about this Privacy Policy, You can contact us: - -- By email: privacy@psappdeploytoolkit.com +If you have any questions about this Privacy Policy, You can contact us by email at [privacy@psappdeploytoolkit.com](mailto:privacy@psappdeploytoolkit.com) diff --git a/src/pages/training.module.css b/src/pages/training.module.css new file mode 100644 index 0000000..41f6547 --- /dev/null +++ b/src/pages/training.module.css @@ -0,0 +1,383 @@ +@keyframes fadeInUp { + from { + opacity: 0; + transform: translateY(12px); + } + to { + opacity: 1; + transform: translateY(0); + } +} + +.trainingPage { + animation: fadeInUp 0.5s var(--psadt-ease-standard) both; +} + +/* ─── Hero ─── */ + +.hero { + padding-bottom: var(--psadt-space-xl); +} + +.heroContent { + display: flex; + flex-direction: column; + align-items: flex-start; + justify-content: center; +} + +.heroTitle { + font-size: var(--ifm-h1-font-size); + line-height: 1.1; + margin-bottom: var(--psadt-space-lg); + max-width: 22ch; +} + +.accent { + color: var(--ifm-color-primary); + font-weight: var(--ifm-font-weight-extrabold); +} + +.heroTagline { + font-size: var(--ifm-font-size-lg); + color: var(--ifm-color-content-secondary); + line-height: 1.6; + margin-bottom: var(--psadt-space-md); + max-width: 500px;} + +.heroCtas { + display: flex; + gap: var(--psadt-space-md); + margin-bottom: var(--psadt-space-md); + flex-wrap: wrap; + justify-content: flex-start; +} + +.heroBadge { + font-size: var(--ifm-font-size-lg); + color: var(--ifm-color-content-secondary); + font-weight: var(--ifm-font-weight-medium); +} + +.heroImageCol { + display: flex; + align-items: center; + justify-content: center; +} + +.heroImage { + max-height: 400px; + width: 100%; + object-fit: contain; +} + +/* ─── Section Titles ─── */ + +.sectionTitle { + text-align: center; + font-size: var(--ifm-font-size-4xl); + margin-bottom: var(--psadt-space-xl); + border-bottom: none; +} + +/* ─── Highlights ─── */ + +.highlightsSection { + padding-top: var(--psadt-space-xl); + padding-bottom: 0; +} + +.highlightsGrid { + display: grid; + grid-template-columns: repeat(5, minmax(0, 1fr)); + gap: var(--psadt-space-md); + align-items: stretch; +} + +.highlightItem { + background: var(--psadt-card-background); + border: 1px solid var(--psadt-card-border-color); + border-radius: var(--psadt-card-radius); + padding: var(--psadt-space-md) var(--psadt-space-lg); + box-shadow: var(--psadt-card-shadow); + overflow: hidden; + display: flex; + flex-direction: column; + gap: var(--psadt-space-xs); + height: 100%; + text-align: center; + transition: box-shadow var(--psadt-transition-normal), border-color var(--psadt-transition-normal); +} + +.highlightItem:hover { + border-color: var(--ifm-color-primary); + box-shadow: var(--psadt-card-shadow-hover); +} + +.highlightItem strong { + font-size: var(--ifm-font-size-base); + color: var(--ifm-color-primary); +} + +.highlightItem span { + font-size: var(--ifm-font-size-sm); + color: var(--ifm-color-content-secondary); + line-height: 1.5; +} + +/* ─── Course Content ─── */ + +.courseSection { + padding-top: var(--psadt-space-3xl); + padding-bottom: 0; +} + +.courseIntro { + text-align: left; + margin: 0 auto var(--psadt-space-xl); + font-size: var(--ifm-font-size-base); + color: var(--ifm-color-content-secondary); + line-height: 1.7; +} + +.moduleCard { + background: var(--psadt-card-background); + border: 1px solid var(--psadt-card-border-color); + border-radius: var(--psadt-card-radius); + padding: var(--psadt-space-xl) var(--psadt-space-lg); + margin-bottom: var(--psadt-space-lg); + box-shadow: var(--psadt-card-shadow); + overflow: hidden; + transition: box-shadow var(--psadt-transition-normal), border-color var(--psadt-transition-normal); +} + +.moduleCard:hover { + border-color: var(--ifm-color-primary); + box-shadow: var(--psadt-card-shadow-hover); +} + +.moduleTitle { + font-size: var(--ifm-font-size-lg); + font-weight: var(--ifm-font-weight-bold); + margin: 0 0 var(--psadt-space-md); + border-bottom: none; +} + +.moduleTopics { + margin: 0 0 var(--psadt-space-md); + padding-left: var(--psadt-space-lg); + font-size: var(--ifm-font-size-sm); + color: var(--ifm-color-content-secondary); + line-height: 1.8; +} + +.moduleLab { + font-size: var(--ifm-font-size-sm); + color: var(--ifm-color-content); + margin: 0; + padding-top: var(--psadt-space-sm); + border-top: 1px solid var(--ifm-color-emphasis-200); +} + +/* ─── Prerequisites ─── */ + +.prereqSection { + padding-top: 0; + padding-bottom: var(--psadt-space-3xl); +} + +.prereqList { + max-width: 640px; + margin: 0 auto; + padding-left: var(--psadt-space-lg); + font-size: var(--ifm-font-size-base); + color: var(--ifm-color-content-secondary); + line-height: 2; +} + +/* ─── Instructors ─── */ + +.instructorsSection { + padding-top: var(--psadt-space-2xl); + padding-bottom: 0; + text-align: center; +} + +.instructorsTitle { + text-align: center; + font-size: var(--ifm-font-size-4xl); + margin-bottom: var(--psadt-space-2xl); + border-bottom: none; +} + +.instructorCard { + border-radius: var(--psadt-card-radius); + border: 1px solid var(--psadt-card-border-color); + background: var(--psadt-card-background); + text-align: left; + display: flex; + flex-direction: column; + align-items: flex-start; + overflow: hidden; + box-shadow: var(--psadt-card-shadow); + flex-shrink: 0; + padding: var(--psadt-space-lg) var(--psadt-space-lg); + gap: var(--psadt-space-sm); + transition: box-shadow var(--psadt-transition-normal), border-color var(--psadt-transition-normal); +} + +.instructorCard:hover { + box-shadow: var(--psadt-card-shadow-hover); + border-color: var(--ifm-color-primary); +} + +.instructorImage { + width: 96px; + height: 96px; + border-radius: 50%; + margin-bottom: var(--psadt-space-sm); + background: var(--psadt-card-image-background); + border: 1px solid var(--psadt-card-border-color); + box-shadow: var(--psadt-card-image-shadow); + object-fit: cover; +} + +.instructorName { + font-size: var(--ifm-font-size-xl); + font-weight: var(--ifm-font-weight-bold); + color: var(--ifm-color-emphasis-900); + margin: 0; +} + +.instructorRole { + font-weight: var(--ifm-font-weight-semibold); + color: var(--ifm-color-primary); + font-size: var(--ifm-font-size-base); + margin: 0 0 var(--psadt-space-sm); +} + +.instructorBio { + font-size: var(--ifm-font-size-base); + color: var(--ifm-color-content); + margin: 0; +} + +.instructorLinks a { + color: var(--ifm-color-content-secondary); + margin: 1 1rem 0 0; + transition: color var(--psadt-transition-normal); +} + +.instructorLinks a:hover { + color: var(--ifm-color-primary); +} + + +/* ─── Final CTA ─── */ + +.ctaSection { + padding-top: var(--psadt-space-2xl); + padding-bottom: var(--psadt-space-3xl); + text-align: center; + color: var(--ifm-color-primary); +} + +.ctaTitle { + font-size: var(--ifm-h2-font-size); + margin-bottom: var(--psadt-space-lg); + border-bottom: none; +} + +.ctaText { + font-size: var(--ifm-font-size-lg); + color: var(--ifm-color-content-secondary); + max-width: 600px; + margin: 0 auto var(--psadt-space-xl); +} + +/* ─── Responsive: Tablet ─── */ + +@media screen and (max-width: 996px) { + .heroImageCol { + display: none; + } + + .heroTitle { + font-size: var(--ifm-font-size-4xl); + } + + .heroTagline { + max-width: 100%; + } + + .heroCtas { + justify-content: flex-start; + } + + .hero { + text-align: left; + } + + .heroContent { + align-items: flex-start; + } + + .instructorCard { + max-width: 480px; + margin-left: auto; + margin-right: auto; + } + + .highlightsGrid { + grid-template-columns: repeat(2, minmax(0, 1fr)); + } + +} + +/* ─── Responsive: Mobile ─── */ + +@media screen and (max-width: 768px) { + .heroTitle { + font-size: var(--ifm-font-size-3xl); + } + + .sectionTitle { + font-size: var(--ifm-font-size-3xl); + } + + .ctaTitle { + font-size: var(--ifm-font-size-3xl); + } + + .instructorsTitle { + font-size: var(--ifm-font-size-3xl); + } + + .instructorCard { + padding: var(--psadt-space-xl) var(--psadt-space-md); + margin: var(--psadt-space-sm) auto; + } + + .instructorImage { + width: 100px; + height: 100px; + } + + .instructorName { + font-size: 1.2rem; + } + + .instructorRole { + font-size: var(--ifm-font-size-sm); + } + + .highlightItem { + height: auto; + } + + .highlightsGrid { + grid-template-columns: 1fr; + } +} + + diff --git a/src/pages/training.tsx b/src/pages/training.tsx new file mode 100644 index 0000000..b22205c --- /dev/null +++ b/src/pages/training.tsx @@ -0,0 +1,171 @@ +import { FaLinkedin } from 'react-icons/fa'; +import clsx from 'clsx'; +import Layout from '@theme/Layout'; +import Heading from '@theme/Heading'; +import Link from '@docusaurus/Link'; +import styles from './training.module.css'; +import { instructors } from '../data/instructors'; + +const COURSE_URL = 'https://academy.viamonstra.com/courses/psadt-v4-essentials/'; + +const modules = [ + { + title: 'Module 1: Foundations of PSADT v4', + topics: [ + 'Introduction to PSAppDeployToolkit v4', + 'Features, benefits, and real-world use cases', + 'Understanding Core Deployment Concepts', + 'Installing and Configuring Your Environment', + 'Understanding the File & Folder Structure', + 'Creating Your First Deployment Package', + ], + lab: 'Setting up PSADT and Creating a First Package', + }, + { + title: 'Module 2: Building and Deploying Packages', + topics: [ + 'Anatomy of Deploy-Application.ps1', + 'Adding installers, scripts, and supporting files', + 'Leveraging & Customizing the User Interface', + 'Understanding the deployment lifecycle', + 'Deploying via Microsoft ConfigMgr (SCCM) and Intune', + ], + lab: 'Customizing the User Interface', + }, + { + title: 'Module 3: Working with Functions and Advanced Logic', + topics: [ + 'Working with Core & Advanced Functions', + 'Logging \u2013 Making the Most of it with PSADT', + 'Advanced Deployment Techniques', + ], + lab: 'Using Advanced Deployment Techniques and Logging', + }, + { + title: 'Module 4: Upgrading from v3 to v4', + topics: [ + 'Key differences between v3 and v4.0/v4.1+', + 'Function renames and replacements', + 'New error handling model with standardized switches', + 'Migrating existing deployment scripts to v4', + ], + lab: 'Converting a real v3 deployment to v4.1', + }, + { + title: 'Module 5: Security, Real-World Deployments and Troubleshooting', + topics: [ + 'Security Best Practices', + 'Deployment Tips & Tricks from the Field', + 'Enterprise-scale rollout lessons learned', + 'Maintaining and Updating Your PSADT Packages', + 'Updating packages for new app versions', + 'Community Resources & Future Roadmap', + ], + lab: 'A full-featured deployment with removal of previous versions, prerequisite install, full user experience, and push to Intune', + }, +]; + +const highlights = [ + { label: 'Free', description: 'No cost to enroll \u2013 completely free for the community.' }, + { label: 'Recorded Live', description: 'Instructor-led sessions with extensive Q&A from real users.' }, + { label: 'Hands-On Labs', description: 'Practical lab guides you can follow on any Windows device or VM.' }, + { label: 'On-Demand Access', description: 'Take home sample files, scripts, and full session recordings.' }, + { label: 'PSADT Certification', description: 'Earn an official credential to validate your expertise.' }, +]; + +const TrainingPage = () => ( + +
+ {/* Hero */} +
+
+
+ + PSADT v4 Essentials Training Course + +

+ Free online training built in close collaboration with the PSAppDeployToolkit creators. Master PSADT v4.1 + with hands-on labs, real-world workflows, and official certification. +

+
+ + Enroll Now + +
+
+
+
+ Classroom illustration +
+
+
+
+ + {/* Highlights */} +
+
+ {highlights.map((item) => ( +
+ {item.label} + {item.description} +
+ ))} +
+
+ + {/* Instructors */} +
+ + Meet Your Instructors + +
+ {instructors.map((instructor) => ( +
+
+ {`${instructor.name}, +

{instructor.name}

+

{instructor.role}

+

{instructor.bio}

+

+ +

+
+
+ ))} +
+
+ + {/* Final CTA */} +
+
+ + Ready to Master PSAppDeployToolkit? + +

+ Join the PSADT v4 Essentials course and gain the skills to deploy applications with confidence across your + enterprise. +

+ + Enroll Now — It's Free + +
+
+
+
+); + +export default TrainingPage; diff --git a/src/theme/DocCard/index.js b/src/theme/DocCard/index.js new file mode 100644 index 0000000..5a54104 --- /dev/null +++ b/src/theme/DocCard/index.js @@ -0,0 +1,106 @@ +/** + * Swizzled DocCard — uses project card design tokens to match about page style. + * + * Based on @docusaurus/theme-classic DocCard. + */ +import React from 'react'; +import clsx from 'clsx'; +import Link from '@docusaurus/Link'; +import { + useDocById, + findFirstSidebarItemLink, +} from '@docusaurus/plugin-content-docs/client'; +import {usePluralForm} from '@docusaurus/theme-common'; +import isInternalUrl from '@docusaurus/isInternalUrl'; +import {translate} from '@docusaurus/Translate'; +import Heading from '@theme/Heading'; +import styles from './styles.module.css'; + +function useCategoryItemsPlural() { + const {selectMessage} = usePluralForm(); + return (count) => + selectMessage( + count, + translate( + { + message: '1 item|{count} items', + id: 'theme.docs.DocCard.categoryDescription.plurals', + description: + 'The default description for a category card in the generated index about how many items this category includes', + }, + {count}, + ), + ); +} + +function CardContainer({className, href, children}) { + return ( + + {children} + + ); +} + +function CardLayout({className, href, icon, title, description}) { + return ( + + + {icon} {title} + + {description && ( +

+ {description} +

+ )} +
+ ); +} + +function CardCategory({item}) { + const href = findFirstSidebarItemLink(item); + const categoryItemsPlural = useCategoryItemsPlural(); + if (!href) { + return null; + } + return ( + + ); +} + +function CardLink({item}) { + const icon = isInternalUrl(item.href) ? '📄️' : '🔗'; + const doc = useDocById(item.docId ?? undefined); + return ( + + ); +} + +export default function DocCard({item}) { + switch (item.type) { + case 'link': + return ; + case 'category': + return ; + default: + throw new Error(`unknown item type ${JSON.stringify(item)}`); + } +} diff --git a/src/theme/DocCard/styles.module.css b/src/theme/DocCard/styles.module.css new file mode 100644 index 0000000..fab55b1 --- /dev/null +++ b/src/theme/DocCard/styles.module.css @@ -0,0 +1,50 @@ +/** + * Swizzled DocCard styles — matches the about page card pattern + * using project design tokens from custom.css. + */ + +.cardContainer { + --ifm-link-hover-decoration: none; + + display: block; + padding: var(--psadt-space-lg); + border-radius: var(--psadt-card-radius); + border: 1px solid var(--psadt-card-border-color); + background: var(--psadt-card-background); + box-shadow: var(--psadt-card-shadow); + overflow: hidden; + color: var(--ifm-color-content); + transition: border-color var(--psadt-transition-normal), box-shadow var(--psadt-transition-normal); +} + +.cardContainer:hover { + border-color: var(--ifm-color-primary); + box-shadow: var(--psadt-card-shadow-hover); + color: var(--ifm-color-content); + text-decoration: none; +} + +.cardContainer *:last-child { + margin-bottom: 0; +} + +.cardTitle { + font-size: var(--ifm-font-size-lg); + font-weight: var(--ifm-font-weight-bold); + color: var(--ifm-color-emphasis-900); + border-bottom: none; + margin-top: 0; + margin-bottom: var(--psadt-space-xs); + padding-bottom: 0; +} + +.cardContainer:hover .cardTitle { + color: var(--ifm-color-primary); +} + +.cardDescription { + font-size: var(--ifm-font-size-sm); + color: var(--ifm-color-content-secondary); +} + + diff --git a/src/theme/DocCategoryGeneratedIndexPage/index.js b/src/theme/DocCategoryGeneratedIndexPage/index.js new file mode 100644 index 0000000..4d37a9b --- /dev/null +++ b/src/theme/DocCategoryGeneratedIndexPage/index.js @@ -0,0 +1,67 @@ +/** + * Swizzled DocCategoryGeneratedIndexPage — replaces DocVersionBadge with + * DocsVersionSelector in a breadcrumb row, matching DocItem/Layout. + * + * Based on @docusaurus/theme-classic DocCategoryGeneratedIndexPage. + */ +import React from 'react'; +import {PageMetadata} from '@docusaurus/theme-common'; +import {useCurrentSidebarCategory} from '@docusaurus/plugin-content-docs/client'; +import useBaseUrl from '@docusaurus/useBaseUrl'; +import DocCardList from '@theme/DocCardList'; +import DocPaginator from '@theme/DocPaginator'; +import DocVersionBanner from '@theme/DocVersionBanner'; +import DocBreadcrumbs from '@theme/DocBreadcrumbs'; +import Heading from '@theme/Heading'; +import DocsVersionSelector from '@site/src/components/DocsVersionSelector'; +import styles from './styles.module.css'; + +function DocCategoryGeneratedIndexPageMetadata({categoryGeneratedIndex}) { + return ( + + ); +} + +function DocCategoryGeneratedIndexPageContent({categoryGeneratedIndex}) { + const category = useCurrentSidebarCategory(); + return ( +
+
+ + +
+ +
+ + {categoryGeneratedIndex.title} + + {categoryGeneratedIndex.description && ( +

{categoryGeneratedIndex.description}

+ )} +
+
+ +
+
+ +
+
+ ); +} + +export default function DocCategoryGeneratedIndexPage(props) { + return ( + <> + + + + ); +} diff --git a/src/theme/DocCategoryGeneratedIndexPage/styles.module.css b/src/theme/DocCategoryGeneratedIndexPage/styles.module.css new file mode 100644 index 0000000..f90e721 --- /dev/null +++ b/src/theme/DocCategoryGeneratedIndexPage/styles.module.css @@ -0,0 +1,30 @@ +/** + * Swizzled DocCategoryGeneratedIndexPage styles. + * Original styles preserved + breadcrumbRow for version selector alignment. + */ + +@media (min-width: 997px) { + .generatedIndexPage { + max-width: 75% !important; + } +} + +/* Duplicated from .markdown h1 */ +.title { + --ifm-h1-font-size: 3rem; + margin-bottom: calc(1.25 * var(--ifm-leading)); +} + +.breadcrumbRow { + display: flex; + align-items: center; + justify-content: space-between; + margin-bottom: 0.8rem; + gap: var(--psadt-space-md); + flex-wrap: wrap; +} + +.breadcrumbRow :global(.theme-doc-breadcrumbs) { + margin-bottom: 0; +} + diff --git a/src/theme/DocItem/Layout/index.js b/src/theme/DocItem/Layout/index.js new file mode 100644 index 0000000..b13bfbd --- /dev/null +++ b/src/theme/DocItem/Layout/index.js @@ -0,0 +1,87 @@ +/** + * Swizzled DocItem/Layout — wraps breadcrumbs + version selector in a flex row + * and removes DocVersionBadge (replaced by DocsVersionSelector). + * + * Based on @docusaurus/theme-classic DocItem/Layout. + */ +import React from 'react'; +import clsx from 'clsx'; +import {useWindowSize} from '@docusaurus/theme-common'; +import {useDoc} from '@docusaurus/plugin-content-docs/client'; +import DocItemPaginator from '@theme/DocItem/Paginator'; +import DocVersionBanner from '@theme/DocVersionBanner'; +import DocItemFooter from '@theme/DocItem/Footer'; +import DocItemTOCMobile from '@theme/DocItem/TOC/Mobile'; +import DocItemTOCDesktop from '@theme/DocItem/TOC/Desktop'; +import DocItemContent from '@theme/DocItem/Content'; +import DocBreadcrumbs from '@theme/DocBreadcrumbs'; +import ContentVisibility from '@theme/ContentVisibility'; +import DocsVersionSelector from '@site/src/components/DocsVersionSelector'; +import styles from './styles.module.css'; + +function useDocTOC() { + const {frontMatter, toc} = useDoc(); + const windowSize = useWindowSize(); + const hidden = frontMatter.hide_table_of_contents; + const canRender = !hidden && toc.length > 0; + const mobile = canRender ? : undefined; + const desktop = + canRender && (windowSize === 'desktop' || windowSize === 'ssr') ? ( + + ) : undefined; + return { + hidden, + mobile, + desktop, + }; +} + +export default function DocItemLayout({children}) { + const docTOC = useDocTOC(); + const {metadata} = useDoc(); + const articleRef = React.useRef(null); + + React.useEffect(() => { + const article = articleRef.current; + if (!article) { + return; + } + + const banner = article.querySelector('[data-doc-version-banner]'); + if (!banner) { + return; + } + + const firstHeading = article.querySelector('.theme-doc-markdown h1, article h1'); + if (firstHeading) { + firstHeading.insertAdjacentElement('afterend', banner); + } + }, []); + + return ( +
+
+ +
+
+
+ + +
+
+ +
+ {docTOC.mobile} + {children} + +
+ +
+
+ {docTOC.desktop &&
{docTOC.desktop}
} +
+ ); +} diff --git a/src/theme/DocItem/Layout/styles.module.css b/src/theme/DocItem/Layout/styles.module.css new file mode 100644 index 0000000..1952d69 --- /dev/null +++ b/src/theme/DocItem/Layout/styles.module.css @@ -0,0 +1,35 @@ +/** + * Swizzled DocItem/Layout styles. + * Original styles preserved + breadcrumbRow for version selector alignment. + */ + +.docItemContainer header + *, +.docItemContainer article > *:first-child { + margin-top: 0; +} + +@media (min-width: 997px) { + .docItemCol { + max-width: 75% !important; + } +} + +.breadcrumbRow { + display: flex; + align-items: center; + justify-content: space-between; + margin-bottom: 0.8rem; + gap: var(--psadt-space-md); + flex-wrap: wrap; +} + +/* Remove default bottom margin from breadcrumbs inside the row */ +.breadcrumbRow :global(.theme-doc-breadcrumbs) { + margin-bottom: 0; +} + +.docVersionBannerOffset { + margin-top: 10px; + margin-bottom: 28px; +} + diff --git a/src/theme/DocSidebar/index.js b/src/theme/DocSidebar/index.js deleted file mode 100644 index 2de0c91..0000000 --- a/src/theme/DocSidebar/index.js +++ /dev/null @@ -1,10 +0,0 @@ -import React from 'react'; -import DocSidebar from '@theme-original/DocSidebar'; - -export default function DocSidebarWrapper(props) { - return ( - <> - - - ); -} diff --git a/src/theme/Root/index.js b/src/theme/Root/index.js index 4096b73..e022edc 100644 --- a/src/theme/Root/index.js +++ b/src/theme/Root/index.js @@ -1,22 +1,11 @@ -import React, { useEffect } from 'react'; -// import EventsSidebar from '../../components/EventsSidebar'; +import { useEffect } from 'react'; export default function Root({ children }) { useEffect(() => { - // Safety check to prevent gtag errors if (typeof window !== 'undefined' && !window.gtag) { - window.gtag = function() { - // No-op function to prevent errors - console.log('gtag not loaded yet, skipping call'); - }; + window.gtag = function() {}; } }, []); - return ( - <> - {children} - {/* Disabling sidebar for now */} - {/* */} - - ); + return <>{children}; } diff --git a/static/images/AME-Banner-DarkBackground.png b/static/images/AME-Banner-DarkBackground.png deleted file mode 100644 index 7697154..0000000 Binary files a/static/images/AME-Banner-DarkBackground.png and /dev/null differ diff --git a/static/images/AME-Banner-LightBackground.png b/static/images/AME-Banner-LightBackground.png deleted file mode 100644 index 07f5e9b..0000000 Binary files a/static/images/AME-Banner-LightBackground.png and /dev/null differ diff --git a/static/images/AppManage-2025-Event.png b/static/images/AppManage-2025-Event.png deleted file mode 100644 index 4c5a73e..0000000 Binary files a/static/images/AppManage-2025-Event.png and /dev/null differ diff --git a/static/images/MAEDS-Banner-DarkBackground.png b/static/images/MAEDS-Banner-DarkBackground.png deleted file mode 100644 index 7f12daf..0000000 Binary files a/static/images/MAEDS-Banner-DarkBackground.png and /dev/null differ diff --git a/static/images/MAEDS-Banner-LightBackground.png b/static/images/MAEDS-Banner-LightBackground.png deleted file mode 100644 index d00d070..0000000 Binary files a/static/images/MAEDS-Banner-LightBackground.png and /dev/null differ diff --git a/static/images/MMSMusicCity.webp b/static/images/MMSMusicCity.webp deleted file mode 100644 index 9738d46..0000000 Binary files a/static/images/MMSMusicCity.webp and /dev/null differ diff --git a/static/images/WPNinjas.png b/static/images/WPNinjas.png deleted file mode 100644 index 82b88ae..0000000 Binary files a/static/images/WPNinjas.png and /dev/null differ diff --git a/static/images/about/johan.png b/static/images/about/johan.png new file mode 100644 index 0000000..7c8a4b3 Binary files /dev/null and b/static/images/about/johan.png differ diff --git a/static/images/about/jordanb.jpg b/static/images/about/jordanb.jpg new file mode 100644 index 0000000..384892d Binary files /dev/null and b/static/images/about/jordanb.jpg differ diff --git a/static/images/features/application_window.png b/static/images/features/application_window.png new file mode 100644 index 0000000..5344323 Binary files /dev/null and b/static/images/features/application_window.png differ diff --git a/static/images/features-automation.svg b/static/images/features/automation.svg similarity index 100% rename from static/images/features-automation.svg rename to static/images/features/automation.svg diff --git a/static/images/features-checkmark.svg b/static/images/features/checkmark.svg similarity index 100% rename from static/images/features-checkmark.svg rename to static/images/features/checkmark.svg diff --git a/static/images/features/code.png b/static/images/features/code.png new file mode 100644 index 0000000..94e4486 Binary files /dev/null and b/static/images/features/code.png differ diff --git a/static/images/features-code.svg b/static/images/features/code.svg similarity index 100% rename from static/images/features-code.svg rename to static/images/features/code.svg diff --git a/static/images/features-worker-male-shortbeard.svg b/static/images/features/construction_worker__beard_short.svg similarity index 100% rename from static/images/features-worker-male-shortbeard.svg rename to static/images/features/construction_worker__beard_short.svg diff --git a/static/images/features/construction_worker_beard_long.svg b/static/images/features/construction_worker_beard_long.svg new file mode 100644 index 0000000..8473d50 --- /dev/null +++ b/static/images/features/construction_worker_beard_long.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/static/images/features-worker-male.svg b/static/images/features/construction_worker_man.svg similarity index 100% rename from static/images/features-worker-male.svg rename to static/images/features/construction_worker_man.svg diff --git a/static/images/features-worker-female.svg b/static/images/features/construction_worker_woman.svg similarity index 100% rename from static/images/features-worker-female.svg rename to static/images/features/construction_worker_woman.svg diff --git a/static/images/features/construction_workers_classroom.png b/static/images/features/construction_workers_classroom.png new file mode 100644 index 0000000..7fc2d60 Binary files /dev/null and b/static/images/features/construction_workers_classroom.png differ diff --git a/static/images/features-workers.svg b/static/images/features/construction_workers_men.svg similarity index 100% rename from static/images/features-workers.svg rename to static/images/features/construction_workers_men.svg diff --git a/static/images/features-workers2.svg b/static/images/features/construction_workers_women.svg similarity index 100% rename from static/images/features-workers2.svg rename to static/images/features/construction_workers_women.svg diff --git a/static/images/features/devices_laptop.svg b/static/images/features/devices_laptop.svg new file mode 100644 index 0000000..c7e5ce2 --- /dev/null +++ b/static/images/features/devices_laptop.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/static/images/features-smartdevices.svg b/static/images/features/devices_mobile.svg similarity index 100% rename from static/images/features-smartdevices.svg rename to static/images/features/devices_mobile.svg diff --git a/static/images/features-processor.svg b/static/images/features/devices_processor.svg similarity index 100% rename from static/images/features-processor.svg rename to static/images/features/devices_processor.svg diff --git a/static/images/features-nas.svg b/static/images/features/devices_server.svg similarity index 100% rename from static/images/features-nas.svg rename to static/images/features/devices_server.svg diff --git a/static/images/features-dumbbell.svg b/static/images/features/dumbbell.svg similarity index 100% rename from static/images/features-dumbbell.svg rename to static/images/features/dumbbell.svg diff --git a/static/images/features-ghost.svg b/static/images/features/ghost.svg similarity index 100% rename from static/images/features-ghost.svg rename to static/images/features/ghost.svg diff --git a/static/images/features/globe.png b/static/images/features/globe.png new file mode 100644 index 0000000..3db80fa Binary files /dev/null and b/static/images/features/globe.png differ diff --git a/static/images/features-classroom.svg b/static/images/features/learning_classroom.svg similarity index 100% rename from static/images/features-classroom.svg rename to static/images/features/learning_classroom.svg diff --git a/static/images/features-training.svg b/static/images/features/learning_whiteboard.svg similarity index 100% rename from static/images/features-training.svg rename to static/images/features/learning_whiteboard.svg diff --git a/static/images/features/module.svg b/static/images/features/module.svg new file mode 100644 index 0000000..9ab0bc0 --- /dev/null +++ b/static/images/features/module.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/static/images/features-moosebear.svg b/static/images/features/moosebear.svg similarity index 100% rename from static/images/features-moosebear.svg rename to static/images/features/moosebear.svg diff --git a/static/images/features-padlockclosed.svg b/static/images/features/padlock_closed.svg similarity index 100% rename from static/images/features-padlockclosed.svg rename to static/images/features/padlock_closed.svg diff --git a/static/images/features-padlockopen.svg b/static/images/features/padlock_open.svg similarity index 100% rename from static/images/features-padlockopen.svg rename to static/images/features/padlock_open.svg diff --git a/static/images/features/people_working.png b/static/images/features/people_working.png new file mode 100644 index 0000000..c5a1109 Binary files /dev/null and b/static/images/features/people_working.png differ diff --git a/static/images/features-chevron.svg b/static/images/features/powershell.svg similarity index 100% rename from static/images/features-chevron.svg rename to static/images/features/powershell.svg diff --git a/static/images/features/puzzle.png b/static/images/features/puzzle.png new file mode 100644 index 0000000..72df93d Binary files /dev/null and b/static/images/features/puzzle.png differ diff --git a/static/images/features-faq.svg b/static/images/features/q_and_a.svg similarity index 100% rename from static/images/features-faq.svg rename to static/images/features/q_and_a.svg diff --git a/static/images/features-wastebin.svg b/static/images/features/recycle_bin.svg similarity index 100% rename from static/images/features-wastebin.svg rename to static/images/features/recycle_bin.svg diff --git a/static/images/features-satellites.svg b/static/images/features/satellites.svg similarity index 100% rename from static/images/features-satellites.svg rename to static/images/features/satellites.svg diff --git a/static/images/features-powershell.svg b/static/images/features/script.svg similarity index 100% rename from static/images/features-powershell.svg rename to static/images/features/script.svg diff --git a/static/images/features-protect.svg b/static/images/features/shield_checkmark.svg similarity index 100% rename from static/images/features-protect.svg rename to static/images/features/shield_checkmark.svg diff --git a/static/images/features-stopsign.svg b/static/images/features/sign_stop.svg similarity index 100% rename from static/images/features-stopsign.svg rename to static/images/features/sign_stop.svg diff --git a/static/images/features-spaceinvader.svg b/static/images/features/space_invader.svg similarity index 100% rename from static/images/features-spaceinvader.svg rename to static/images/features/space_invader.svg diff --git a/static/images/features-blueswitch.svg b/static/images/features/switch_blue.svg similarity index 100% rename from static/images/features-blueswitch.svg rename to static/images/features/switch_blue.svg diff --git a/static/images/features-redswitch.svg b/static/images/features/switch_red.svg similarity index 100% rename from static/images/features-redswitch.svg rename to static/images/features/switch_red.svg diff --git a/static/images/features/tasklist.svg b/static/images/features/tasklist.svg new file mode 100644 index 0000000..e8f51d1 --- /dev/null +++ b/static/images/features/tasklist.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/static/images/features/trophy.png b/static/images/features/trophy.png new file mode 100644 index 0000000..5925ba9 Binary files /dev/null and b/static/images/features/trophy.png differ diff --git a/static/images/feature-supplier.svg b/static/images/features/worker_package.svg similarity index 100% rename from static/images/feature-supplier.svg rename to static/images/features/worker_package.svg diff --git a/static/images/features/worker_student.svg b/static/images/features/worker_student.svg new file mode 100644 index 0000000..d901cb2 --- /dev/null +++ b/static/images/features/worker_student.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/static/images/features-clerk.svg b/static/images/features/worker_studentbackup.svg similarity index 100% rename from static/images/features-clerk.svg rename to static/images/features/worker_studentbackup.svg diff --git a/static/images/psadt-dark-logo-old.png b/static/images/psadt-dark-logo-old.png deleted file mode 100644 index b159853..0000000 Binary files a/static/images/psadt-dark-logo-old.png and /dev/null differ diff --git a/static/images/psadt-dark-navheader-old.svg b/static/images/psadt-dark-navheader-old.svg deleted file mode 100644 index d2ffd0f..0000000 --- a/static/images/psadt-dark-navheader-old.svg +++ /dev/null @@ -1,131 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/static/images/psadt-light-logo-old.png b/static/images/psadt-light-logo-old.png deleted file mode 100644 index d05c6c4..0000000 Binary files a/static/images/psadt-light-logo-old.png and /dev/null differ diff --git a/static/images/psadt-light-navheader-old.svg b/static/images/psadt-light-navheader-old.svg deleted file mode 100644 index 2c2dab3..0000000 --- a/static/images/psadt-light-navheader-old.svg +++ /dev/null @@ -1,135 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/static/images/screenshots/app_screenshot_darkmode.png b/static/images/screenshots/app_screenshot_darkmode.png new file mode 100644 index 0000000..fda5682 Binary files /dev/null and b/static/images/screenshots/app_screenshot_darkmode.png differ diff --git a/static/images/screenshots/app_screenshot_lightmode.png b/static/images/screenshots/app_screenshot_lightmode.png new file mode 100644 index 0000000..3356f1a Binary files /dev/null and b/static/images/screenshots/app_screenshot_lightmode.png differ diff --git a/static/images/solutions/apptimized.png b/static/images/solutions/apptimized.png new file mode 100644 index 0000000..5d1f25d Binary files /dev/null and b/static/images/solutions/apptimized.png differ diff --git a/static/images/solutions/deployment_editor.png b/static/images/solutions/deployment_editor.png new file mode 100644 index 0000000..e610f9d Binary files /dev/null and b/static/images/solutions/deployment_editor.png differ diff --git a/static/images/solutions/devicie.png b/static/images/solutions/devicie.png new file mode 100644 index 0000000..c866322 Binary files /dev/null and b/static/images/solutions/devicie.png differ diff --git a/static/images/solutions/devicie_dark.png b/static/images/solutions/devicie_dark.png new file mode 100644 index 0000000..fd37256 Binary files /dev/null and b/static/images/solutions/devicie_dark.png differ diff --git a/static/images/solutions/devicie_light.png b/static/images/solutions/devicie_light.png new file mode 100644 index 0000000..c09f4ba Binary files /dev/null and b/static/images/solutions/devicie_light.png differ diff --git a/static/images/solutions/flexera_dark.png b/static/images/solutions/flexera_dark.png new file mode 100644 index 0000000..63b6b24 Binary files /dev/null and b/static/images/solutions/flexera_dark.png differ diff --git a/static/images/solutions/flexera_light.png b/static/images/solutions/flexera_light.png new file mode 100644 index 0000000..2941d01 Binary files /dev/null and b/static/images/solutions/flexera_light.png differ diff --git a/static/images/solutions/juriba_dark.png b/static/images/solutions/juriba_dark.png new file mode 100644 index 0000000..31da213 Binary files /dev/null and b/static/images/solutions/juriba_dark.png differ diff --git a/static/images/solutions/juriba_light.png b/static/images/solutions/juriba_light.png new file mode 100644 index 0000000..01bb1e8 Binary files /dev/null and b/static/images/solutions/juriba_light.png differ diff --git a/static/images/solutions/masterpackager.png b/static/images/solutions/masterpackager.png new file mode 100644 index 0000000..3cddaec Binary files /dev/null and b/static/images/solutions/masterpackager.png differ diff --git a/static/images/solutions/neo42.png b/static/images/solutions/neo42.png new file mode 100644 index 0000000..29c5415 Binary files /dev/null and b/static/images/solutions/neo42.png differ diff --git a/static/images/solutions/packit.png b/static/images/solutions/packit.png new file mode 100644 index 0000000..8479336 Binary files /dev/null and b/static/images/solutions/packit.png differ diff --git a/static/images/solutions/pckgr.png b/static/images/solutions/pckgr.png new file mode 100644 index 0000000..283c1dc Binary files /dev/null and b/static/images/solutions/pckgr.png differ diff --git a/static/images/solutions/pmpc_dark.png b/static/images/solutions/pmpc_dark.png new file mode 100644 index 0000000..1fa23ca Binary files /dev/null and b/static/images/solutions/pmpc_dark.png differ diff --git a/static/images/solutions/pmpc_light.png b/static/images/solutions/pmpc_light.png new file mode 100644 index 0000000..882a47d Binary files /dev/null and b/static/images/solutions/pmpc_light.png differ diff --git a/static/images/solutions/raynet_dark.png b/static/images/solutions/raynet_dark.png new file mode 100644 index 0000000..702a2b8 Binary files /dev/null and b/static/images/solutions/raynet_dark.png differ diff --git a/static/images/solutions/raynet_light.png b/static/images/solutions/raynet_light.png new file mode 100644 index 0000000..85f863c Binary files /dev/null and b/static/images/solutions/raynet_light.png differ diff --git a/static/images/solutions/robopack.png b/static/images/solutions/robopack.png new file mode 100644 index 0000000..01e99ff Binary files /dev/null and b/static/images/solutions/robopack.png differ diff --git a/static/images/solutions/xoap.png b/static/images/solutions/xoap.png new file mode 100644 index 0000000..a7d4979 Binary files /dev/null and b/static/images/solutions/xoap.png differ diff --git a/static/images/training/essentials.png b/static/images/training/essentials.png new file mode 100644 index 0000000..cf1a9d5 Binary files /dev/null and b/static/images/training/essentials.png differ diff --git a/static/images/training/johan.png b/static/images/training/johan.png new file mode 100644 index 0000000..7c8a4b3 Binary files /dev/null and b/static/images/training/johan.png differ diff --git a/versioned_docs/version-3.10.2/examples/googlechrome-configmgr.mdx b/versioned_docs/version-3.10.2/examples/googlechrome-configmgr.mdx index 7920ea4..ce2d63b 100644 --- a/versioned_docs/version-3.10.2/examples/googlechrome-configmgr.mdx +++ b/versioned_docs/version-3.10.2/examples/googlechrome-configmgr.mdx @@ -2,7 +2,6 @@ sidebar_position: 1 title: 'MCM - Google Chrome' description: 'How to package and deploy Google Chrome Enterprise using Microsoft Configuration Manager.' -hide_title: true slug: /examples/googlechrome-configmgr tags: - Examples diff --git a/versioned_docs/version-3.10.2/getting-started/downloading.mdx b/versioned_docs/version-3.10.2/getting-started/downloading.mdx index 950ad1a..4c45575 100644 --- a/versioned_docs/version-3.10.2/getting-started/downloading.mdx +++ b/versioned_docs/version-3.10.2/getting-started/downloading.mdx @@ -2,7 +2,6 @@ sidebar_position: 2 title: 'Downloading' description: 'How to download a copy of PSAppDeployToolkit.' -hide_title: true slug: /getting-started/download tags: - Getting Started diff --git a/versioned_docs/version-3.10.2/getting-started/licensing.mdx b/versioned_docs/version-3.10.2/getting-started/licensing.mdx index 12c11e8..2f40d16 100644 --- a/versioned_docs/version-3.10.2/getting-started/licensing.mdx +++ b/versioned_docs/version-3.10.2/getting-started/licensing.mdx @@ -2,7 +2,6 @@ sidebar_position: 3 title: 'Licensing' description: 'Information on how PSAppDeployToolkit is licensed.' -hide_title: true slug: /getting-started/licensing tags: - Getting Started diff --git a/versioned_docs/version-3.10.2/getting-started/requirements.mdx b/versioned_docs/version-3.10.2/getting-started/requirements.mdx index 9dec486..f8e03c1 100644 --- a/versioned_docs/version-3.10.2/getting-started/requirements.mdx +++ b/versioned_docs/version-3.10.2/getting-started/requirements.mdx @@ -2,7 +2,6 @@ sidebar_position: 1 title: 'Requirements' description: 'The requirements for running PSAppDeployToolkit.' -hide_title: true slug: /getting-started/requirements tags: - Getting Started diff --git a/versioned_docs/version-3.10.2/introduction.mdx b/versioned_docs/version-3.10.2/introduction.mdx index 7236be7..de47f58 100644 --- a/versioned_docs/version-3.10.2/introduction.mdx +++ b/versioned_docs/version-3.10.2/introduction.mdx @@ -2,7 +2,6 @@ sidebar_position: 1 title: 'Introduction' description: Get up and running with PSAppDeployToolkit in minutes. -hide_title: true id: introduction tags: - Documentation diff --git a/versioned_docs/version-3.10.2/reference.mdx b/versioned_docs/version-3.10.2/reference.mdx index 2d6e5ba..a961503 100644 --- a/versioned_docs/version-3.10.2/reference.mdx +++ b/versioned_docs/version-3.10.2/reference.mdx @@ -2,7 +2,6 @@ sidebar_position: 1 title: 'Reference' description: 'A handy reference to the Exit Codes used by PSAppDeployToolkit, as well as the Variables and Functions made available for you to use.' -hide_title: true id: reference tags: - Reference diff --git a/versioned_docs/version-3.10.2/understanding-the-layout/deployment-script.mdx b/versioned_docs/version-3.10.2/understanding-the-layout/deployment-script.mdx index 13ca45e..b0ce3e9 100644 --- a/versioned_docs/version-3.10.2/understanding-the-layout/deployment-script.mdx +++ b/versioned_docs/version-3.10.2/understanding-the-layout/deployment-script.mdx @@ -3,7 +3,6 @@ sidebar_position: 2 title: 'Deployment Script' description: 'Understanding how a PSAppDeployToolkit deployment is structured.' slug: /understanding-the-layout/deployment-script -hide_title: true tags: - Usage - Deployment Script diff --git a/versioned_docs/version-3.10.2/understanding-the-layout/extracted-archive.mdx b/versioned_docs/version-3.10.2/understanding-the-layout/extracted-archive.mdx index 76e4665..2bd80d5 100644 --- a/versioned_docs/version-3.10.2/understanding-the-layout/extracted-archive.mdx +++ b/versioned_docs/version-3.10.2/understanding-the-layout/extracted-archive.mdx @@ -3,7 +3,6 @@ sidebar_position: 1 title: 'Extracted Archive' description: 'The layout of the PSAppDeployToolkit archive explained.' slug: /understanding-the-layout/extracted-archive -hide_title: true tags: - Usage - Archive diff --git a/versioned_docs/version-3.10.2/understanding-the-layout/zero-config-deployment.mdx b/versioned_docs/version-3.10.2/understanding-the-layout/zero-config-deployment.mdx index 9052c2d..c2426cf 100644 --- a/versioned_docs/version-3.10.2/understanding-the-layout/zero-config-deployment.mdx +++ b/versioned_docs/version-3.10.2/understanding-the-layout/zero-config-deployment.mdx @@ -3,7 +3,6 @@ sidebar_position: 3 title: 'Zero-Config Deployment' description: 'How to leverage the zero-configuration feature for zero-effort deployments.' slug: /understanding-the-layout/zero-config-deployment -hide_title: true tags: - Usage - Zero-Config diff --git a/versioned_docs/version-3.10.2/usage/adding-ui-elements.mdx b/versioned_docs/version-3.10.2/usage/adding-ui-elements.mdx index c7e0899..445d254 100644 --- a/versioned_docs/version-3.10.2/usage/adding-ui-elements.mdx +++ b/versioned_docs/version-3.10.2/usage/adding-ui-elements.mdx @@ -3,7 +3,6 @@ sidebar_position: 2 title: 'Adding UI Elements' description: 'How to add UI elements to a deployment script.' slug: /usage/adding-ui-elements -hide_title: true tags: - Usage - User Interface diff --git a/versioned_docs/version-3.10.2/usage/customizing-deployments.mdx b/versioned_docs/version-3.10.2/usage/customizing-deployments.mdx index 83c611a..cd75ee9 100644 --- a/versioned_docs/version-3.10.2/usage/customizing-deployments.mdx +++ b/versioned_docs/version-3.10.2/usage/customizing-deployments.mdx @@ -3,7 +3,6 @@ sidebar_position: 3 title: 'Customizing Deployments' description: 'How to customize the look and behavior of a deployment.' slug: /usage/customizing-deployments -hide_title: true tags: - Usage - Customizing diff --git a/versioned_docs/version-3.10.2/usage/how-to-deploy.mdx b/versioned_docs/version-3.10.2/usage/how-to-deploy.mdx index 8a0dca0..852da20 100644 --- a/versioned_docs/version-3.10.2/usage/how-to-deploy.mdx +++ b/versioned_docs/version-3.10.2/usage/how-to-deploy.mdx @@ -3,7 +3,6 @@ sidebar_position: 1 title: 'How to Deploy' description: 'How to deployments an application installer using the command line / SCCM.' slug: /usage/how-to-deploy -hide_title: true tags: - Usage - How to Deploy diff --git a/versioned_docs/version-4.0.0/reference/v4-function-mapping.mdx b/versioned_docs/version-4.0.0/reference/v4-function-mapping.mdx deleted file mode 100644 index 5a41ec8..0000000 --- a/versioned_docs/version-4.0.0/reference/v4-function-mapping.mdx +++ /dev/null @@ -1,104 +0,0 @@ ---- -sidebar_position: 6 -title: 'v4 Function Mapping' -description: 'Reference list of v3 Functions and how they are mapped to the new v4 functions.' -slug: /reference/v4-function-mapping -hide_title: true -tags: - - v4 Upgrade - - Functions - - Reference ---- - -# v4 Function Mapping - -The following table lists the v3 functions and their compatibility with v4. If a compatibility wrapper exists, the corresponding v4 function is shown. If there is no compatibility wrapper, "NO" is listed. - -| v3 Function | Compatibility Wrapper Exists? | v4 Function | -|:---------------------------------------|:------------------------------|:---------------------------------------------------------| -| [Block-AppExecution](../../../versioned_docs/version-3.10.2/reference/functions/Block-AppExecution.mdx) | Yes | [Block-ADTAppExecution](../../../versioned_docs/version-4.0.0/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.0/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.0/reference/functions/Add-ADTEdgeExtension.mdx) / [Remove-ADTEdgeExtension](../../../versioned_docs/version-4.0.0/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.0/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.0/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.0/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.0/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.0/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.0/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.0/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.0/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.0/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.0/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.0/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.0/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.0/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.0/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.0/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.0/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.0/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.0/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.0/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.0/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.0/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.0/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.0/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.0/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.0/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.0/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.0/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.0/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.0/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.0/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.0/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.0/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.0/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.0/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.0/reference/functions/Invoke-ADTRegSvr32.mdx) / [Register-ADTDll](../../../versioned_docs/version-4.0.0/reference/functions/Register-ADTDll.mdx) / [Unregister-ADTDll](../../../versioned_docs/version-4.0.0/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.0/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.0/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.0/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.0/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.0/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.0/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.0/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.0/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.0/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.0/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.0/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.0/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.0/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.0/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.0/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.0/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.0/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.0/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.0/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.0/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.0/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.0/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.0/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.0/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.0/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.0/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.0/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.0/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.0/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.0/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.0/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.0/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.0/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.0/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.0/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.0/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.0/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.0/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.0/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.0/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.0/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.0/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.0/reference/functions/Initialize-ADTFunction.mdx) / [Complete-ADTFunction](../../../versioned_docs/version-4.0.0/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.0/reference/functions/Write-ADTLogEntry.mdx) | diff --git a/versioned_docs/version-4.0.0/deployment-concepts/_category_.json b/versioned_docs/version-4.0.x/deployment-concepts/_category_.json similarity index 100% rename from versioned_docs/version-4.0.0/deployment-concepts/_category_.json rename to versioned_docs/version-4.0.x/deployment-concepts/_category_.json diff --git a/versioned_docs/version-4.0.0/deployment-concepts/deployment-structure.mdx b/versioned_docs/version-4.0.x/deployment-concepts/deployment-structure.mdx similarity index 99% rename from versioned_docs/version-4.0.0/deployment-concepts/deployment-structure.mdx rename to versioned_docs/version-4.0.x/deployment-concepts/deployment-structure.mdx index 6ecd953..fa663e9 100644 --- a/versioned_docs/version-4.0.0/deployment-concepts/deployment-structure.mdx +++ b/versioned_docs/version-4.0.x/deployment-concepts/deployment-structure.mdx @@ -3,7 +3,6 @@ sidebar_position: 1 title: 'Deployment Structure' description: 'The file / folder structure a PSADT deployment explained.' slug: /deployment-concepts/deployment-structure -hide_title: true tags: - Usage - Archive diff --git a/versioned_docs/version-4.0.0/deployment-concepts/invoke-appdeploytoolkit.mdx b/versioned_docs/version-4.0.x/deployment-concepts/invoke-appdeploytoolkit.mdx similarity index 99% rename from versioned_docs/version-4.0.0/deployment-concepts/invoke-appdeploytoolkit.mdx rename to versioned_docs/version-4.0.x/deployment-concepts/invoke-appdeploytoolkit.mdx index c8f24bc..5b75346 100644 --- a/versioned_docs/version-4.0.0/deployment-concepts/invoke-appdeploytoolkit.mdx +++ b/versioned_docs/version-4.0.x/deployment-concepts/invoke-appdeploytoolkit.mdx @@ -3,7 +3,6 @@ sidebar_position: 2 title: 'Invoke-AppDeployToolkit' description: 'Understanding how a PSAppDeployToolkit deployment is structured.' slug: /deployment-concepts/invoke-appdeploytoolkit -hide_title: true tags: - Usage - Invoke-AppDeployToolkit diff --git a/versioned_docs/version-4.0.0/deployment-concepts/zero-config-deployment.mdx b/versioned_docs/version-4.0.x/deployment-concepts/zero-config-deployment.mdx similarity index 98% rename from versioned_docs/version-4.0.0/deployment-concepts/zero-config-deployment.mdx rename to versioned_docs/version-4.0.x/deployment-concepts/zero-config-deployment.mdx index fd5bf59..ff78332 100644 --- a/versioned_docs/version-4.0.0/deployment-concepts/zero-config-deployment.mdx +++ b/versioned_docs/version-4.0.x/deployment-concepts/zero-config-deployment.mdx @@ -3,7 +3,6 @@ sidebar_position: 3 title: 'Zero-Config Deployment' description: 'How to leverage the zero-configuration feature for zero-effort deployments.' slug: /deployment-concepts/zero-config-deployment -hide_title: true tags: - Zero-Config Deployment - Deployment Concepts diff --git a/versioned_docs/version-4.0.0/examples/_category_.json b/versioned_docs/version-4.0.x/examples/_category_.json similarity index 100% rename from versioned_docs/version-4.0.0/examples/_category_.json rename to versioned_docs/version-4.0.x/examples/_category_.json diff --git a/versioned_docs/version-4.0.0/examples/googlechrome-configmgr.mdx b/versioned_docs/version-4.0.x/examples/googlechrome-configmgr.mdx similarity index 95% rename from versioned_docs/version-4.0.0/examples/googlechrome-configmgr.mdx rename to versioned_docs/version-4.0.x/examples/googlechrome-configmgr.mdx index 0748b04..e674ae1 100644 --- a/versioned_docs/version-4.0.0/examples/googlechrome-configmgr.mdx +++ b/versioned_docs/version-4.0.x/examples/googlechrome-configmgr.mdx @@ -2,7 +2,6 @@ sidebar_position: 1 title: 'MCM - Google Chrome' description: 'How to package and deploy Google Chrome Enterprise using Microsoft Configuration Manager.' -hide_title: true slug: /examples/googlechrome-configmgr tags: - Google Chrome diff --git a/versioned_docs/version-4.0.0/getting-started/_category_.json b/versioned_docs/version-4.0.x/getting-started/_category_.json similarity index 100% rename from versioned_docs/version-4.0.0/getting-started/_category_.json rename to versioned_docs/version-4.0.x/getting-started/_category_.json diff --git a/versioned_docs/version-4.0.0/getting-started/changes-in-v4.mdx b/versioned_docs/version-4.0.x/getting-started/changes-in-v4.mdx similarity index 99% rename from versioned_docs/version-4.0.0/getting-started/changes-in-v4.mdx rename to versioned_docs/version-4.0.x/getting-started/changes-in-v4.mdx index e00e259..39826b5 100644 --- a/versioned_docs/version-4.0.0/getting-started/changes-in-v4.mdx +++ b/versioned_docs/version-4.0.x/getting-started/changes-in-v4.mdx @@ -3,7 +3,6 @@ sidebar_position: 4 title: 'Changes in v4.0' description: 'Guidance on what has changed in v4.0' slug: /getting-started/changes-in-v4 -hide_title: true tags: - Changes - Getting Started diff --git a/versioned_docs/version-4.0.0/getting-started/creating-a-new-deployment.mdx b/versioned_docs/version-4.0.x/getting-started/creating-a-new-deployment.mdx similarity index 99% rename from versioned_docs/version-4.0.0/getting-started/creating-a-new-deployment.mdx rename to versioned_docs/version-4.0.x/getting-started/creating-a-new-deployment.mdx index e4de06c..27ca188 100644 --- a/versioned_docs/version-4.0.0/getting-started/creating-a-new-deployment.mdx +++ b/versioned_docs/version-4.0.x/getting-started/creating-a-new-deployment.mdx @@ -3,7 +3,6 @@ sidebar_position: 5 title: 'Creating a new deployment' description: 'How to create a new deployment from a deployment template.' slug: /getting-started/creating-a-new-deployment -hide_title: true tags: - Usage - Template diff --git a/versioned_docs/version-4.0.0/getting-started/download.mdx b/versioned_docs/version-4.0.x/getting-started/download.mdx similarity index 99% rename from versioned_docs/version-4.0.0/getting-started/download.mdx rename to versioned_docs/version-4.0.x/getting-started/download.mdx index e5b28ed..ac0ebf6 100644 --- a/versioned_docs/version-4.0.0/getting-started/download.mdx +++ b/versioned_docs/version-4.0.x/getting-started/download.mdx @@ -2,7 +2,6 @@ sidebar_position: 3 title: 'Download' description: 'How to download a copy of PSAppDeployToolkit.' -hide_title: true slug: /getting-started/download tags: - Download diff --git a/versioned_docs/version-4.0.0/getting-started/faq.mdx b/versioned_docs/version-4.0.x/getting-started/faq.mdx similarity index 99% rename from versioned_docs/version-4.0.0/getting-started/faq.mdx rename to versioned_docs/version-4.0.x/getting-started/faq.mdx index b113809..c471834 100644 --- a/versioned_docs/version-4.0.0/getting-started/faq.mdx +++ b/versioned_docs/version-4.0.x/getting-started/faq.mdx @@ -3,7 +3,6 @@ sidebar_position: 7 title: 'FAQ' description: 'Frequently Asked Questions' slug: /getting-started/faq -hide_title: true tags: - Getting Started - FAQ diff --git a/versioned_docs/version-4.0.0/getting-started/licensing.mdx b/versioned_docs/version-4.0.x/getting-started/licensing.mdx similarity index 99% rename from versioned_docs/version-4.0.0/getting-started/licensing.mdx rename to versioned_docs/version-4.0.x/getting-started/licensing.mdx index ca56f74..588a32c 100644 --- a/versioned_docs/version-4.0.0/getting-started/licensing.mdx +++ b/versioned_docs/version-4.0.x/getting-started/licensing.mdx @@ -2,7 +2,6 @@ sidebar_position: 1 title: 'Licensing' description: 'Information on how PSAppDeployToolkit is licensed.' -hide_title: true slug: /getting-started/licensing tags: - Licensing diff --git a/versioned_docs/version-4.0.0/getting-started/migrating-from-v3.mdx b/versioned_docs/version-4.0.x/getting-started/migrating-from-v3.mdx similarity index 99% rename from versioned_docs/version-4.0.0/getting-started/migrating-from-v3.mdx rename to versioned_docs/version-4.0.x/getting-started/migrating-from-v3.mdx index faa53ee..069f967 100644 --- a/versioned_docs/version-4.0.0/getting-started/migrating-from-v3.mdx +++ b/versioned_docs/version-4.0.x/getting-started/migrating-from-v3.mdx @@ -3,7 +3,6 @@ sidebar_position: 6 title: 'Migrating from v3' description: 'Migration guidance for those coming from v3.' slug: /getting-started/migrating-from-v3 -hide_title: true tags: - Usage - Migration diff --git a/versioned_docs/version-4.0.0/getting-started/requirements.mdx b/versioned_docs/version-4.0.x/getting-started/requirements.mdx similarity index 98% rename from versioned_docs/version-4.0.0/getting-started/requirements.mdx rename to versioned_docs/version-4.0.x/getting-started/requirements.mdx index cc9e577..80aa9f2 100644 --- a/versioned_docs/version-4.0.0/getting-started/requirements.mdx +++ b/versioned_docs/version-4.0.x/getting-started/requirements.mdx @@ -2,7 +2,6 @@ sidebar_position: 2 title: 'Requirements' description: 'The requirements for running PSAppDeployToolkit.' -hide_title: true slug: /getting-started/requirements tags: - Requirements diff --git a/versioned_docs/version-4.0.0/images/chrome-sccm1.png b/versioned_docs/version-4.0.x/images/chrome-sccm1.png similarity index 100% rename from versioned_docs/version-4.0.0/images/chrome-sccm1.png rename to versioned_docs/version-4.0.x/images/chrome-sccm1.png diff --git a/versioned_docs/version-4.0.0/images/chrome-sccm10.png b/versioned_docs/version-4.0.x/images/chrome-sccm10.png similarity index 100% rename from versioned_docs/version-4.0.0/images/chrome-sccm10.png rename to versioned_docs/version-4.0.x/images/chrome-sccm10.png diff --git a/versioned_docs/version-4.0.0/images/chrome-sccm11.png b/versioned_docs/version-4.0.x/images/chrome-sccm11.png similarity index 100% rename from versioned_docs/version-4.0.0/images/chrome-sccm11.png rename to versioned_docs/version-4.0.x/images/chrome-sccm11.png diff --git a/versioned_docs/version-4.0.0/images/chrome-sccm12.png b/versioned_docs/version-4.0.x/images/chrome-sccm12.png similarity index 100% rename from versioned_docs/version-4.0.0/images/chrome-sccm12.png rename to versioned_docs/version-4.0.x/images/chrome-sccm12.png diff --git a/versioned_docs/version-4.0.0/images/chrome-sccm13.png b/versioned_docs/version-4.0.x/images/chrome-sccm13.png similarity index 100% rename from versioned_docs/version-4.0.0/images/chrome-sccm13.png rename to versioned_docs/version-4.0.x/images/chrome-sccm13.png diff --git a/versioned_docs/version-4.0.0/images/chrome-sccm14.png b/versioned_docs/version-4.0.x/images/chrome-sccm14.png similarity index 100% rename from versioned_docs/version-4.0.0/images/chrome-sccm14.png rename to versioned_docs/version-4.0.x/images/chrome-sccm14.png diff --git a/versioned_docs/version-4.0.0/images/chrome-sccm15.png b/versioned_docs/version-4.0.x/images/chrome-sccm15.png similarity index 100% rename from versioned_docs/version-4.0.0/images/chrome-sccm15.png rename to versioned_docs/version-4.0.x/images/chrome-sccm15.png diff --git a/versioned_docs/version-4.0.0/images/chrome-sccm16.png b/versioned_docs/version-4.0.x/images/chrome-sccm16.png similarity index 100% rename from versioned_docs/version-4.0.0/images/chrome-sccm16.png rename to versioned_docs/version-4.0.x/images/chrome-sccm16.png diff --git a/versioned_docs/version-4.0.0/images/chrome-sccm17.png b/versioned_docs/version-4.0.x/images/chrome-sccm17.png similarity index 100% rename from versioned_docs/version-4.0.0/images/chrome-sccm17.png rename to versioned_docs/version-4.0.x/images/chrome-sccm17.png diff --git a/versioned_docs/version-4.0.0/images/chrome-sccm18.png b/versioned_docs/version-4.0.x/images/chrome-sccm18.png similarity index 100% rename from versioned_docs/version-4.0.0/images/chrome-sccm18.png rename to versioned_docs/version-4.0.x/images/chrome-sccm18.png diff --git a/versioned_docs/version-4.0.0/images/chrome-sccm19.png b/versioned_docs/version-4.0.x/images/chrome-sccm19.png similarity index 100% rename from versioned_docs/version-4.0.0/images/chrome-sccm19.png rename to versioned_docs/version-4.0.x/images/chrome-sccm19.png diff --git a/versioned_docs/version-4.0.0/images/chrome-sccm2.png b/versioned_docs/version-4.0.x/images/chrome-sccm2.png similarity index 100% rename from versioned_docs/version-4.0.0/images/chrome-sccm2.png rename to versioned_docs/version-4.0.x/images/chrome-sccm2.png diff --git a/versioned_docs/version-4.0.0/images/chrome-sccm20.png b/versioned_docs/version-4.0.x/images/chrome-sccm20.png similarity index 100% rename from versioned_docs/version-4.0.0/images/chrome-sccm20.png rename to versioned_docs/version-4.0.x/images/chrome-sccm20.png diff --git a/versioned_docs/version-4.0.0/images/chrome-sccm21.png b/versioned_docs/version-4.0.x/images/chrome-sccm21.png similarity index 100% rename from versioned_docs/version-4.0.0/images/chrome-sccm21.png rename to versioned_docs/version-4.0.x/images/chrome-sccm21.png diff --git a/versioned_docs/version-4.0.0/images/chrome-sccm22.png b/versioned_docs/version-4.0.x/images/chrome-sccm22.png similarity index 100% rename from versioned_docs/version-4.0.0/images/chrome-sccm22.png rename to versioned_docs/version-4.0.x/images/chrome-sccm22.png diff --git a/versioned_docs/version-4.0.0/images/chrome-sccm23.png b/versioned_docs/version-4.0.x/images/chrome-sccm23.png similarity index 100% rename from versioned_docs/version-4.0.0/images/chrome-sccm23.png rename to versioned_docs/version-4.0.x/images/chrome-sccm23.png diff --git a/versioned_docs/version-4.0.0/images/chrome-sccm24.png b/versioned_docs/version-4.0.x/images/chrome-sccm24.png similarity index 100% rename from versioned_docs/version-4.0.0/images/chrome-sccm24.png rename to versioned_docs/version-4.0.x/images/chrome-sccm24.png diff --git a/versioned_docs/version-4.0.0/images/chrome-sccm25.png b/versioned_docs/version-4.0.x/images/chrome-sccm25.png similarity index 100% rename from versioned_docs/version-4.0.0/images/chrome-sccm25.png rename to versioned_docs/version-4.0.x/images/chrome-sccm25.png diff --git a/versioned_docs/version-4.0.0/images/chrome-sccm26.png b/versioned_docs/version-4.0.x/images/chrome-sccm26.png similarity index 100% rename from versioned_docs/version-4.0.0/images/chrome-sccm26.png rename to versioned_docs/version-4.0.x/images/chrome-sccm26.png diff --git a/versioned_docs/version-4.0.0/images/chrome-sccm3.png b/versioned_docs/version-4.0.x/images/chrome-sccm3.png similarity index 100% rename from versioned_docs/version-4.0.0/images/chrome-sccm3.png rename to versioned_docs/version-4.0.x/images/chrome-sccm3.png diff --git a/versioned_docs/version-4.0.0/images/chrome-sccm4.png b/versioned_docs/version-4.0.x/images/chrome-sccm4.png similarity index 100% rename from versioned_docs/version-4.0.0/images/chrome-sccm4.png rename to versioned_docs/version-4.0.x/images/chrome-sccm4.png diff --git a/versioned_docs/version-4.0.0/images/chrome-sccm5.png b/versioned_docs/version-4.0.x/images/chrome-sccm5.png similarity index 100% rename from versioned_docs/version-4.0.0/images/chrome-sccm5.png rename to versioned_docs/version-4.0.x/images/chrome-sccm5.png diff --git a/versioned_docs/version-4.0.0/images/chrome-sccm6.png b/versioned_docs/version-4.0.x/images/chrome-sccm6.png similarity index 100% rename from versioned_docs/version-4.0.0/images/chrome-sccm6.png rename to versioned_docs/version-4.0.x/images/chrome-sccm6.png diff --git a/versioned_docs/version-4.0.0/images/chrome-sccm7.png b/versioned_docs/version-4.0.x/images/chrome-sccm7.png similarity index 100% rename from versioned_docs/version-4.0.0/images/chrome-sccm7.png rename to versioned_docs/version-4.0.x/images/chrome-sccm7.png diff --git a/versioned_docs/version-4.0.0/images/chrome-sccm8.png b/versioned_docs/version-4.0.x/images/chrome-sccm8.png similarity index 100% rename from versioned_docs/version-4.0.0/images/chrome-sccm8.png rename to versioned_docs/version-4.0.x/images/chrome-sccm8.png diff --git a/versioned_docs/version-4.0.0/images/chrome-sccm9.png b/versioned_docs/version-4.0.x/images/chrome-sccm9.png similarity index 100% rename from versioned_docs/version-4.0.0/images/chrome-sccm9.png rename to versioned_docs/version-4.0.x/images/chrome-sccm9.png diff --git a/versioned_docs/version-4.0.0/images/psadt-3buttonmsgbox_dark.png b/versioned_docs/version-4.0.x/images/psadt-3buttonmsgbox_dark.png similarity index 100% rename from versioned_docs/version-4.0.0/images/psadt-3buttonmsgbox_dark.png rename to versioned_docs/version-4.0.x/images/psadt-3buttonmsgbox_dark.png diff --git a/versioned_docs/version-4.0.0/images/psadt-3buttonmsgbox_light.png b/versioned_docs/version-4.0.x/images/psadt-3buttonmsgbox_light.png similarity index 100% rename from versioned_docs/version-4.0.0/images/psadt-3buttonmsgbox_light.png rename to versioned_docs/version-4.0.x/images/psadt-3buttonmsgbox_light.png diff --git a/versioned_docs/version-4.0.0/images/psadt-blockexecution_dark.png b/versioned_docs/version-4.0.x/images/psadt-blockexecution_dark.png similarity index 100% rename from versioned_docs/version-4.0.0/images/psadt-blockexecution_dark.png rename to versioned_docs/version-4.0.x/images/psadt-blockexecution_dark.png diff --git a/versioned_docs/version-4.0.0/images/psadt-blockexecution_light.png b/versioned_docs/version-4.0.x/images/psadt-blockexecution_light.png similarity index 100% rename from versioned_docs/version-4.0.0/images/psadt-blockexecution_light.png rename to versioned_docs/version-4.0.x/images/psadt-blockexecution_light.png diff --git a/versioned_docs/version-4.0.0/images/psadt-closeapps_dark.png b/versioned_docs/version-4.0.x/images/psadt-closeapps_dark.png similarity index 100% rename from versioned_docs/version-4.0.0/images/psadt-closeapps_dark.png rename to versioned_docs/version-4.0.x/images/psadt-closeapps_dark.png diff --git a/versioned_docs/version-4.0.0/images/psadt-closeapps_light.png b/versioned_docs/version-4.0.x/images/psadt-closeapps_light.png similarity index 100% rename from versioned_docs/version-4.0.0/images/psadt-closeapps_light.png rename to versioned_docs/version-4.0.x/images/psadt-closeapps_light.png diff --git a/versioned_docs/version-4.0.0/images/psadt-custommsg_dark.png b/versioned_docs/version-4.0.x/images/psadt-custommsg_dark.png similarity index 100% rename from versioned_docs/version-4.0.0/images/psadt-custommsg_dark.png rename to versioned_docs/version-4.0.x/images/psadt-custommsg_dark.png diff --git a/versioned_docs/version-4.0.0/images/psadt-custommsg_light.png b/versioned_docs/version-4.0.x/images/psadt-custommsg_light.png similarity index 100% rename from versioned_docs/version-4.0.0/images/psadt-custommsg_light.png rename to versioned_docs/version-4.0.x/images/psadt-custommsg_light.png diff --git a/versioned_docs/version-4.0.0/images/psadt-customprogress_dark.png b/versioned_docs/version-4.0.x/images/psadt-customprogress_dark.png similarity index 100% rename from versioned_docs/version-4.0.0/images/psadt-customprogress_dark.png rename to versioned_docs/version-4.0.x/images/psadt-customprogress_dark.png diff --git a/versioned_docs/version-4.0.0/images/psadt-customprogress_light.png b/versioned_docs/version-4.0.x/images/psadt-customprogress_light.png similarity index 100% rename from versioned_docs/version-4.0.0/images/psadt-customprogress_light.png rename to versioned_docs/version-4.0.x/images/psadt-customprogress_light.png diff --git a/versioned_docs/version-4.0.0/images/psadt-dark-logo.png b/versioned_docs/version-4.0.x/images/psadt-dark-logo.png similarity index 100% rename from versioned_docs/version-4.0.0/images/psadt-dark-logo.png rename to versioned_docs/version-4.0.x/images/psadt-dark-logo.png diff --git a/versioned_docs/version-4.0.0/images/psadt-dark-stacked.png b/versioned_docs/version-4.0.x/images/psadt-dark-stacked.png similarity index 100% rename from versioned_docs/version-4.0.0/images/psadt-dark-stacked.png rename to versioned_docs/version-4.0.x/images/psadt-dark-stacked.png diff --git a/versioned_docs/version-4.0.0/images/psadt-dark-sxs.png b/versioned_docs/version-4.0.x/images/psadt-dark-sxs.png similarity index 100% rename from versioned_docs/version-4.0.0/images/psadt-dark-sxs.png rename to versioned_docs/version-4.0.x/images/psadt-dark-sxs.png diff --git a/versioned_docs/version-4.0.0/images/psadt-helpconsole.png b/versioned_docs/version-4.0.x/images/psadt-helpconsole.png similarity index 100% rename from versioned_docs/version-4.0.0/images/psadt-helpconsole.png rename to versioned_docs/version-4.0.x/images/psadt-helpconsole.png diff --git a/versioned_docs/version-4.0.0/images/psadt-inprogress_dark.png b/versioned_docs/version-4.0.x/images/psadt-inprogress_dark.png similarity index 100% rename from versioned_docs/version-4.0.0/images/psadt-inprogress_dark.png rename to versioned_docs/version-4.0.x/images/psadt-inprogress_dark.png diff --git a/versioned_docs/version-4.0.0/images/psadt-inprogress_light.png b/versioned_docs/version-4.0.x/images/psadt-inprogress_light.png similarity index 100% rename from versioned_docs/version-4.0.0/images/psadt-inprogress_light.png rename to versioned_docs/version-4.0.x/images/psadt-inprogress_light.png diff --git a/versioned_docs/version-4.0.0/images/psadt-light-logo.png b/versioned_docs/version-4.0.x/images/psadt-light-logo.png similarity index 100% rename from versioned_docs/version-4.0.0/images/psadt-light-logo.png rename to versioned_docs/version-4.0.x/images/psadt-light-logo.png diff --git a/versioned_docs/version-4.0.0/images/psadt-light-stacked.png b/versioned_docs/version-4.0.x/images/psadt-light-stacked.png similarity index 100% rename from versioned_docs/version-4.0.0/images/psadt-light-stacked.png rename to versioned_docs/version-4.0.x/images/psadt-light-stacked.png diff --git a/versioned_docs/version-4.0.0/images/psadt-light-sxs.png b/versioned_docs/version-4.0.x/images/psadt-light-sxs.png similarity index 100% rename from versioned_docs/version-4.0.0/images/psadt-light-sxs.png rename to versioned_docs/version-4.0.x/images/psadt-light-sxs.png diff --git a/versioned_docs/version-4.0.0/images/psadt-restarttimer_dark.png b/versioned_docs/version-4.0.x/images/psadt-restarttimer_dark.png similarity index 100% rename from versioned_docs/version-4.0.0/images/psadt-restarttimer_dark.png rename to versioned_docs/version-4.0.x/images/psadt-restarttimer_dark.png diff --git a/versioned_docs/version-4.0.0/images/psadt-restarttimer_light.png b/versioned_docs/version-4.0.x/images/psadt-restarttimer_light.png similarity index 100% rename from versioned_docs/version-4.0.0/images/psadt-restarttimer_light.png rename to versioned_docs/version-4.0.x/images/psadt-restarttimer_light.png diff --git a/versioned_docs/version-4.0.0/images/psadt-welcome_dark.png b/versioned_docs/version-4.0.x/images/psadt-welcome_dark.png similarity index 100% rename from versioned_docs/version-4.0.0/images/psadt-welcome_dark.png rename to versioned_docs/version-4.0.x/images/psadt-welcome_dark.png diff --git a/versioned_docs/version-4.0.0/images/psadt-welcome_light.png b/versioned_docs/version-4.0.x/images/psadt-welcome_light.png similarity index 100% rename from versioned_docs/version-4.0.0/images/psadt-welcome_light.png rename to versioned_docs/version-4.0.x/images/psadt-welcome_light.png diff --git a/versioned_docs/version-4.0.0/introduction.mdx b/versioned_docs/version-4.0.x/introduction.mdx similarity index 99% rename from versioned_docs/version-4.0.0/introduction.mdx rename to versioned_docs/version-4.0.x/introduction.mdx index 7facb92..46686d4 100644 --- a/versioned_docs/version-4.0.0/introduction.mdx +++ b/versioned_docs/version-4.0.x/introduction.mdx @@ -2,7 +2,6 @@ sidebar_position: 1 title: 'Introduction' description: Get up and running with PSAppDeployToolkit in minutes. -hide_title: true id: introduction tags: - Documentation diff --git a/versioned_docs/version-4.0.0/reference.mdx b/versioned_docs/version-4.0.x/reference.mdx similarity index 98% rename from versioned_docs/version-4.0.0/reference.mdx rename to versioned_docs/version-4.0.x/reference.mdx index 7d41e80..aa8664e 100644 --- a/versioned_docs/version-4.0.0/reference.mdx +++ b/versioned_docs/version-4.0.x/reference.mdx @@ -2,7 +2,6 @@ sidebar_position: 1 title: 'Reference' description: 'A handy reference to the Exit Codes used by PSAppDeployToolkit, as well as the Variables and Functions made available for you to use.' -hide_title: true id: reference tags: - Reference diff --git a/versioned_docs/version-4.0.0/reference/_category_.json b/versioned_docs/version-4.0.x/reference/_category_.json similarity index 100% rename from versioned_docs/version-4.0.0/reference/_category_.json rename to versioned_docs/version-4.0.x/reference/_category_.json diff --git a/versioned_docs/version-4.0.0/reference/adtsession-object.mdx b/versioned_docs/version-4.0.x/reference/adtsession-object.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/adtsession-object.mdx rename to versioned_docs/version-4.0.x/reference/adtsession-object.mdx diff --git a/versioned_docs/version-4.0.0/reference/config-settings.mdx b/versioned_docs/version-4.0.x/reference/config-settings.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/config-settings.mdx rename to versioned_docs/version-4.0.x/reference/config-settings.mdx diff --git a/versioned_docs/version-4.0.0/reference/exit-codes.mdx b/versioned_docs/version-4.0.x/reference/exit-codes.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/exit-codes.mdx rename to versioned_docs/version-4.0.x/reference/exit-codes.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/Add-ADTEdgeExtension.mdx b/versioned_docs/version-4.0.x/reference/functions/Add-ADTEdgeExtension.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/Add-ADTEdgeExtension.mdx rename to versioned_docs/version-4.0.x/reference/functions/Add-ADTEdgeExtension.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/Add-ADTSessionClosingCallback.mdx b/versioned_docs/version-4.0.x/reference/functions/Add-ADTSessionClosingCallback.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/Add-ADTSessionClosingCallback.mdx rename to versioned_docs/version-4.0.x/reference/functions/Add-ADTSessionClosingCallback.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/Add-ADTSessionFinishingCallback.mdx b/versioned_docs/version-4.0.x/reference/functions/Add-ADTSessionFinishingCallback.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/Add-ADTSessionFinishingCallback.mdx rename to versioned_docs/version-4.0.x/reference/functions/Add-ADTSessionFinishingCallback.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/Add-ADTSessionOpeningCallback.mdx b/versioned_docs/version-4.0.x/reference/functions/Add-ADTSessionOpeningCallback.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/Add-ADTSessionOpeningCallback.mdx rename to versioned_docs/version-4.0.x/reference/functions/Add-ADTSessionOpeningCallback.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/Add-ADTSessionStartingCallback.mdx b/versioned_docs/version-4.0.x/reference/functions/Add-ADTSessionStartingCallback.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/Add-ADTSessionStartingCallback.mdx rename to versioned_docs/version-4.0.x/reference/functions/Add-ADTSessionStartingCallback.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/Block-ADTAppExecution.mdx b/versioned_docs/version-4.0.x/reference/functions/Block-ADTAppExecution.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/Block-ADTAppExecution.mdx rename to versioned_docs/version-4.0.x/reference/functions/Block-ADTAppExecution.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/Close-ADTInstallationProgress.mdx b/versioned_docs/version-4.0.x/reference/functions/Close-ADTInstallationProgress.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/Close-ADTInstallationProgress.mdx rename to versioned_docs/version-4.0.x/reference/functions/Close-ADTInstallationProgress.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/Close-ADTSession.mdx b/versioned_docs/version-4.0.x/reference/functions/Close-ADTSession.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/Close-ADTSession.mdx rename to versioned_docs/version-4.0.x/reference/functions/Close-ADTSession.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/Complete-ADTFunction.mdx b/versioned_docs/version-4.0.x/reference/functions/Complete-ADTFunction.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/Complete-ADTFunction.mdx rename to versioned_docs/version-4.0.x/reference/functions/Complete-ADTFunction.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/Convert-ADTRegistryPath.mdx b/versioned_docs/version-4.0.x/reference/functions/Convert-ADTRegistryPath.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/Convert-ADTRegistryPath.mdx rename to versioned_docs/version-4.0.x/reference/functions/Convert-ADTRegistryPath.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/Convert-ADTValueType.mdx b/versioned_docs/version-4.0.x/reference/functions/Convert-ADTValueType.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/Convert-ADTValueType.mdx rename to versioned_docs/version-4.0.x/reference/functions/Convert-ADTValueType.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/Convert-ADTValuesFromRemainingArguments.mdx b/versioned_docs/version-4.0.x/reference/functions/Convert-ADTValuesFromRemainingArguments.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/Convert-ADTValuesFromRemainingArguments.mdx rename to versioned_docs/version-4.0.x/reference/functions/Convert-ADTValuesFromRemainingArguments.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/ConvertTo-ADTNTAccountOrSID.mdx b/versioned_docs/version-4.0.x/reference/functions/ConvertTo-ADTNTAccountOrSID.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/ConvertTo-ADTNTAccountOrSID.mdx rename to versioned_docs/version-4.0.x/reference/functions/ConvertTo-ADTNTAccountOrSID.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/Copy-ADTContentToCache.mdx b/versioned_docs/version-4.0.x/reference/functions/Copy-ADTContentToCache.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/Copy-ADTContentToCache.mdx rename to versioned_docs/version-4.0.x/reference/functions/Copy-ADTContentToCache.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/Copy-ADTFile.mdx b/versioned_docs/version-4.0.x/reference/functions/Copy-ADTFile.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/Copy-ADTFile.mdx rename to versioned_docs/version-4.0.x/reference/functions/Copy-ADTFile.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/Copy-ADTFileToUserProfiles.mdx b/versioned_docs/version-4.0.x/reference/functions/Copy-ADTFileToUserProfiles.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/Copy-ADTFileToUserProfiles.mdx rename to versioned_docs/version-4.0.x/reference/functions/Copy-ADTFileToUserProfiles.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/Disable-ADTTerminalServerInstallMode.mdx b/versioned_docs/version-4.0.x/reference/functions/Disable-ADTTerminalServerInstallMode.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/Disable-ADTTerminalServerInstallMode.mdx rename to versioned_docs/version-4.0.x/reference/functions/Disable-ADTTerminalServerInstallMode.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/Dismount-ADTWimFile.mdx b/versioned_docs/version-4.0.x/reference/functions/Dismount-ADTWimFile.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/Dismount-ADTWimFile.mdx rename to versioned_docs/version-4.0.x/reference/functions/Dismount-ADTWimFile.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/Enable-ADTTerminalServerInstallMode.mdx b/versioned_docs/version-4.0.x/reference/functions/Enable-ADTTerminalServerInstallMode.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/Enable-ADTTerminalServerInstallMode.mdx rename to versioned_docs/version-4.0.x/reference/functions/Enable-ADTTerminalServerInstallMode.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/Export-ADTEnvironmentTableToSessionState.mdx b/versioned_docs/version-4.0.x/reference/functions/Export-ADTEnvironmentTableToSessionState.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/Export-ADTEnvironmentTableToSessionState.mdx rename to versioned_docs/version-4.0.x/reference/functions/Export-ADTEnvironmentTableToSessionState.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/Get-ADTApplication.mdx b/versioned_docs/version-4.0.x/reference/functions/Get-ADTApplication.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/Get-ADTApplication.mdx rename to versioned_docs/version-4.0.x/reference/functions/Get-ADTApplication.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/Get-ADTBoundParametersAndDefaultValues.mdx b/versioned_docs/version-4.0.x/reference/functions/Get-ADTBoundParametersAndDefaultValues.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/Get-ADTBoundParametersAndDefaultValues.mdx rename to versioned_docs/version-4.0.x/reference/functions/Get-ADTBoundParametersAndDefaultValues.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/Get-ADTCommandTable.mdx b/versioned_docs/version-4.0.x/reference/functions/Get-ADTCommandTable.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/Get-ADTCommandTable.mdx rename to versioned_docs/version-4.0.x/reference/functions/Get-ADTCommandTable.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/Get-ADTConfig.mdx b/versioned_docs/version-4.0.x/reference/functions/Get-ADTConfig.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/Get-ADTConfig.mdx rename to versioned_docs/version-4.0.x/reference/functions/Get-ADTConfig.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/Get-ADTDeferHistory.mdx b/versioned_docs/version-4.0.x/reference/functions/Get-ADTDeferHistory.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/Get-ADTDeferHistory.mdx rename to versioned_docs/version-4.0.x/reference/functions/Get-ADTDeferHistory.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/Get-ADTEnvironment.mdx b/versioned_docs/version-4.0.x/reference/functions/Get-ADTEnvironment.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/Get-ADTEnvironment.mdx rename to versioned_docs/version-4.0.x/reference/functions/Get-ADTEnvironment.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/Get-ADTEnvironmentTable.mdx b/versioned_docs/version-4.0.x/reference/functions/Get-ADTEnvironmentTable.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/Get-ADTEnvironmentTable.mdx rename to versioned_docs/version-4.0.x/reference/functions/Get-ADTEnvironmentTable.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/Get-ADTFileVersion.mdx b/versioned_docs/version-4.0.x/reference/functions/Get-ADTFileVersion.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/Get-ADTFileVersion.mdx rename to versioned_docs/version-4.0.x/reference/functions/Get-ADTFileVersion.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/Get-ADTFreeDiskSpace.mdx b/versioned_docs/version-4.0.x/reference/functions/Get-ADTFreeDiskSpace.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/Get-ADTFreeDiskSpace.mdx rename to versioned_docs/version-4.0.x/reference/functions/Get-ADTFreeDiskSpace.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/Get-ADTIniValue.mdx b/versioned_docs/version-4.0.x/reference/functions/Get-ADTIniValue.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/Get-ADTIniValue.mdx rename to versioned_docs/version-4.0.x/reference/functions/Get-ADTIniValue.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/Get-ADTLoggedOnUser.mdx b/versioned_docs/version-4.0.x/reference/functions/Get-ADTLoggedOnUser.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/Get-ADTLoggedOnUser.mdx rename to versioned_docs/version-4.0.x/reference/functions/Get-ADTLoggedOnUser.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/Get-ADTMsiExitCodeMessage.mdx b/versioned_docs/version-4.0.x/reference/functions/Get-ADTMsiExitCodeMessage.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/Get-ADTMsiExitCodeMessage.mdx rename to versioned_docs/version-4.0.x/reference/functions/Get-ADTMsiExitCodeMessage.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/Get-ADTMsiTableProperty.mdx b/versioned_docs/version-4.0.x/reference/functions/Get-ADTMsiTableProperty.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/Get-ADTMsiTableProperty.mdx rename to versioned_docs/version-4.0.x/reference/functions/Get-ADTMsiTableProperty.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/Get-ADTObjectProperty.mdx b/versioned_docs/version-4.0.x/reference/functions/Get-ADTObjectProperty.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/Get-ADTObjectProperty.mdx rename to versioned_docs/version-4.0.x/reference/functions/Get-ADTObjectProperty.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/Get-ADTOperatingSystemInfo.mdx b/versioned_docs/version-4.0.x/reference/functions/Get-ADTOperatingSystemInfo.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/Get-ADTOperatingSystemInfo.mdx rename to versioned_docs/version-4.0.x/reference/functions/Get-ADTOperatingSystemInfo.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/Get-ADTPEFileArchitecture.mdx b/versioned_docs/version-4.0.x/reference/functions/Get-ADTPEFileArchitecture.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/Get-ADTPEFileArchitecture.mdx rename to versioned_docs/version-4.0.x/reference/functions/Get-ADTPEFileArchitecture.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/Get-ADTPendingReboot.mdx b/versioned_docs/version-4.0.x/reference/functions/Get-ADTPendingReboot.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/Get-ADTPendingReboot.mdx rename to versioned_docs/version-4.0.x/reference/functions/Get-ADTPendingReboot.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/Get-ADTPowerShellProcessPath.mdx b/versioned_docs/version-4.0.x/reference/functions/Get-ADTPowerShellProcessPath.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/Get-ADTPowerShellProcessPath.mdx rename to versioned_docs/version-4.0.x/reference/functions/Get-ADTPowerShellProcessPath.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/Get-ADTPresentationSettingsEnabledUsers.mdx b/versioned_docs/version-4.0.x/reference/functions/Get-ADTPresentationSettingsEnabledUsers.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/Get-ADTPresentationSettingsEnabledUsers.mdx rename to versioned_docs/version-4.0.x/reference/functions/Get-ADTPresentationSettingsEnabledUsers.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/Get-ADTRegistryKey.mdx b/versioned_docs/version-4.0.x/reference/functions/Get-ADTRegistryKey.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/Get-ADTRegistryKey.mdx rename to versioned_docs/version-4.0.x/reference/functions/Get-ADTRegistryKey.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/Get-ADTRunAsActiveUser.mdx b/versioned_docs/version-4.0.x/reference/functions/Get-ADTRunAsActiveUser.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/Get-ADTRunAsActiveUser.mdx rename to versioned_docs/version-4.0.x/reference/functions/Get-ADTRunAsActiveUser.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/Get-ADTSchedulerTask.mdx b/versioned_docs/version-4.0.x/reference/functions/Get-ADTSchedulerTask.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/Get-ADTSchedulerTask.mdx rename to versioned_docs/version-4.0.x/reference/functions/Get-ADTSchedulerTask.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/Get-ADTServiceStartMode.mdx b/versioned_docs/version-4.0.x/reference/functions/Get-ADTServiceStartMode.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/Get-ADTServiceStartMode.mdx rename to versioned_docs/version-4.0.x/reference/functions/Get-ADTServiceStartMode.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/Get-ADTSession.mdx b/versioned_docs/version-4.0.x/reference/functions/Get-ADTSession.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/Get-ADTSession.mdx rename to versioned_docs/version-4.0.x/reference/functions/Get-ADTSession.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/Get-ADTShortcut.mdx b/versioned_docs/version-4.0.x/reference/functions/Get-ADTShortcut.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/Get-ADTShortcut.mdx rename to versioned_docs/version-4.0.x/reference/functions/Get-ADTShortcut.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/Get-ADTStringTable.mdx b/versioned_docs/version-4.0.x/reference/functions/Get-ADTStringTable.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/Get-ADTStringTable.mdx rename to versioned_docs/version-4.0.x/reference/functions/Get-ADTStringTable.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/Get-ADTUniversalDate.mdx b/versioned_docs/version-4.0.x/reference/functions/Get-ADTUniversalDate.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/Get-ADTUniversalDate.mdx rename to versioned_docs/version-4.0.x/reference/functions/Get-ADTUniversalDate.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/Get-ADTUserProfiles.mdx b/versioned_docs/version-4.0.x/reference/functions/Get-ADTUserProfiles.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/Get-ADTUserProfiles.mdx rename to versioned_docs/version-4.0.x/reference/functions/Get-ADTUserProfiles.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/Get-ADTWindowTitle.mdx b/versioned_docs/version-4.0.x/reference/functions/Get-ADTWindowTitle.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/Get-ADTWindowTitle.mdx rename to versioned_docs/version-4.0.x/reference/functions/Get-ADTWindowTitle.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/Initialize-ADTFunction.mdx b/versioned_docs/version-4.0.x/reference/functions/Initialize-ADTFunction.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/Initialize-ADTFunction.mdx rename to versioned_docs/version-4.0.x/reference/functions/Initialize-ADTFunction.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/Initialize-ADTModule.mdx b/versioned_docs/version-4.0.x/reference/functions/Initialize-ADTModule.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/Initialize-ADTModule.mdx rename to versioned_docs/version-4.0.x/reference/functions/Initialize-ADTModule.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/Install-ADTMSUpdates.mdx b/versioned_docs/version-4.0.x/reference/functions/Install-ADTMSUpdates.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/Install-ADTMSUpdates.mdx rename to versioned_docs/version-4.0.x/reference/functions/Install-ADTMSUpdates.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/Install-ADTSCCMSoftwareUpdates.mdx b/versioned_docs/version-4.0.x/reference/functions/Install-ADTSCCMSoftwareUpdates.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/Install-ADTSCCMSoftwareUpdates.mdx rename to versioned_docs/version-4.0.x/reference/functions/Install-ADTSCCMSoftwareUpdates.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/Invoke-ADTAllUsersRegistryAction.mdx b/versioned_docs/version-4.0.x/reference/functions/Invoke-ADTAllUsersRegistryAction.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/Invoke-ADTAllUsersRegistryAction.mdx rename to versioned_docs/version-4.0.x/reference/functions/Invoke-ADTAllUsersRegistryAction.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/Invoke-ADTCommandWithRetries.mdx b/versioned_docs/version-4.0.x/reference/functions/Invoke-ADTCommandWithRetries.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/Invoke-ADTCommandWithRetries.mdx rename to versioned_docs/version-4.0.x/reference/functions/Invoke-ADTCommandWithRetries.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/Invoke-ADTFunctionErrorHandler.mdx b/versioned_docs/version-4.0.x/reference/functions/Invoke-ADTFunctionErrorHandler.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/Invoke-ADTFunctionErrorHandler.mdx rename to versioned_docs/version-4.0.x/reference/functions/Invoke-ADTFunctionErrorHandler.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/Invoke-ADTObjectMethod.mdx b/versioned_docs/version-4.0.x/reference/functions/Invoke-ADTObjectMethod.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/Invoke-ADTObjectMethod.mdx rename to versioned_docs/version-4.0.x/reference/functions/Invoke-ADTObjectMethod.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/Invoke-ADTRegSvr32.mdx b/versioned_docs/version-4.0.x/reference/functions/Invoke-ADTRegSvr32.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/Invoke-ADTRegSvr32.mdx rename to versioned_docs/version-4.0.x/reference/functions/Invoke-ADTRegSvr32.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/Invoke-ADTSCCMTask.mdx b/versioned_docs/version-4.0.x/reference/functions/Invoke-ADTSCCMTask.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/Invoke-ADTSCCMTask.mdx rename to versioned_docs/version-4.0.x/reference/functions/Invoke-ADTSCCMTask.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/Mount-ADTWimFile.mdx b/versioned_docs/version-4.0.x/reference/functions/Mount-ADTWimFile.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/Mount-ADTWimFile.mdx rename to versioned_docs/version-4.0.x/reference/functions/Mount-ADTWimFile.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/New-ADTErrorRecord.mdx b/versioned_docs/version-4.0.x/reference/functions/New-ADTErrorRecord.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/New-ADTErrorRecord.mdx rename to versioned_docs/version-4.0.x/reference/functions/New-ADTErrorRecord.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/New-ADTFolder.mdx b/versioned_docs/version-4.0.x/reference/functions/New-ADTFolder.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/New-ADTFolder.mdx rename to versioned_docs/version-4.0.x/reference/functions/New-ADTFolder.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/New-ADTMsiTransform.mdx b/versioned_docs/version-4.0.x/reference/functions/New-ADTMsiTransform.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/New-ADTMsiTransform.mdx rename to versioned_docs/version-4.0.x/reference/functions/New-ADTMsiTransform.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/New-ADTShortcut.mdx b/versioned_docs/version-4.0.x/reference/functions/New-ADTShortcut.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/New-ADTShortcut.mdx rename to versioned_docs/version-4.0.x/reference/functions/New-ADTShortcut.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/New-ADTTemplate.mdx b/versioned_docs/version-4.0.x/reference/functions/New-ADTTemplate.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/New-ADTTemplate.mdx rename to versioned_docs/version-4.0.x/reference/functions/New-ADTTemplate.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/New-ADTValidateScriptErrorRecord.mdx b/versioned_docs/version-4.0.x/reference/functions/New-ADTValidateScriptErrorRecord.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/New-ADTValidateScriptErrorRecord.mdx rename to versioned_docs/version-4.0.x/reference/functions/New-ADTValidateScriptErrorRecord.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/New-ADTZipFile.mdx b/versioned_docs/version-4.0.x/reference/functions/New-ADTZipFile.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/New-ADTZipFile.mdx rename to versioned_docs/version-4.0.x/reference/functions/New-ADTZipFile.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/Open-ADTSession.mdx b/versioned_docs/version-4.0.x/reference/functions/Open-ADTSession.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/Open-ADTSession.mdx rename to versioned_docs/version-4.0.x/reference/functions/Open-ADTSession.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/Out-ADTPowerShellEncodedCommand.mdx b/versioned_docs/version-4.0.x/reference/functions/Out-ADTPowerShellEncodedCommand.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/Out-ADTPowerShellEncodedCommand.mdx rename to versioned_docs/version-4.0.x/reference/functions/Out-ADTPowerShellEncodedCommand.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/Register-ADTDll.mdx b/versioned_docs/version-4.0.x/reference/functions/Register-ADTDll.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/Register-ADTDll.mdx rename to versioned_docs/version-4.0.x/reference/functions/Register-ADTDll.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/Remove-ADTContentFromCache.mdx b/versioned_docs/version-4.0.x/reference/functions/Remove-ADTContentFromCache.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/Remove-ADTContentFromCache.mdx rename to versioned_docs/version-4.0.x/reference/functions/Remove-ADTContentFromCache.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/Remove-ADTEdgeExtension.mdx b/versioned_docs/version-4.0.x/reference/functions/Remove-ADTEdgeExtension.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/Remove-ADTEdgeExtension.mdx rename to versioned_docs/version-4.0.x/reference/functions/Remove-ADTEdgeExtension.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/Remove-ADTFile.mdx b/versioned_docs/version-4.0.x/reference/functions/Remove-ADTFile.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/Remove-ADTFile.mdx rename to versioned_docs/version-4.0.x/reference/functions/Remove-ADTFile.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/Remove-ADTFileFromUserProfiles.mdx b/versioned_docs/version-4.0.x/reference/functions/Remove-ADTFileFromUserProfiles.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/Remove-ADTFileFromUserProfiles.mdx rename to versioned_docs/version-4.0.x/reference/functions/Remove-ADTFileFromUserProfiles.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/Remove-ADTFolder.mdx b/versioned_docs/version-4.0.x/reference/functions/Remove-ADTFolder.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/Remove-ADTFolder.mdx rename to versioned_docs/version-4.0.x/reference/functions/Remove-ADTFolder.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/Remove-ADTInvalidFileNameChars.mdx b/versioned_docs/version-4.0.x/reference/functions/Remove-ADTInvalidFileNameChars.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/Remove-ADTInvalidFileNameChars.mdx rename to versioned_docs/version-4.0.x/reference/functions/Remove-ADTInvalidFileNameChars.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/Remove-ADTRegistryKey.mdx b/versioned_docs/version-4.0.x/reference/functions/Remove-ADTRegistryKey.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/Remove-ADTRegistryKey.mdx rename to versioned_docs/version-4.0.x/reference/functions/Remove-ADTRegistryKey.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/Remove-ADTSessionClosingCallback.mdx b/versioned_docs/version-4.0.x/reference/functions/Remove-ADTSessionClosingCallback.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/Remove-ADTSessionClosingCallback.mdx rename to versioned_docs/version-4.0.x/reference/functions/Remove-ADTSessionClosingCallback.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/Remove-ADTSessionFinishingCallback.mdx b/versioned_docs/version-4.0.x/reference/functions/Remove-ADTSessionFinishingCallback.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/Remove-ADTSessionFinishingCallback.mdx rename to versioned_docs/version-4.0.x/reference/functions/Remove-ADTSessionFinishingCallback.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/Remove-ADTSessionOpeningCallback.mdx b/versioned_docs/version-4.0.x/reference/functions/Remove-ADTSessionOpeningCallback.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/Remove-ADTSessionOpeningCallback.mdx rename to versioned_docs/version-4.0.x/reference/functions/Remove-ADTSessionOpeningCallback.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/Remove-ADTSessionStartingCallback.mdx b/versioned_docs/version-4.0.x/reference/functions/Remove-ADTSessionStartingCallback.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/Remove-ADTSessionStartingCallback.mdx rename to versioned_docs/version-4.0.x/reference/functions/Remove-ADTSessionStartingCallback.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/Reset-ADTDeferHistory.mdx b/versioned_docs/version-4.0.x/reference/functions/Reset-ADTDeferHistory.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/Reset-ADTDeferHistory.mdx rename to versioned_docs/version-4.0.x/reference/functions/Reset-ADTDeferHistory.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/Resolve-ADTErrorRecord.mdx b/versioned_docs/version-4.0.x/reference/functions/Resolve-ADTErrorRecord.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/Resolve-ADTErrorRecord.mdx rename to versioned_docs/version-4.0.x/reference/functions/Resolve-ADTErrorRecord.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/Send-ADTKeys.mdx b/versioned_docs/version-4.0.x/reference/functions/Send-ADTKeys.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/Send-ADTKeys.mdx rename to versioned_docs/version-4.0.x/reference/functions/Send-ADTKeys.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/Set-ADTActiveSetup.mdx b/versioned_docs/version-4.0.x/reference/functions/Set-ADTActiveSetup.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/Set-ADTActiveSetup.mdx rename to versioned_docs/version-4.0.x/reference/functions/Set-ADTActiveSetup.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/Set-ADTDeferHistory.mdx b/versioned_docs/version-4.0.x/reference/functions/Set-ADTDeferHistory.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/Set-ADTDeferHistory.mdx rename to versioned_docs/version-4.0.x/reference/functions/Set-ADTDeferHistory.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/Set-ADTIniValue.mdx b/versioned_docs/version-4.0.x/reference/functions/Set-ADTIniValue.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/Set-ADTIniValue.mdx rename to versioned_docs/version-4.0.x/reference/functions/Set-ADTIniValue.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/Set-ADTItemPermission.mdx b/versioned_docs/version-4.0.x/reference/functions/Set-ADTItemPermission.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/Set-ADTItemPermission.mdx rename to versioned_docs/version-4.0.x/reference/functions/Set-ADTItemPermission.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/Set-ADTMsiProperty.mdx b/versioned_docs/version-4.0.x/reference/functions/Set-ADTMsiProperty.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/Set-ADTMsiProperty.mdx rename to versioned_docs/version-4.0.x/reference/functions/Set-ADTMsiProperty.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/Set-ADTPowerShellCulture.mdx b/versioned_docs/version-4.0.x/reference/functions/Set-ADTPowerShellCulture.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/Set-ADTPowerShellCulture.mdx rename to versioned_docs/version-4.0.x/reference/functions/Set-ADTPowerShellCulture.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/Set-ADTRegistryKey.mdx b/versioned_docs/version-4.0.x/reference/functions/Set-ADTRegistryKey.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/Set-ADTRegistryKey.mdx rename to versioned_docs/version-4.0.x/reference/functions/Set-ADTRegistryKey.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/Set-ADTServiceStartMode.mdx b/versioned_docs/version-4.0.x/reference/functions/Set-ADTServiceStartMode.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/Set-ADTServiceStartMode.mdx rename to versioned_docs/version-4.0.x/reference/functions/Set-ADTServiceStartMode.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/Set-ADTShortcut.mdx b/versioned_docs/version-4.0.x/reference/functions/Set-ADTShortcut.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/Set-ADTShortcut.mdx rename to versioned_docs/version-4.0.x/reference/functions/Set-ADTShortcut.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/Show-ADTBalloonTip.mdx b/versioned_docs/version-4.0.x/reference/functions/Show-ADTBalloonTip.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/Show-ADTBalloonTip.mdx rename to versioned_docs/version-4.0.x/reference/functions/Show-ADTBalloonTip.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/Show-ADTDialogBox.mdx b/versioned_docs/version-4.0.x/reference/functions/Show-ADTDialogBox.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/Show-ADTDialogBox.mdx rename to versioned_docs/version-4.0.x/reference/functions/Show-ADTDialogBox.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/Show-ADTHelpConsole.mdx b/versioned_docs/version-4.0.x/reference/functions/Show-ADTHelpConsole.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/Show-ADTHelpConsole.mdx rename to versioned_docs/version-4.0.x/reference/functions/Show-ADTHelpConsole.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/Show-ADTInstallationProgress.mdx b/versioned_docs/version-4.0.x/reference/functions/Show-ADTInstallationProgress.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/Show-ADTInstallationProgress.mdx rename to versioned_docs/version-4.0.x/reference/functions/Show-ADTInstallationProgress.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/Show-ADTInstallationPrompt.mdx b/versioned_docs/version-4.0.x/reference/functions/Show-ADTInstallationPrompt.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/Show-ADTInstallationPrompt.mdx rename to versioned_docs/version-4.0.x/reference/functions/Show-ADTInstallationPrompt.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/Show-ADTInstallationRestartPrompt.mdx b/versioned_docs/version-4.0.x/reference/functions/Show-ADTInstallationRestartPrompt.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/Show-ADTInstallationRestartPrompt.mdx rename to versioned_docs/version-4.0.x/reference/functions/Show-ADTInstallationRestartPrompt.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/Show-ADTInstallationWelcome.mdx b/versioned_docs/version-4.0.x/reference/functions/Show-ADTInstallationWelcome.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/Show-ADTInstallationWelcome.mdx rename to versioned_docs/version-4.0.x/reference/functions/Show-ADTInstallationWelcome.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/Start-ADTMsiProcess.mdx b/versioned_docs/version-4.0.x/reference/functions/Start-ADTMsiProcess.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/Start-ADTMsiProcess.mdx rename to versioned_docs/version-4.0.x/reference/functions/Start-ADTMsiProcess.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/Start-ADTMspProcess.mdx b/versioned_docs/version-4.0.x/reference/functions/Start-ADTMspProcess.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/Start-ADTMspProcess.mdx rename to versioned_docs/version-4.0.x/reference/functions/Start-ADTMspProcess.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/Start-ADTProcess.mdx b/versioned_docs/version-4.0.x/reference/functions/Start-ADTProcess.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/Start-ADTProcess.mdx rename to versioned_docs/version-4.0.x/reference/functions/Start-ADTProcess.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/Start-ADTProcessAsUser.mdx b/versioned_docs/version-4.0.x/reference/functions/Start-ADTProcessAsUser.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/Start-ADTProcessAsUser.mdx rename to versioned_docs/version-4.0.x/reference/functions/Start-ADTProcessAsUser.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/Start-ADTServiceAndDependencies.mdx b/versioned_docs/version-4.0.x/reference/functions/Start-ADTServiceAndDependencies.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/Start-ADTServiceAndDependencies.mdx rename to versioned_docs/version-4.0.x/reference/functions/Start-ADTServiceAndDependencies.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/Stop-ADTServiceAndDependencies.mdx b/versioned_docs/version-4.0.x/reference/functions/Stop-ADTServiceAndDependencies.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/Stop-ADTServiceAndDependencies.mdx rename to versioned_docs/version-4.0.x/reference/functions/Stop-ADTServiceAndDependencies.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/Test-ADTBattery.mdx b/versioned_docs/version-4.0.x/reference/functions/Test-ADTBattery.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/Test-ADTBattery.mdx rename to versioned_docs/version-4.0.x/reference/functions/Test-ADTBattery.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/Test-ADTCallerIsAdmin.mdx b/versioned_docs/version-4.0.x/reference/functions/Test-ADTCallerIsAdmin.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/Test-ADTCallerIsAdmin.mdx rename to versioned_docs/version-4.0.x/reference/functions/Test-ADTCallerIsAdmin.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/Test-ADTMSUpdates.mdx b/versioned_docs/version-4.0.x/reference/functions/Test-ADTMSUpdates.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/Test-ADTMSUpdates.mdx rename to versioned_docs/version-4.0.x/reference/functions/Test-ADTMSUpdates.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/Test-ADTMicrophoneInUse.mdx b/versioned_docs/version-4.0.x/reference/functions/Test-ADTMicrophoneInUse.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/Test-ADTMicrophoneInUse.mdx rename to versioned_docs/version-4.0.x/reference/functions/Test-ADTMicrophoneInUse.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/Test-ADTModuleInitialized.mdx b/versioned_docs/version-4.0.x/reference/functions/Test-ADTModuleInitialized.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/Test-ADTModuleInitialized.mdx rename to versioned_docs/version-4.0.x/reference/functions/Test-ADTModuleInitialized.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/Test-ADTMutexAvailability.mdx b/versioned_docs/version-4.0.x/reference/functions/Test-ADTMutexAvailability.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/Test-ADTMutexAvailability.mdx rename to versioned_docs/version-4.0.x/reference/functions/Test-ADTMutexAvailability.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/Test-ADTNetworkConnection.mdx b/versioned_docs/version-4.0.x/reference/functions/Test-ADTNetworkConnection.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/Test-ADTNetworkConnection.mdx rename to versioned_docs/version-4.0.x/reference/functions/Test-ADTNetworkConnection.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/Test-ADTOobeCompleted.mdx b/versioned_docs/version-4.0.x/reference/functions/Test-ADTOobeCompleted.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/Test-ADTOobeCompleted.mdx rename to versioned_docs/version-4.0.x/reference/functions/Test-ADTOobeCompleted.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/Test-ADTPowerPoint.mdx b/versioned_docs/version-4.0.x/reference/functions/Test-ADTPowerPoint.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/Test-ADTPowerPoint.mdx rename to versioned_docs/version-4.0.x/reference/functions/Test-ADTPowerPoint.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/Test-ADTRegistryValue.mdx b/versioned_docs/version-4.0.x/reference/functions/Test-ADTRegistryValue.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/Test-ADTRegistryValue.mdx rename to versioned_docs/version-4.0.x/reference/functions/Test-ADTRegistryValue.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/Test-ADTServiceExists.mdx b/versioned_docs/version-4.0.x/reference/functions/Test-ADTServiceExists.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/Test-ADTServiceExists.mdx rename to versioned_docs/version-4.0.x/reference/functions/Test-ADTServiceExists.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/Test-ADTSessionActive.mdx b/versioned_docs/version-4.0.x/reference/functions/Test-ADTSessionActive.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/Test-ADTSessionActive.mdx rename to versioned_docs/version-4.0.x/reference/functions/Test-ADTSessionActive.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/Test-ADTUserIsBusy.mdx b/versioned_docs/version-4.0.x/reference/functions/Test-ADTUserIsBusy.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/Test-ADTUserIsBusy.mdx rename to versioned_docs/version-4.0.x/reference/functions/Test-ADTUserIsBusy.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/Unblock-ADTAppExecution.mdx b/versioned_docs/version-4.0.x/reference/functions/Unblock-ADTAppExecution.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/Unblock-ADTAppExecution.mdx rename to versioned_docs/version-4.0.x/reference/functions/Unblock-ADTAppExecution.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/Uninstall-ADTApplication.mdx b/versioned_docs/version-4.0.x/reference/functions/Uninstall-ADTApplication.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/Uninstall-ADTApplication.mdx rename to versioned_docs/version-4.0.x/reference/functions/Uninstall-ADTApplication.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/Unregister-ADTDll.mdx b/versioned_docs/version-4.0.x/reference/functions/Unregister-ADTDll.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/Unregister-ADTDll.mdx rename to versioned_docs/version-4.0.x/reference/functions/Unregister-ADTDll.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/Update-ADTDesktop.mdx b/versioned_docs/version-4.0.x/reference/functions/Update-ADTDesktop.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/Update-ADTDesktop.mdx rename to versioned_docs/version-4.0.x/reference/functions/Update-ADTDesktop.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/Update-ADTEnvironmentPsProvider.mdx b/versioned_docs/version-4.0.x/reference/functions/Update-ADTEnvironmentPsProvider.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/Update-ADTEnvironmentPsProvider.mdx rename to versioned_docs/version-4.0.x/reference/functions/Update-ADTEnvironmentPsProvider.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/Update-ADTGroupPolicy.mdx b/versioned_docs/version-4.0.x/reference/functions/Update-ADTGroupPolicy.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/Update-ADTGroupPolicy.mdx rename to versioned_docs/version-4.0.x/reference/functions/Update-ADTGroupPolicy.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/Write-ADTLogEntry.mdx b/versioned_docs/version-4.0.x/reference/functions/Write-ADTLogEntry.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/Write-ADTLogEntry.mdx rename to versioned_docs/version-4.0.x/reference/functions/Write-ADTLogEntry.mdx diff --git a/versioned_docs/version-4.0.0/reference/functions/docusaurus.sidebar.js b/versioned_docs/version-4.0.x/reference/functions/docusaurus.sidebar.js similarity index 100% rename from versioned_docs/version-4.0.0/reference/functions/docusaurus.sidebar.js rename to versioned_docs/version-4.0.x/reference/functions/docusaurus.sidebar.js diff --git a/versioned_docs/version-4.0.0/reference/language-strings.mdx b/versioned_docs/version-4.0.x/reference/language-strings.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/language-strings.mdx rename to versioned_docs/version-4.0.x/reference/language-strings.mdx diff --git a/versioned_docs/version-4.0.x/reference/v4-function-mapping.mdx b/versioned_docs/version-4.0.x/reference/v4-function-mapping.mdx new file mode 100644 index 0000000..e315af3 --- /dev/null +++ b/versioned_docs/version-4.0.x/reference/v4-function-mapping.mdx @@ -0,0 +1,103 @@ +--- +sidebar_position: 6 +title: 'v4 Function Mapping' +description: 'Reference list of v3 Functions and how they are mapped to the new v4 functions.' +slug: /reference/v4-function-mapping +tags: + - v4 Upgrade + - Functions + - Reference +--- + +## Mapping + +The following table lists the v3 functions and their compatibility with v4. If a compatibility wrapper exists, the corresponding v4 function is shown. If there is no compatibility wrapper, "NO" is listed. + +| 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) | +| [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) | +| [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) | diff --git a/versioned_docs/version-4.0.0/reference/variables.mdx b/versioned_docs/version-4.0.x/reference/variables.mdx similarity index 100% rename from versioned_docs/version-4.0.0/reference/variables.mdx rename to versioned_docs/version-4.0.x/reference/variables.mdx diff --git a/versioned_docs/version-4.0.0/usage/_category_.json b/versioned_docs/version-4.0.x/usage/_category_.json similarity index 100% rename from versioned_docs/version-4.0.0/usage/_category_.json rename to versioned_docs/version-4.0.x/usage/_category_.json diff --git a/versioned_docs/version-4.0.0/usage/adding-ui-elements.mdx b/versioned_docs/version-4.0.x/usage/adding-ui-elements.mdx similarity index 99% rename from versioned_docs/version-4.0.0/usage/adding-ui-elements.mdx rename to versioned_docs/version-4.0.x/usage/adding-ui-elements.mdx index 1915a5c..40ada40 100644 --- a/versioned_docs/version-4.0.0/usage/adding-ui-elements.mdx +++ b/versioned_docs/version-4.0.x/usage/adding-ui-elements.mdx @@ -3,7 +3,6 @@ sidebar_position: 2 title: 'Adding UI Elements' description: 'How to add UI elements to a deployment script.' slug: /usage/adding-ui-elements -hide_title: true tags: - Usage - User Interface diff --git a/versioned_docs/version-4.0.0/usage/customizing-deployments.mdx b/versioned_docs/version-4.0.x/usage/customizing-deployments.mdx similarity index 99% rename from versioned_docs/version-4.0.0/usage/customizing-deployments.mdx rename to versioned_docs/version-4.0.x/usage/customizing-deployments.mdx index 00656a1..3c93768 100644 --- a/versioned_docs/version-4.0.0/usage/customizing-deployments.mdx +++ b/versioned_docs/version-4.0.x/usage/customizing-deployments.mdx @@ -3,7 +3,6 @@ sidebar_position: 3 title: 'Customizing Deployments' description: 'How to customize the look and behavior of a deployment.' slug: /usage/customizing-deployments -hide_title: true tags: - Usage - Customizing diff --git a/versioned_docs/version-4.0.0/usage/how-to-deploy.mdx b/versioned_docs/version-4.0.x/usage/how-to-deploy.mdx similarity index 99% rename from versioned_docs/version-4.0.0/usage/how-to-deploy.mdx rename to versioned_docs/version-4.0.x/usage/how-to-deploy.mdx index ba487a6..e975103 100644 --- a/versioned_docs/version-4.0.0/usage/how-to-deploy.mdx +++ b/versioned_docs/version-4.0.x/usage/how-to-deploy.mdx @@ -3,7 +3,6 @@ sidebar_position: 1 title: 'How to Deploy' description: 'How to deployments an application installer using the command line / SCCM.' slug: /usage/how-to-deploy -hide_title: true tags: - Usage - How to Deploy diff --git a/versioned_docs/version-4.1.x/deployment-concepts/_category_.json b/versioned_docs/version-4.1.x/deployment-concepts/_category_.json new file mode 100644 index 0000000..2646532 --- /dev/null +++ b/versioned_docs/version-4.1.x/deployment-concepts/_category_.json @@ -0,0 +1,4 @@ +{ + "label": "Understanding the layout", + "position": 3 +} \ No newline at end of file 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 new file mode 100644 index 0000000..618cb23 --- /dev/null +++ b/versioned_docs/version-4.1.x/deployment-concepts/deployment-structure.mdx @@ -0,0 +1,226 @@ +--- +sidebar_position: 1 +title: 'Deployment Structure' +description: 'The file / folder structure a PSADT deployment explained.' +slug: /deployment-concepts/deployment-structure +tags: + - Usage + - Archive + - Deployment Concepts +--- + +# Deployment Structure + +## Understanding PSAppDeployToolkit Architecture + +PSAppDeployToolkit v4.1 represents a significant architectural evolution from previous versions, designed with enterprise deployment scenarios in mind. The toolkit operates on a modular, session-based architecture that provides unprecedented flexibility and control over the deployment process. + +### 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. + +**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 over 200 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. + +:::note +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. +::: + +### Template Structure + +The v4 template follows a clear separation of concerns, with each folder serving a specific purpose in the deployment ecosystem: + +| Folder | File | Purpose | +|:-----------------------------------|:----------------------------|:----------------------------------------------------------------------------------------------------------------| +| **/** | | | +| | Invoke-AppDeployToolkit.ps1 | PSADT Deployment PowerShell script. This is the main entry point for your deployment. | +| | Invoke-AppDeployToolkit.exe | PSADT Deployment executable. This is a wrapper around the above script to easily launch it. | +| **PSAppDeployToolkit/** | | | +| | | PSADT core module files. Please do not modify anything under this folder. | +| **PSAppDeployToolkit.Extensions/** | | | +| | | PSADT optional extensions. Ignore this folder if you are not using any custom functions. | +| **Files/** | | | +| | | [***Put installation files here***] | +| | Setup.Exe | Example Setup executable. | +| | AppInstaller.msi | Example Windows Installer MSI file | +| **SupportFiles/** | | | +| | | [***Put optional install support files here***] | +| | PerUserSettings.reg | Example installation support file. | +| **Assets/** | | | +| | AppIcon.png | PSADT App Icon. Used to display the application icon, or your organizations logo. Should be a 256x256 PNG file. | +| **Config/** | | | +| | config.psd1 | PSADT configuration file. Contains settings that control the behavior | +| **Strings/** | | | +| | strings.psd1 | PSADT User Interface strings file. This changes the text displayed in the PSADT User Interface. | + +## V3 Compatibility Deployment Template + +The v3 compatibility deployment structure is designed to allow you to use an existing v3 deployment script with the v4 PSADT framework. This v3 compatibility structure allows you to leverage your existing v3 script paths and function references, mapping them to their new v4 equivalents. + +The structure is laid out similarly to v4, however some file and folder names are kept the same as v3. This is so that we can use leverage any file paths you may have used within your script. And we also leverage the folder structure to impersonate the v3 PSADT framework, while remapping each function to the new v4 equivilent. + +This allows you to use your existing v3 deployment scripts with the v4 PSADT framework, taking advantage of the new features and improvements in v4, but without having to make any functional change to your existing script. + +### Template Structure Deep Dive + +#### Root Directory (`/`) +The root directory serves as the deployment entry point and contains the essential files needed to launch a PSADT deployment: + +- **`Invoke-AppDeployToolkit.ps1`**: This is your primary development file. It contains: + - Session variables that define your application metadata + - Deployment phase logic (Pre-Install, Install, Post-Install, etc.) + - Custom PowerShell code for handling complex deployment scenarios + - Error handling and logging configuration + - User interface customization + +- **`Invoke-AppDeployToolkit.exe`**: A native Windows executable that provides: + - Secure PowerShell execution without exposing script content + - Command-line parameter support for deployment automation + - Debug mode (`/Debug`) for troubleshooting + - Architecture selection (`/32` for x86, `/Core` for PowerShell 7) + - Custom script execution (`-File` parameter) + +#### PSAppDeployToolkit Directory +This directory contains the complete PSADT v4.1 framework and should never be modified: + +- **Core Module Files**: The main PSADT PowerShell module with over 200 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 +- **Runtime Dependencies**: Required .NET assemblies and supporting libraries + +#### Files Directory +The primary location for application installation media: + +- **Supported File Types**: + - Executable installers (`.exe`, `.msi`, `.msm`) + - Windows Installer patches (`.msp`) + - Transform files (`.mst`) + - WIM images ()`.wim`) + - Archive files (`.zip`, `.7z`) + - Configuration files and templates + +- **Zero-Config Support**: PSADT can automatically detect and install MSI files and MSI in WIM files without custom scripting +- **File Organization**: Maintain clear naming conventions for easier maintenance and troubleshooting + +#### SupportFiles Directory +Contains auxiliary files needed during or after installation: + +- **Registry Files**: `.reg` files for applying system or user settings +- **Configuration Templates**: Application configuration files that need customization +- **Documentation**: User guides, release notes, or other documentation +- **Shortcuts**: Custom desktop or start menu shortcuts +- **License Files**: Software licenses or activation files + +#### Assets Directory +Visual elements for UI customization and branding: + +- **Icon Requirements**: 256x256 PNG format for optimal quality +- **Theme Support**: Separate assets for light and dark themes +- **Branding Elements**: Logos, banners, and other visual components +- **Accessibility**: High-contrast and high-DPI support + +#### Config Directory +Configuration management for deployment behavior: + +- **`config.psd1`**: PowerShell data file containing: + - Logging configuration (paths, levels, rotation) + - UI preferences (timeouts, dialog behavior) + - MSI parameters and execution settings + - Security and privilege settings + - Performance optimization settings + +- **Group Policy Integration**: Settings can be overridden by Group Policy ADMX templates +- **Hierarchical Configuration**: Built-in defaults → Local config → Group Policy + +#### Strings Directory +Localization and UI text customization: + +- **`strings.psd1`**: Contains all user-facing text strings +- **Multi-language Support**: Separate language sections for international deployments +- **Customization**: Modify dialog text, error messages, and user prompts +- **Consistency**: Centralized text management ensures consistent user experience + + +#### Example Deployment Structure +For large-scale enterprise deployments, a deployment folder structure might look something like this: + +``` +YourApp-Deployment/ +├── Invoke-AppDeployToolkit.ps1 +├── Invoke-AppDeployToolkit.exe +├── PSAppDeployToolkit/ # Core framework +├── PSAppDeployToolkit.Extensions/ # Custom functions +├── Files/ +│ ├── YourApp-Setup.exe +│ ├── YourApp-Setup.msi +│ ├── YourApp-Patch.msp +│ └── YourApp-Config.mst +├── SupportFiles/ +│ ├── UserSettings.reg +│ ├── SystemSettings.reg +│ └── Config/ +│ ├── AppConfig.xml +│ └── UserPreferences.json +├── Assets/ +│ ├── AppIcon.png +│ ├── AppIcon-Dark.png +│ ├── CompanyLogo.png +│ └── Banner.png +├── Config/ +│ └── config.psd1 +└── Strings/ + ├── strings.psd1 + └── de-DE/ + └── strings.psd1 +``` + +#### Example Multi-Architecture Deployment Structure +For applications with multiple versions or architectures: + +``` +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 +``` + +:::note +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. +::: + +| Folder | File | Purpose | +|:----------------------------------------------|:-------------------------------|:----------------------------------------------------------------------------------------------------------------| +| **/** | | | +| | Deploy-Application.ps1 | PSADT Deployment PowerShell script. This is the main entry point for your deployment. | +| | Deploy-Application.exe | PSADT Deployment executable. This is a wrapper around the above script to easily launch it. | +| **AppDeployToolkit/** | | | +| | AppDeployToolkitMain.ps1 | PSADT compatibility shim script. Used to restore v3 function wrappers. | +| | AppDeployToolkitExtensions.ps1 | PSADT compatibility extensions scripts. Used for your custom v3 functions. | +| **AppDeployToolkit/** **PSAppDeployToolkit/** | | | +| | | PSADT core module files. Please do not modify anything under this folder. | +| **Files/** | | | +| | | [***Put installation files here***] | +| | Setup.Exe | Example Setup executable. | +| | AppInstaller.msi | Example Windows Installer MSI file | +| **SupportFiles/** | | | +| | | [***Put optional install support files here***] | +| | PerUserSettings.reg | Example installation support file. | +| **Assets/** | | | +| | AppIcon.png | PSADT App Icon. Used to display the application icon, or your organizations logo. Should be a 256x256 PNG file. | +| **Config/** | | | +| | config.psd1 | PSADT configuration file. Contains settings that control the behavior | +| **Strings/** | | | +| | strings.psd1 | PSADT User Interface strings file. This changes the text displayed in the PSADT User Interface. | diff --git a/versioned_docs/version-4.1.x/deployment-concepts/invoke-appdeploytoolkit.mdx b/versioned_docs/version-4.1.x/deployment-concepts/invoke-appdeploytoolkit.mdx new file mode 100644 index 0000000..45a495d --- /dev/null +++ b/versioned_docs/version-4.1.x/deployment-concepts/invoke-appdeploytoolkit.mdx @@ -0,0 +1,143 @@ +--- +sidebar_position: 2 +title: 'Invoke-AppDeployToolkit' +description: 'Understanding how a PSAppDeployToolkit deployment is structured.' +slug: /deployment-concepts/invoke-appdeploytoolkit +tags: + - Usage + - Invoke-AppDeployToolkit + - Deployment Concepts +--- + +# Deployment Script + +The `Invoke-AppDeployToolkit.ps1` script is where you will spend most of your time when using PSAppDeployToolkit. This script is the main entry point of the deployment, responsible for executing the deployment phases. + +## Understanding the Deployment Script Architecture + +PSAppDeployToolkit v4 uses a session-based architecture to provide flexible control over the deployment process. Understanding this architecture is crucial for both beginners and advanced users. + +## Core Concepts + +### ADTSession Object + +The heart of PSADT v4 is 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 Properties + +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 | + +:::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`. +::: + +:::note New in v4.1: RequireAdmin +PSADT v4.1 contains a new variable `RequireAdmin` that allows you to check for administrative rights on a per-application basis without needing to modify the PSADT configuration file. + +- `RequireAdmin = $true`, will fail the deployment if admin rights are not available. +- `RequireAdmin = $false`, will run in the users context without requiring administrative rights. +::: + +:::note 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. +::: + +:::tip +Use hashtable objects on `AppProcessesToClose` with `Name` and `Description` properties for better user experience. +```PowerShell +AppProcessesToClose = @(@{ Name = 'winword'; Description = 'Microsoft Word' }) +``` +::: + +### Deployment Types & Phases + +There are three types of deployments you can perform using PSAppDeployToolkit. + +- **Install**, **Uninstall** and **Repair**. + +Each deployment type (Install, Uninstall, Repair) follows a structured three-phase approach: +- **Pre-Phase**: Preparation, validation, and user interaction +- **Main Phase**: Core deployment operations +- **Post-Phase**: Cleanup, configuration, and finalization + +#### Understanding Deployment Phases + +Each deployment phase serves a specific purpose in the deployment lifecycle. Understanding these phases is crucial for creating effective deployment scripts. + +##### Pre-Phase Operations +The Pre-Phase is responsible for preparation, validation, and user interaction: + +**Common Pre-Phase Tasks:** +- Display welcome messages and user notifications +- Check system requirements and prerequisites +- Close conflicting applications +- Handle user deferrals and scheduling +- Validate installation media and files +- Check disk space and system resources +- Uninstall previous versions if required + +##### Main Phase Operations +The Main Phase performs the core deployment operations: + +**Install Phase Tasks:** +- Execute application installer +- Apply transforms and patches +- Configure application settings +- Handle installation errors and rollback + +**Uninstall Phase Tasks:** +- Execute application uninstaller +- Remove application files and registry entries +- Clean up user data (if configured) +- Handle uninstall errors + +**Repair Phase Tasks:** +- Reinstall or repair application components +- Restore corrupted files +- Reapply configuration settings +- Verify installation integrity + +##### Post-Phase Operations +The Post-Phase handles cleanup, configuration, and finalization: + +**Common Post-Phase Tasks:** +- Apply registry settings and configurations +- Copy additional files and shortcuts +- Configure user preferences +- Update system settings +- Display completion messages +- Prompt for restart if required +- Clean up temporary files + +## Script Structure + +The script is broken down into the following sections: + +| Install Type | Phase | Deployment Tasks | +| :------------------------ | :----------------| :---------------------------------------------------------------------------------- | +| `Install-ADTDeployment` | `Pre-Install` | Prompt to close processes, allow defer, uninstall / clean-up previous versions | +| | `Install` | Install application | +| | `Post-Install` | Drop additional files, registry tweaks, cleanup, prompt for restart | +| | | | +| `Uninstall-ADTDeployment` | `Pre-Uninstall` | Display end user messaging, close processes | +| | `Uninstall` | Uninstall application | +| | `Post-Uninstall` | Prompt for restart | +| | | | +| `Repair-ADTDeployment` | `Pre-Repair` | Display end user messaging, close processes, uninstall / clean up previous versions | +| | `Repair` | Repair application | +| | `Post-Repair` | Drop additional files, registry tweaks, reset settings, prompt for restart | diff --git a/versioned_docs/version-4.1.x/deployment-concepts/zero-config-deployment.mdx b/versioned_docs/version-4.1.x/deployment-concepts/zero-config-deployment.mdx new file mode 100644 index 0000000..ff78332 --- /dev/null +++ b/versioned_docs/version-4.1.x/deployment-concepts/zero-config-deployment.mdx @@ -0,0 +1,23 @@ +--- +sidebar_position: 3 +title: 'Zero-Config Deployment' +description: 'How to leverage the zero-configuration feature for zero-effort deployments.' +slug: /deployment-concepts/zero-config-deployment +tags: + - Zero-Config Deployment + - Deployment Concepts +--- + +# Zero-Configuration MSI Deployment + +## Simple Deployment Method + +Now that you understand the basics of how a deployment works, you can try a simple MSI-based deployment with no effort. PSAppDeployToolkit has a zero-config MSI install feature that lets you quickly install an MSI with no script configuration. + +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. diff --git a/versioned_docs/version-4.1.x/examples/_category_.json b/versioned_docs/version-4.1.x/examples/_category_.json new file mode 100644 index 0000000..5a01990 --- /dev/null +++ b/versioned_docs/version-4.1.x/examples/_category_.json @@ -0,0 +1,4 @@ +{ + "label": "Examples", + "position": 5 +} \ No newline at end of file diff --git a/versioned_docs/version-4.1.x/examples/admxtemplate-LogPath.mdx b/versioned_docs/version-4.1.x/examples/admxtemplate-LogPath.mdx new file mode 100644 index 0000000..d40e2a9 --- /dev/null +++ b/versioned_docs/version-4.1.x/examples/admxtemplate-LogPath.mdx @@ -0,0 +1,123 @@ +--- +sidebar_position: 1 +title: 'GPO - Toolkit LogPath' +description: 'How to define the Toolkit LogPath using a Group Policy Object' +slug: /examples/admxtemplate-LogPath +tags: + - Group Policy + - ADMX Template + - Examples +--- + +# Group Policy - Toolkit LogPath + +## Introduction + +In this example, we will create a Group Policy Object to define the log path for our PSADT 4.1.x package deployments. + +This provides the benefit of: +- Standardizing your PSADT deployment logging location +- Not having to config each deployment package with the correct log path + +Assumptions: +- You need to have already imported the ADMX Templates into your Central Store. + +## Create a new Group Policy Object + + - Start by opening the Group Policy Management Editor + - Then Right-Click on 'Group Policy Objects' and select 'New' + + ![Create New GPO](../images/example-admx-LogPath-00-GPO-new.png) + + - Enter a name + - In this example, I'm using `PSADT 4.1` + + ![Create New GPO - Name](../images/example-admx-LogPath-01-GPO-new.png) + +## Edit the Group Policy Object + +- After creating the GPO, find it under `Group Policy Objects` +- Right-Click and select `Edit` + + ![Edit GPO](../images/example-admx-LogPath-02-GPO-new.png) + +- Expand down to `Toolkit` +- Right-Click on `LogPath` and select `Edit` + + ``` +Computer Configuration +└───Policies + └───Administrative Templates: Policy definitions + └───PSAppDeployToolkit + └───Toolkit +``` + + ![Edit GPO Policy](../images/example-admx-LogPath-03-GPO-new.png) + + - Select `Enable`, and then define a Path. + - In this example, I'm using the Intune Management Extension Log folder: + + ```powershell + $envProgramData\Microsoft\IntuneManagementExtension\Logs + ``` + +![Configure Policy](../images/example-admx-LogPath-04-GPO-new.png) + +- Select `OK` to close the Policy window +- Configure any other desired policies +- Close the Policy Editor window + +## Link the GPO + +Now that we have the GPO created and configured, lets link it to the domain or desired OU. + +- Navigate to the Desired location you want to link the GPO +- Right-Click and select `Link an Existing GPO...` + +![Link Policy](../images/example-admx-LogPath-05-GPO-new.png) + +- Select the previously created and configured policy and then click `OK` + +![Select Link Policy](../images/example-admx-LogPath-06-GPO-new.png) + +- You will now see the GPO Linked to the location you select + +![Link Policy Success](../images/example-admx-LogPath-07-GPO-new.png) + +## Update Group Policy + +On a machine that is scoped for the policy, run the below command to update Group Policy + +``` +gpupdate /force +``` + +![Update Group Policy](../images/example-admx-LogPath-08-GPO-new.png) + +## Verify the Group Policy Applied + +You can verify the status of the policy by running the below command + +``` +gpresult /r /scope computer +``` + +![Verify Group Policy](../images/example-admx-LogPath-09-GPO-new.png) + +### Verify the Policies in the Registry + +You should see the setting applied within the Registry + +``` +Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Policies\PSAppDeployToolkit\Config\Toolkit +``` + +![Verify Group Policy](../images/example-admx-LogPath-10-GPO-new.png) + +## Run a Deployment + +Now when a deployment is run, PSAppDeployToolkit will import any settings in Group Policy as it initializes. + +Below we can see that the deployment is running and the log file was created in the `ProgramData\Microsoft\IntuneManagementExtension\Logs` folder + +![Run a Deployment](../images/example-admx-LogPath-11-GPO-new.png) diff --git a/versioned_docs/version-4.1.x/examples/googlechrome-configmgr.mdx b/versioned_docs/version-4.1.x/examples/googlechrome-configmgr.mdx new file mode 100644 index 0000000..5d37189 --- /dev/null +++ b/versioned_docs/version-4.1.x/examples/googlechrome-configmgr.mdx @@ -0,0 +1,14 @@ +--- +sidebar_position: 2 +title: 'Config Manager - Google Chrome' +description: 'How to package and deploy Google Chrome Enterprise using Microsoft Configuration Manager.' +slug: /examples/googlechrome-configmgr +tags: + - Google Chrome + - Microsoft Configuration Manager + - Examples +--- + +# Google Chrome Enterprise + +Work In Progress - Coming Soon! diff --git a/versioned_docs/version-4.1.x/getting-started/_category_.json b/versioned_docs/version-4.1.x/getting-started/_category_.json new file mode 100644 index 0000000..877a378 --- /dev/null +++ b/versioned_docs/version-4.1.x/getting-started/_category_.json @@ -0,0 +1,4 @@ +{ + "label": "Getting Started", + "position": 2 +} diff --git a/versioned_docs/version-4.1.x/getting-started/creating-a-new-deployment.mdx b/versioned_docs/version-4.1.x/getting-started/creating-a-new-deployment.mdx new file mode 100644 index 0000000..4d94c27 --- /dev/null +++ b/versioned_docs/version-4.1.x/getting-started/creating-a-new-deployment.mdx @@ -0,0 +1,48 @@ +--- +sidebar_position: 4 +title: 'Creating a new deployment' +description: 'How to create a new deployment from a deployment template.' +slug: /getting-started/creating-a-new-deployment +tags: + - Usage + - Template + - Scaffold + - Getting Started +--- + +# Creating a new deployment + +:::info + +A **deployment template** contains the source files for an application deployment, the deployment script that defines the deployment logic, and the PSADT module and configuration. It is typically entirely self-contained and can be shared with others to deploy the application in a consistent manner. +::: +## Using the module + +The PSAppDeployToolkit module can create a new deployment from PSADT's internal templates. + +To create a new deployment using the PSADT v3 compatible template, run: + +```powershell +New-ADTTemplate -Destination C:\Temp -Name "PSAppDeployToolkitv3" -Version 3 +``` + +To create a new deployment using the PSADT v4 native deployment template, run: + +```powershell +New-ADTTemplate -Destination C:\Temp -Name "PSAppDeployToolkitv4" +``` + + +## 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_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). +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/versioned_docs/version-4.1.x/getting-started/download.mdx b/versioned_docs/version-4.1.x/getting-started/download.mdx new file mode 100644 index 0000000..ec316a7 --- /dev/null +++ b/versioned_docs/version-4.1.x/getting-started/download.mdx @@ -0,0 +1,58 @@ +--- +sidebar_position: 3 +title: 'Download' +description: 'How to download a copy of PSAppDeployToolkit.' +slug: /getting-started/download +tags: + - Download + - Getting Started +--- + +# How to download PSAppDeployToolkit + +PSAppDeployToolkit is available as a module on the PowerShell Gallery or as a self-contained zip file archive on GitHub, which includes the PSAppDeployToolkit module. Both downloads provide the functions required to scaffold a new deployment. + +## Installing from the PowerShell Gallery + +You can install the PSAppDeployToolkit module from the PowerShell Gallery by running: + +```powershell +Install-Module -Name PSAppDeployToolkit -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) + +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. | + +Once extracted, you will see a file and folder structure similar to the one described on the next page. + +## Downloading PSAppDeployToolkit.Tools + +PSAppDeployToolkit.Tools is a companion module designed for functions that help you create packages rather than deploy them. + +At present, this is in pre-release status, so installing from the PowerShell Gallery requires an additional switch: + +```powershell +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) diff --git a/versioned_docs/version-4.1.x/getting-started/faq.mdx b/versioned_docs/version-4.1.x/getting-started/faq.mdx new file mode 100644 index 0000000..fd61b1b --- /dev/null +++ b/versioned_docs/version-4.1.x/getting-started/faq.mdx @@ -0,0 +1,120 @@ +--- +sidebar_position: 9 +title: 'FAQ' +description: 'Frequently Asked Questions' +slug: /getting-started/faq +tags: + - Getting Started + - FAQ +--- + +# Frequently Asked Questions + +
+ Everything has changed since v3! Where do I begin? + + Some useful links to get you started: + + - [Release Notes](../getting-started/release-notes.mdx) + - [v4 Function Mapping](../reference/v4-function-mapping.mdx) + - [Upgrade Guidance: v3.x to v4.1](../getting-started/upgrade-guidance-v3x-to-v41.mdx) + +
+ +
+ I've installed and imported the module - where are my toolkit variables? + + Environment variables are not available until you have either opened an ADTSession or called the [Export-ADTEnvironmentTableToSessionState](../reference/functions/Export-ADTEnvironmentTableToSessionState.mdx) command. + + This is handled automatically within the deployment script. + + Variables specific to a particular deployment, such as `$appName` and `$appVersion`, are now stored in the [$adtSession](../reference/adtsession-object.mdx) object. + + For details, see the [Variables](../reference/variables.mdx) page. +
+ +
+ Why do I get the error "A PSAppDeployToolkit assembly of a different file hash is already loaded"? + + Once DLLs are loaded into PowerShell, they cannot be unloaded. If the module detects that a mismatching version has already been imported in the current PowerShell session, this error is thrown. + + Restart PowerShell, or use a separate shell for testing your deployment. You can also prevent this by making sure your installed version of the module and your application package are on the same latest version. +
+ +
+ Why can't I get the new Fluent UI to work with my v3 scripts in compatibility mode? + + The new Fluent UI has additional parameters, such as SubTitle, which are not part of the Classic UI. + + For full compatibility with v3 scripts, only the Classic UI is enabled in compatibility mode. +
+ +
+ Do we need to deploy this module to our endpoints? + + It is not required, as a copy of the module is included in the deployment template we provide for download (or that you can generate using the `New-ADTTemplate` command). + + However, you also have the option to remove the PSAppDeployToolkit folder from this template and pre-install the module on each device. + + **Pros**: + - Packages are smaller and faster to download. + - Updating the module means all packages get the latest updates and UI improvements. + + **Cons**: + - You must figure out how to deploy the module to all devices before any packages that depend on the module run. + - There is a risk in running a previously tested deployment against a newer module version if it was not tested against it, due to potential bugs or breaking changes. + +
+ +
+ How can I update the version of the toolkit that my package uses? + + To update a PSAppDeployToolkit v3 package to v4, there is a `Convert-ADTDeployment` command in the companion [PSAppDeployToolkit.Tools](https://github.com/PSAppDeployToolkit/PSAppDeployToolkit.Tools) module (see [Upgrade Guidance: v3.x to v4.1](../getting-started/upgrade-guidance-v3x-to-v41.mdx) for further details). + + To update a v4 package to a newer version, because the config and asset folders are externalized, you can simply replace the PSAppDeployToolkit folder with the new version. There should be no breaking changes if you apply a patch release (for example, upgrading from 4.0.0 to 4.0.4). + + However, for major or minor upgrades (for example, 4.0 to 4.1 or 5.0), review the release notes and documentation for any necessary configuration file changes. +
+ +
+ Will PSAppDeployToolkit ever get support for WinGet? + + There are no immediate plans to include this directly in the toolkit, but there is a community extension that provides this functionality: + + - [GitHub](https://github.com/mjr4077au/PSAppDeployToolkit.WinGet) + - [PSGallery](https://www.powershellgallery.com/packages/PSAppDeployToolkit.WinGet) + +
+ +
+ How do I get the UI to display with an Intune deployment? + + This now works natively as of 4.1.0, since the UI is run as a separate process running as the user. + +
+ +
+ How can I control when retries will occur after the defer option is selected? + + A 1602 error code is returned when the defer option is selected. + + With ConfigMgr, you could configure DeferExitCode in config.psd1 to be 1618 (Fast Retry). The Fast Retry interval is configurable via ConfigMgr policy. + + However, with Intune the fast retry period is much shorter and not configurable, meaning it will re-attempt within minutes. You can add the new `-DeferRunInterval` parameter to `Show-ADTInstallationWelcome` to abort installation if processes need to be close and the installation was recently deferred within the selected timespan. + + Scheduling a task to retry later has been discussed, but it involves multiple issues like the need to cache the package, the risk of concurrent installs, and the exit code not being reported back to Intune. +
+ +
+ Can I use PSAppDeployToolkit to install user-context apps? + + Yes. Ensure `RequireAdmin = $false` is configured within the `$adtSession` properties in Invoke-AppDeployToolkit.ps1. As of 4.1, the `RequireAdmin` is no longer to be found in Config.psd1. +
+ +
+ Why do I get error 1605 when uninstalling an MSI? + + 1605 indicates that the product is not installed. This can happen if a per-user installation was performed under a different user account than the one running the uninstall. + + Future enahncements are planned where the installation status of an MSI can be tested before attempting to uninstall it. Until then, you can use the `-IgnoreExitCodes` parameter with `Uninstall-ADTApplication` to ignore this error code. +
diff --git a/versioned_docs/version-4.1.x/getting-started/licensing.mdx b/versioned_docs/version-4.1.x/getting-started/licensing.mdx new file mode 100644 index 0000000..588a32c --- /dev/null +++ b/versioned_docs/version-4.1.x/getting-started/licensing.mdx @@ -0,0 +1,173 @@ +--- +sidebar_position: 1 +title: 'Licensing' +description: 'Information on how PSAppDeployToolkit is licensed.' +slug: /getting-started/licensing +tags: + - Licensing + - Getting Started +--- + +# Licensing + +**PSAppDeployToolkit** - Copyright © 2024 PSAppDeployToolkit Team. + +--- + +## GNU LESSER GENERAL PUBLIC LICENSE + +Version 3, 29 June 2007 + +Copyright (C) 2007 Free Software Foundation, Inc. +[https://fsf.org/](https://fsf.org/) + +Everyone is permitted to copy and distribute verbatim copies of this +license document, but changing it is not allowed. + +This version of the GNU Lesser General Public License incorporates the +terms and conditions of version 3 of the GNU General Public License, +supplemented by the additional permissions listed below. + +## 0. Additional Definitions. + +As used herein, "this License" refers to version 3 of the GNU Lesser +General Public License, and the "GNU GPL" refers to version 3 of the +GNU General Public License. + +"The Library" refers to a covered work governed by this License, other +than an Application or a Combined Work as defined below. + +An "Application" is any work that makes use of an interface provided +by the Library, but which is not otherwise based on the Library. +Defining a subclass of a class defined by the Library is deemed a mode +of using an interface provided by the Library. + +A "Combined Work" is a work produced by combining or linking an +Application with the Library. The particular version of the Library +with which the Combined Work was made is also called the "Linked +Version". + +The "Minimal Corresponding Source" for a Combined Work means the +Corresponding Source for the Combined Work, excluding any source code +for portions of the Combined Work that, considered in isolation, are +based on the Application, and not on the Linked Version. + +The "Corresponding Application Code" for a Combined Work means the +object code and/or source code for the Application, including any data +and utility programs needed for reproducing the Combined Work from the +Application, but excluding the System Libraries of the Combined Work. + +## 1. Exception to Section 3 of the GNU GPL. + +You may convey a covered work under sections 3 and 4 of this License +without being bound by section 3 of the GNU GPL. + +## 2. Conveying Modified Versions. + +If you modify a copy of the Library, and, in your modifications, a +facility refers to a function or data to be supplied by an Application +that uses the facility (other than as an argument passed when the +facility is invoked), then you may convey a copy of the modified +version: + +- a) under this License, provided that you make a good faith effort + to ensure that, in the event an Application does not supply the + function or data, the facility still operates, and performs + whatever part of its purpose remains meaningful, or +- b) under the GNU GPL, with none of the additional permissions of + this License applicable to that copy. + +## 3. Object Code Incorporating Material from Library Header Files. + +The object code form of an Application may incorporate material from a +header file that is part of the Library. You may convey such object +code under terms of your choice, provided that, if the incorporated +material is not limited to numerical parameters, data structure +layouts and accessors, or small macros, inline functions and templates +(ten or fewer lines in length), you do both of the following: + +- a) Give prominent notice with each copy of the object code that + the Library is used in it and that the Library and its use are + covered by this License. +- b) Accompany the object code with a copy of the GNU GPL and this + license document. + +## 4. Combined Works. + +You may convey a Combined Work under terms of your choice that, taken +together, effectively do not restrict modification of the portions of +the Library contained in the Combined Work and reverse engineering for +debugging such modifications, if you also do each of the following: + +- a) Give prominent notice with each copy of the Combined Work that + the Library is used in it and that the Library and its use are + covered by this License. +- b) Accompany the Combined Work with a copy of the GNU GPL and this + license document. +- c) For a Combined Work that displays copyright notices during + execution, include the copyright notice for the Library among + these notices, as well as a reference directing the user to the + copies of the GNU GPL and this license document. +- d) Do one of the following: + - 0. Convey the Minimal Corresponding Source under the terms of + this License, and the Corresponding Application Code in a form + suitable for, and under terms that permit, the user to + recombine or relink the Application with a modified version of + the Linked Version to produce a modified Combined Work, in the + manner specified by section 6 of the GNU GPL for conveying + Corresponding Source. + - 1. Use a suitable shared library mechanism for linking with + the Library. A suitable mechanism is one that (a) uses at run + time a copy of the Library already present on the user's + computer system, and (b) will operate properly with a modified + version of the Library that is interface-compatible with the + Linked Version. +- e) Provide Installation Information, but only if you would + otherwise be required to provide such information under section 6 + of the GNU GPL, and only to the extent that such information is + necessary to install and execute a modified version of the + Combined Work produced by recombining or relinking the Application + with a modified version of the Linked Version. (If you use option + 4d0, the Installation Information must accompany the Minimal + Corresponding Source and Corresponding Application Code. If you + use option 4d1, you must provide the Installation Information in + the manner specified by section 6 of the GNU GPL for conveying + Corresponding Source.) + +## 5. Combined Libraries. + +You may place library facilities that are a work based on the Library +side by side in a single library together with other library +facilities that are not Applications and are not covered by this +License, and convey such a combined library under terms of your +choice, if you do both of the following: + +- a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities, conveyed under the terms of this License. +- b) Give prominent notice with the combined library that part of it + is a work based on the Library, and explaining where to find the + accompanying uncombined form of the same work. + +## 6. Revised Versions of the GNU Lesser General Public License. + +The Free Software Foundation may publish revised and/or new versions +of the GNU Lesser General Public License from time to time. Such new +versions will be similar in spirit to the present version, but may +differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +as you received it specifies that a certain numbered version of the +GNU Lesser General Public License "or any later version" applies to +it, you have the option of following the terms and conditions either +of that published version or of any later version published by the +Free Software Foundation. If the Library as you received it does not +specify a version number of the GNU Lesser General Public License, you +may choose any version of the GNU Lesser General Public License ever +published by the Free Software Foundation. + +If the Library as you received it specifies that a proxy can decide +whether future versions of the GNU Lesser General Public License shall +apply, that proxy's public statement of acceptance of any version is +permanent authorization for you to choose that version for the +Library. diff --git a/versioned_docs/version-4.1.x/getting-started/release-notes.mdx b/versioned_docs/version-4.1.x/getting-started/release-notes.mdx new file mode 100644 index 0000000..07d1610 --- /dev/null +++ b/versioned_docs/version-4.1.x/getting-started/release-notes.mdx @@ -0,0 +1,316 @@ +--- +sidebar_position: 5 +title: 'Release Notes' +description: 'Release notes for PSAppDeployToolkit v4.1' +slug: /getting-started/release-notes +tags: + - Changes + - Getting Started +--- + +# Release Notes + +## v4.1.5 (2025-09-07) + +### Fixes + +- Added more error info to assist with troubleshooting issue +- Fixed issue that prevented the toolkit running under some Intune deployments +- Added a fallback default icon where we're unable to obtain one from a running process +- Fixed issue where `Get-ADTShortcut` hit an error when the icon path contained an environment variable +- Fixed `OutOfMemoryException` issues within `Resolve-ADTErrorRecord` + +## v4.1.4 (2025-09-04) + +### Improvements + +- Changed to allow IFEO-blocked processes that get invoked as SYSTEM to execute. +- Added warning within `Block-ADTAppExecution` if generated command line is > 255 chars +- Added `-DisableInheritance` switch to `Set-ADTItemPermission` to restore 3.x behaviour for those who want it. +- Added `IsTerminalServer` to `New-ADTEnvironmentTable` exports +- Updated `Show-ADTInstallationWelcome` documentation +- Changed to using `GetLastInputInfo()` for more accurate console user idle time. +- Changed `Exit-ADTInvocation` to expose `-NoShellExit` parameter on `Close-ADTSession`. +- Made the fluent dialogs properly honour right-to-left cultures + +### Fixes + +- Fixed quote handling in `InstallSource` and `InstallLocation` properties in `Get-ADTApplication` +- Set default parameter set for `Start-ADTMspProcess`. +- Changed `Start-ADTMsiProcessAsUser` to ensure it uses a user-writeable log location. +- Fixed bad parameter set grouping for `Start-ADTProcess` family of functions. +- Fixed issue where `Set-ADTItemPermissions` always needed admin rights to change inheritance options +- Fixed issue where `Set-ADTActiveSetup` `-PurgeActiveSetupKey` would only clean up keys for the active user. +- Fixed `StdOut`/`StdErr`/`Interleaved` printing within `Start-ADTProcess`. +- Changed `Start-ADTProcessAsUser` to allow operating with any valid user, such as disconnected RDP users. +- Changed `DeploymentSession` to handle situations where people put curly braces into `InstallTitle`. +- Improved version handling within `Set-ADTActiveSetup` +- Fixed dynamic code trust verification issues with iNKORE dlls +- Fixed access denied issues when querying running processes +- Fixed "Exception calling TestEffectiveAccess" issue +- Fixed `ShowCloseAppsDialog` issue https://discourse.psappdeploytoolkit.com/t/v4-1-3-show-adtinstallationwelcome-closeprocesses-isnt-working/6904 +- Fixed `ZeroConfig` issue +- Fixed `PSADT.AccountManagement.AccountUtilities` exception https://discourse.psappdeploytoolkit.com/t/4-1-3-show-adtballoontip-the-client-process-returned-an-exception-access-denied/6890 +- Fixed issue with users being able to terminate the PSADT UI https://discourse.psappdeploytoolkit.com/t/4-1-3-show-adtinstallationrestartprompt-task-manager/6899 +- Fixed issue with launching `ServiceUI.exe` via `Start-ADTProcess` https://discourse.psappdeploytoolkit.com/t/4-1-3-trying-to-display-a-command-prompt-using-serviceui/6896 +- Fixed client/server UI permissions issue https://discourse.psappdeploytoolkit.com/t/4-1-3-adt-ui-system/6905 + +## v4.1.3 (2025-08-21) + +### Fixes + +- Fixed `CloseProcesses` issue introduced in in 4.1.2 +- Fixed issue with variable expansion on `Start-ADTProcessAsUser` +- Fixed `Uninstall-ADTApplication` to work with 8.3 names (e.g. `C:\PROGRA~2`) + +## v4.1.2 (2025-08-20) + +### Fixes + +- Fixed issue with `TestEffectiveAccess()` call in `Set-ADTClientServerProcessPermissions` that would fail on some domain-joined devices +- Fixed setup in `Block-ADTAppExecution` so processes started by `SYSTEM` don't block at all +- Fixed issue with `Show-ADTInstallationWelcome` where the buttons would always display in English + +## v4.1.1 (2025-08-19) + +### Improvements + +- Prevent end users from terminating `PSADT.ClientServer.Client.exe` process +- Do things to try and make the IFEO command line as short as possible +- Add better retry support to all modal dialogs to prevent client termination +- Allow `-ErrorAction` to handle no available user in `Start-ADTProcessAsUser` +- Address case where some systems seemingly don't have a `Win32_BIOS.Version` property +- Add `FileSystemUtilities.TestFileAccess()` for testing whether a user has the relevant permissions +- Add `FileSystemUtilities.GetEffectiveAccess()` to determine whether a `SID` has effective access to a path +- Rework `Set-ADTClientServerProcessPermissions` to test for effective access rather than just attempting to set `ACLs` +- Improve setup surrounding `-UseShellExecute` pathway, especially with `UIAccess` executables +- Handle situations where we might not have access to the process in `ProcessUtilities.GetRunningProcesses()` +- Adjust `Set-ADTClientServerProcessPermissions` to not require a client/server user +- Get all the `*-ADTEnvironmentVariable` functions running through the client/server process when the `Target` is `User` +- Run the client/server process elevated if the user has a linked admin token +- Bump `InvokeBuild` dependency version to latest upstream +- Ensure log lines from `Show-ADTInstallationProgress` reflect all inputs +- Improve comment-based help several functions within the module +- Add missing `[SupportsWildcards()]` decoration for `Remove-ADTFolder` `-Path` +- Ensure there's no duplicate `-AppProcessesToClose` entries, just like `Show-ADTInstallationWelcome` does +- Uplift `-FilePath` resolution in `Start-ADTProcess` to factor in `DirFiles`/`DirSupportFiles` if `-WorkingDirectory` is not specified +- No need to be so restrictive on `Start-ADTMsiProcess` `-LogFileName` +- Expose `RequireAdmin` publicly within `DeploymentSession` class object +- Added Bulgarian language strings. + +###️ Fixes + +- Adjust setup in `ProcessUtilities.GetRunningProcesses()` to handle bogus command lines +- Patch bad setup in `Get-ADTClientServerUser` when multiple users are present +- Fix some incorrectly named languages so they confirm with `bcp47` standards +- Restore `SEE_MASK_NOZONECHECKS` setup in `Start-ADTProcess` as it's needed even for `CreateProcess()` +- Add missing parentheses within `New-ADTTemplate` `-Show` pathway +- Swallow `TaskCanceledException` throws within `ServerInstance.Close()` +- Properly set the `Company` field in all compiled file manifests +- Revise setup surrounding default setting of `$WorkingDirectory` in `Start-ADTProcess` +- Fixes for Finnish language strings. +- Fix missing negation on `DisableDefaultMsiProcessList` test + +## v4.1 (2025-08-07) + +### Major Improvements + +- Up until now, it was not possible to display any user interface when deploying an application as SYSTEM using Intune (or any endpoint management tool) without using ServiceUI. Well, now it IS possible: + - In fact, we strongly advise you stop using it as soon as possible. ServiceUI works by manipulating system security tokens in a way that could allow malicious actors to escalate privileges or bypass security controls. + - We've taken a fresh approach which leverages the Windows security model and separates out user interactions onto a process running in the users' session - we never perform any user interaction or messaging of any kind within the SYSTEM context. This means a more secure and reliable deployment experience. + - We have also removed the requirement for the 'Allow users to view and interact with the program installation' checkbox in Configuration Manager deployments. + +- There is now **full feature parity** between the Fluent and Classic User Interfaces: + - Deferral Deadline and Countdown Timer on Close Apps Dialog + - Ability to prevent the Restart Dialog from being dismissed once a certain point in the countdown is reached + - Ability to allow users to move dialogs + - Ability to set the initial dialog placement to multiple locations + - PowerShell ISE compatibility + +- Furthermore, the Fluent UI has gained new features: + - Due to the rearchitecture of how we handle user interaction with Dialogs, it is now possible to prompt the user for input using [Show-ADTInstallationPrompt](../reference/functions/Show-ADTInstallationPrompt)'s `-InputBox` parameter + - Support for formattable text (Bold, Italic & Accent) as well as URL hyperlinks in dialog messages + - You can now set the % complete of the progress bar in the Progress Dialog (for example, if you are running a custom script that you want to show incremental progress changes for) + - Ability to set different icons for Light / Dark mode + +- The security rearchitecture required all of our process execution code to be rewritten. This has enabled us to provide a wealth of new capabilities to both [Start-ADTProcess](../reference/functions/Start-ADTProcess) and [Start-ADTProcessAsUser](../reference/functions/Start-ADTProcessAsUser) using the following new parameters: + - `-UseUnelevatedToken` parameter to force a process run without elevation, for deploying user-context apps with Windows 11 Administrator Protection enabled + - `-WaitForChildProcesses` parameter to wait for all child processes to end - useful for installers/uninstallers that hand off to another process and exit early + - `-KillChildProcessesWithParent` parameter to close all started child processes once main process has ended - useful when installers start the application post-install, which is typically undesired when running as system + - `-Timeout` parameter along with supporting `-TimeoutAction` and `-NoTerminateOnTimeout` parameters to control the outcome + - `-ExpandEnvironmentVariables` parameter to allow variable expansion such as `%AppData%` when running a process as a user + - `-StreamEncoding` parameter, useful for apps like `Winget` that write to the console using `UTF8` + - `-PassThru` output now has a new `interleaved` property that combines `stdout`/`stderr` in order +- It's now possible to set PSADT configuration settings via Group Policy using the included ADMX templates, which will override any settings in the `config.psd1` file. This allows you to change, update or enforce settings across an organization. + +###️ New and Enhanced Functions + +- Added functions for managing user / machine environment variables: + - [Get-ADTEnvironmentVariable](../reference/functions/Get-ADTEnvironmentVariable) / [Set-ADTEnvironmentVariable](../reference/functions/Set-ADTEnvironmentVariable) / [Remove-ADTEnvironmentVariable](../reference/functions/Remove-ADTEnvironmentVariable) +- Added functions for managing INI file sections / values: + - [Get-ADTIniSection](../reference/functions/Get-ADTIniSection) / [Set-ADTIniSection](../reference/functions/Set-ADTIniSection) / [Remove-ADTIniSection](../reference/functions/Remove-ADTIniSection) + - [Get-ADTIniValue](../reference/functions/Get-ADTIniValue) / [Set-ADTIniValue](../reference/functions/Set-ADTIniValue) / [Remove-ADTIniValue](../reference/functions/Remove-ADTIniValue) +- Added [Start-ADTMsiProcessAsUser](../reference/functions/Start-ADTMsiProcessAsUser) for installing / uninstalling user-context MSIs via the System account +- Added [Test-ADTEspActive](../reference/functions/Test-ADTEspActive) to test for an active Enrollment Status Page (ESP) +- Added `-DeferRunInterval` switch to [Show-ADTInstallationWelcome](../reference/functions/Show-ADTInstallationWelcome) to limit retry times from Intune +- Added `-Path` / `-LiteralPath` support to registry functions +- Added volatile key creation support to [Set-ADTRegistryKey](../reference/functions/Set-ADTRegistryKey) +- Added `MultiString` add / remove support to [Set-ADTRegistryKey](../reference/functions/Set-ADTRegistryKey) +- Added `-MaximumElapsedTime` parameter to [Invoke-ADTCommandWithRetries](../reference/functions/Invoke-ADTCommandWithRetries) +- Added `-SuccessExitCodes` and `-RebootExitCodes` parameters to [Uninstall-ADTApplication](../reference/functions/Uninstall-ADTApplication) + +###️ Other Improvements + +- [Show-ADTHelpConsole](../reference/functions/Show-ADTHelpConsole) has been given some love and a facelift with High-DPI awareness, resizability, PowerShell 7 compatibility, and extension module display +- Reworked `Invoke-AppDeployToolkit.exe` to be more compliant within `WDAC` environments +- Added `-NoWait` support to [Show-ADTDialogBox](../reference/functions/Show-ADTDialogBox) +- Added process detection code to enable automatic silent deployments when processes aren't running +- Added `/Debug` switch to [Invoke-AppDeployToolkit.exe](../deployment-concepts/invoke-appdeploytoolkit) to show terminal output for debugging purposes +- Added `/Core` switch to [Invoke-AppDeployToolkit.exe](../deployment-concepts/invoke-appdeploytoolkit) to allow PowerShell 7 usage +- Added support for running processes from network drives + +###️ Changes + +- Added `-NoOobeDetection` option to `Open-ADTSession` to bypass `OOBE` detection logic when `DeployMode` is set to `Auto`. Use this to show the UI during `OOBE` / Autopilot `ESP` phases. +- Added `-NoSessionDetection` option to `Open-ADTSession` to bypass 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. +- Added `-NoProcessDetection` option to `Open-ADTSession` to bypass process detection logic when `DeployMode` is set to `Auto`. Use this to show the UI even if there are no processes to close. +- Changed `-DeployMode` `Interactive` to always show interactively. This means the toolkit will always show the dialogs, bypassing the `OOBE`/`Session`/`Process` detections that occur in `Auto` mode. +- Changed default `DeferExitCode` from `60012` to `1602`, since `ConfigMgr` and Intune recognize this natively as 'User cancelled the installation' +- Changed toolkit to exit with `3010` if a suppressed reboot was encountered without having to use `-AllowRebootPassThru`. To mask `3010` return codes and exit with `0`, you can now add `-SuppressRebootPassThru` +- Changed default `msiexec.exe` parameters in interactive mode from `/qb-!` to `/qn` +- Changed UI functions to no longer minimize windows by default, `-MinimizeWindows` can be added to enable this +- Changed the 'Processes to close' in the `Invoke-AppDeployToolkit` template to the `AppProcessesToClose` `ADTSession` parameter, where they can be re-used over Install / Uninstall / Repair +- Changed installation failure to be silent as it was in v3.x; however, you can still uncomment a line to get the full detailed stack trace as used in v4.0.x, or a new minimal example using the Fluent UI + +### Fixes + +- Fixed [Start-ADTProcessAsUser](../reference/functions/Start-ADTProcessAsUser) function to work as expected +- Fixed [Block-ADTAppExecution](../reference/functions/Block-ADTAppExecution) to avoid triggering AV solutions +- Fixed dialogs to show correct deployment type Install / Uninstall / Repair +- Fixed `SCCM` pending reboot tests within [Get-ADTPendingReboot](../reference/functions/Get-ADTPendingReboot) +- Fixed MSI repair to default to 'Reinstall' to avoid forced unavoidable reboots when running `msiexec` `/f` against an app that is in-use +- Fixed `OOBE` detection code to factor in User `ESP` phase +- Fixed launching processes in the users' session when using certain MDMs, e.g. VMware Workspace ONE. + +### Screenshots + +| Light Mode | Dark Mode | +|:--------------------------------------:|:-------------------------------------:| +| ![LightMode](../images/psadt-41-1.png) | ![DarkMode](../images/psadt-41-2.png) | +| | | + +| Custom Accent in Light Mode | Custom Accent in Dark Mode | +|:--------------------------------------------:|:---------------------------------------------:| +| ![CustomLightMode](../images/psadt-41-3.png) | ![CustomDarkMode](../images/psadt-41-4.png) | +| | ![CustomLightMode2](../images/psadt-41-5.png) | + +## v4.0 + +### Overview + +- Added modern Fluent user interface +- Added digitally signed PowerShell module +- Changed all C# code to be compiled +- Changed codebase with complete refactoring and optimization +- Removed all VBScript code +- Added strongly typed and defined object types (no more PSCustomObjects, etc.) +- Added defensive coding to ensure security and reliability +- Added PowerShell 7 and ARM support +- Added extensions support as supplemental modules +- Added custom action support for extensions on deployment start and finish +- Added support for overriding config via the registry +- Added backwards-compatibility with v3 deployment scripts + +### Key Filename Changes + +:::info +Further changes to the deployment layout are detailed in the [Deployment Structure](../deployment-concepts/deployment-structure.mdx) page. +::: + +| Old Name | New Name | More Information | +|:-----------------------------|:------------------------------|:--------------------------------------------------------------------------------| +| `Deploy-Application.ps1` | `Invoke-AppDeployToolkit.ps1` | [Invoke-AppDeployToolkit](../deployment-concepts/invoke-appdeploytoolkit.mdx)| +| `Deploy-Application.exe` | `Invoke-AppDeployToolkit.exe` | [Invoke-AppDeployToolkit](../deployment-concepts/invoke-appdeploytoolkit.mdx)| +| `AppDeployToolkitConfig.xml` | `Config\Config.psd1` | [Configuration Settings](../reference/config-settings.mdx) | +| *Was part of Config file* | `Strings\Strings.psd1` | [Language Strings](../reference/language-strings.mdx) | + +### New Configuration Format + +- Changed to .psd1 as the native PowerShell config file format. See [Customizing Deployments](../usage/customizing-deployments.mdx) for more information. + +### Key Function Name Changes + +:::info +For a detailed mapping of all v3 to v4 functions, see the [Function Mapping](../reference/v4-function-mapping.mdx) page. +::: + +- Changed certain function names to avoid collisions with other scripts or modules. + +| Old Name | New Name / Details | +|:------------------|:-------------------------------------------------------------------| +| `Copy-File` | [`Copy-ADTFile`](../reference/functions/Copy-ADTFile.mdx) | +| `Execute-Process` | [`Start-ADTProcess`](../reference/functions/Start-ADTProcess.mdx) | +| `Write-Log` | [`Write-ADTLogEntry`](../reference/functions/Write-ADTLogEntry.mdx) | + +### Variables + +- Changed standard toolkit environment variables, such as `$envProgramFiles`, to become available once an [ADTSession](../reference/adtsession-object.mdx) is opened or after the `Export-ADTEnvironmentTableToSessionState` command is executed +- Changed variables specific to a particular deployment (for example, `$appName`) to be found within the [ADTSession](../reference/adtsession-object.mdx) object (for example, `$adtSession.AppName`) + +### Booleans Replaced with Switches + +Changed from many Boolean parameters in v3 (some defaulting to `true` and others to `false`) to a clearer switch-based system. It was not always clear what the default behavior was without referencing documentation. + +- Changed from `TopMost` `$true` or `-TopMost` `$false` to a single optional switch, `-NotTopMost`, which clarifies that the default behavior is `TopMost` + +### Standardized Filtering + +Changed the `Remove-MsiApplications` command from v3 that used `-FilterApplication` and `-ExcludeFromUninstall` parameters with a complex syntax. In the new function, [Uninstall-ADTApplication](../reference/functions/Uninstall-ADTApplication.mdx), these have been **replaced** with a single `-FilterScript`, similar to PowerShell's `Where-Object`: + +```powershell +-FilterScript { $_.Publisher -eq 'Oracle Corporation' -and $_.DisplayVersion -notmatch 'Java 8 Update 45' } +``` + +### ScriptBlock Variables + +Changed from `Invoke-HKCURegistrySettingsForAllUsers` in v3 that required a `$UserProfile` variable. In v4, [Invoke-ADTAllUsersRegistryAction](../reference/functions/Invoke-ADTAllUsersRegistryAction.mdx) pipes user profile objects to the provided scriptblock, so you can use `$_`: + +```powershell +Invoke-ADTAllUsersRegistryAction -ScriptBlock { + Set-ADTRegistryKey -Key 'HKCU\Software\Microsoft\Office\14.0\Common' -Name 'qmenable' -Value 0 -Type DWord -SID $_.SID +} +``` + +### Standardized Array Inputs + +Changed functions that accept multiple values to take arrays rather than comma-delimited strings. For example, **instead of**: + +```powershell +Show-InstallationWelcome -CloseApps 'iexplore,winword,excel' +``` + +you can specify: + +```powershell +Show-ADTInstallationWelcome -CloseProcesses iexplore, winword, excel +``` + +### Error Handling + +Changed from many commands in v3 that used a `-ContinueOnError` parameter. In v4, you use the standard PowerShell `-ErrorAction` parameter: + +- Changed from `-ContinueOnError` `$true` or `$false` to `-ErrorAction` `Stop` or `-ErrorAction` `SilentlyContinue` + +### Uninstallation of EXE Apps + +Added support for [Uninstall-ADTApplication](../reference/functions/Uninstall-ADTApplication.mdx) to uninstall **EXE** apps in addition to **MSI**. Specify the `-ApplicationType` parameter to focus on one type or the other. The `-ArgumentList` parameter replaces any detected arguments in the registry, and `-AdditionalArgumentList` appends to them. + +### User Profile Paths + +Added `-LoadProfilePaths` switch to [Get-ADTUserProfiles](../reference/functions/Get-ADTUserProfiles.mdx) to discover common folders within user profiles, such as **Documents** and **Desktop**. You can use [Copy-ADTFileToUserProfiles](../reference/functions/Copy-ADTFileToUserProfiles.mdx) to copy files directly to these locations. + +### WIM Support + +Added support for compressing file content into a `WIM` archive and mounting it during installation. You can manage this manually using [Mount-ADTWimFile](../reference/functions/Mount-ADTWimFile.mdx) and [Dismount-ADTWimFile](../reference/functions/Dismount-ADTWimFile.mdx), or you can use the `-ForceWimDetection` switch with [Open-ADTSession](../reference/functions/Open-ADTSession.mdx) to auto-mount and dismount any `WIM` files found. + +Added [Zero Config](../deployment-concepts/zero-config-deployment.mdx) feature that starts automatically if you leave the **AppName** blank, mounts any `WIM` file found, and installs the `MSI` located inside. diff --git a/versioned_docs/version-4.1.x/getting-started/requirements.mdx b/versioned_docs/version-4.1.x/getting-started/requirements.mdx new file mode 100644 index 0000000..b9e3574 --- /dev/null +++ b/versioned_docs/version-4.1.x/getting-started/requirements.mdx @@ -0,0 +1,47 @@ +--- +sidebar_position: 2 +title: 'Requirements' +description: 'The requirements for running PSAppDeployToolkit.' +slug: /getting-started/requirements +tags: + - Requirements + - Getting Started +--- + +# Requirements + +## PowerShell Version + +PSAppDeployToolkit v4 fully supports Windows PowerShell 5.1 and PowerShell (Core) 7.4+. + +## .NET Framework Version + +PSAppDeployToolkit v4 requires .NET Framework 4.7.2 or higher. + +## Windows Client + +### Currently Supported + +PSAppDeployToolkit v4 is primarily developed on the latest Windows Client operating system (currently Windows 11). We aim to test and validate it against any versions listed under [Microsoft's currently supported Windows Client versions](https://learn.microsoft.com/en-us/windows/release-health/supported-versions-windows-client). + +#### Windows 11 +- Windows 11 24H2 +- Windows 11 23H2 +- Windows 11 22H2 +- Windows 11 21H2 + +#### Windows 10 +- Windows 10 22H2 +- Windows 10 21H2 +- Windows 10 1809 + +## Windows Server + +### Currently Supported + +We also test and validate against the Long-Term Servicing Channel (LTSC) versions listed on [Microsoft's currently supported Windows Server list](https://learn.microsoft.com/en-us/windows/release-health/windows-server-release-info). + +- Windows Server 2025 +- Windows Server 2022 +- Windows Server 2019 (version 1809) +- Windows Server 2016 (version 1607) diff --git a/versioned_docs/version-4.1.x/getting-started/upgrade-guidance-4x-to-v41.mdx b/versioned_docs/version-4.1.x/getting-started/upgrade-guidance-4x-to-v41.mdx new file mode 100644 index 0000000..f4981ef --- /dev/null +++ b/versioned_docs/version-4.1.x/getting-started/upgrade-guidance-4x-to-v41.mdx @@ -0,0 +1,110 @@ +--- +sidebar_position: 6 +title: 'Upgrade Guidance: v4 to v4.1' +description: 'Upgrade guidance for those coming from v4.0.' +slug: /getting-started/upgrade-guidance-4x-to-v41 +tags: + - Usage + - Migration + - Getting Started +--- + +# Upgrade Guidance: v4 to v4.1 + +## Breaking Changes in v4.1 + +:::warning +- `DeployMode` now defaults to a new mode `Auto`, which defaults to interactive but reverts to silent if the device is in OOBE/ESP phases, there is no user logged on, or there are no processes to close. +- `OOBEDetection` and `SessionDetection` are no longer set in Config.psd1. They can be set per-deployment by adding the `NoOOBEDetection` and `NoSessionDetection` options to the session properties if required. +- `AppProcessesToClose` is a new session property that allows you to define processes to close during Install/Uninstall/Repair in one place instead of specifying the processes directly on the `-CloseProcesses` parameter of `Show-ADTInstallationWelcome`. +- `RequireAdmin` is no longer set in Config.psd1. It must be set per-deployment in the session properties. +- Several config options have been removed or had their default values changed. See below for details. +- Deprecated functions and parameters are scheduled for removal in 4.2.0. Update your scripts accordingly. +::: + +## Updating an Existing v4.0 Deployment to v4.1 + +For patch releases (e.g. v4.0.5 to v4.0.6), all that is normally required is to replace the PSAppDeployToolkit folder within the package. + +However there are a number of changes to various toolkit files in 4.1 to be aware of. + +## Changes in Invoke-AppDeployToolkit.ps1 + +:::note +`AppProcessesToClose` and `RequireAdmin` are now set in the `$adtSession` object. This is a breaking change from previous versions. See the examples below for the new pattern. +::: + +There are 2 new additions to the $adtSession hashtable: + +```powershell +$adtSession = @{ + # App variables. + + AppProcessesToClose = @('excel', @{ Name = 'winword'; Description = 'Microsoft Word' }) + + RequireAdmin = $true +} +``` + +- `AppProcessesToClose` allows you to specify the processes to be closed in one place, saving you from copying the same list to the Uninstall and Repair sections of your script. If `DeployMode` is set to `Auto` (the default), the toolkit will automatically switch to `Silent` if none of the defined processes are running when the session is opened. This can be disabled by setting the `-NoProcessDetection` option when opening the session. +- `RequireAdmin` has been moved from the config file to the template, since it is a per-package setting. If set to `$true`, the script will fail at the point of opening the session if the user does not have administrative privileges. + +The `Show-ADTInstallationWelcome` example has been updated to use [splatting](https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_splatting): + +```powershell +$saiwParams = @{ + AllowDefer = $true + DeferTimes = 3 + CheckDiskSpace = $true + PersistPrompt = $true +} +if ($adtSession.AppProcessesToClose.Count -gt 0) +{ + $saiwParams.Add('CloseProcesses', $adtSession.AppProcessesToClose) +} +Show-ADTInstallationWelcome @saiwParams +``` + +This allows you to more easily read the options being set, and will only add CloseProcesses to the parameter list if it's not empty. You are still welcome to use the method from the v4.0 template if you prefer - the template is provided for your customisation. + +The last important change is this line that calls `Remove-ADTHashtableNullOrEmptyValues` to strip out any null or empty values from the `$adtSession` hashtable before it is passed to the `Open-ADTSession` function: + +```powershell + $adtSession = Remove-ADTHashtableNullOrEmptyValues -Hashtable $adtSession ⬅️ + $adtSession = Open-ADTSession @adtSession @iadtParams -PassThru +``` + +## OOBE and Session Detection Changes + +:::warning +OOBE and session detection logic has changed in 4.1. OOBE detection now includes the User ESP phase, and you can now bypass OOBE or session detection per deployment using the new `NoOobeDetection` and `NoSessionDetection` session parameters. Review your scripts and config if you rely on the old behavior. +::: + +## Changes in Config.psd1 + +Changed defaults: + +| Option | Default | Description | +| ------------------------ | ------------------------- | ------------------------------------------------------------------ | +| MSI.InstallParams | /qn REBOOT=ReallySuppress | Default MSI parameters for installation. | +| MSI.LogPath | | Now uses the same path as Toolkit.LogPath when empty. | +| MSI.LogPathNoAdminRights | | Now uses the same path as Toolkit.LogPathNoAdminRights when empty. | +| UI.DeferExitCode | 1602 | Default exit code for deferred installations. | + +Removed options: + +- Toolkit.OobeDetection +- Toolkit.SessionDetection +- Toolkit.RequireAdmin + +## Changes in Strings.psd1 + +There have been extensive changes to the Strings.psd1 files for each language, too many to list here. Please submit an issue or pull request on GitHub if you are able to improve any of the translations! + +## Additional Migration Notes + +:::note + +- Use the migration tools (`Test-ADTCompatibility`, `Convert-ADTDeployment`) to help update your scripts. +- Review all function and parameter deprecations in the [release notes](../getting-started/release-notes.mdx). +::: diff --git a/versioned_docs/version-4.1.x/getting-started/upgrade-guidance-v3x-to-v41.mdx b/versioned_docs/version-4.1.x/getting-started/upgrade-guidance-v3x-to-v41.mdx new file mode 100644 index 0000000..995fdf1 --- /dev/null +++ b/versioned_docs/version-4.1.x/getting-started/upgrade-guidance-v3x-to-v41.mdx @@ -0,0 +1,68 @@ +--- +sidebar_position: 7 +title: 'Upgrade Guidance: v3.x to v4.1' +description: 'Upgrade guidance for those coming from v3.' +slug: /getting-started/upgrade-guidance-v3x-to-v41 +tags: + - Usage + - Migration + - Getting Started +--- + +# Upgrade Guidance: v3.x to v4.1 + +Before proceeding, ensure that you have reviewed the changes in the [release notes(../getting-started/release-notes.mdx) + +## Using v4 in v3 Compatibility Mode + +See the [Creating a new deployment](../getting-started/creating-a-new-deployment.mdx) page for instructions on creating a v3-compatible deployment template or downloading one from GitHub. + +This layout allows you to drop in your existing v3 **Deploy-Application.ps1** scripts (along with **AppDeployToolkit\AppDeployToolkitExtensions.ps1**), which will continue to function with the following caveats: + +- If you customized **config.xml** in your previous v3 deployment, you will now need to modify **Config\config.psd1** and/or **Strings\strings.psd1** accordingly. +- Copy your custom banner to **Assets\Banner.Classic.png**. +- Compatibility mode does not support the new Fluent UI. + +## Migration Tools in PSAppDeployToolkit.Tools + +[PSAppDeployToolkit.Tools](https://github.com/PSAppDeployToolkit/PSAppDeployToolkit.Tools) provides the following commands to help you migrate from v3: + +- **Test-ADTCompatibility** - Tests your PSAppDeployToolkit v3 scripts to generate a full report on which functions and variables have changed in v4. +- **Convert-ADTDeployment** - Converts a PSAppDeployToolkit v3 script or an entire package folder to v4 standards. + +The [Downloading](../getting-started/download.mdx) page covers how to download and install this additional module. + +### Test-ADTCompatibility + +Example command usage: + +```powershell +Test-ADTCompatibility -FilePath .\Deploy-Application.ps1 -Format Grid +``` + +This command analyzes **Deploy-Application.ps1** and displays the results in a grid view. + +### Convert-ADTDeployment + +Example command usage: + +```powershell +Convert-ADTDeployment -Path .\Deploy-Application.ps1 +``` +This command converts **Deploy-Application.ps1** to **Invoke-AppDeployToolkit.ps1** in the same folder. + +```powershell +Convert-ADTDeployment -Path .\PackageFolder +``` +This command converts **PackageFolder** to **PackageFolder_Converted** in the same folder. + +Conversion limitations: + +- Known toolkit variables, such as `$appName`, are copied over to the hashtable that creates `$adtSession`. +- The main Install, Uninstall, and Repair scriptblocks are converted and copied to the new script. +- Any other custom variables, function declarations, or code located outside these blocks will not be transferred. +- **Files** and **SupportFiles** contents are transferred if a package folder is supplied as the path rather than a **Deploy-Application.ps1** file. +- **Config.xml** changes will not be ported to the new .psd1 files. +- Customized assets or banners are not currently copied over. + +**PSAppDeployToolkit.Tools** is currently in pre-release to gather early feedback. If you encounter any conversion issues, please submit a [GitHub Issue](https://github.com/PSAppDeployToolkit/PSAppDeployToolkit.Tools/issues). diff --git a/versioned_docs/version-4.1.x/images/chrome-sccm1.png b/versioned_docs/version-4.1.x/images/chrome-sccm1.png new file mode 100644 index 0000000..a57db93 Binary files /dev/null and b/versioned_docs/version-4.1.x/images/chrome-sccm1.png differ diff --git a/versioned_docs/version-4.1.x/images/chrome-sccm10.png b/versioned_docs/version-4.1.x/images/chrome-sccm10.png new file mode 100644 index 0000000..a0e989e Binary files /dev/null and b/versioned_docs/version-4.1.x/images/chrome-sccm10.png differ diff --git a/versioned_docs/version-4.1.x/images/chrome-sccm11.png b/versioned_docs/version-4.1.x/images/chrome-sccm11.png new file mode 100644 index 0000000..24c45b2 Binary files /dev/null and b/versioned_docs/version-4.1.x/images/chrome-sccm11.png differ diff --git a/versioned_docs/version-4.1.x/images/chrome-sccm12.png b/versioned_docs/version-4.1.x/images/chrome-sccm12.png new file mode 100644 index 0000000..0474c87 Binary files /dev/null and b/versioned_docs/version-4.1.x/images/chrome-sccm12.png differ diff --git a/versioned_docs/version-4.1.x/images/chrome-sccm13.png b/versioned_docs/version-4.1.x/images/chrome-sccm13.png new file mode 100644 index 0000000..7c921a2 Binary files /dev/null and b/versioned_docs/version-4.1.x/images/chrome-sccm13.png differ diff --git a/versioned_docs/version-4.1.x/images/chrome-sccm14.png b/versioned_docs/version-4.1.x/images/chrome-sccm14.png new file mode 100644 index 0000000..d839348 Binary files /dev/null and b/versioned_docs/version-4.1.x/images/chrome-sccm14.png differ diff --git a/versioned_docs/version-4.1.x/images/chrome-sccm15.png b/versioned_docs/version-4.1.x/images/chrome-sccm15.png new file mode 100644 index 0000000..ae2a153 Binary files /dev/null and b/versioned_docs/version-4.1.x/images/chrome-sccm15.png differ diff --git a/versioned_docs/version-4.1.x/images/chrome-sccm16.png b/versioned_docs/version-4.1.x/images/chrome-sccm16.png new file mode 100644 index 0000000..fd83f14 Binary files /dev/null and b/versioned_docs/version-4.1.x/images/chrome-sccm16.png differ diff --git a/versioned_docs/version-4.1.x/images/chrome-sccm17.png b/versioned_docs/version-4.1.x/images/chrome-sccm17.png new file mode 100644 index 0000000..7cc6e88 Binary files /dev/null and b/versioned_docs/version-4.1.x/images/chrome-sccm17.png differ diff --git a/versioned_docs/version-4.1.x/images/chrome-sccm18.png b/versioned_docs/version-4.1.x/images/chrome-sccm18.png new file mode 100644 index 0000000..8523aa8 Binary files /dev/null and b/versioned_docs/version-4.1.x/images/chrome-sccm18.png differ diff --git a/versioned_docs/version-4.1.x/images/chrome-sccm19.png b/versioned_docs/version-4.1.x/images/chrome-sccm19.png new file mode 100644 index 0000000..79fd519 Binary files /dev/null and b/versioned_docs/version-4.1.x/images/chrome-sccm19.png differ diff --git a/versioned_docs/version-4.1.x/images/chrome-sccm2.png b/versioned_docs/version-4.1.x/images/chrome-sccm2.png new file mode 100644 index 0000000..0bf2b6e Binary files /dev/null and b/versioned_docs/version-4.1.x/images/chrome-sccm2.png differ diff --git a/versioned_docs/version-4.1.x/images/chrome-sccm20.png b/versioned_docs/version-4.1.x/images/chrome-sccm20.png new file mode 100644 index 0000000..6f54946 Binary files /dev/null and b/versioned_docs/version-4.1.x/images/chrome-sccm20.png differ diff --git a/versioned_docs/version-4.1.x/images/chrome-sccm21.png b/versioned_docs/version-4.1.x/images/chrome-sccm21.png new file mode 100644 index 0000000..d66b9eb Binary files /dev/null and b/versioned_docs/version-4.1.x/images/chrome-sccm21.png differ diff --git a/versioned_docs/version-4.1.x/images/chrome-sccm22.png b/versioned_docs/version-4.1.x/images/chrome-sccm22.png new file mode 100644 index 0000000..8a7227b Binary files /dev/null and b/versioned_docs/version-4.1.x/images/chrome-sccm22.png differ diff --git a/versioned_docs/version-4.1.x/images/chrome-sccm23.png b/versioned_docs/version-4.1.x/images/chrome-sccm23.png new file mode 100644 index 0000000..c0a2050 Binary files /dev/null and b/versioned_docs/version-4.1.x/images/chrome-sccm23.png differ diff --git a/versioned_docs/version-4.1.x/images/chrome-sccm24.png b/versioned_docs/version-4.1.x/images/chrome-sccm24.png new file mode 100644 index 0000000..ba6b405 Binary files /dev/null and b/versioned_docs/version-4.1.x/images/chrome-sccm24.png differ diff --git a/versioned_docs/version-4.1.x/images/chrome-sccm25.png b/versioned_docs/version-4.1.x/images/chrome-sccm25.png new file mode 100644 index 0000000..288bad6 Binary files /dev/null and b/versioned_docs/version-4.1.x/images/chrome-sccm25.png differ diff --git a/versioned_docs/version-4.1.x/images/chrome-sccm26.png b/versioned_docs/version-4.1.x/images/chrome-sccm26.png new file mode 100644 index 0000000..20274ed Binary files /dev/null and b/versioned_docs/version-4.1.x/images/chrome-sccm26.png differ diff --git a/versioned_docs/version-4.1.x/images/chrome-sccm3.png b/versioned_docs/version-4.1.x/images/chrome-sccm3.png new file mode 100644 index 0000000..a95a345 Binary files /dev/null and b/versioned_docs/version-4.1.x/images/chrome-sccm3.png differ diff --git a/versioned_docs/version-4.1.x/images/chrome-sccm4.png b/versioned_docs/version-4.1.x/images/chrome-sccm4.png new file mode 100644 index 0000000..a5aef99 Binary files /dev/null and b/versioned_docs/version-4.1.x/images/chrome-sccm4.png differ diff --git a/versioned_docs/version-4.1.x/images/chrome-sccm5.png b/versioned_docs/version-4.1.x/images/chrome-sccm5.png new file mode 100644 index 0000000..5573abb Binary files /dev/null and b/versioned_docs/version-4.1.x/images/chrome-sccm5.png differ diff --git a/versioned_docs/version-4.1.x/images/chrome-sccm6.png b/versioned_docs/version-4.1.x/images/chrome-sccm6.png new file mode 100644 index 0000000..4008325 Binary files /dev/null and b/versioned_docs/version-4.1.x/images/chrome-sccm6.png differ diff --git a/versioned_docs/version-4.1.x/images/chrome-sccm7.png b/versioned_docs/version-4.1.x/images/chrome-sccm7.png new file mode 100644 index 0000000..21cbc7f Binary files /dev/null and b/versioned_docs/version-4.1.x/images/chrome-sccm7.png differ diff --git a/versioned_docs/version-4.1.x/images/chrome-sccm8.png b/versioned_docs/version-4.1.x/images/chrome-sccm8.png new file mode 100644 index 0000000..d1bb378 Binary files /dev/null and b/versioned_docs/version-4.1.x/images/chrome-sccm8.png differ diff --git a/versioned_docs/version-4.1.x/images/chrome-sccm9.png b/versioned_docs/version-4.1.x/images/chrome-sccm9.png new file mode 100644 index 0000000..db7a754 Binary files /dev/null and b/versioned_docs/version-4.1.x/images/chrome-sccm9.png differ diff --git a/versioned_docs/version-4.1.x/images/example-admx-LogPath-00-GPO-new.png b/versioned_docs/version-4.1.x/images/example-admx-LogPath-00-GPO-new.png new file mode 100644 index 0000000..e60bd24 Binary files /dev/null and b/versioned_docs/version-4.1.x/images/example-admx-LogPath-00-GPO-new.png differ diff --git a/versioned_docs/version-4.1.x/images/example-admx-LogPath-01-GPO-new.png b/versioned_docs/version-4.1.x/images/example-admx-LogPath-01-GPO-new.png new file mode 100644 index 0000000..174ca58 Binary files /dev/null and b/versioned_docs/version-4.1.x/images/example-admx-LogPath-01-GPO-new.png differ diff --git a/versioned_docs/version-4.1.x/images/example-admx-LogPath-02-GPO-new.png b/versioned_docs/version-4.1.x/images/example-admx-LogPath-02-GPO-new.png new file mode 100644 index 0000000..96b97f0 Binary files /dev/null and b/versioned_docs/version-4.1.x/images/example-admx-LogPath-02-GPO-new.png differ diff --git a/versioned_docs/version-4.1.x/images/example-admx-LogPath-03-GPO-new.png b/versioned_docs/version-4.1.x/images/example-admx-LogPath-03-GPO-new.png new file mode 100644 index 0000000..8d91a6e Binary files /dev/null and b/versioned_docs/version-4.1.x/images/example-admx-LogPath-03-GPO-new.png differ diff --git a/versioned_docs/version-4.1.x/images/example-admx-LogPath-04-GPO-new.png b/versioned_docs/version-4.1.x/images/example-admx-LogPath-04-GPO-new.png new file mode 100644 index 0000000..80745be Binary files /dev/null and b/versioned_docs/version-4.1.x/images/example-admx-LogPath-04-GPO-new.png differ diff --git a/versioned_docs/version-4.1.x/images/example-admx-LogPath-05-GPO-new.png b/versioned_docs/version-4.1.x/images/example-admx-LogPath-05-GPO-new.png new file mode 100644 index 0000000..8706706 Binary files /dev/null and b/versioned_docs/version-4.1.x/images/example-admx-LogPath-05-GPO-new.png differ diff --git a/versioned_docs/version-4.1.x/images/example-admx-LogPath-06-GPO-new.png b/versioned_docs/version-4.1.x/images/example-admx-LogPath-06-GPO-new.png new file mode 100644 index 0000000..1e0072c Binary files /dev/null and b/versioned_docs/version-4.1.x/images/example-admx-LogPath-06-GPO-new.png differ diff --git a/versioned_docs/version-4.1.x/images/example-admx-LogPath-07-GPO-new.png b/versioned_docs/version-4.1.x/images/example-admx-LogPath-07-GPO-new.png new file mode 100644 index 0000000..026c555 Binary files /dev/null and b/versioned_docs/version-4.1.x/images/example-admx-LogPath-07-GPO-new.png differ diff --git a/versioned_docs/version-4.1.x/images/example-admx-LogPath-08-GPO-new.png b/versioned_docs/version-4.1.x/images/example-admx-LogPath-08-GPO-new.png new file mode 100644 index 0000000..76f128c Binary files /dev/null and b/versioned_docs/version-4.1.x/images/example-admx-LogPath-08-GPO-new.png differ diff --git a/versioned_docs/version-4.1.x/images/example-admx-LogPath-09-GPO-new.png b/versioned_docs/version-4.1.x/images/example-admx-LogPath-09-GPO-new.png new file mode 100644 index 0000000..8d04dd9 Binary files /dev/null and b/versioned_docs/version-4.1.x/images/example-admx-LogPath-09-GPO-new.png differ diff --git a/versioned_docs/version-4.1.x/images/example-admx-LogPath-10-GPO-new.png b/versioned_docs/version-4.1.x/images/example-admx-LogPath-10-GPO-new.png new file mode 100644 index 0000000..bb6887d Binary files /dev/null and b/versioned_docs/version-4.1.x/images/example-admx-LogPath-10-GPO-new.png differ diff --git a/versioned_docs/version-4.1.x/images/example-admx-LogPath-11-GPO-new.png b/versioned_docs/version-4.1.x/images/example-admx-LogPath-11-GPO-new.png new file mode 100644 index 0000000..69b541d Binary files /dev/null and b/versioned_docs/version-4.1.x/images/example-admx-LogPath-11-GPO-new.png differ diff --git a/versioned_docs/version-4.1.x/images/psadt-3buttonmsgbox_dark.png b/versioned_docs/version-4.1.x/images/psadt-3buttonmsgbox_dark.png new file mode 100644 index 0000000..e4b503f Binary files /dev/null and b/versioned_docs/version-4.1.x/images/psadt-3buttonmsgbox_dark.png differ diff --git a/versioned_docs/version-4.1.x/images/psadt-3buttonmsgbox_light.png b/versioned_docs/version-4.1.x/images/psadt-3buttonmsgbox_light.png new file mode 100644 index 0000000..69a9bc9 Binary files /dev/null and b/versioned_docs/version-4.1.x/images/psadt-3buttonmsgbox_light.png differ diff --git a/versioned_docs/version-4.1.x/images/psadt-41-1.png b/versioned_docs/version-4.1.x/images/psadt-41-1.png new file mode 100644 index 0000000..99935d5 Binary files /dev/null and b/versioned_docs/version-4.1.x/images/psadt-41-1.png differ diff --git a/versioned_docs/version-4.1.x/images/psadt-41-2.png b/versioned_docs/version-4.1.x/images/psadt-41-2.png new file mode 100644 index 0000000..aeccdc7 Binary files /dev/null and b/versioned_docs/version-4.1.x/images/psadt-41-2.png differ diff --git a/versioned_docs/version-4.1.x/images/psadt-41-3.png b/versioned_docs/version-4.1.x/images/psadt-41-3.png new file mode 100644 index 0000000..c726a59 Binary files /dev/null and b/versioned_docs/version-4.1.x/images/psadt-41-3.png differ diff --git a/versioned_docs/version-4.1.x/images/psadt-41-4.png b/versioned_docs/version-4.1.x/images/psadt-41-4.png new file mode 100644 index 0000000..4745bd4 Binary files /dev/null and b/versioned_docs/version-4.1.x/images/psadt-41-4.png differ diff --git a/versioned_docs/version-4.1.x/images/psadt-41-5.png b/versioned_docs/version-4.1.x/images/psadt-41-5.png new file mode 100644 index 0000000..a9d9af1 Binary files /dev/null and b/versioned_docs/version-4.1.x/images/psadt-41-5.png differ diff --git a/versioned_docs/version-4.1.x/images/psadt-admx-files-deployment-template.png b/versioned_docs/version-4.1.x/images/psadt-admx-files-deployment-template.png new file mode 100644 index 0000000..6fe6f1e Binary files /dev/null and b/versioned_docs/version-4.1.x/images/psadt-admx-files-deployment-template.png differ diff --git a/versioned_docs/version-4.1.x/images/psadt-admx-files-module.png b/versioned_docs/version-4.1.x/images/psadt-admx-files-module.png new file mode 100644 index 0000000..1ede865 Binary files /dev/null and b/versioned_docs/version-4.1.x/images/psadt-admx-files-module.png differ diff --git a/versioned_docs/version-4.1.x/images/psadt-admx-files.png b/versioned_docs/version-4.1.x/images/psadt-admx-files.png new file mode 100644 index 0000000..1defdda Binary files /dev/null and b/versioned_docs/version-4.1.x/images/psadt-admx-files.png differ diff --git a/versioned_docs/version-4.1.x/images/psadt-admx-gpme.png b/versioned_docs/version-4.1.x/images/psadt-admx-gpme.png new file mode 100644 index 0000000..800e943 Binary files /dev/null and b/versioned_docs/version-4.1.x/images/psadt-admx-gpme.png differ diff --git a/versioned_docs/version-4.1.x/images/psadt-admx-registry.png b/versioned_docs/version-4.1.x/images/psadt-admx-registry.png new file mode 100644 index 0000000..973d1f9 Binary files /dev/null and b/versioned_docs/version-4.1.x/images/psadt-admx-registry.png differ diff --git a/versioned_docs/version-4.1.x/images/psadt-blockexecution_dark.png b/versioned_docs/version-4.1.x/images/psadt-blockexecution_dark.png new file mode 100644 index 0000000..b3b50eb Binary files /dev/null and b/versioned_docs/version-4.1.x/images/psadt-blockexecution_dark.png differ diff --git a/versioned_docs/version-4.1.x/images/psadt-blockexecution_light.png b/versioned_docs/version-4.1.x/images/psadt-blockexecution_light.png new file mode 100644 index 0000000..840476b Binary files /dev/null and b/versioned_docs/version-4.1.x/images/psadt-blockexecution_light.png differ diff --git a/versioned_docs/version-4.1.x/images/psadt-closeapps_dark.png b/versioned_docs/version-4.1.x/images/psadt-closeapps_dark.png new file mode 100644 index 0000000..a3e0899 Binary files /dev/null and b/versioned_docs/version-4.1.x/images/psadt-closeapps_dark.png differ diff --git a/versioned_docs/version-4.1.x/images/psadt-closeapps_light.png b/versioned_docs/version-4.1.x/images/psadt-closeapps_light.png new file mode 100644 index 0000000..e084c34 Binary files /dev/null and b/versioned_docs/version-4.1.x/images/psadt-closeapps_light.png differ diff --git a/versioned_docs/version-4.1.x/images/psadt-custommsg_dark.png b/versioned_docs/version-4.1.x/images/psadt-custommsg_dark.png new file mode 100644 index 0000000..f1e5409 Binary files /dev/null and b/versioned_docs/version-4.1.x/images/psadt-custommsg_dark.png differ diff --git a/versioned_docs/version-4.1.x/images/psadt-custommsg_light.png b/versioned_docs/version-4.1.x/images/psadt-custommsg_light.png new file mode 100644 index 0000000..049d805 Binary files /dev/null and b/versioned_docs/version-4.1.x/images/psadt-custommsg_light.png differ diff --git a/versioned_docs/version-4.1.x/images/psadt-customprogress_dark.png b/versioned_docs/version-4.1.x/images/psadt-customprogress_dark.png new file mode 100644 index 0000000..49b62e6 Binary files /dev/null and b/versioned_docs/version-4.1.x/images/psadt-customprogress_dark.png differ diff --git a/versioned_docs/version-4.1.x/images/psadt-customprogress_light.png b/versioned_docs/version-4.1.x/images/psadt-customprogress_light.png new file mode 100644 index 0000000..4e05a7d Binary files /dev/null and b/versioned_docs/version-4.1.x/images/psadt-customprogress_light.png differ diff --git a/versioned_docs/version-4.1.x/images/psadt-dark-logo.png b/versioned_docs/version-4.1.x/images/psadt-dark-logo.png new file mode 100644 index 0000000..7262047 Binary files /dev/null and b/versioned_docs/version-4.1.x/images/psadt-dark-logo.png differ diff --git a/versioned_docs/version-4.1.x/images/psadt-dark-stacked.png b/versioned_docs/version-4.1.x/images/psadt-dark-stacked.png new file mode 100644 index 0000000..9ea71a2 Binary files /dev/null and b/versioned_docs/version-4.1.x/images/psadt-dark-stacked.png differ diff --git a/versioned_docs/version-4.1.x/images/psadt-dark-sxs.png b/versioned_docs/version-4.1.x/images/psadt-dark-sxs.png new file mode 100644 index 0000000..c4ceaf8 Binary files /dev/null and b/versioned_docs/version-4.1.x/images/psadt-dark-sxs.png differ diff --git a/versioned_docs/version-4.1.x/images/psadt-helpconsole.png b/versioned_docs/version-4.1.x/images/psadt-helpconsole.png new file mode 100644 index 0000000..8a8d5c3 Binary files /dev/null and b/versioned_docs/version-4.1.x/images/psadt-helpconsole.png differ diff --git a/versioned_docs/version-4.1.x/images/psadt-inprogress_dark.png b/versioned_docs/version-4.1.x/images/psadt-inprogress_dark.png new file mode 100644 index 0000000..fcb488d Binary files /dev/null and b/versioned_docs/version-4.1.x/images/psadt-inprogress_dark.png differ diff --git a/versioned_docs/version-4.1.x/images/psadt-inprogress_light.png b/versioned_docs/version-4.1.x/images/psadt-inprogress_light.png new file mode 100644 index 0000000..b69abdd Binary files /dev/null and b/versioned_docs/version-4.1.x/images/psadt-inprogress_light.png differ diff --git a/versioned_docs/version-4.1.x/images/psadt-light-logo.png b/versioned_docs/version-4.1.x/images/psadt-light-logo.png new file mode 100644 index 0000000..2e38e59 Binary files /dev/null and b/versioned_docs/version-4.1.x/images/psadt-light-logo.png differ diff --git a/versioned_docs/version-4.1.x/images/psadt-light-stacked.png b/versioned_docs/version-4.1.x/images/psadt-light-stacked.png new file mode 100644 index 0000000..cc70de8 Binary files /dev/null and b/versioned_docs/version-4.1.x/images/psadt-light-stacked.png differ diff --git a/versioned_docs/version-4.1.x/images/psadt-light-sxs.png b/versioned_docs/version-4.1.x/images/psadt-light-sxs.png new file mode 100644 index 0000000..bcfdeef Binary files /dev/null and b/versioned_docs/version-4.1.x/images/psadt-light-sxs.png differ diff --git a/versioned_docs/version-4.1.x/images/psadt-restarttimer_dark.png b/versioned_docs/version-4.1.x/images/psadt-restarttimer_dark.png new file mode 100644 index 0000000..9650d5e Binary files /dev/null and b/versioned_docs/version-4.1.x/images/psadt-restarttimer_dark.png differ diff --git a/versioned_docs/version-4.1.x/images/psadt-restarttimer_light.png b/versioned_docs/version-4.1.x/images/psadt-restarttimer_light.png new file mode 100644 index 0000000..d822b88 Binary files /dev/null and b/versioned_docs/version-4.1.x/images/psadt-restarttimer_light.png differ diff --git a/versioned_docs/version-4.1.x/images/psadt-welcome_dark.png b/versioned_docs/version-4.1.x/images/psadt-welcome_dark.png new file mode 100644 index 0000000..a52309b Binary files /dev/null and b/versioned_docs/version-4.1.x/images/psadt-welcome_dark.png differ diff --git a/versioned_docs/version-4.1.x/images/psadt-welcome_light.png b/versioned_docs/version-4.1.x/images/psadt-welcome_light.png new file mode 100644 index 0000000..ced06da Binary files /dev/null and b/versioned_docs/version-4.1.x/images/psadt-welcome_light.png differ diff --git a/versioned_docs/version-4.1.x/introduction.mdx b/versioned_docs/version-4.1.x/introduction.mdx new file mode 100644 index 0000000..ced7db9 --- /dev/null +++ b/versioned_docs/version-4.1.x/introduction.mdx @@ -0,0 +1,63 @@ +--- +sidebar_position: 1 +title: 'Introduction' +description: Get up and running with PSAppDeployToolkit in minutes. +hide_title: false +id: introduction +tags: + - Documentation + - Introduction +--- + +## What is PSAppDeployToolkit? + +A *PowerShell* based framework, to **simplify and standardize** the process of **deploying software** to **Windows** based computers, ***at scale***. + +It is typically use to wrap an existing vendor-supplied installer package (e.g. source files containing an MSI or EXE file), and to extend it's functionality using: + +- A standardized, battle-tested **workflow** for every application install, uninstall and repair. +- A highly-customizable **User Interface** that remains consistent for end users, for every deployment. +- An extensive **library of functions** to simplify common deployment tasks. + +... which results in a **consistent and brandable user experience** and **highly successful deployments**. + + +In this documentation, you'll find information on how to quickly get up and running with PSADT, how to get to grips with creating you first deployment, guides on how to use some of the more advanced features, and a reference for every function and variable available to use. + +## Getting Help / Support + +PSAppDeployToolkit is open-source software and provided free for anyone to use. The development team provide support on a best-effort basis. In our experience, most questions can be answered by searching the documentation or the community platforms for an answer. + +- [Documentation](https://psappdeploytoolkit.com/docs/introduction) + - Everything you need to know about how to use PSAppDeployToolkit, including step-by-step guides. +- [Functions Reference](https://psappdeploytoolkit.com/docs/reference/functions) + - A reference for all the functions provided by PSAppDeployToolkit, including parameters and examples of how to use them. + +:::info Enterpise 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). +::: + +## Reporting Issues + +Failing that, we have a great community of users and contributors who are often happy to help answer questions, share their knowledge and experience, and even contribute code to the project. They are: + + - [GitHub Repository](https://github.com/psappdeploytoolkit/psappdeploytoolkit) + - Best place for reporting issues or to get stuck into the code. + - [Discourse Forum](https://discourse.psappdeploytoolkit.com) + - Great repository of knowledge, with an active helpful community. +- [WinAdmins Discord](https://discord.com/channels/618712310185197588/627204361545842688) **#psappdeploytoolkit** channel + - Great for realtime help with issues or quick questions answered by our helpful community members and the dev team. + - We typically share news and updates about upcoming releases and sometimes ask for help with beta testing, so it's a good place to stay up to date with the project. + + + +## Open-source & Contributing + +PSAppDeployToolkit is an open-source project (see [`COPYING.Lesser`](https://github.com/psappdeploytoolkit/psappdeploytoolkit/blob/master/COPYING.Lesser) file for more information). The core project, as well as the documentation and any related tools can be found in the [PSAppDeployToolkit](https://github.com/psappdeploytoolkit) GitHub organization. + +PSAppDeployToolkit is open to code contributions, including feature requests, bug reports, and pull requests. + +## Something missing? Typos? + +If you find issues with the documentation or have ideas for improvements, please [file an issue](https://github.com/PSAppDeployToolkit/PSAppDeployToolkit/issues). 😊 diff --git a/versioned_docs/version-4.1.x/reference.mdx b/versioned_docs/version-4.1.x/reference.mdx new file mode 100644 index 0000000..aa8664e --- /dev/null +++ b/versioned_docs/version-4.1.x/reference.mdx @@ -0,0 +1,20 @@ +--- +sidebar_position: 1 +title: 'Reference' +description: 'A handy reference to the Exit Codes used by PSAppDeployToolkit, as well as the Variables and Functions made available for you to use.' +id: reference +tags: + - Reference +--- + +# Reference + +PSAppDeployToolkit provides various functions to simplify script writing and uses an ADT Session object to store deployment information. + +PSAppDeployToolkit uses pre-defined **Exit Codes** to indicate the success or failure of a deployment and can be used to control the flow of your deployment logic, or just to understand what happened during a deployment. + +You can find a complete list of Exit Codes, Functions, and ADT Session properties in the sidebar or by using the search bar. + +## Something missing? + +If you find issues with the documentation or have suggestions on how to improve the documentation or the project in general, please [file an issue](https://github.com/PSAppDeployToolkit/PSAppDeployToolkit/issues) for us. diff --git a/versioned_docs/version-4.1.x/reference/_category_.json b/versioned_docs/version-4.1.x/reference/_category_.json new file mode 100644 index 0000000..a1cff42 --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/_category_.json @@ -0,0 +1,4 @@ +{ + "label": "Reference", + "position": 1 +} diff --git a/versioned_docs/version-4.1.x/reference/adtsession-object.mdx b/versioned_docs/version-4.1.x/reference/adtsession-object.mdx new file mode 100644 index 0000000..73d9f68 --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/adtsession-object.mdx @@ -0,0 +1,106 @@ +--- +sidebar_position: 1 +sidebar_label: 'ADTSession Object' +title: 'ADTSession Object' +description: 'PSAppDeployToolkit uses ADTSession to govern each deployment. You can find more information here' +slug: /reference/adtsession-object +tags: + - ADTSession Object + - Reference +--- + +# ADTSession Object + +The `ADTSession` object is a core component of **PSAppDeployToolkit**, managing the state and information throughout a deployment session. It gathers essential details about the deployment environment and provides convenient properties and methods for use in scripts. + +## Initialization + +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 +``` + +This initializes the session and gathers information about the deployment, user, and computer, providing an object with several helpful properties you can use. + +In addition, opening a session creates additional variables in your PowerShell environment that are independent of any particular deployment. More information about these variables can be found in the [Variables](./variables.mdx) page. + +# Properties + +The ADTSession object exposes several properties, which can be accessed using `$adtSession.`, e.g `$adtSession.AppName`. + +The following properties are settable via parameters of the `Open-ADTSession` function: + +## Deployment Properties + +| Property | Description | +|-----------------------|----------------------------------------------------------------------------------------| +| `AppVendor` | The vendor of the application. | +| `AppName` | The name of the application being deployed. | +| `AppVersion` | The version of the application. | +| `AppArch` | The architecture (e.g., x86, x64) of the application. | +| `AppLang` | The language or locale of the application. | +| `AppRevision` | The revision number of the application. | +| `InstallName` | The name assigned to the installation (overrides the automatically generated name). | +| `InstallTitle` | The title displayed during installation (overrides the automatically generated title). | + +## Script Properties + +| Property | Description | +|-------------------------------|--------------------------------------------------------------------------| +| `AppScriptAuthor` | The author of the deployment script. | +| `AppScriptDate` | The creation date of the deployment script. | +| `AppScriptVersion` | The version of the deployment script. | +| `DeployAppScriptFriendlyName` | The filename of the deployment script. | +| `DeployAppScriptParameters` | The parameters passed to the deployment script. | +| `DeployAppScriptVersion` | The version of PSAppDeployToolkit the deployment script originated from. | + +## Deployment Settings + +| Property | Description | +|--------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------| +| `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"). | +| `NoOobeDetection` | Bypasses OOBE detection logic when DeployMode is set to Auto. Use this to show the UI during OOBE / Autopilot ESP phases. | +| `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. | +| `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. | +| `AppProcessesToClose` | An array of process names or hashtables (with Name/Description) to be closed before install/uninstall/repair. | +| `AppSuccessExitCodes` | An array of exit codes that indicate a successful installation or uninstallation. | +| `AppRebootExitCodes` | An array of exit codes that indicate a reboot is required after installation or uninstallation. | +| `SuppressRebootPassThru` | Indicates if reboot exit codes (e.g. 3010) should be converted to 0 (i.e. Success) when closing the session. | +| `RequireAdmin` | Whether the deployment requires administrative privileges. | +| `TerminalServerMode` | Enables Terminal Server installation mode. | +| `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. | +| `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. | + +## Path Settings + +| Property | Description | +|-------------------|-----------------------------------------------------------| +| `DirFiles` | Path to the "Files" directory used by the toolkit. | +| `DirSupportFiles` | Path to the "SupportFiles" directory used by the toolkit. | +| `ScriptDirectory` | The directory where the deployment script is located. | + +## Logging Settings + +| Property | Description | +|------------------|---------------------------| +| `DisableLogging` | Disable logging. | +| `LogName` | The name of the log file. | + +## Additional Properties + +The following properties are not parameters of `Open-ADTSession`, but are available as additional properties of the returned `ADTSession` object: + +| Property | Description | +|-------------------|----------------------------------------------------------------------------------------------------------------| +| `CurrentDate` | The current date. | +| `CurrentDateTime` | The current date and time. | +| `CurrentTime` | The current time. | +| `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. | diff --git a/versioned_docs/version-4.1.x/reference/config-settings.mdx b/versioned_docs/version-4.1.x/reference/config-settings.mdx new file mode 100644 index 0000000..605cb04 --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/config-settings.mdx @@ -0,0 +1,98 @@ +--- +sidebar_position: 3 +sidebar_label: 'Configuration Settings' +title: 'Configuration Settings' +description: 'PSAppDeployToolkit uses ADTSession to govern each deployment. You can find more information here' +slug: /reference/config-settings +tags: + - Configuration Settings + - Reference +--- + +# Configuration Settings + +PSAppDeployToolkit provides comprehensive configuration management through multiple layers: Group Policy (highest precedence), local configuration files, and built-in defaults. + +In PSADT v4.1, we've introduced **Group Policy ADMX templates** for centralized enterprise configuration management. Group Policy settings override local configuration files. + +**Configuration Precedence (Highest to Lowest):** + +1. **Group Policy Settings** (via ADMX templates) +2. **Local Config.psd1** files +3. **Built-in Defaults** + +# Settings + +## Assets + +| Setting | Description | +|:------------------|:----------------------------------| +| `Assets.Banner` | Specifies the banner asset. | +| `Assets.Logo` | Specifies the logo asset. | +| `Assets.LogoDark` | Path to the dark mode logo image. | + +:::note 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 admin rights 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.OobeDetection` | Detects Out-of-Box Experience (OOBE) state. If enabled, the toolkit will check if the device has completed OOBE (including User ESP phase as of 4.1) and may switch DeployMode to Silent if not. | +| `Toolkit.ProcessDetection` | Auto-change DeployMode if there are no processes to close. | +| `Toolkit.RegPath` | Specifies the registry path for the toolkit. | +| `Toolkit.RegPathNoAdminRights` | Specifies the registry path when no admin rights are available. | +| `Toolkit.SessionDetection` | Detects user session state. If enabled, the toolkit will check for an active user session and may switch DeployMode to Silent if none is found. | +| `Toolkit.TempPath` | Specifies the temporary path for the toolkit. | +| `Toolkit.TempPathNoAdminRights` | Specifies the temporary path when no admin rights are available. | + +:::tip Automatic Silent Switching +When `Toolkit.ProcessDetection` is enabled and no processes from `AppProcessesToClose` are running, deployments automatically switch to Silent mode for optimal user experience. +::: + +## 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. **Now uses Toolkit.LogPath when empty** | +| `MSI.LogPathNoAdminRights` | Specifies the log path for MSI when no admin rights 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. | + +## 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.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. | + +:::tip Custom Branding +Use `UI.FluentAccentColor` to match your organization's branding in modern Fluent UI dialogs. Supports standard color names and hex values. +::: diff --git a/versioned_docs/version-4.1.x/reference/exit-codes.mdx b/versioned_docs/version-4.1.x/reference/exit-codes.mdx new file mode 100644 index 0000000..c7f4721 --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/exit-codes.mdx @@ -0,0 +1,24 @@ +--- +sidebar_position: 5 +sidebar_label: 'Exit Codes' +title: 'Exit Codes' +description: 'PSAppDeployToolkit has a number of internal exit codes for any issues that may occur.' +slug: /reference/exit-codes +tags: + - Exit Codes + - Reference +--- + +# Exit Codes + +PSAppDeployToolkit uses pre-defined exit codes to indicate whether a deployment succeeds or fails. You can use these codes to control deployment flow or to understand what occurred. + +| Exit Code | Description | +|:--------------|:----------------------------------------------------------------------------------------------------------------------------------| +| 60000 - 68999 | Reserved for built-in exit codes in _Invoke-AppDeployToolkit.ps1_, _Invoke-AppDeployToolkit.exe_, and _AppDeployToolkitMain.ps1_. | +| 60001 | An error occurred in `Invoke-AppDeployToolkit.ps1`. Check your script syntax use. | +| 60008 | Failure when importing the module or opening a new session. | +| 60010 | `Invoke-AppDeployToolkit.exe` failed before PowerShell.exe process could be launched. | +| 60011 | `Invoke-AppDeployToolkit.exe` failed to execute the PowerShell.exe process. | +| 69000 - 69999 | Recommended for user customized exit codes in `Invoke-AppDeployToolkit.ps1`. | +| 70000 - 79999 | Recommended for user customized exit codes in PSAppDeployToolkit.Extensions module.. | \ No newline at end of file diff --git a/versioned_docs/version-4.1.x/reference/functions/Add-ADTEdgeExtension.mdx b/versioned_docs/version-4.1.x/reference/functions/Add-ADTEdgeExtension.mdx new file mode 100644 index 0000000..6f080ef --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Add-ADTEdgeExtension.mdx @@ -0,0 +1,164 @@ +--- +id: Add-ADTEdgeExtension +title: Add-ADTEdgeExtension +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Adds an extension for Microsoft Edge using the ExtensionSettings policy. + +## SYNTAX + +```powershell +Add-ADTEdgeExtension [-ExtensionID] [-UpdateUrl] [-InstallationMode] + [[-MinimumVersionRequired] ] [-WhatIf] [-Confirm] [] +``` + +## DESCRIPTION + +This function adds an extension for Microsoft Edge using the ExtensionSettings policy: https://learn.microsoft.com/en-us/deployedge/microsoft-edge-manage-extensions-ref-guide. + +This enables Edge Extensions to be installed and managed like applications, enabling extensions to be pushed to specific devices or users alongside existing GPO/Intune extension policies. + +This should not be used in conjunction with Edge Management Service or "Configure extension management settings" as configured via Group Policy or Intune as they leverage the same registry key to configure Edge extensions. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +Add-ADTEdgeExtension -ExtensionID "extensionID" -InstallationMode "force_installed" -UpdateUrl "https://edge.microsoft.com/extensionwebstorebase/v1/crx" +``` + +This example adds the specified extension to be force installed in Microsoft Edge. + +## PARAMETERS + +### -ExtensionID + +The ID of the extension to add. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: True +Position: 1 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -UpdateUrl + +The update URL of the extension. +This is the URL where the extension will check for updates. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: True +Position: 2 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InstallationMode + +The installation mode of the extension. +Allowed values: `blocked`, `allowed`, `removed`, `force_installed`, `normal_installed`. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: True +Position: 3 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -MinimumVersionRequired + +The minimum version of the extension required for installation. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: False +Position: 4 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf + +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm + +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### None + +### You cannot pipe objects to this function. +## OUTPUTS + +### None + +### This function does not return any output. +## NOTES +An active ADT session is NOT required to use this function. + +This function supports the -WhatIf and -Confirm parameters for testing changes before applying them. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/Add-ADTEdgeExtension](https://psappdeploytoolkit.com/docs/reference/functions/Add-ADTEdgeExtension) diff --git a/versioned_docs/version-4.1.x/reference/functions/Add-ADTModuleCallback.mdx b/versioned_docs/version-4.1.x/reference/functions/Add-ADTModuleCallback.mdx new file mode 100644 index 0000000..c83ba04 --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Add-ADTModuleCallback.mdx @@ -0,0 +1,108 @@ +--- +id: Add-ADTModuleCallback +title: Add-ADTModuleCallback +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Adds a callback function to the nominated hooking point. + +## SYNTAX + +```powershell +Add-ADTModuleCallback [-Hookpoint] [-Callback] [] +``` + +## DESCRIPTION + +This function adds a specified callback function to the nominated hooking point. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +Add-ADTModuleCallback -Hookpoint PostOpen -Callback (Get-Command -Name 'MyCallbackFunction') +``` + +Adds the specified callback function to be invoked after a DeploymentSession has opened. + +## PARAMETERS + +### -Hookpoint + +Where you wish for the callback to be executed at. + +Valid hookpoints are: +* OnInit (The callback is executed before the module is initialized) +* OnStart (The callback is executed before the first deployment session is opened) +* PreOpen (The callback is executed before a deployment session is opened) +* PostOpen (The callback is executed after a deployment session is opened) +* OnDefer (The callback is executed when a user defers the active deployment) +* PreClose (The callback is executed before the deployment session is closed) +* PostClose (The callback is executed after the deployment session is closed) +* OnFinish (The callback is executed before the last deployment session is closed) +* OnExit (The callback is executed after the last deployment session is closed) + +Each hook point supports multiple callbacks, each invoked in the order they're added. + +To see a list all the registered callbacks in order, use `Get-ADTModuleCallback`. + +```yaml +Type: CallbackType +Parameter Sets: (All) +Aliases: +Accepted values: OnInit, OnStart, PreOpen, PostOpen, OnDefer, PreClose, PostClose, OnFinish, OnExit + +Required: True +Position: 1 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Callback + +The callback function to add to the nominated hooking point. + +```yaml +Type: CommandInfo[] +Parameter Sets: (All) +Aliases: + +Required: True +Position: 2 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### None + +### You cannot pipe objects to this function. +## OUTPUTS + +### None + +### This function does not generate any output. +## NOTES +An active ADT session is NOT required to use this function. + +Also see `Remove-ADTModuleCallback` about how callbacks can be removed. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/Add-ADTModuleCallback](https://psappdeploytoolkit.com/docs/reference/functions/Add-ADTModuleCallback) diff --git a/versioned_docs/version-4.1.x/reference/functions/Block-ADTAppExecution.mdx b/versioned_docs/version-4.1.x/reference/functions/Block-ADTAppExecution.mdx new file mode 100644 index 0000000..db7e829 --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Block-ADTAppExecution.mdx @@ -0,0 +1,138 @@ +--- +id: Block-ADTAppExecution +title: Block-ADTAppExecution +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Block the execution of an application(s). + +## SYNTAX + +```powershell +Block-ADTAppExecution [-Processes] [[-WindowLocation] ] [-WhatIf] + [-Confirm] [] +``` + +## DESCRIPTION + +This function is called when you pass the -BlockExecution parameter to the Stop-RunningApplications function. +It does the following: + +1) Makes a copy of this script in a temporary directory on the local machine. +2) Checks for an existing scheduled task from previous failed installation attempt where apps were blocked and if found, calls the Unblock-ADTAppExecution function to restore the original IFEO registry keys. +This is to prevent the function from overriding the backup of the original IFEO options. +3) Creates a scheduled task to restore the IFEO registry key values in case the script is terminated uncleanly by calling `Unblock-ADTAppExecution` the local temporary copy of this module. +4) Modifies the "Image File Execution Options" registry key for the specified process(s) to call `Show-ADTInstallationPrompt` with the appropriate messaging via this module. +5) When the script is called with those parameters, it will display a custom message to the user to indicate that execution of the application has been blocked while the installation is in progress. +The text of this message can be customized in the strings.psd1 file. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +Block-ADTAppExecution -Processes ('winword','excel') +``` + +This example blocks the execution of Microsoft Word and Excel. + +## PARAMETERS + +### -Processes + +Name of the process or processes separated by commas. + +```yaml +Type: ProcessDefinition[] +Parameter Sets: (All) +Aliases: ProcessName + +Required: True +Position: 1 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WindowLocation + +The location of the dialog on the screen. + +```yaml +Type: DialogPosition +Parameter Sets: (All) +Aliases: +Accepted values: Default, TopLeft, Top, TopRight, TopCenter, Center, BottomLeft, Bottom, BottomRight, BottomCenter + +Required: False +Position: 2 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf + +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm + +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### None + +### You cannot pipe objects to this function. +## OUTPUTS + +### None + +### This function does not generate any output. +## NOTES +An active ADT session is required to use this function. + +It is used when the -BlockExecution parameter is specified with the Show-ADTInstallationWelcome function to block applications. + +This function supports the -WhatIf and -Confirm parameters for testing changes before applying them. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/Block-ADTAppExecution](https://psappdeploytoolkit.com/docs/reference/functions/Block-ADTAppExecution) diff --git a/versioned_docs/version-4.1.x/reference/functions/Clear-ADTModuleCallback.mdx b/versioned_docs/version-4.1.x/reference/functions/Clear-ADTModuleCallback.mdx new file mode 100644 index 0000000..37a8853 --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Clear-ADTModuleCallback.mdx @@ -0,0 +1,90 @@ +--- +id: Clear-ADTModuleCallback +title: Clear-ADTModuleCallback +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Clears the nominated hooking point of all callbacks. + +## SYNTAX + +```powershell +Clear-ADTModuleCallback [-Hookpoint] [] +``` + +## DESCRIPTION + +This function clears the nominated hooking point of all callbacks. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +Clear-ADTModuleCallback -Hookpoint PostOpen +``` + +Clears all callbacks to be invoked after a DeploymentSession has opened. + +## PARAMETERS + +### -Hookpoint + +The callback hook point that you wish to clear. + +Valid hookpoints are: +* OnInit (The callback is executed before the module is initialized) +* OnStart (The callback is executed before the first deployment session is opened) +* PreOpen (The callback is executed before a deployment session is opened) +* PostOpen (The callback is executed after a deployment session is opened) +* OnDefer (The callback is executed when a user defers the active deployment) +* PreClose (The callback is executed before the deployment session is closed) +* PostClose (The callback is executed after the deployment session is closed) +* OnFinish (The callback is executed before the last deployment session is closed) +* OnExit (The callback is executed after the last deployment session is closed) + +To see a list all the registered callbacks in order, use `Get-ADTModuleCallback`. + +```yaml +Type: CallbackType +Parameter Sets: (All) +Aliases: +Accepted values: OnInit, OnStart, PreOpen, PostOpen, OnDefer, PreClose, PostClose, OnFinish, OnExit + +Required: True +Position: 1 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### None + +### You cannot pipe objects to this function. +## OUTPUTS + +### None + +### This function does not generate any output. +## NOTES +An active ADT session is NOT required to use this function. + +Also see `Remove-ADTModuleCallback` about how callbacks can be removed. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/Clear-ADTModuleCallback](https://psappdeploytoolkit.com/docs/reference/functions/Clear-ADTModuleCallback) diff --git a/versioned_docs/version-4.1.x/reference/functions/Close-ADTInstallationProgress.mdx b/versioned_docs/version-4.1.x/reference/functions/Close-ADTInstallationProgress.mdx new file mode 100644 index 0000000..f7c464b --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Close-ADTInstallationProgress.mdx @@ -0,0 +1,59 @@ +--- +id: Close-ADTInstallationProgress +title: Close-ADTInstallationProgress +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Closes the dialog created by Show-ADTInstallationProgress. + +## SYNTAX + +```powershell +Close-ADTInstallationProgress [] +``` + +## DESCRIPTION + +Closes the dialog created by Show-ADTInstallationProgress. +This function is called by the Close-ADTSession function to close a running instance of the progress dialog if found. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +Close-ADTInstallationProgress +``` + +This example closes the dialog created by Show-ADTInstallationProgress. + +## PARAMETERS + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### None + +### You cannot pipe objects to this function. +## OUTPUTS + +### None + +### This function does not generate any output. +## NOTES +An active ADT session is NOT required to use this function. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/Close-ADTInstallationProgress](https://psappdeploytoolkit.com/docs/reference/functions/Close-ADTInstallationProgress) diff --git a/versioned_docs/version-4.1.x/reference/functions/Close-ADTSession.mdx b/versioned_docs/version-4.1.x/reference/functions/Close-ADTSession.mdx new file mode 100644 index 0000000..453db6f --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Close-ADTSession.mdx @@ -0,0 +1,145 @@ +--- +id: Close-ADTSession +title: Close-ADTSession +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Closes the active ADT session. + +## SYNTAX + +### None (Default) + +```powershell +Close-ADTSession [-ExitCode ] [-PassThru] [] +``` + +### Force + +```powershell +Close-ADTSession [-ExitCode ] [-Force] [-PassThru] [] +``` + +### NoShellExit + +```powershell +Close-ADTSession [-ExitCode ] [-NoShellExit] [-PassThru] [] +``` + +## DESCRIPTION + +The Close-ADTSession function closes the active ADT session, updates the session's exit code if provided, invokes all registered callbacks, and cleans up the session state. +If this is the last session, it flags the module as uninitialized and exits the process with the last exit code. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +Close-ADTSession +``` + +This example closes the active ADT session without setting an exit code. + +### EXAMPLE 2 + +```powershell +Close-ADTSession -ExitCode 0 +``` + +This example closes the active ADT session and sets the exit code to 0. + +## PARAMETERS + +### -ExitCode + +The exit code to set for the session. + +```yaml +Type: Int32 +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -NoShellExit + +Doesn't exit PowerShell upon closing of the final session. + +```yaml +Type: SwitchParameter +Parameter Sets: NoShellExit +Aliases: + +Required: True +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Force + +Forcibly exits PowerShell upon closing of the final session. + +```yaml +Type: SwitchParameter +Parameter Sets: Force +Aliases: + +Required: True +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PassThru + +Returns the exit code of the session being closed. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### None + +### You cannot pipe objects to this function. +## OUTPUTS + +### None + +### This function does not generate any output. +## NOTES +An active ADT session is required to use this function. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/Close-ADTSession](https://psappdeploytoolkit.com/docs/reference/functions/Close-ADTSession) diff --git a/versioned_docs/version-4.1.x/reference/functions/Complete-ADTFunction.mdx b/versioned_docs/version-4.1.x/reference/functions/Complete-ADTFunction.mdx new file mode 100644 index 0000000..29cc902 --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Complete-ADTFunction.mdx @@ -0,0 +1,74 @@ +--- +id: Complete-ADTFunction +title: Complete-ADTFunction +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Completes the execution of an ADT function. + +## SYNTAX + +```powershell +Complete-ADTFunction [-Cmdlet] [] +``` + +## DESCRIPTION + +The Complete-ADTFunction function finalizes the execution of an ADT function by writing a debug log message and restoring the original global verbosity if it was archived off. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +Complete-ADTFunction -Cmdlet $PSCmdlet +``` + +This example completes the execution of the current ADT function. + +## PARAMETERS + +### -Cmdlet + +The PSCmdlet object representing the cmdlet being completed. + +```yaml +Type: PSCmdlet +Parameter Sets: (All) +Aliases: + +Required: True +Position: 1 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### None + +### You cannot pipe objects to this function. +## OUTPUTS + +### None + +### This function does not generate any output. +## NOTES +An active ADT session is NOT required to use this function. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/Complete-ADTFunction](https://psappdeploytoolkit.com/docs/reference/functions/Complete-ADTFunction) diff --git a/versioned_docs/version-4.1.x/reference/functions/Convert-ADTRegistryPath.mdx b/versioned_docs/version-4.1.x/reference/functions/Convert-ADTRegistryPath.mdx new file mode 100644 index 0000000..05d6940 --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Convert-ADTRegistryPath.mdx @@ -0,0 +1,120 @@ +--- +id: Convert-ADTRegistryPath +title: Convert-ADTRegistryPath +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Converts the specified registry key path to a format that is compatible with built-in PowerShell cmdlets. + +## SYNTAX + +```powershell +Convert-ADTRegistryPath [-Key] [[-SID] ] [-Wow6432Node] [] +``` + +## DESCRIPTION + +Converts the specified registry key path to a format that is compatible with built-in PowerShell cmdlets. + +Converts registry key hives to their full paths. +Example: HKLM is converted to "Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE". + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +Convert-ADTRegistryPath -Key 'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\TreeSize Free_is1' +``` + +Converts the specified registry key path to a format compatible with PowerShell cmdlets. + +### EXAMPLE 2 + +```powershell +Convert-ADTRegistryPath -Key 'HKLM:SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\VLC media player' +``` + +Converts the specified registry key path to a format compatible with PowerShell cmdlets. + +## PARAMETERS + +### -Key + +Path to the registry key to convert (can be a registry hive or fully qualified path) + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: True +Position: 1 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SID + +The security identifier (SID) for a user. +Specifying this parameter will convert a HKEY_CURRENT_USER registry key to the HKEY_USERS\$SID format. + +Specify this parameter from the Invoke-ADTAllUsersRegistryAction function to read/edit HKCU registry settings for all users on the system. + +```yaml +Type: SecurityIdentifier +Parameter Sets: (All) +Aliases: + +Required: False +Position: 2 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Wow6432Node + +Specifies that the 32-bit registry view (Wow6432Node) should be used on a 64-bit system. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### None + +### You cannot pipe objects to this function. +## OUTPUTS + +### System.String + +### Returns the converted registry key path. +## NOTES +An active ADT session is NOT required to use this function. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/Convert-ADTRegistryPath](https://psappdeploytoolkit.com/docs/reference/functions/Convert-ADTRegistryPath) diff --git a/versioned_docs/version-4.1.x/reference/functions/Convert-ADTValueType.mdx b/versioned_docs/version-4.1.x/reference/functions/Convert-ADTValueType.mdx new file mode 100644 index 0000000..2b31f87 --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Convert-ADTValueType.mdx @@ -0,0 +1,92 @@ +--- +id: Convert-ADTValueType +title: Convert-ADTValueType +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Casts the provided value to the requested type without range errors. + +## SYNTAX + +```powershell +Convert-ADTValueType [-Value] [-To] [] +``` + +## DESCRIPTION + +This function uses C# code to cast the provided value to the requested type. +This avoids errors from PowerShell when values exceed the casted value type's range. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +Convert-ADTValueType -Value 256 -To SByte +``` + +Invokes the Convert-ADTValueType function and returns the value as a byte, which would equal 0. + +## PARAMETERS + +### -Value + +The value to convert. + +```yaml +Type: Int64 +Parameter Sets: (All) +Aliases: + +Required: True +Position: 1 +Default value: 0 +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -To + +What to cast the value to. + +```yaml +Type: ValueTypes +Parameter Sets: (All) +Aliases: +Accepted values: SByte, Byte, Short, Int16, UShort, UInt16, Int, Int32, UInt, UInt32, Long, Int64, ULong, UInt64 + +Required: True +Position: 2 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### System.Int64 + +### Convert-ADTValueType will accept any value type as a signed 64-bit integer, then cast to the requested type. +## OUTPUTS + +### System.ValueType + +### Convert-ADTValueType will convert the piped input to this type if specified by the caller. +## NOTES +An active ADT session is NOT required to use this function. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/Convert-ADTValueType](https://psappdeploytoolkit.com/docs/reference/functions/Convert-ADTValueType) diff --git a/versioned_docs/version-4.1.x/reference/functions/Convert-ADTValuesFromRemainingArguments.mdx b/versioned_docs/version-4.1.x/reference/functions/Convert-ADTValuesFromRemainingArguments.mdx new file mode 100644 index 0000000..988306e --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Convert-ADTValuesFromRemainingArguments.mdx @@ -0,0 +1,75 @@ +--- +id: Convert-ADTValuesFromRemainingArguments +title: Convert-ADTValuesFromRemainingArguments +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Converts the collected values from a ValueFromRemainingArguments parameter value into a dictionary or PowerShell.exe command line arguments. + +## SYNTAX + +```powershell +Convert-ADTValuesFromRemainingArguments + [-RemainingArguments] [] +``` + +## DESCRIPTION + +This function converts the collected values from a ValueFromRemainingArguments parameter value into a dictionary or PowerShell.exe command line arguments. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +Convert-ADTValuesFromRemainingArguments -RemainingArguments $args +``` + +Converts an $args array into a $PSBoundParameters-compatible dictionary. + +## PARAMETERS + +### -RemainingArguments + +The collected values to enumerate and process into a dictionary. + +```yaml +Type: System.Collections.Generic.IReadOnlyList`1[System.Object] +Parameter Sets: (All) +Aliases: + +Required: True +Position: 1 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### None + +### You cannot pipe objects to this function. +## OUTPUTS + +### System.Collections.Generic.Dictionary[System.String, System.Object] + +### Convert-ADTValuesFromRemainingArguments returns a dictionary of the processed input. +## NOTES +An active ADT session is NOT required to use this function. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/Convert-ADTValuesFromRemainingArguments](https://psappdeploytoolkit.com/docs/reference/functions/Convert-ADTValuesFromRemainingArguments) diff --git a/versioned_docs/version-4.1.x/reference/functions/ConvertTo-ADTNTAccountOrSID.mdx b/versioned_docs/version-4.1.x/reference/functions/ConvertTo-ADTNTAccountOrSID.mdx new file mode 100644 index 0000000..8a26558 --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/ConvertTo-ADTNTAccountOrSID.mdx @@ -0,0 +1,208 @@ +--- +id: ConvertTo-ADTNTAccountOrSID +title: ConvertTo-ADTNTAccountOrSID +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Convert between NT Account names and their security identifiers (SIDs). + +## SYNTAX + +### NTAccountToSID + +```powershell +ConvertTo-ADTNTAccountOrSID -AccountName [] +``` + +### SIDToNTAccount + +```powershell +ConvertTo-ADTNTAccountOrSID -SID [] +``` + +### WellKnownNameLocalHost + +```powershell +ConvertTo-ADTNTAccountOrSID -WellKnownSIDName [-WellKnownToNTAccount] [-LocalHost] + [] +``` + +### WellKnownNameLdap + +```powershell +ConvertTo-ADTNTAccountOrSID -WellKnownSIDName [-WellKnownToNTAccount] -LdapUri + [] +``` + +### WellKnownName + +```powershell +ConvertTo-ADTNTAccountOrSID -WellKnownSIDName [-WellKnownToNTAccount] [] +``` + +## DESCRIPTION + +Specify either the NT Account name or the SID and get the other. +Can also convert well known sid types. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +ConvertTo-ADTNTAccountOrSID -AccountName 'CONTOSO\User1' +``` + +Converts a Windows NT Account name to the corresponding SID. + +### EXAMPLE 2 + +```powershell +ConvertTo-ADTNTAccountOrSID -SID 'S-1-5-21-1220945662-2111687655-725345543-14012660' +``` + +Converts a Windows NT Account SID to the corresponding NT Account Name. + +### EXAMPLE 3 + +```powershell +ConvertTo-ADTNTAccountOrSID -WellKnownSIDName 'NetworkServiceSid' +``` + +Converts a Well Known SID name to a SID. + +## PARAMETERS + +### -AccountName + +The Windows NT Account name specified in <domain><username> format. + +Use fully qualified account names (e.g., <domain><username>) instead of isolated names (e.g, <username>) because they are unambiguous and provide better performance. + +```yaml +Type: NTAccount +Parameter Sets: NTAccountToSID +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByPropertyName) +Accept wildcard characters: False +``` + +### -SID + +The Windows NT Account SID. + +```yaml +Type: SecurityIdentifier +Parameter Sets: SIDToNTAccount +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByPropertyName) +Accept wildcard characters: False +``` + +### -WellKnownSIDName + +Specify the Well Known SID name translate to the actual SID (e.g., LocalServiceSid). + +To get all well known SIDs available on system: [Enum]::GetNames([Security.Principal.WellKnownSidType]) + +```yaml +Type: WellKnownSidType +Parameter Sets: WellKnownNameLocalHost, WellKnownNameLdap, WellKnownName +Aliases: +Accepted values: NullSid, WorldSid, LocalSid, CreatorOwnerSid, CreatorGroupSid, CreatorOwnerServerSid, CreatorGroupServerSid, NTAuthoritySid, DialupSid, NetworkSid, BatchSid, InteractiveSid, ServiceSid, AnonymousSid, ProxySid, EnterpriseControllersSid, SelfSid, AuthenticatedUserSid, RestrictedCodeSid, TerminalServerSid, RemoteLogonIdSid, LogonIdsSid, LocalSystemSid, LocalServiceSid, NetworkServiceSid, BuiltinDomainSid, BuiltinAdministratorsSid, BuiltinUsersSid, BuiltinGuestsSid, BuiltinPowerUsersSid, BuiltinAccountOperatorsSid, BuiltinSystemOperatorsSid, BuiltinPrintOperatorsSid, BuiltinBackupOperatorsSid, BuiltinReplicatorSid, BuiltinPreWindows2000CompatibleAccessSid, BuiltinRemoteDesktopUsersSid, BuiltinNetworkConfigurationOperatorsSid, AccountAdministratorSid, AccountGuestSid, AccountKrbtgtSid, AccountDomainAdminsSid, AccountDomainUsersSid, AccountDomainGuestsSid, AccountComputersSid, AccountControllersSid, AccountCertAdminsSid, AccountSchemaAdminsSid, AccountEnterpriseAdminsSid, AccountPolicyAdminsSid, AccountRasAndIasServersSid, NtlmAuthenticationSid, DigestAuthenticationSid, SChannelAuthenticationSid, ThisOrganizationSid, OtherOrganizationSid, BuiltinIncomingForestTrustBuildersSid, BuiltinPerformanceMonitoringUsersSid, BuiltinPerformanceLoggingUsersSid, BuiltinAuthorizationAccessSid, WinBuiltinTerminalServerLicenseServersSid, MaxDefined + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByPropertyName) +Accept wildcard characters: False +``` + +### -WellKnownToNTAccount + +Convert the Well Known SID to an NTAccount name. + +```yaml +Type: SwitchParameter +Parameter Sets: WellKnownNameLocalHost, WellKnownNameLdap, WellKnownName +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -LocalHost + +Avoids a costly domain check when only converting local accounts. + +```yaml +Type: SwitchParameter +Parameter Sets: WellKnownNameLocalHost +Aliases: + +Required: True +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -LdapUri + +Allows specification of the LDAP URI to use, either `LDAP://` or `LDAPS://`. + +```yaml +Type: String +Parameter Sets: WellKnownNameLdap +Aliases: + +Required: True +Position: Named +Default value: LDAP:// +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### System.String + +### Accepts a string containing the NT Account name or SID. +## OUTPUTS + +### System.String + +### Returns the NT Account name or SID. +## NOTES +An active ADT session is NOT required to use this function. + +The conversion can return an empty result if the user account does not exist anymore or if translation fails Refer to: http://blogs.technet.com/b/askds/archive/2011/07/28/troubleshooting-sid-translation-failures-from-the-obvious-to-the-not-so-obvious.aspx + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/ConvertTo-ADTNTAccountOrSID](https://psappdeploytoolkit.com/docs/reference/functions/ConvertTo-ADTNTAccountOrSID) + +[http://msdn.microsoft.com/en-us/library/system.security.principal.wellknownsidtype(v=vs.110).aspx](http://msdn.microsoft.com/en-us/library/system.security.principal.wellknownsidtype(v=vs.110).aspx) diff --git a/versioned_docs/version-4.1.x/reference/functions/Copy-ADTContentToCache.mdx b/versioned_docs/version-4.1.x/reference/functions/Copy-ADTContentToCache.mdx new file mode 100644 index 0000000..5dd6d27 --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Copy-ADTContentToCache.mdx @@ -0,0 +1,120 @@ +--- +id: Copy-ADTContentToCache +title: Copy-ADTContentToCache +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Copies the toolkit content to a cache folder on the local machine and sets the $adtSession.DirFiles and $adtSession.DirSupportFiles directory to the cache path. + +## SYNTAX + +```powershell +Copy-ADTContentToCache [[-LiteralPath] ] [-WhatIf] [-Confirm] [] +``` + +## DESCRIPTION + +Copies the toolkit content to a cache folder on the local machine and sets the $adtSession.DirFiles and $adtSession.DirSupportFiles directory to the cache path. + +This function is useful in environments where an Endpoint Management solution does not provide a managed cache for source files, such as Intune. + +It is important to clean up the cache in the uninstall section for the current version and potentially also in the pre-installation section for previous versions. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +Copy-ADTContentToCache -LiteralPath "$envWinDir\Temp\PSAppDeployToolkit" +``` + +This example copies the toolkit content to the specified cache folder. + +## PARAMETERS + +### -LiteralPath + +The path to the software cache folder. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: Path, PSPath + +Required: False +Position: 1 +Default value: "$((& $Script:CommandTable.'Get-ADTConfig').Toolkit.CachePath)\\$((& $Script:CommandTable.'Get-ADTSession').InstallName)" +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf + +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm + +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### None + +### You cannot pipe objects to this function. +## OUTPUTS + +### None + +### This function does not generate any output. +## NOTES +An active ADT session is required to use this function. + +This can be used in the absence of an Endpoint Management solution that provides a managed cache for source files, e.g. +Intune is lacking this functionality whereas ConfigMgr includes this functionality. + +Since this cache folder is effectively unmanaged, it is important to cleanup the cache in the uninstall section for the current version and potentially also in the pre-installation section for previous versions. + +This can be done using `Remove-ADTFile -LiteralPath "(Get-ADTConfig).Toolkit.CachePath\$($adtSession.InstallName)" -Recurse -ErrorAction Ignore`. + +This function supports the -WhatIf and -Confirm parameters for testing changes before applying them. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/Copy-ADTContentToCache](https://psappdeploytoolkit.com/docs/reference/functions/Copy-ADTContentToCache) diff --git a/versioned_docs/version-4.1.x/reference/functions/Copy-ADTFile.mdx b/versioned_docs/version-4.1.x/reference/functions/Copy-ADTFile.mdx new file mode 100644 index 0000000..49c2c36 --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Copy-ADTFile.mdx @@ -0,0 +1,279 @@ +--- +id: Copy-ADTFile +title: Copy-ADTFile +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Copies files and directories from a source to a destination. + +## SYNTAX + +### Path + +```powershell +Copy-ADTFile [-Path] [-Destination] [-Recurse] [-Flatten] [-ContinueFileCopyOnError] + [-FileCopyMode ] [-RobocopyParams ] [-RobocopyAdditionalParams ] [-WhatIf] [-Confirm] + [] +``` + +### LiteralPath + +```powershell +Copy-ADTFile [-LiteralPath] [-Destination] [-Recurse] [-Flatten] [-ContinueFileCopyOnError] + [-FileCopyMode ] [-RobocopyParams ] [-RobocopyAdditionalParams ] [-WhatIf] [-Confirm] + [] +``` + +## DESCRIPTION + +Copies files and directories from a source to a destination. +This function supports recursive copying, overwriting existing files, and returning the copied items. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +Copy-ADTFile -Path 'C:\Path\file.txt' -Destination 'D:\Destination\file.txt' +``` + +Copies the file 'file.txt' from 'C:\Path' to 'D:\Destination'. + +### EXAMPLE 2 + +```powershell +Copy-ADTFile -Path 'C:\Path\Folder' -Destination 'D:\Destination' -Recurse +``` + +Recursively copies the folder 'Folder' from 'C:\Path' to 'D:\Destination'. + +### EXAMPLE 3 + +```powershell +Copy-ADTFile -Path 'C:\Path\file.txt' -Destination 'D:\Destination\file.txt' +``` + +Copies the file 'file.txt' from 'C:\Path' to 'D:\Destination', overwriting the destination file if it exists. + +### EXAMPLE 4 + +```powershell +Copy-ADTFile -Path "$($adtSession.DirFiles)\*" -Destination C:\some\random\file\path +``` + +Copies all files within the active session's Files folder to 'C:\some\random\file\path', overwriting the destination file if it exists. + +## PARAMETERS + +### -Path + +Path of the file to copy. +Multiple paths can be specified. + +```yaml +Type: String[] +Parameter Sets: Path +Aliases: + +Required: True +Position: 1 +Default value: None +Accept pipeline input: False +Accept wildcard characters: True +``` + +### -LiteralPath + +Literal path of the file to copy. +Multiple paths can be specified. + +```yaml +Type: String[] +Parameter Sets: LiteralPath +Aliases: + +Required: True +Position: 1 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Destination + +Destination Path of the file to copy. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: True +Position: 2 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Recurse + +Copy files in subdirectories. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Flatten + +Flattens the files into the root destination directory. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ContinueFileCopyOnError + +Continue copying files if an error is encountered. +This will continue the deployment script and will warn about files that failed to be copied. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -FileCopyMode + +Select from 'Native' or 'Robocopy'. +Default is configured in config.psd1. +Note that Robocopy supports * in file names, but not folders, in source paths. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: [System.Management.Automation.Language.NullString]::Value +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -RobocopyParams + +Override the default Robocopy parameters. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: /NJH /NJS /NS /NC /NP /NDL /FP /IA:RASHCNETO /IS /IT /IM /XX /MT:4 /R:1 /W:1 +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -RobocopyAdditionalParams + +Append to the default Robocopy parameters. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf + +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm + +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### None + +### You cannot pipe objects to this function. +## OUTPUTS + +### None + +### This function does not generate any output. +## NOTES +An active ADT session is NOT required to use this function. + +This function supports the -WhatIf and -Confirm parameters for testing changes before applying them. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/Copy-ADTFile](https://psappdeploytoolkit.com/docs/reference/functions/Copy-ADTFile) diff --git a/versioned_docs/version-4.1.x/reference/functions/Copy-ADTFileToUserProfiles.mdx b/versioned_docs/version-4.1.x/reference/functions/Copy-ADTFileToUserProfiles.mdx new file mode 100644 index 0000000..13411ac --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Copy-ADTFileToUserProfiles.mdx @@ -0,0 +1,390 @@ +--- +id: Copy-ADTFileToUserProfiles +title: Copy-ADTFileToUserProfiles +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Copy one or more items to each user profile on the system. + +## SYNTAX + +### CalculatedProfiles (Default) + +```powershell +Copy-ADTFileToUserProfiles [[-Destination] ] [-BasePath ] [-Recurse] [-Flatten] + [-FileCopyMode ] [-RobocopyParams ] [-RobocopyAdditionalParams ] + [-ExcludeNTAccount ] [-IncludeSystemProfiles] [-IncludeServiceProfiles] [-ExcludeDefaultUser] + [-ContinueFileCopyOnError] [-WhatIf] [-Confirm] [] +``` + +### Path + +```powershell +Copy-ADTFileToUserProfiles [-Path] [[-Destination] ] [-BasePath ] [-Recurse] + [-Flatten] [-FileCopyMode ] [-RobocopyParams ] [-RobocopyAdditionalParams ] + [-ContinueFileCopyOnError] [-WhatIf] [-Confirm] [] +``` + +### LiteralPath + +```powershell +Copy-ADTFileToUserProfiles [-LiteralPath] [[-Destination] ] [-BasePath ] [-Recurse] + [-Flatten] [-FileCopyMode ] [-RobocopyParams ] [-RobocopyAdditionalParams ] + [-ContinueFileCopyOnError] [-WhatIf] [-Confirm] [] +``` + +### SpecifiedProfiles + +```powershell +Copy-ADTFileToUserProfiles [[-Destination] ] [-BasePath ] [-Recurse] [-Flatten] + [-FileCopyMode ] [-RobocopyParams ] [-RobocopyAdditionalParams ] + -UserProfiles [-ContinueFileCopyOnError] [-WhatIf] [-Confirm] [] +``` + +## DESCRIPTION + +The Copy-ADTFileToUserProfiles function copies one or more items to each user profile on the system. +It supports various options such as recursion, flattening files, and using Robocopy to overcome the 260 character limit. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +Copy-ADTFileToUserProfiles -Path "$($adtSession.DirSupportFiles)\config.txt" -Destination "AppData\Roaming\MyApp" +``` + +Copy a single file to C:\Users<UserName>\AppData\Roaming\MyApp for each user. + +### EXAMPLE 2 + +```powershell +Copy-ADTFileToUserProfiles -Path "$($adtSession.DirSupportFiles)\config.txt","$($adtSession.DirSupportFiles)\config2.txt" -Destination "AppData\Roaming\MyApp" +``` + +Copy two files to C:\Users<UserName>\AppData\Roaming\MyApp for each user. + +### EXAMPLE 3 + +```powershell +Copy-ADTFileToUserProfiles -Path "$($adtSession.DirFiles)\MyDocs" Destination "MyApp" -BasePath "Documents" -Recurse +``` + +Copy an entire folder recursively to a new MyApp folder under each user's Documents folder. + +### EXAMPLE 4 + +```powershell +Copy-ADTFileToUserProfiles -Path "$($adtSession.DirFiles)\.appConfigFolder" -Recurse +``` + +Copy an entire folder to C:\Users<UserName> for each user. + +## PARAMETERS + +### -Path + +The path of the file or folder to copy. + +```yaml +Type: String[] +Parameter Sets: Path +Aliases: + +Required: True +Position: 2 +Default value: None +Accept pipeline input: False +Accept wildcard characters: True +``` + +### -LiteralPath + +The literal path of the file or folder to copy. + +```yaml +Type: String[] +Parameter Sets: LiteralPath +Aliases: + +Required: True +Position: 2 +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Destination + +The path of the destination folder to append to the root of the user profile. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: False +Position: 3 +Default value: [System.Management.Automation.Language.NullString]::Value +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -BasePath + +The base path to append the destination folder to. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: Profile +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Recurse + +Copy files in subdirectories. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Flatten + +Flattens the files into the root destination directory. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -FileCopyMode + +Select from 'Native' or 'Robocopy'. +Default is configured in config.psd1. +Note that Robocopy supports * in file names, but not folders, in source paths. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: [System.Management.Automation.Language.NullString]::Value +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -RobocopyParams + +Override the default Robocopy parameters. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: [System.Management.Automation.Language.NullString]::Value +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -RobocopyAdditionalParams + +Append to the default Robocopy parameters. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: [System.Management.Automation.Language.NullString]::Value +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -UserProfiles + +Specifies one or more UserProfile objects to copy files into. + +```yaml +Type: UserProfileInfo[] +Parameter Sets: SpecifiedProfiles +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ExcludeNTAccount + +Specify NT account names in Domain\Username format to exclude from the list of user profiles. + +```yaml +Type: String[] +Parameter Sets: CalculatedProfiles +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -IncludeSystemProfiles + +Include system profiles: SYSTEM, LOCAL SERVICE, NETWORK SERVICE. + +```yaml +Type: SwitchParameter +Parameter Sets: CalculatedProfiles +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -IncludeServiceProfiles + +Include service profiles where NTAccount begins with NT SERVICE. + +```yaml +Type: SwitchParameter +Parameter Sets: CalculatedProfiles +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ExcludeDefaultUser + +Exclude the Default User. + +```yaml +Type: SwitchParameter +Parameter Sets: CalculatedProfiles +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ContinueFileCopyOnError + +Continue copying files if an error is encountered. +This will continue the deployment script and will warn about files that failed to be copied. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf + +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm + +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### System.String[] + +### You can pipe in string values for $LiteralPath. +## OUTPUTS + +### None + +### This function does not generate any output. +## NOTES +An active ADT session is NOT required to use this function. + +This function supports the -WhatIf and -Confirm parameters for testing changes before applying them. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/Copy-ADTFileToUserProfiles](https://psappdeploytoolkit.com/docs/reference/functions/Copy-ADTFileToUserProfiles) diff --git a/versioned_docs/version-4.1.x/reference/functions/Disable-ADTTerminalServerInstallMode.mdx b/versioned_docs/version-4.1.x/reference/functions/Disable-ADTTerminalServerInstallMode.mdx new file mode 100644 index 0000000..ef7404e --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Disable-ADTTerminalServerInstallMode.mdx @@ -0,0 +1,94 @@ +--- +id: Disable-ADTTerminalServerInstallMode +title: Disable-ADTTerminalServerInstallMode +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Changes the current Remote Desktop Session Host/Citrix server to user execute mode. + +## SYNTAX + +```powershell +Disable-ADTTerminalServerInstallMode [-WhatIf] [-Confirm] [] +``` + +## DESCRIPTION + +The Disable-ADTTerminalServerInstallMode function changes the current Remote Desktop Session Host/Citrix server to user execute mode. +This is useful for ensuring that applications are installed in a way that is compatible with multi-user environments. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +Disable-ADTTerminalServerInstallMode +``` + +This example changes the current Remote Desktop Session Host/Citrix server to user execute mode. + +## PARAMETERS + +### -WhatIf + +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm + +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### None + +### You cannot pipe objects to this function. +## OUTPUTS + +### None + +### This function does not return any objects. +## NOTES +An active ADT session is NOT required to use this function. + +This function supports the -WhatIf and -Confirm parameters for testing changes before applying them. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/Disable-ADTTerminalServerInstallMode](https://psappdeploytoolkit.com/docs/reference/functions/Disable-ADTTerminalServerInstallMode) diff --git a/versioned_docs/version-4.1.x/reference/functions/Dismount-ADTWimFile.mdx b/versioned_docs/version-4.1.x/reference/functions/Dismount-ADTWimFile.mdx new file mode 100644 index 0000000..0ad4980 --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Dismount-ADTWimFile.mdx @@ -0,0 +1,142 @@ +--- +id: Dismount-ADTWimFile +title: Dismount-ADTWimFile +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Dismounts a WIM file from the specified mount point. + +## SYNTAX + +### ImagePath + +```powershell +Dismount-ADTWimFile -ImagePath [-WhatIf] [-Confirm] [] +``` + +### Path + +```powershell +Dismount-ADTWimFile -Path [-WhatIf] [-Confirm] [] +``` + +## DESCRIPTION + +The Dismount-ADTWimFile function dismounts a WIM file from the specified mount point and discards all changes. +This function ensures that the specified path is a valid WIM mount point before attempting to dismount. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +Dismount-ADTWimFile -ImagePath 'C:\Path\To\File.wim' +``` + +This example dismounts the WIM file from all its mount points and discards all changes. + +### EXAMPLE 2 + +```powershell +Dismount-ADTWimFile -Path 'C:\Mount\WIM' +``` + +This example dismounts the WIM file from the specified mount point and discards all changes. + +## PARAMETERS + +### -ImagePath + +The path to the WIM file. + +```yaml +Type: FileInfo[] +Parameter Sets: ImagePath +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Path + +The path to the WIM mount point. + +```yaml +Type: DirectoryInfo[] +Parameter Sets: Path +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf + +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm + +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### None + +### You cannot pipe objects to this function. +## OUTPUTS + +### None + +### This function does not return any objects. +## NOTES +An active ADT session is NOT required to use this function. + +This function supports the -WhatIf and -Confirm parameters for testing changes before applying them. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/Dismount-ADTWimFile](https://psappdeploytoolkit.com/docs/reference/functions/Dismount-ADTWimFile) diff --git a/versioned_docs/version-4.1.x/reference/functions/Enable-ADTTerminalServerInstallMode.mdx b/versioned_docs/version-4.1.x/reference/functions/Enable-ADTTerminalServerInstallMode.mdx new file mode 100644 index 0000000..8710578 --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Enable-ADTTerminalServerInstallMode.mdx @@ -0,0 +1,94 @@ +--- +id: Enable-ADTTerminalServerInstallMode +title: Enable-ADTTerminalServerInstallMode +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Changes the current Remote Desktop Session Host/Citrix server to user install mode. + +## SYNTAX + +```powershell +Enable-ADTTerminalServerInstallMode [-WhatIf] [-Confirm] [] +``` + +## DESCRIPTION + +The Enable-ADTTerminalServerInstallMode function changes the current Remote Desktop Session Host/Citrix server to user install mode. +This is useful for ensuring that applications are installed in a way that is compatible with multi-user environments. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +Enable-ADTTerminalServerInstallMode +``` + +This example changes the current Remote Desktop Session Host/Citrix server to user install mode. + +## PARAMETERS + +### -WhatIf + +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm + +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### None + +### You cannot pipe objects to this function. +## OUTPUTS + +### None + +### This function does not return any objects. +## NOTES +An active ADT session is NOT required to use this function. + +This function supports the -WhatIf and -Confirm parameters for testing changes before applying them. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/Enable-ADTTerminalServerInstallMode](https://psappdeploytoolkit.com/docs/reference/functions/Enable-ADTTerminalServerInstallMode) diff --git a/versioned_docs/version-4.1.x/reference/functions/Export-ADTEnvironmentTableToSessionState.mdx b/versioned_docs/version-4.1.x/reference/functions/Export-ADTEnvironmentTableToSessionState.mdx new file mode 100644 index 0000000..94a1b34 --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Export-ADTEnvironmentTableToSessionState.mdx @@ -0,0 +1,82 @@ +--- +id: Export-ADTEnvironmentTableToSessionState +title: Export-ADTEnvironmentTableToSessionState +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Exports the content of `Get-ADTEnvironmentTable` to the provided SessionState as variables. + +## SYNTAX + +```powershell +Export-ADTEnvironmentTableToSessionState [[-SessionState] ] [] +``` + +## DESCRIPTION + +This function exports the content of `Get-ADTEnvironmentTable` to the provided SessionState as variables. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +Export-ADTEnvironmentTableToSessionState -SessionState $ExecutionContext.SessionState +``` + +Invokes the Export-ADTEnvironmentTableToSessionState function and exports the module's environment table to the provided SessionState. + +### EXAMPLE 2 + +```powershell +Export-ADTEnvironmentTableToSessionState -SessionState $PSCmdlet.SessionState +``` + +Invokes the Export-ADTEnvironmentTableToSessionState function and exports the module's environment table to the provided SessionState. + +## PARAMETERS + +### -SessionState + +Defaults to $PSCmdlet.SessionState to get the caller's SessionState, so only required if you need to override this. + +```yaml +Type: SessionState +Parameter Sets: (All) +Aliases: + +Required: False +Position: 1 +Default value: $PSCmdlet.SessionState +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### None + +### You cannot pipe objects to this function. +## OUTPUTS + +### None + +### This function does not return any output. +## NOTES +An active ADT session is NOT required to use this function. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/Export-ADTEnvironmentTableToSessionState](https://psappdeploytoolkit.com/docs/reference/functions/Export-ADTEnvironmentTableToSessionState) diff --git a/versioned_docs/version-4.1.x/reference/functions/Get-ADTApplication.mdx b/versioned_docs/version-4.1.x/reference/functions/Get-ADTApplication.mdx new file mode 100644 index 0000000..12eb8b5 --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Get-ADTApplication.mdx @@ -0,0 +1,211 @@ +--- +id: Get-ADTApplication +title: Get-ADTApplication +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Retrieves information about installed applications. + +## SYNTAX + +```powershell +Get-ADTApplication [-Name ] [-NameMatch ] [-ProductCode ] [-ApplicationType ] + [-IncludeUpdatesAndHotfixes] [[-FilterScript] ] [] +``` + +## DESCRIPTION + +Retrieves information about installed applications by querying the registry. +You can specify an application name, a product code, or both. +Returns information about application publisher, name & version, product code, uninstall string, install source, location, date, and application architecture. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +Get-ADTApplication +``` + +This example retrieves information about all installed applications. + +### EXAMPLE 2 + +```powershell +Get-ADTApplication -Name 'Acrobat' +``` + +Returns all applications that contain the name 'Acrobat' in the DisplayName. + +### EXAMPLE 3 + +```powershell +Get-ADTApplication -Name 'Adobe Acrobat Reader' -NameMatch 'Exact' +``` + +Returns all applications that match the name 'Adobe Acrobat Reader' exactly. + +### EXAMPLE 4 + +```powershell +Get-ADTApplication -ProductCode '{AC76BA86-7AD7-1033-7B44-AC0F074E4100}' +``` + +Returns the application with the specified ProductCode. + +### EXAMPLE 5 + +```powershell +Get-ADTApplication -Name 'Acrobat' -ApplicationType 'MSI' -FilterScript { $_.Publisher -match 'Adobe' } +``` + +Returns all MSI applications that contain the name 'Acrobat' in the DisplayName and 'Adobe' in the Publisher name. + +## PARAMETERS + +### -Name + +The name of the application to retrieve information for. +Performs a contains match on the application display name by default. + +```yaml +Type: String[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -NameMatch + +Specifies the type of match to perform on the application name. +Valid values are 'Contains', 'Exact', 'Wildcard', and 'Regex'. +The default value is 'Contains'. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: Contains +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ProductCode + +The product code of the application to retrieve information for. + +```yaml +Type: Guid[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ApplicationType + +Specifies the type of application to remove. +Valid values are 'All', 'MSI', and 'EXE'. +The default value is 'All'. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: All +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -IncludeUpdatesAndHotfixes + +Include matches against updates and hotfixes in results. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -FilterScript + +A script used to filter the results as they're processed. + +```yaml +Type: ScriptBlock +Parameter Sets: (All) +Aliases: + +Required: False +Position: 1 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### None + +### You cannot pipe objects to this function. +## OUTPUTS + +### PSADT.Types.InstalledApplication + +### Returns a custom type with information about an installed application: +### - PSPath +### - PSParentPath +### - PSChildName +### - ProductCode +### - DisplayName +### - DisplayVersion +### - UninstallString +### - QuietUninstallString +### - InstallSource +### - InstallLocation +### - InstallDate +### - Publisher +### - HelpLink +### - EstimatedSize +### - SystemComponent +### - WindowsInstaller +### - Is64BitApplication +## NOTES +An active ADT session is NOT required to use this function. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/Get-ADTApplication](https://psappdeploytoolkit.com/docs/reference/functions/Get-ADTApplication) diff --git a/versioned_docs/version-4.1.x/reference/functions/Get-ADTBoundParametersAndDefaultValues.mdx b/versioned_docs/version-4.1.x/reference/functions/Get-ADTBoundParametersAndDefaultValues.mdx new file mode 100644 index 0000000..a0c0c81 --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Get-ADTBoundParametersAndDefaultValues.mdx @@ -0,0 +1,139 @@ +--- +id: Get-ADTBoundParametersAndDefaultValues +title: Get-ADTBoundParametersAndDefaultValues +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Returns a hashtable with the output of $PSBoundParameters and default-valued parameters for the given InvocationInfo. + +## SYNTAX + +```powershell +Get-ADTBoundParametersAndDefaultValues [-Invocation] [[-ParameterSetName] ] + [[-HelpMessage] ] [[-Exclude] ] [-CommonParameters] [] +``` + +## DESCRIPTION + +This function processes the provided InvocationInfo and combines the results of $PSBoundParameters and default-valued parameters via the InvocationInfo's ScriptBlock AST (Abstract Syntax Tree). + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +Get-ADTBoundParametersAndDefaultValues -Invocation $MyInvocation +``` + +Returns a $PSBoundParameters-compatible dictionary with the bound parameters and any default values. + +## PARAMETERS + +### -Invocation + +The script or function's InvocationInfo ($MyInvocation) to process. + +```yaml +Type: InvocationInfo +Parameter Sets: (All) +Aliases: + +Required: True +Position: 1 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ParameterSetName + +The ParameterSetName to use as a filter against the Invocation's parameters. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: False +Position: 2 +Default value: [System.Management.Automation.Language.NullString]::Value +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -HelpMessage + +The HelpMessage field to use as a filter against the Invocation's parameters. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: False +Position: 3 +Default value: [System.Management.Automation.Language.NullString]::Value +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Exclude + +One or more parameter names to exclude from the results. + +```yaml +Type: String[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: 4 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -CommonParameters + +Specifies whether PowerShell advanced function common parameters should be included. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### None + +### You cannot pipe objects to this function. +## OUTPUTS + +### System.Collections.Generic.Dictionary[System.String, System.Object] + +### Get-ADTBoundParametersAndDefaultValues returns a dictionary of the same base type as $PSBoundParameters for API consistency. +## NOTES +An active ADT session is NOT required to use this function. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/Get-ADTBoundParametersAndDefaultValues](https://psappdeploytoolkit.com/docs/reference/functions/Get-ADTBoundParametersAndDefaultValues) diff --git a/versioned_docs/version-4.1.x/reference/functions/Get-ADTCommandTable.mdx b/versioned_docs/version-4.1.x/reference/functions/Get-ADTCommandTable.mdx new file mode 100644 index 0000000..97cc8a2 --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Get-ADTCommandTable.mdx @@ -0,0 +1,56 @@ +--- +id: Get-ADTCommandTable +title: Get-ADTCommandTable +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Returns PSAppDeployToolkit's safe command lookup table. + +## SYNTAX + +```powershell +Get-ADTCommandTable +``` + +## DESCRIPTION + +This function returns PSAppDeployToolkit's safe command lookup table, which can be used for command lookups within extending modules. + +Please note that PSAppDeployToolkit's safe command table only has commands in it that are used within this module, and not necessarily all commands offered by PowerShell and its built-in modules out of the box. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +Get-ADTCommandTable +``` + +Returns PSAppDeployToolkit's safe command lookup table. + +## PARAMETERS + +## INPUTS + +### None + +### You cannot pipe objects to this function. +## OUTPUTS + +### System.Collections.Generic.IReadOnlyDictionary[System.String, System.Management.Automation.CommandInfo] + +### Returns PSAppDeployTookit's safe command lookup table as a ReadOnlyDictionary. +## NOTES +An active ADT session is NOT required to use this function. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/Get-ADTCommandTable](https://psappdeploytoolkit.com/docs/reference/functions/Get-ADTCommandTable) diff --git a/versioned_docs/version-4.1.x/reference/functions/Get-ADTConfig.mdx b/versioned_docs/version-4.1.x/reference/functions/Get-ADTConfig.mdx new file mode 100644 index 0000000..5b69ff5 --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Get-ADTConfig.mdx @@ -0,0 +1,62 @@ +--- +id: Get-ADTConfig +title: Get-ADTConfig +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Retrieves the configuration data for the ADT module. + +## SYNTAX + +```powershell +Get-ADTConfig [] +``` + +## DESCRIPTION + +The Get-ADTConfig function retrieves the configuration data for the ADT module. +This function ensures that the ADT module has been initialized before attempting to retrieve the configuration data. +If the module is not initialized, it throws an error. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +$config = Get-ADTConfig +``` + +This example retrieves the configuration data for the ADT module and stores it in the $config variable. + +## PARAMETERS + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### None + +### You cannot pipe objects to this function. +## OUTPUTS + +### System.Collections.Hashtable + +### Returns the configuration data as a hashtable. +## NOTES +The module must be initialized via `Initialize-ADTModule` prior to calling this function. + +An active ADT session is NOT required to use this function. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/Get-ADTConfig](https://psappdeploytoolkit.com/docs/reference/functions/Get-ADTConfig) diff --git a/versioned_docs/version-4.1.x/reference/functions/Get-ADTDeferHistory.mdx b/versioned_docs/version-4.1.x/reference/functions/Get-ADTDeferHistory.mdx new file mode 100644 index 0000000..71e456d --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Get-ADTDeferHistory.mdx @@ -0,0 +1,56 @@ +--- +id: Get-ADTDeferHistory +title: Get-ADTDeferHistory +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Get the history of deferrals in the registry for the current application. + +## SYNTAX + +```powershell +Get-ADTDeferHistory [] +``` + +## DESCRIPTION + +Get the history of deferrals in the registry for the current application. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +Get-DeferHistory +``` + +## PARAMETERS + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### None + +### You cannot pipe objects to this function. +## OUTPUTS + +### None + +### This function does not return any objects. +## NOTES +An active ADT session is required to use this function. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/Get-ADTDeferHistory](https://psappdeploytoolkit.com/docs/reference/functions/Get-ADTDeferHistory) diff --git a/versioned_docs/version-4.1.x/reference/functions/Get-ADTEnvironmentTable.mdx b/versioned_docs/version-4.1.x/reference/functions/Get-ADTEnvironmentTable.mdx new file mode 100644 index 0000000..41fb8ce --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Get-ADTEnvironmentTable.mdx @@ -0,0 +1,60 @@ +--- +id: Get-ADTEnvironmentTable +title: Get-ADTEnvironmentTable +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Retrieves the environment data for the ADT module. + +## SYNTAX + +```powershell +Get-ADTEnvironmentTable [] +``` + +## DESCRIPTION + +The Get-ADTEnvironmentTable function retrieves the environment data for the ADT module. +This function ensures that the ADT module has been initialized before attempting to retrieve the environment data. +If the module is not initialized, it throws an error. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +$environment = Get-ADTEnvironmentTable +``` + +This example retrieves the environment data for the ADT module and stores it in the $environment variable. + +## PARAMETERS + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### None + +### You cannot pipe objects to this function. +## OUTPUTS + +### System.Collections.Specialized.OrderedDictionary + +### Returns the environment data as a read-only ordered dictionary. +## NOTES +An active ADT session is NOT required to use this function. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/Get-ADTEnvironmentTable](https://psappdeploytoolkit.com/docs/reference/functions/Get-ADTEnvironmentTable) diff --git a/versioned_docs/version-4.1.x/reference/functions/Get-ADTEnvironmentVariable.mdx b/versioned_docs/version-4.1.x/reference/functions/Get-ADTEnvironmentVariable.mdx new file mode 100644 index 0000000..339f284 --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Get-ADTEnvironmentVariable.mdx @@ -0,0 +1,100 @@ +--- +id: Get-ADTEnvironmentVariable +title: Get-ADTEnvironmentVariable +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Gets the value of the specified environment variable. + +## SYNTAX + +```powershell +Get-ADTEnvironmentVariable [-Variable] [[-Target] ] [] +``` + +## DESCRIPTION + +This function gets the value of the specified environment variable. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +Get-ADTEnvironmentVariable -Variable Path +``` + +Returns the value of the Path environment variable. + +### EXAMPLE 2 + +```powershell +Get-ADTEnvironmentVariable -Variable Path -Target Machine +``` + +Returns the value of the Path environment variable for the machine. + +## PARAMETERS + +### -Variable + +The variable to get. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: True +Position: 1 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Target + +The target of the variable to get. +This can be the machine, user, or process. + +```yaml +Type: EnvironmentVariableTarget +Parameter Sets: (All) +Aliases: +Accepted values: Process, User, Machine + +Required: False +Position: 2 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### None + +### You cannot pipe objects to this function. +## OUTPUTS + +### System.String + +### This function returns the value of the specified environment variable. +## NOTES +An active ADT session is NOT required to use this function. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/Get-ADTEnvironmentVariable](https://psappdeploytoolkit.com/docs/reference/functions/Get-ADTEnvironmentVariable) diff --git a/versioned_docs/version-4.1.x/reference/functions/Get-ADTExecutableInfo.mdx b/versioned_docs/version-4.1.x/reference/functions/Get-ADTExecutableInfo.mdx new file mode 100644 index 0000000..3852c9b --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Get-ADTExecutableInfo.mdx @@ -0,0 +1,121 @@ +--- +id: Get-ADTExecutableInfo +title: Get-ADTExecutableInfo +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Retrieves information about any valid Windows PE executable. + +## SYNTAX + +### Path + +```powershell +Get-ADTExecutableInfo -Path [] +``` + +### LiteralPath + +```powershell +Get-ADTExecutableInfo -LiteralPath [] +``` + +### InputObject + +```powershell +Get-ADTExecutableInfo -InputObject [] +``` + +## DESCRIPTION + +This function retrieves information about any valid Windows PE executable, such as version, bitness, and other characteristics. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +Get-ADTExecutableInfo -LiteralPath C:\Windows\system32\cmd.exe +``` + +Invokes the Get-ADTExecutableInfo function and returns an ExecutableInfo object. + +## PARAMETERS + +### -Path + +One or more expandable executable paths to retrieve info from. + +```yaml +Type: String[] +Parameter Sets: Path +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: True +``` + +### -LiteralPath + +One or more literal executable paths to retrieve info from. + +```yaml +Type: String[] +Parameter Sets: LiteralPath +Aliases: PSPath + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject + +A FileInfo object to retrieve executable info from. +Available for pipelining. + +```yaml +Type: FileInfo +Parameter Sets: InputObject +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### System.IO.FileInfo + +### This function accepts FileInfo objects via the pipeline for processing, such as output from Get-ChildItem. +## OUTPUTS + +### PSADT.FileSystem.ExecutableInfo + +### This function returns an ExecutableInfo object for the given FilePath. +## NOTES +An active ADT session is NOT required to use this function. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com](https://psappdeploytoolkit.com) diff --git a/versioned_docs/version-4.1.x/reference/functions/Get-ADTFileVersion.mdx b/versioned_docs/version-4.1.x/reference/functions/Get-ADTFileVersion.mdx new file mode 100644 index 0000000..876ff17 --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Get-ADTFileVersion.mdx @@ -0,0 +1,99 @@ +--- +id: Get-ADTFileVersion +title: Get-ADTFileVersion +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Gets the version of the specified file. + +## SYNTAX + +```powershell +Get-ADTFileVersion [-File] [-ProductVersion] [] +``` + +## DESCRIPTION + +The Get-ADTFileVersion function retrieves the version information of the specified file. +By default, it returns the FileVersion, but it can also return the ProductVersion if the -ProductVersion switch is specified. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +Get-ADTFileVersion -File "$env:ProgramFilesX86\Adobe\Reader 11.0\Reader\AcroRd32.exe" +``` + +This example retrieves the FileVersion of the specified Adobe Reader executable. + +### EXAMPLE 2 + +```powershell +Get-ADTFileVersion -File "$env:ProgramFilesX86\Adobe\Reader 11.0\Reader\AcroRd32.exe" -ProductVersion +``` + +This example retrieves the ProductVersion of the specified Adobe Reader executable. + +## PARAMETERS + +### -File + +The path of the file. + +```yaml +Type: FileInfo +Parameter Sets: (All) +Aliases: + +Required: True +Position: 1 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ProductVersion + +Switch that makes the command return the file's ProductVersion instead of its FileVersion. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### None + +### You cannot pipe objects to this function. +## OUTPUTS + +### System.String + +### Returns the version of the specified file. +## NOTES +An active ADT session is NOT required to use this function. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/Get-ADTFileVersion](https://psappdeploytoolkit.com/docs/reference/functions/Get-ADTFileVersion) diff --git a/versioned_docs/version-4.1.x/reference/functions/Get-ADTFreeDiskSpace.mdx b/versioned_docs/version-4.1.x/reference/functions/Get-ADTFreeDiskSpace.mdx new file mode 100644 index 0000000..05b728d --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Get-ADTFreeDiskSpace.mdx @@ -0,0 +1,76 @@ +--- +id: Get-ADTFreeDiskSpace +title: Get-ADTFreeDiskSpace +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Retrieves the free disk space in MB on a particular drive (defaults to system drive). + +## SYNTAX + +```powershell +Get-ADTFreeDiskSpace [[-Drive] ] [] +``` + +## DESCRIPTION + +The Get-ADTFreeDiskSpace function retrieves the free disk space in MB on a specified drive. +If no drive is specified, it defaults to the system drive. +This function is useful for monitoring disk space availability. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +Get-ADTFreeDiskSpace -Drive 'C:' +``` + +This example retrieves the free disk space on the C: drive. + +## PARAMETERS + +### -Drive + +The drive to check free disk space on. + +```yaml +Type: DriveInfo +Parameter Sets: (All) +Aliases: + +Required: False +Position: 1 +Default value: [System.IO.Path]::GetPathRoot([System.Environment]::SystemDirectory) +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### None + +### You cannot pipe objects to this function. +## OUTPUTS + +### System.Double + +### Returns the free disk space in MB. +## NOTES +An active ADT session is NOT required to use this function. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/Get-ADTFreeDiskSpace](https://psappdeploytoolkit.com/docs/reference/functions/Get-ADTFreeDiskSpace) diff --git a/versioned_docs/version-4.1.x/reference/functions/Get-ADTIniSection.mdx b/versioned_docs/version-4.1.x/reference/functions/Get-ADTIniSection.mdx new file mode 100644 index 0000000..4a69044 --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Get-ADTIniSection.mdx @@ -0,0 +1,92 @@ +--- +id: Get-ADTIniSection +title: Get-ADTIniSection +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Parses an INI file and returns the specified section as an ordered hashtable of key value pairs. + +## SYNTAX + +```powershell +Get-ADTIniSection [-FilePath] [-Section] [] +``` + +## DESCRIPTION + +Parses an INI file and returns the specified section as an ordered hashtable of key value pairs. + +Please note that the INI file provided cannot have a byte order mark (BOM) present as the underlying Win32 API cannot process it correctly. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +Get-ADTIniSection -FilePath "$env:ProgramFilesX86\IBM\Notes\notes.ini" -Section 'Notes' +``` + +This example retrieves the section of the 'Notes' of the specified INI file. + +## PARAMETERS + +### -FilePath + +Path to the INI file. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: True +Position: 1 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Section + +Section within the INI file. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: True +Position: 2 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### None + +### You cannot pipe objects to this function. +## OUTPUTS + +### Collections.Specialized.OrderedDictionary + +### Returns the value of the specified section and key. +## NOTES +An active ADT session is NOT required to use this function. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/Get-ADTIniSection](https://psappdeploytoolkit.com/docs/reference/functions/Get-ADTIniSection) diff --git a/versioned_docs/version-4.1.x/reference/functions/Get-ADTIniValue.mdx b/versioned_docs/version-4.1.x/reference/functions/Get-ADTIniValue.mdx new file mode 100644 index 0000000..254d776 --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Get-ADTIniValue.mdx @@ -0,0 +1,108 @@ +--- +id: Get-ADTIniValue +title: Get-ADTIniValue +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Parses an INI file and returns the value of the specified section and key. + +## SYNTAX + +```powershell +Get-ADTIniValue [-FilePath] [-Section] [-Key] [] +``` + +## DESCRIPTION + +The Get-ADTIniValue function parses an INI file and returns the value of the specified section and key. + +Please note that the INI file provided cannot have a byte order mark (BOM) present as the underlying Win32 API cannot process it correctly. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +Get-ADTIniValue -FilePath "$env:ProgramFilesX86\IBM\Notes\notes.ini" -Section 'Notes' -Key 'KeyFileName' +``` + +This example retrieves the value of the 'KeyFileName' key in the 'Notes' section of the specified INI file. + +## PARAMETERS + +### -FilePath + +Path to the INI file. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: True +Position: 1 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Section + +Section within the INI file. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: True +Position: 2 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Key + +Key within the section of the INI file. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: True +Position: 3 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### None + +### You cannot pipe objects to this function. +## OUTPUTS + +### System.String + +### Returns the value of the specified section and key. +## NOTES +An active ADT session is NOT required to use this function. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/Get-ADTIniValue](https://psappdeploytoolkit.com/docs/reference/functions/Get-ADTIniValue) diff --git a/versioned_docs/version-4.1.x/reference/functions/Get-ADTLoggedOnUser.mdx b/versioned_docs/version-4.1.x/reference/functions/Get-ADTLoggedOnUser.mdx new file mode 100644 index 0000000..5cb7ee4 --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Get-ADTLoggedOnUser.mdx @@ -0,0 +1,104 @@ +--- +id: Get-ADTLoggedOnUser +title: Get-ADTLoggedOnUser +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Retrieves session details for all local and RDP logged on users. + +## SYNTAX + +```powershell +Get-ADTLoggedOnUser [] +``` + +## DESCRIPTION + +The Get-ADTLoggedOnUser function retrieves session details for all local and RDP logged on users using Win32 APIs. +It provides information such as NTAccount, SID, UserName, DomainName, SessionId, SessionName, ConnectState, IsCurrentSession, IsConsoleSession, IsUserSession, IsActiveUserSession, IsRdpSession, IsLocalAdmin, LogonTime, IdleTime, DisconnectTime, ClientName, ClientProtocolType, ClientDirectory, and ClientBuildNumber. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +Get-ADTLoggedOnUser +``` + +This example retrieves session details for all local and RDP logged on users. + +## PARAMETERS + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### None + +### You cannot pipe objects to this function. +## OUTPUTS + +### PSADT.Types.UserSessionInfo + +### Returns a custom type with information about user sessions: +### - NTAccount +### - SID +### - UserName +### - DomainName +### - SessionId +### - SessionName +### - ConnectState +### - IsCurrentSession +### - IsConsoleSession +### - IsUserSession +### - IsActiveUserSession +### - IsRdpSession +### - IsLocalAdmin +### - LogonTime +### - IdleTime +### - DisconnectTime +### - ClientName +### - ClientProtocolType +### - ClientDirectory +### - ClientBuildNumber +## NOTES +An active ADT session is NOT required to use this function. + +Description of ConnectState property: + +Value Description +----- ----------- +Active A user is logged on to the session. +ConnectQuery The session is in the process of connecting to a client. +Connected A client is connected to the session. +Disconnected The session is active, but the client has disconnected from it. +Down The session is down due to an error. +Idle The session is waiting for a client to connect. +Initializing The session is initializing. +Listening The session is listening for connections. +Reset The session is being reset. +Shadowing This session is shadowing another session. + +Description of IsActiveUserSession property: +- If a console user exists, then that will be the active user session. +- If no console user exists but users are logged in, such as on terminal servers, then the first logged-in non-console user that has ConnectState either 'Active' or 'Connected' is the active user. + +Description of IsRdpSession property: +- Gets a value indicating whether the user is associated with an RDP client session. + +Description of IsLocalAdmin property: +- Checks whether the user is a member of the Administrators group + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/Get-ADTLoggedOnUser](https://psappdeploytoolkit.com/docs/reference/functions/Get-ADTLoggedOnUser) diff --git a/versioned_docs/version-4.1.x/reference/functions/Get-ADTModuleCallback.mdx b/versioned_docs/version-4.1.x/reference/functions/Get-ADTModuleCallback.mdx new file mode 100644 index 0000000..9a8c426 --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Get-ADTModuleCallback.mdx @@ -0,0 +1,88 @@ +--- +id: Get-ADTModuleCallback +title: Get-ADTModuleCallback +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Returns all callbacks from the nominated hooking point. + +## SYNTAX + +```powershell +Get-ADTModuleCallback [-Hookpoint] [] +``` + +## DESCRIPTION + +This function returns all callbacks from the nominated hooking point. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +Get-ADTModuleCallback -Hookpoint PostOpen +``` + +Returns all callbacks to be invoked after a DeploymentSession has opened. + +## PARAMETERS + +### -Hookpoint + +The hook point to return the callbacks for. + +Valid hookpoints are: +* OnInit (The callback is executed before the module is initialized) +* OnStart (The callback is executed before the first deployment session is opened) +* PreOpen (The callback is executed before a deployment session is opened) +* PostOpen (The callback is executed after a deployment session is opened) +* OnDefer (The callback is executed when a user defers the active deployment) +* PreClose (The callback is executed before the deployment session is closed) +* PostClose (The callback is executed after the deployment session is closed) +* OnFinish (The callback is executed before the last deployment session is closed) +* OnExit (The callback is executed after the last deployment session is closed) + +```yaml +Type: CallbackType +Parameter Sets: (All) +Aliases: +Accepted values: OnInit, OnStart, PreOpen, PostOpen, OnDefer, PreClose, PostClose, OnFinish, OnExit + +Required: True +Position: 1 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### None + +### You cannot pipe objects to this function. +## OUTPUTS + +### None + +### This function does not generate any output. +## NOTES +An active ADT session is NOT required to use this function. + +Also see `Remove-ADTModuleCallback` about how callbacks can be removed. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/Get-ADTModuleCallback](https://psappdeploytoolkit.com/docs/reference/functions/Get-ADTModuleCallback) diff --git a/versioned_docs/version-4.1.x/reference/functions/Get-ADTMsiExitCodeMessage.mdx b/versioned_docs/version-4.1.x/reference/functions/Get-ADTMsiExitCodeMessage.mdx new file mode 100644 index 0000000..6413a5a --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Get-ADTMsiExitCodeMessage.mdx @@ -0,0 +1,74 @@ +--- +id: Get-ADTMsiExitCodeMessage +title: Get-ADTMsiExitCodeMessage +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Get message for MSI exit code. + +## SYNTAX + +```powershell +Get-ADTMsiExitCodeMessage [-MsiExitCode] [] +``` + +## DESCRIPTION + +Get message for MSI exit code by reading it from msimsg.dll. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +Get-ADTMsiExitCodeMessage -MsiExitCode 1618 +``` + +## PARAMETERS + +### -MsiExitCode + +MSI exit code. + +```yaml +Type: UInt32 +Parameter Sets: (All) +Aliases: + +Required: True +Position: 1 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### None + +### You cannot pipe objects to this function. +## OUTPUTS + +### System.String + +### Returns the message for the MSI exit code. +## NOTES +An active ADT session is NOT required to use this function. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[http://msdn.microsoft.com/en-us/library/aa368542(v=vs.85).aspx](http://msdn.microsoft.com/en-us/library/aa368542(v=vs.85).aspx) + +[https://psappdeploytoolkit.com/docs/reference/functions/Get-ADTMsiExitCodeMessage](https://psappdeploytoolkit.com/docs/reference/functions/Get-ADTMsiExitCodeMessage) diff --git a/versioned_docs/version-4.1.x/reference/functions/Get-ADTMsiTableProperty.mdx b/versioned_docs/version-4.1.x/reference/functions/Get-ADTMsiTableProperty.mdx new file mode 100644 index 0000000..4edeb49 --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Get-ADTMsiTableProperty.mdx @@ -0,0 +1,183 @@ +--- +id: Get-ADTMsiTableProperty +title: Get-ADTMsiTableProperty +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Get all of the properties from a Windows Installer database table or the Summary Information stream and return as a custom object. + +## SYNTAX + +### TableInfo (Default) + +```powershell +Get-ADTMsiTableProperty -LiteralPath [-TransformPath ] [-Table ] + [-TablePropertyNameColumnNum ] [-TablePropertyValueColumnNum ] [] +``` + +### SummaryInfo + +```powershell +Get-ADTMsiTableProperty -LiteralPath [-TransformPath ] [-GetSummaryInformation] + [] +``` + +## DESCRIPTION + +Use the Windows Installer object to read all of the properties from a Windows Installer database table or the Summary Information stream. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +Get-ADTMsiTableProperty -LiteralPath 'C:\Package\AppDeploy.msi' -TransformPath 'C:\Package\AppDeploy.mst' +``` + +Retrieve all of the properties from the default 'Property' table. + +### EXAMPLE 2 + +```powershell +(Get-ADTMsiTableProperty -LiteralPath 'C:\Package\AppDeploy.msi' -TransformPath 'C:\Package\AppDeploy.mst' -Table 'Property').ProductCode +``` + +Retrieve all of the properties from the 'Property' table, then retrieves just the 'ProductCode' member. + +### EXAMPLE 3 + +```powershell +Get-ADTMsiTableProperty -LiteralPath 'C:\Package\AppDeploy.msi' -GetSummaryInformation +``` + +Retrieve the Summary Information for the Windows Installer database. + +## PARAMETERS + +### -LiteralPath + +The fully qualified path to an database file. +Supports .msi and .msp files. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: Path, PSPath + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -TransformPath + +The fully qualified path to a list of MST file(s) which should be applied to the MSI file. + +```yaml +Type: String[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Table + +The name of the the MSI table from which all of the properties must be retrieved. + +```yaml +Type: String +Parameter Sets: TableInfo +Aliases: + +Required: False +Position: Named +Default value: MSI file: "Property"; MSP file: "MsiPatchMetadata" +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -TablePropertyNameColumnNum + +Specify the table column number which contains the name of the properties. + +```yaml +Type: Int32 +Parameter Sets: TableInfo +Aliases: + +Required: False +Position: Named +Default value: MSI file: 1; MSP file: 2 +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -TablePropertyValueColumnNum + +Specify the table column number which contains the value of the properties. + +```yaml +Type: Int32 +Parameter Sets: TableInfo +Aliases: + +Required: False +Position: Named +Default value: MSI file: 2; MSP file: 3 +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -GetSummaryInformation + +Retrieves the Summary Information for the Windows Installer database. + +Summary Information property descriptions: https://msdn.microsoft.com/en-us/library/aa372049(v=vs.85).aspx + +```yaml +Type: SwitchParameter +Parameter Sets: SummaryInfo +Aliases: + +Required: True +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### None + +### You cannot pipe objects to this function. +## OUTPUTS + +### System.Collections.Generic.IReadOnlyDictionary[System.String, System.Object] + +### Returns a readonly dictionary with the properties as key/value pairs. +## NOTES +An active ADT session is NOT required to use this function. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/Get-ADTMsiTableProperty](https://psappdeploytoolkit.com/docs/reference/functions/Get-ADTMsiTableProperty) diff --git a/versioned_docs/version-4.1.x/reference/functions/Get-ADTObjectProperty.mdx b/versioned_docs/version-4.1.x/reference/functions/Get-ADTObjectProperty.mdx new file mode 100644 index 0000000..f4688fc --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Get-ADTObjectProperty.mdx @@ -0,0 +1,105 @@ +--- +id: Get-ADTObjectProperty +title: Get-ADTObjectProperty +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Get a property from any object. + +## SYNTAX + +```powershell +Get-ADTObjectProperty [-InputObject] [-PropertyName] [[-ArgumentList] ] + [] +``` + +## DESCRIPTION + +Get a property from any object. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +Get-ADTObjectProperty -InputObject $Record -PropertyName 'StringData' -ArgumentList @(1) +``` + +## PARAMETERS + +### -InputObject + +Specifies an object which has properties that can be retrieved. + +```yaml +Type: Object +Parameter Sets: (All) +Aliases: + +Required: True +Position: 1 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PropertyName + +Specifies the name of a property to retrieve. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: True +Position: 2 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ArgumentList + +Argument to pass to the property being retrieved. + +```yaml +Type: Object[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: 3 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### None + +### You cannot pipe objects to this function. +## OUTPUTS + +### System.Object + +### Returns the value of the property being retrieved. +## NOTES +An active ADT session is NOT required to use this function. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/Get-ADTObjectProperty](https://psappdeploytoolkit.com/docs/reference/functions/Get-ADTObjectProperty) diff --git a/versioned_docs/version-4.1.x/reference/functions/Get-ADTOperatingSystemInfo.mdx b/versioned_docs/version-4.1.x/reference/functions/Get-ADTOperatingSystemInfo.mdx new file mode 100644 index 0000000..3995a67 --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Get-ADTOperatingSystemInfo.mdx @@ -0,0 +1,54 @@ +--- +id: Get-ADTOperatingSystemInfo +title: Get-ADTOperatingSystemInfo +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Gets information about the current computer's operating system. + +## SYNTAX + +```powershell +Get-ADTOperatingSystemInfo +``` + +## DESCRIPTION + +Gets information about the current computer's operating system, such as name, version, edition, and other information. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +Get-ADTOperatingSystemInfo +``` + +Gets an PSADT.DeviceManagement.OperatingSystemInfo object containing the current computer's operating system information. + +## PARAMETERS + +## INPUTS + +### None + +### You cannot pipe objects to this function. +## OUTPUTS + +### PSADT.DeviceManagement.OperatingSystemInfo + +### Returns an PSADT.DeviceManagement.OperatingSystemInfo object containing the current computer's operating system information. +## NOTES +An active ADT session is NOT required to use this function. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/Get-ADTOperatingSystemInfo](https://psappdeploytoolkit.com/docs/reference/functions/Get-ADTOperatingSystemInfo) diff --git a/versioned_docs/version-4.1.x/reference/functions/Get-ADTPEFileArchitecture.mdx b/versioned_docs/version-4.1.x/reference/functions/Get-ADTPEFileArchitecture.mdx new file mode 100644 index 0000000..dc3caa1 --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Get-ADTPEFileArchitecture.mdx @@ -0,0 +1,137 @@ +--- +id: Get-ADTPEFileArchitecture +title: Get-ADTPEFileArchitecture +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Determine if a PE file is a 32-bit or a 64-bit file. + +## SYNTAX + +### Path + +```powershell +Get-ADTPEFileArchitecture -Path [-PassThru] [] +``` + +### LiteralPath + +```powershell +Get-ADTPEFileArchitecture -LiteralPath [-PassThru] [] +``` + +### InputObject + +```powershell +Get-ADTPEFileArchitecture -InputObject [-PassThru] [] +``` + +## DESCRIPTION + +Determine if a PE file is a 32-bit or a 64-bit file by examining the file's image file header. + +PE file extensions: .exe, .dll, .ocx, .drv, .sys, .scr, .efi, .cpl, .fon + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +Get-ADTPEFileArchitecture -FilePath "$env:windir\notepad.exe" +``` + +## PARAMETERS + +### -Path + +One or more expandable executable paths to retrieve info from. + +```yaml +Type: String[] +Parameter Sets: Path +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: True +``` + +### -LiteralPath + +One or more literal executable paths to retrieve info from. + +```yaml +Type: String[] +Parameter Sets: LiteralPath +Aliases: PSPath, FilePath + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject + +A FileInfo object to retrieve executable info from. +Available for pipelining. + +```yaml +Type: FileInfo +Parameter Sets: InputObject +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -PassThru + +Get the file object, attach a property indicating the file binary type, and write to pipeline. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### System.IO.FileInfo + +### Accepts a FileInfo object from the pipeline. +## OUTPUTS + +### System.String + +### Returns a string indicating the file binary type. +## NOTES +An active ADT session is NOT required to use this function. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/Get-ADTPEFileArchitecture](https://psappdeploytoolkit.com/docs/reference/functions/Get-ADTPEFileArchitecture) diff --git a/versioned_docs/version-4.1.x/reference/functions/Get-ADTPendingReboot.mdx b/versioned_docs/version-4.1.x/reference/functions/Get-ADTPendingReboot.mdx new file mode 100644 index 0000000..4ff1b2e --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Get-ADTPendingReboot.mdx @@ -0,0 +1,84 @@ +--- +id: Get-ADTPendingReboot +title: Get-ADTPendingReboot +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Get the pending reboot status on a local computer. + +## SYNTAX + +```powershell +Get-ADTPendingReboot [] +``` + +## DESCRIPTION + +Check WMI and the registry to determine if the system has a pending reboot operation from any of the following: + +- Component Based Servicing (Vista, Windows 2008) +- Windows Update / Auto Update (XP, Windows 2003 / 2008) +- SCCM 2012 Clients (DetermineIfRebootPending WMI method) +- App-V Pending Tasks (global based Appv 5.0 SP2) +- Pending File Rename Operations (XP, Windows 2003 / 2008) + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +Get-ADTPendingReboot +``` + +This example retrieves the pending reboot status on the local computer and returns a custom object with detailed information. + +### EXAMPLE 2 + +```powershell +(Get-ADTPendingReboot).IsSystemRebootPending +``` + +This example returns a boolean value determining whether or not there is a pending reboot operation. + +## PARAMETERS + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### None + +### You cannot pipe objects to this function. +## OUTPUTS + +### PSADT.Types.RebootInfo + +### Returns a custom object with the following properties: +### - ComputerName +### - LastBootUpTime +### - IsSystemRebootPending +### - IsCBServicingRebootPending +### - IsWindowsUpdateRebootPending +### - IsSCCMClientRebootPending +### - IsIntuneClientRebootPending +### - IsFileRenameRebootPending +### - PendingFileRenameOperations +### - ErrorMsg +## NOTES +An active ADT session is NOT required to use this function. + +ErrorMsg only contains something if an error occurred. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/Get-ADTPendingReboot](https://psappdeploytoolkit.com/docs/reference/functions/Get-ADTPendingReboot) diff --git a/versioned_docs/version-4.1.x/reference/functions/Get-ADTPowerShellProcessPath.mdx b/versioned_docs/version-4.1.x/reference/functions/Get-ADTPowerShellProcessPath.mdx new file mode 100644 index 0000000..05f2465 --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Get-ADTPowerShellProcessPath.mdx @@ -0,0 +1,55 @@ +--- +id: Get-ADTPowerShellProcessPath +title: Get-ADTPowerShellProcessPath +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Retrieves the path to the PowerShell executable. + +## SYNTAX + +```powershell +Get-ADTPowerShellProcessPath +``` + +## DESCRIPTION + +The Get-ADTPowerShellProcessPath function returns the path to the PowerShell executable. +It determines whether the current PowerShell session is running in Windows PowerShell or PowerShell Core and returns the appropriate executable path. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +Get-ADTPowerShellProcessPath +``` + +This example retrieves the path to the PowerShell executable for the current session. + +## PARAMETERS + +## INPUTS + +### None + +### You cannot pipe objects to this function. +## OUTPUTS + +### System.String + +### Returns the path to the PowerShell executable as a string. +## NOTES +An active ADT session is NOT required to use this function. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/Get-ADTPowerShellProcessPath](https://psappdeploytoolkit.com/docs/reference/functions/Get-ADTPowerShellProcessPath) diff --git a/versioned_docs/version-4.1.x/reference/functions/Get-ADTPresentationSettingsEnabledUsers.mdx b/versioned_docs/version-4.1.x/reference/functions/Get-ADTPresentationSettingsEnabledUsers.mdx new file mode 100644 index 0000000..5963174 --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Get-ADTPresentationSettingsEnabledUsers.mdx @@ -0,0 +1,59 @@ +--- +id: Get-ADTPresentationSettingsEnabledUsers +title: Get-ADTPresentationSettingsEnabledUsers +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Tests whether any users have presentation mode enabled on their device. + +## SYNTAX + +```powershell +Get-ADTPresentationSettingsEnabledUsers [] +``` + +## DESCRIPTION + +Tests whether any users have presentation mode enabled on their device. +This can be enabled via the PC's Mobility Settings, or with PresentationSettings.exe. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +Get-ADTPresentationSettingsEnabledUsers +``` + +Checks whether any users users have presentation settings enabled on their device and returns an associated UserProfile object. + +## PARAMETERS + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### None + +### You cannot pipe objects to this function. +## OUTPUTS + +### PSADT.Types.UserProfileInfo + +### Returns one or more UserProfile objects of the users with presentation mode enabled on their device. +## NOTES +An active ADT session is NOT required to use this function. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/Get-ADTPresentationSettingsEnabledUsers](https://psappdeploytoolkit.com/docs/reference/functions/Get-ADTPresentationSettingsEnabledUsers) diff --git a/versioned_docs/version-4.1.x/reference/functions/Get-ADTRegistryKey.mdx b/versioned_docs/version-4.1.x/reference/functions/Get-ADTRegistryKey.mdx new file mode 100644 index 0000000..e214ddd --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Get-ADTRegistryKey.mdx @@ -0,0 +1,218 @@ +--- +id: Get-ADTRegistryKey +title: Get-ADTRegistryKey +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Retrieves value names and value data for a specified registry key or optionally, a specific value. + +## SYNTAX + +### Path + +```powershell +Get-ADTRegistryKey -Path [-Name ] [-Wow6432Node] [-SID ] + [-ReturnEmptyKeyIfExists] [-DoNotExpandEnvironmentNames] [] +``` + +### LiteralPath + +```powershell +Get-ADTRegistryKey -LiteralPath [-Name ] [-Wow6432Node] [-SID ] + [-ReturnEmptyKeyIfExists] [-DoNotExpandEnvironmentNames] [] +``` + +## DESCRIPTION + +Retrieves value names and value data for a specified registry key or optionally, a specific value. +If the registry key does not exist or contain any values, the function will return $null by default. + +To test for existence of a registry key path, use built-in Test-Path cmdlet. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +Get-ADTRegistryKey -LiteralPath 'HKLM:SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\VLC media player' +``` + +This example retrieves all value names and data for the specified registry key. + +### EXAMPLE 2 + +```powershell +Get-ADTRegistryKey -LiteralPath 'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\iexplore.exe' +``` + +This example retrieves all value names and data for the specified registry key. + +### EXAMPLE 3 + +```powershell +Get-ADTRegistryKey -LiteralPath 'HKLM:Software\Wow6432Node\Microsoft\Microsoft SQL Server Compact Edition\v3.5' -Name 'Version' +``` + +This example retrieves the 'Version' value data for the specified registry key. + +### EXAMPLE 4 + +```powershell +Get-ADTRegistryKey -LiteralPath 'HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment' -Name 'Path' -DoNotExpandEnvironmentNames +``` + +This example retrieves the 'Path' value data without expanding environment variables. + +### EXAMPLE 5 + +```powershell +Get-ADTRegistryKey -LiteralPath 'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Example' -Name '(Default)' +``` + +This example retrieves the default value data for the specified registry key. + +## PARAMETERS + +### -Path + +Path of the registry key, wildcards permitted. + +```yaml +Type: String +Parameter Sets: Path +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: True +``` + +### -LiteralPath + +Literal path of the registry key. + +```yaml +Type: String +Parameter Sets: LiteralPath +Aliases: Key + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Name + +Value name to retrieve (optional). + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: [System.Management.Automation.Language.NullString]::Value +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Wow6432Node + +Specify this switch to read the 32-bit registry (Wow6432Node) on 64-bit systems. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SID + +The security identifier (SID) for a user. +Specifying this parameter will convert a HKEY_CURRENT_USER registry key to the HKEY_USERS\$SID format. + +Specify this parameter from the Invoke-ADTAllUsersRegistryAction function to read/edit HKCU registry settings for all users on the system. + +```yaml +Type: SecurityIdentifier +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ReturnEmptyKeyIfExists + +Return the registry key if it exists but it has no property/value pairs underneath it. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DoNotExpandEnvironmentNames + +Return unexpanded REG_EXPAND_SZ values. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### None + +### You cannot pipe objects to this function. +## OUTPUTS + +### System.String + +### Returns the value of the registry key or value. +## NOTES +An active ADT session is NOT required to use this function. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/Get-ADTRegistryKey](https://psappdeploytoolkit.com/docs/reference/functions/Get-ADTRegistryKey) diff --git a/versioned_docs/version-4.1.x/reference/functions/Get-ADTRunningProcesses.mdx b/versioned_docs/version-4.1.x/reference/functions/Get-ADTRunningProcesses.mdx new file mode 100644 index 0000000..c787686 --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Get-ADTRunningProcesses.mdx @@ -0,0 +1,75 @@ +--- +id: Get-ADTRunningProcesses +title: Get-ADTRunningProcesses +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Gets the processes that are running from a list of process objects. + +## SYNTAX + +```powershell +Get-ADTRunningProcesses [-ProcessObjects] [] +``` + +## DESCRIPTION + +Gets the processes that are running from a list of process objects. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +Get-ADTRunningProcesses -ProcessObjects $processObjects +``` + +Returns a list of running processes. +If nothing is found nothing will be returned. + +## PARAMETERS + +### -ProcessObjects + +One or more process objects to search for. + +```yaml +Type: ProcessDefinition[] +Parameter Sets: (All) +Aliases: + +Required: True +Position: 1 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### None. + +### You cannot pipe objects to this function. +## OUTPUTS + +### System.Collections.Generic.IReadOnlyList`1[[PSADT.ProcessManagement.RunningProcess]]. + +### Returns one or more RunningProcess objects representing each running process. +## NOTES +An active ADT session is NOT required to use this function. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/Get-ADTServiceStartMode](https://psappdeploytoolkit.com/docs/reference/functions/Get-ADTServiceStartMode) diff --git a/versioned_docs/version-4.1.x/reference/functions/Get-ADTServiceStartMode.mdx b/versioned_docs/version-4.1.x/reference/functions/Get-ADTServiceStartMode.mdx new file mode 100644 index 0000000..3b07732 --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Get-ADTServiceStartMode.mdx @@ -0,0 +1,75 @@ +--- +id: Get-ADTServiceStartMode +title: Get-ADTServiceStartMode +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Retrieves the startup mode of a specified service. + +## SYNTAX + +```powershell +Get-ADTServiceStartMode [-Service] [] +``` + +## DESCRIPTION + +Retrieves the startup mode of a specified service. +This function checks the service's start type and adjusts the result if the service is set to 'Automatic (Delayed Start)'. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +Get-ADTServiceStartMode -Service (Get-Service -Name 'wuauserv') +``` + +Retrieves the startup mode of the 'wuauserv' service. + +## PARAMETERS + +### -Service + +Specify the service object to retrieve the startup mode for. + +```yaml +Type: ServiceController +Parameter Sets: (All) +Aliases: + +Required: True +Position: 1 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### None + +### You cannot pipe objects to this function. +## OUTPUTS + +### System.String + +### Returns the startup mode of the specified service. +## NOTES +An active ADT session is NOT required to use this function. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/Get-ADTServiceStartMode](https://psappdeploytoolkit.com/docs/reference/functions/Get-ADTServiceStartMode) diff --git a/versioned_docs/version-4.1.x/reference/functions/Get-ADTSession.mdx b/versioned_docs/version-4.1.x/reference/functions/Get-ADTSession.mdx new file mode 100644 index 0000000..b77c23e --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Get-ADTSession.mdx @@ -0,0 +1,73 @@ +--- +id: Get-ADTSession +title: Get-ADTSession +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Retrieves the most recent ADT session. + +## SYNTAX + +```powershell +Get-ADTSession [] +``` + +## DESCRIPTION + +The Get-ADTSession function returns the most recent session from the ADT module data. +If no sessions are found, it throws an error indicating that an ADT session should be opened using Open-ADTSession before calling this function. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +Get-ADTSession +``` + +This example retrieves the most recent ADT session. + +### EXAMPLE 2 + +```powershell +$adtSession = Get-ADTSession +... +Close-ADTSession +$adtSession.GetExitCode() +``` + + +This example retrieves the given deployment session's exit code after the session has closed. + +## PARAMETERS + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### None + +### You cannot pipe objects to this function. +## OUTPUTS + +### PSAppDeployToolkit.SessionManagement.DeploymentSession + +### Returns the most recent session object from the ADT module data. +## NOTES +An active ADT session is required to use this function. + +Requires: PSADT session should be initialized using Open-ADTSession + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/Get-ADTSession](https://psappdeploytoolkit.com/docs/reference/functions/Get-ADTSession) diff --git a/versioned_docs/version-4.1.x/reference/functions/Get-ADTShortcut.mdx b/versioned_docs/version-4.1.x/reference/functions/Get-ADTShortcut.mdx new file mode 100644 index 0000000..fdf3399 --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Get-ADTShortcut.mdx @@ -0,0 +1,86 @@ +--- +id: Get-ADTShortcut +title: Get-ADTShortcut +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Get information from a .lnk or .url type shortcut. + +## SYNTAX + +```powershell +Get-ADTShortcut [-LiteralPath] [] +``` + +## DESCRIPTION + +Get information from a .lnk or .url type shortcut. +Returns a hashtable with details about the shortcut such as TargetPath, Arguments, Description, and more. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +Get-ADTShortcut -LiteralPath "$envProgramData\Microsoft\Windows\Start Menu\My Shortcut.lnk" +``` + +Retrieves information from the specified .lnk shortcut. + +## PARAMETERS + +### -LiteralPath + +Path to the shortcut to get information from. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: Path, PSPath + +Required: True +Position: 1 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### None + +### You cannot pipe objects to this function. +## OUTPUTS + +### PSADT.Types.ShortcutBase + +### Returns an object with the following properties: +### - TargetPath +### - Arguments +### - Description +### - WorkingDirectory +### - WindowStyle +### - Hotkey +### - IconLocation +### - IconIndex +### - RunAsAdmin +## NOTES +An active ADT session is NOT required to use this function. + +Url shortcuts only support TargetPath, IconLocation, and IconIndex. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/Get-ADTShortcut](https://psappdeploytoolkit.com/docs/reference/functions/Get-ADTShortcut) diff --git a/versioned_docs/version-4.1.x/reference/functions/Get-ADTStringTable.mdx b/versioned_docs/version-4.1.x/reference/functions/Get-ADTStringTable.mdx new file mode 100644 index 0000000..639ce39 --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Get-ADTStringTable.mdx @@ -0,0 +1,77 @@ +--- +id: Get-ADTStringTable +title: Get-ADTStringTable +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Retrieves the string database from the ADT module. + +## SYNTAX + +```powershell +Get-ADTStringTable [[-SessionState] ] [] +``` + +## DESCRIPTION + +The Get-ADTStringTable function returns the string database if it has been initialized. +If the string database is not initialized, it throws an error indicating that Initialize-ADTModule should be called before using this function. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +Get-ADTStringTable +``` + +This example retrieves the string database from the ADT module. + +## PARAMETERS + +### -SessionState + +The SessionState in which to expand variables from if specified. + +```yaml +Type: SessionState +Parameter Sets: (All) +Aliases: + +Required: False +Position: 1 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### None + +### This function does not take any pipeline input. +## OUTPUTS + +### System.Collections.Hashtable + +### Returns a hashtable containing the string database. +## NOTES +An active ADT session is NOT required to use this function. + +Requires: The module should be initialized using Initialize-ADTModule + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/Get-ADTStringTable](https://psappdeploytoolkit.com/docs/reference/functions/Get-ADTStringTable) diff --git a/versioned_docs/version-4.1.x/reference/functions/Get-ADTUserNotificationState.mdx b/versioned_docs/version-4.1.x/reference/functions/Get-ADTUserNotificationState.mdx new file mode 100644 index 0000000..6cc8d8b --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Get-ADTUserNotificationState.mdx @@ -0,0 +1,58 @@ +--- +id: Get-ADTUserNotificationState +title: Get-ADTUserNotificationState +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Gets the specified user's notification state. + +## SYNTAX + +```powershell +Get-ADTUserNotificationState [] +``` + +## DESCRIPTION + +This function gets the specified user's notification state. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +Get-ADTUserNotificationState +``` + +Returns the logged on user's notification state. + +## PARAMETERS + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### None + +### You cannot pipe objects to this function. +## OUTPUTS + +### PSADT.LibraryInterfaces.QUERY_USER_NOTIFICATION_STATE + +### Returns the user's QUERY_USER_NOTIFICATION_STATE value as an enum. +## NOTES +An active ADT session is NOT required to use this function. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/Get-ADTUserNotificationState](https://psappdeploytoolkit.com/docs/reference/functions/Get-ADTUserNotificationState) diff --git a/versioned_docs/version-4.1.x/reference/functions/Get-ADTUserProfiles.mdx b/versioned_docs/version-4.1.x/reference/functions/Get-ADTUserProfiles.mdx new file mode 100644 index 0000000..9a2dd1d --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Get-ADTUserProfiles.mdx @@ -0,0 +1,242 @@ +--- +id: Get-ADTUserProfiles +title: Get-ADTUserProfiles +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Get the User Profile Path, User Account SID, and the User Account Name for all users that log onto the machine and also the Default User. + +## SYNTAX + +### All (Default) + +```powershell +Get-ADTUserProfiles [-ExcludeNTAccount ] [-IncludeSystemProfiles] [-IncludeServiceProfiles] + [-IncludeIISAppPoolProfiles] [-IncludeEpmProfiles] [-ExcludeDefaultUser] [-LoadProfilePaths] + [] +``` + +### FilterScript + +```powershell +Get-ADTUserProfiles [-FilterScript] [-LoadProfilePaths] [] +``` + +### Specific + +```powershell +Get-ADTUserProfiles -SID [-LoadProfilePaths] [] +``` + +## DESCRIPTION + +Get the User Profile Path, User Account SID, and the User Account Name for all users that log onto the machine and also the Default User (which does not log on). + +Please note that the NTAccount property may be empty for some user profiles but the SID and ProfilePath properties will always be populated. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +Get-ADTUserProfiles +``` + +Return the following properties for each user profile on the system: NTAccount, SID, ProfilePath. + +### EXAMPLE 2 + +```powershell +Get-ADTUserProfiles -ExcludeNTAccount CONTOSO\Robot,CONTOSO\ntadmin +``` + +Return the following properties for each user profile on the system, except for 'Robot' and 'ntadmin': NTAccount, SID, ProfilePath. + +### EXAMPLE 3 + +```powershell +[string[]]$ProfilePaths = Get-ADTUserProfiles | Select-Object -ExpandProperty ProfilePath +``` + +Return the user profile path for each user on the system. +This information can then be used to make modifications under the user profile on the filesystem. + +## PARAMETERS + +### -FilterScript + +Allows filtration of the returned result by any property in a UserProfile object. + +```yaml +Type: ScriptBlock +Parameter Sets: FilterScript +Aliases: + +Required: True +Position: 1 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SID + +Specifies the SID to get rather than returning all user profiles. + +```yaml +Type: SecurityIdentifier[] +Parameter Sets: Specific +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ExcludeNTAccount + +Specify NT account names in DOMAIN\username format to exclude from the list of user profiles. + +```yaml +Type: NTAccount[] +Parameter Sets: All +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -IncludeSystemProfiles + +Include system profiles: SYSTEM, LOCAL SERVICE, NETWORK SERVICE. + +```yaml +Type: SwitchParameter +Parameter Sets: All +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -IncludeServiceProfiles + +Include service (NT SERVICE) profiles. + +```yaml +Type: SwitchParameter +Parameter Sets: All +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -IncludeIISAppPoolProfiles + +Include IIS AppPool profiles. +Excluded by default as they don't parse well. + +```yaml +Type: SwitchParameter +Parameter Sets: All +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -IncludeEpmProfiles + +Include Endpoint Privilege Management (EPM) profiles. +Excluded by default as they don't parse well. + +```yaml +Type: SwitchParameter +Parameter Sets: All +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ExcludeDefaultUser + +Exclude the Default User. + +```yaml +Type: SwitchParameter +Parameter Sets: All +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -LoadProfilePaths + +Load additional profile paths for each user profile. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### None + +### You cannot pipe objects to this function. +## OUTPUTS + +### PSADT.Types.UserProfileInfo + +### Returns a PSADT.Types.UserProfileInfo object with the following properties: +### - NTAccount +### - SID +### - ProfilePath +## NOTES +An active ADT session is NOT required to use this function. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/Get-ADTUserProfiles](https://psappdeploytoolkit.com/docs/reference/functions/Get-ADTUserProfiles) diff --git a/versioned_docs/version-4.1.x/reference/functions/Get-ADTWindowTitle.mdx b/versioned_docs/version-4.1.x/reference/functions/Get-ADTWindowTitle.mdx new file mode 100644 index 0000000..db3ad7e --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Get-ADTWindowTitle.mdx @@ -0,0 +1,173 @@ +--- +id: Get-ADTWindowTitle +title: Get-ADTWindowTitle +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Search for an open window title and return details about the window. + +## SYNTAX + +```powershell +Get-ADTWindowTitle [[-WindowTitle] ] [[-WindowHandle] ] [[-ParentProcess] ] + [[-ParentProcessId] ] [[-ParentProcessMainWindowHandle] ] [] +``` + +## DESCRIPTION + +Search for a window title. +If window title searched for returns more than one result, then details for each window will be displayed. + +Returns the following properties for each window: + +- WindowTitle +- WindowHandle +- ParentProcess +- ParentProcessId +- ParentProcessMainWindowHandle + +Function does not work in SYSTEM context unless launched with "psexec.exe -s -i" to run it as an interactive process under the SYSTEM account. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +Get-ADTWindowTitle -WindowTitle 'Microsoft Word' +``` + +Gets details for each window that has the words "Microsoft Word" in the title. + +### EXAMPLE 2 + +```powershell +Get-ADTWindowTitle -GetAllWindowTitles +``` + +Gets details for all windows with a title. + +### EXAMPLE 3 + +```powershell +Get-ADTWindowTitle -GetAllWindowTitles | Where-Object { $_.ParentProcess -eq 'WINWORD' } +``` + +Get details for all windows belonging to Microsoft Word process with name "WINWORD". + +## PARAMETERS + +### -WindowTitle + +One or more titles of the application window to search for using regex matching. + +```yaml +Type: String[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: 1 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WindowHandle + +One or more window handles of the application window to search for. + +```yaml +Type: IntPtr[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: 2 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ParentProcess + +One or more process names of the application window to search for. + +```yaml +Type: String[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: 3 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ParentProcessId + +One or more process ids of the application window to search for. + +```yaml +Type: Int32[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: 4 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ParentProcessMainWindowHandle + +One more process main window handles of the application window to search for. + +```yaml +Type: IntPtr[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: 5 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### None + +### You cannot pipe objects to this function. +## OUTPUTS + +### PSADT.WindowManagement.WindowInfo + +### Returns a PSADT.WindowManagement.WindowInfo object with the following properties: +### - WindowTitle +### - WindowHandle +### - ParentProcess +### - ParentProcessId +### - ParentProcessMainWindowHandle +## NOTES +An active ADT session is NOT required to use this function. + +Function does not work in SYSTEM context unless launched with "psexec.exe -s -i" to run it as an interactive process under the SYSTEM account. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/Get-ADTWindowTitle](https://psappdeploytoolkit.com/docs/reference/functions/Get-ADTWindowTitle) diff --git a/versioned_docs/version-4.1.x/reference/functions/Initialize-ADTFunction.mdx b/versioned_docs/version-4.1.x/reference/functions/Initialize-ADTFunction.mdx new file mode 100644 index 0000000..710083b --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Initialize-ADTFunction.mdx @@ -0,0 +1,91 @@ +--- +id: Initialize-ADTFunction +title: Initialize-ADTFunction +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Initializes the ADT function environment. + +## SYNTAX + +```powershell +Initialize-ADTFunction [-Cmdlet] [[-SessionState] ] [] +``` + +## DESCRIPTION + +Initializes the ADT function environment by setting up necessary variables and logging function start details. +It ensures that the function always stops on errors and handles verbose logging. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +Initialize-ADTFunction -Cmdlet $PSCmdlet +``` + +Initializes the ADT function environment for the given cmdlet. + +## PARAMETERS + +### -Cmdlet + +The cmdlet that is being initialized. + +```yaml +Type: PSCmdlet +Parameter Sets: (All) +Aliases: + +Required: True +Position: 1 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SessionState + +The session state of the cmdlet. + +```yaml +Type: SessionState +Parameter Sets: (All) +Aliases: + +Required: False +Position: 2 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### None + +### You cannot pipe objects to this function. +## OUTPUTS + +### None + +### This function does not return any output. +## NOTES +An active ADT session is NOT required to use this function. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/Initialize-ADTFunction](https://psappdeploytoolkit.com/docs/reference/functions/Initialize-ADTFunction) diff --git a/versioned_docs/version-4.1.x/reference/functions/Initialize-ADTModule.mdx b/versioned_docs/version-4.1.x/reference/functions/Initialize-ADTModule.mdx new file mode 100644 index 0000000..a22499c --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Initialize-ADTModule.mdx @@ -0,0 +1,93 @@ +--- +id: Initialize-ADTModule +title: Initialize-ADTModule +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Initializes the ADT module by setting up necessary configurations and environment. + +## SYNTAX + +```powershell +Initialize-ADTModule [[-ScriptDirectory] ] [[-AdditionalEnvironmentVariables] ] + [] +``` + +## DESCRIPTION + +The Initialize-ADTModule function sets up the environment for the ADT module by initializing necessary variables, configurations, and string tables. +It ensures that the module is not initialized while there is an active ADT session in progress. +This function prepares the module for use by clearing callbacks, sessions, and setting up the environment table. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +Initialize-ADTModule +``` + +Initializes the ADT module with the default settings and configurations. + +## PARAMETERS + +### -ScriptDirectory + +An override directory to use for config and string loading. + +```yaml +Type: String[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: 1 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -AdditionalEnvironmentVariables + +A dictionary of key/value pairs to inject into the generated environment table. + +```yaml +Type: IDictionary +Parameter Sets: (All) +Aliases: + +Required: False +Position: 2 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### None + +### You cannot pipe objects to this function. +## OUTPUTS + +### None + +### This function does not return any output. +## NOTES +An active ADT session is NOT required to use this function. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/Initialize-ADTModule](https://psappdeploytoolkit.com/docs/reference/functions/Initialize-ADTModule) diff --git a/versioned_docs/version-4.1.x/reference/functions/Install-ADTMSUpdates.mdx b/versioned_docs/version-4.1.x/reference/functions/Install-ADTMSUpdates.mdx new file mode 100644 index 0000000..b7484d3 --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Install-ADTMSUpdates.mdx @@ -0,0 +1,109 @@ +--- +id: Install-ADTMSUpdates +title: Install-ADTMSUpdates +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Install all Microsoft Updates in a given directory. + +## SYNTAX + +```powershell +Install-ADTMSUpdates [-LiteralPath] [-WhatIf] [-Confirm] [] +``` + +## DESCRIPTION + +Install all Microsoft Updates of type ".msu" in a given directory (recursively searches directory). + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +Install-ADTMSUpdates -LiteralPath "$($adtSession.DirFiles)\MSUpdates" +``` + +Installs all Microsoft Updates found in the specified directory. + +## PARAMETERS + +### -LiteralPath + +Directory containing the updates. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: Directory + +Required: True +Position: 1 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf + +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm + +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### None + +### You cannot pipe objects to this function. +## OUTPUTS + +### None + +### This function does not return any objects. +## NOTES +An active ADT session is NOT required to use this function. + +This function supports the -WhatIf and -Confirm parameters for testing changes before applying them. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/Install-ADTMSUpdates](https://psappdeploytoolkit.com/docs/reference/functions/Install-ADTMSUpdates) diff --git a/versioned_docs/version-4.1.x/reference/functions/Install-ADTSCCMSoftwareUpdates.mdx b/versioned_docs/version-4.1.x/reference/functions/Install-ADTSCCMSoftwareUpdates.mdx new file mode 100644 index 0000000..0664313 --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Install-ADTSCCMSoftwareUpdates.mdx @@ -0,0 +1,145 @@ +--- +id: Install-ADTSCCMSoftwareUpdates +title: Install-ADTSCCMSoftwareUpdates +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Scans for outstanding SCCM updates to be installed and installs the pending updates. + +## SYNTAX + +```powershell +Install-ADTSCCMSoftwareUpdates [[-SoftwareUpdatesScanWaitInSeconds] ] + [[-WaitForPendingUpdatesTimeout] ] [-WhatIf] [-Confirm] [] +``` + +## DESCRIPTION + +Scans for outstanding SCCM updates to be installed and installs the pending updates. + +Only compatible with SCCM 2012 Client or higher. +This function can take several minutes to run. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +Install-ADTSCCMSoftwareUpdates +``` + +Scans for outstanding SCCM updates and installs the pending updates with default wait times. + +### EXAMPLE 2 + +```powershell +Install-ADTSCCMSoftwareUpdates -WaitForPendingUpdatesTimeout 00:30:00 +``` + +Scans for outstanding SCCM updates and installs the pending updates with a 30 minute timeout. + +### EXAMPLE 3 + +```powershell +Install-ADTSCCMSoftwareUpdates -WaitForPendingUpdatesTimeout (New-TimeSpan -Minutes 30) +``` + +Scans for outstanding SCCM updates and installs the pending updates with a 30 minute timeout. + +## PARAMETERS + +### -SoftwareUpdatesScanWaitInSeconds + +The amount of time to wait in seconds for the software updates scan to complete. + +```yaml +Type: Int32 +Parameter Sets: (All) +Aliases: + +Required: False +Position: 1 +Default value: 180 +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WaitForPendingUpdatesTimeout + +The amount of time to wait for missing and pending updates to install before exiting the function. + +```yaml +Type: TimeSpan +Parameter Sets: (All) +Aliases: + +Required: False +Position: 2 +Default value: [System.TimeSpan]::FromMinutes(45) +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf + +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm + +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### None + +### You cannot pipe objects to this function. +## OUTPUTS + +### None + +### This function does not return any objects. +## NOTES +An active ADT session is NOT required to use this function. + +This function supports the -WhatIf and -Confirm parameters for testing changes before applying them. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/Install-ADTSCCMSoftwareUpdates](https://psappdeploytoolkit.com/docs/reference/functions/Install-ADTSCCMSoftwareUpdates) diff --git a/versioned_docs/version-4.1.x/reference/functions/Invoke-ADTAllUsersRegistryAction.mdx b/versioned_docs/version-4.1.x/reference/functions/Invoke-ADTAllUsersRegistryAction.mdx new file mode 100644 index 0000000..f21e06e --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Invoke-ADTAllUsersRegistryAction.mdx @@ -0,0 +1,177 @@ +--- +id: Invoke-ADTAllUsersRegistryAction +title: Invoke-ADTAllUsersRegistryAction +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Set current user registry settings for all current users and any new users in the future. + +## SYNTAX + +```powershell +Invoke-ADTAllUsersRegistryAction [-ScriptBlock] [-UserProfiles ] + [-SkipUnloadedProfiles] [-WhatIf] [-Confirm] [] +``` + +## DESCRIPTION + +Set HKCU registry settings for all current and future users by loading their NTUSER.dat registry hive file, and making the modifications. + +This function will modify HKCU settings for all users even when executed under the SYSTEM account and can be used as an alternative to using ActiveSetup for registry settings. + +To ensure new users in the future get the registry edits, the Default User registry hive used to provision the registry for new users is modified. + +The advantage of using this function over ActiveSetup is that a user does not have to log off and log back on before the changes take effect. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +Invoke-ADTAllUsersRegistryAction -ScriptBlock { + Set-ADTRegistryKey -SID $_.SID -LiteralPath 'HKCU\Software\Microsoft\Office\14.0\Common' -Name 'qmenable' -Value 0 -Type DWord + Set-ADTRegistryKey -SID $_.SID -LiteralPath 'HKCU\Software\Microsoft\Office\14.0\Common' -Name 'updatereliabilitydata' -Value 1 -Type DWord +} +``` + + +Example demonstrating the setting of two values within each user's HKEY_CURRENT_USER hive. + +### EXAMPLE 2 + +```powershell +Invoke-ADTAllUsersRegistryAction { + Set-ADTRegistryKey -SID $_.SID -LiteralPath 'HKCU\Software\Microsoft\Office\14.0\Common' -Name 'qmenable' -Value 0 -Type DWord + Set-ADTRegistryKey -SID $_.SID -LiteralPath 'HKCU\Software\Microsoft\Office\14.0\Common' -Name 'updatereliabilitydata' -Value 1 -Type DWord +} +``` + + +As the previous example, but showing how to use ScriptBlock as a positional parameter with no name specified. + +### EXAMPLE 3 + +```powershell +Invoke-ADTAllUsersRegistryAction -UserProfiles (Get-ADTUserProfiles -ExcludeDefaultUser) -ScriptBlock { + Set-ADTRegistryKey -SID $_.SID -LiteralPath 'HKCU\Software\Microsoft\Office\14.0\Common' -Name 'qmenable' -Value 0 -Type DWord + Set-ADTRegistryKey -SID $_.SID -LiteralPath 'HKCU\Software\Microsoft\Office\14.0\Common' -Name 'updatereliabilitydata' -Value 1 -Type DWord +} +``` + + +As the previous example, but sending specific user profiles through to exclude the Default profile. + +## PARAMETERS + +### -ScriptBlock + +Script block which contains HKCU registry actions to be run for all users on the system. + +```yaml +Type: ScriptBlock[] +Parameter Sets: (All) +Aliases: + +Required: True +Position: 1 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -UserProfiles + +Specify the user profiles to modify HKCU registry settings for. +Default is all user profiles except for system profiles. + +```yaml +Type: UserProfileInfo[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SkipUnloadedProfiles + +Specifies that unloaded registry hives should be skipped and not be loaded by the function. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf + +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm + +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### None + +### You cannot pipe objects to this function. +## OUTPUTS + +### None + +### This function does not generate any output. +## NOTES +An active ADT session is NOT required to use this function. + +This function supports the -WhatIf and -Confirm parameters for testing changes before applying them. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/Invoke-ADTAllUsersRegistryAction](https://psappdeploytoolkit.com/docs/reference/functions/Invoke-ADTAllUsersRegistryAction) diff --git a/versioned_docs/version-4.1.x/reference/functions/Invoke-ADTCommandWithRetries.mdx b/versioned_docs/version-4.1.x/reference/functions/Invoke-ADTCommandWithRetries.mdx new file mode 100644 index 0000000..3ad34a6 --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Invoke-ADTCommandWithRetries.mdx @@ -0,0 +1,182 @@ +--- +id: Invoke-ADTCommandWithRetries +title: Invoke-ADTCommandWithRetries +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Drop-in replacement for any cmdlet/function where a retry is desirable due to transient issues. + +## SYNTAX + +```powershell +Invoke-ADTCommandWithRetries [-Command] [-Retries ] [-SleepDuration ] + [-MaximumElapsedTime ] [-Parameters ] + [] +``` + +## DESCRIPTION + +This function invokes the specified cmdlet/function, accepting all of its parameters but retries an operation for the configured value before throwing. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +Invoke-ADTCommandWithRetries -Command Invoke-WebRequest -Uri https://aka.ms/getwinget -OutFile "$($adtSession.DirSupportFiles)\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle" +``` + +Downloads the latest WinGet installer to the SupportFiles directory. +If the command fails, it will retry 3 times with 5 seconds between each attempt. + +### EXAMPLE 2 + +```powershell +Invoke-ADTCommandWithRetries Get-FileHash -Path '\\MyShare\MyFile' -MaximumElapsedTime (New-TimeSpan -Seconds 90) -SleepDuration 00:00:01 +``` + +Gets the hash of a file on an SMB share. +If the connection to the SMB share drops, it will retry the command every 2 seconds until it successfully gets the hash or 90 seconds have passed since the initial attempt. + +### EXAMPLE 3 + +```powershell +Invoke-ADTCommandWithRetries Get-FileHash -Path '\\MyShare\MyFile' -MaximumElapsedTime (New-TimeSpan -Seconds 90) -SleepDuration (New-TimeSpan -Seconds 1) +``` + +Gets the hash of a file on an SMB share. +If the connection to the SMB share drops, it will retry the command every 2 seconds until it successfully gets the hash or 90 seconds have passed since the initial attempt. + +### EXAMPLE 4 + +```powershell +Invoke-ADTCommandWithRetries Copy-ADTFile -Path '\\MyShare\MyFile' -Destination 'C:\Windows\Temp' -Retries 5 -MaximumElapsedTime 00:00:05 +``` + +Copies a file from an SMB share to C:\Windows\Temp. +If the connection to the SMB share drops, it will retry the command once every 5 seconds until either 5 attempts have been made or 5 minutes have passed since the initial attempt. + +### EXAMPLE 5 + +```powershell +Invoke-ADTCommandWithRetries Copy-ADTFile -Path '\\MyShare\MyFile' -Destination 'C:\Windows\Temp' -Retries 5 -MaximumElapsedTime (New-TimeSpan -Minutes 5) +``` + +Copies a file from an SMB share to C:\Windows\Temp. +If the connection to the SMB share drops, it will retry the command once every 5 seconds until either 5 attempts have been made or 5 minutes have passed since the initial attempt. + +## PARAMETERS + +### -Command + +The name of the command to invoke. + +```yaml +Type: Object +Parameter Sets: (All) +Aliases: + +Required: True +Position: 1 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Retries + +How many retries to perform before throwing. + +```yaml +Type: UInt32 +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: 3 +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SleepDuration + +How long to sleep between retries. + +```yaml +Type: TimeSpan +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: [System.TimeSpan]::FromSeconds(5) +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -MaximumElapsedTime + +The maximum elapsed time allowed to passed while attempting retries. +If the maximum elapsted time has passed and there are still attempts remaining they will be disgarded. + +If this parameter is supplied and the `-Retries` parameter isn't, this command will continue to retry the provided command until the time limit runs out. + +```yaml +Type: TimeSpan +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Parameters + +A 'ValueFromRemainingArguments' parameter to collect the parameters as would be passed to the provided Command. + +While values can be directly provided to this parameter, it's not designed to be explicitly called. + +```yaml +Type: System.Collections.Generic.IReadOnlyList`1[System.Object] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### None + +### You cannot pipe objects to this function. +## OUTPUTS + +### System.Object + +### Invoke-ADTCommandWithRetries returns the output of the invoked command. +## NOTES +An active ADT session is NOT required to use this function. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/Invoke-ADTCommandWithRetries](https://psappdeploytoolkit.com/docs/reference/functions/Invoke-ADTCommandWithRetries) diff --git a/versioned_docs/version-4.1.x/reference/functions/Invoke-ADTFunctionErrorHandler.mdx b/versioned_docs/version-4.1.x/reference/functions/Invoke-ADTFunctionErrorHandler.mdx new file mode 100644 index 0000000..56793f6 --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Invoke-ADTFunctionErrorHandler.mdx @@ -0,0 +1,228 @@ +--- +id: Invoke-ADTFunctionErrorHandler +title: Invoke-ADTFunctionErrorHandler +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Handles errors within ADT functions by logging and optionally passing through the error. + +## SYNTAX + +### None (Default) + +```powershell +Invoke-ADTFunctionErrorHandler -Cmdlet -SessionState -ErrorRecord + [-LogMessage ] [] +``` + +### DisableErrorResolving + +```powershell +Invoke-ADTFunctionErrorHandler -Cmdlet -SessionState -ErrorRecord + [-LogMessage ] [-DisableErrorResolving] [] +``` + +### AdditionalResolveErrorProperties + +```powershell +Invoke-ADTFunctionErrorHandler -Cmdlet -SessionState -ErrorRecord + [-LogMessage ] -AdditionalResolveErrorProperties [] +``` + +### ResolveErrorProperties + +```powershell +Invoke-ADTFunctionErrorHandler -Cmdlet -SessionState -ErrorRecord + [-LogMessage ] -ResolveErrorProperties [] +``` + +### Silent + +```powershell +Invoke-ADTFunctionErrorHandler -Cmdlet -SessionState -ErrorRecord + [-Silent] [] +``` + +## DESCRIPTION + +This function handles errors within ADT functions by logging the error message and optionally passing through the error record. +It recovers the true ErrorActionPreference set by the caller and sets it within the function. +If a log message is provided, it appends the resolved error record to the log message. +Depending on the ErrorActionPreference, it either throws a terminating error or writes a non-terminating error. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +Invoke-ADTFunctionErrorHandler -Cmdlet $PSCmdlet -SessionState $ExecutionContext.SessionState -ErrorRecord $_ +``` + +Handles the error within the calling cmdlet and logs it. + +### EXAMPLE 2 + +```powershell +Invoke-ADTFunctionErrorHandler -Cmdlet $PSCmdlet -SessionState $ExecutionContext.SessionState -ErrorRecord $_ -LogMessage "An error occurred" -DisableErrorResolving +``` + +Handles the error within the calling cmdlet, logs a custom message without resolving the error record, and logs it. + +## PARAMETERS + +### -Cmdlet + +The cmdlet that is calling this function. + +```yaml +Type: PSCmdlet +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SessionState + +The session state of the calling cmdlet. + +```yaml +Type: SessionState +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ErrorRecord + +The error record to handle. + +```yaml +Type: ErrorRecord +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -LogMessage + +The error message to write to the active ADTSession's log file. + +```yaml +Type: String +Parameter Sets: None, DisableErrorResolving, AdditionalResolveErrorProperties, ResolveErrorProperties +Aliases: + +Required: False +Position: Named +Default value: [System.Management.Automation.Language.NullString]::Value +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResolveErrorProperties + +If specified, the specific ErrorRecord properties to print during resolution. + +```yaml +Type: String[] +Parameter Sets: ResolveErrorProperties +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: True +``` + +### -AdditionalResolveErrorProperties + +If specified, a list of additional ErrorRecord properties to print during resolution. + +```yaml +Type: String[] +Parameter Sets: AdditionalResolveErrorProperties +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DisableErrorResolving + +If specified, the function will not append the resolved error record to the log message. + +```yaml +Type: SwitchParameter +Parameter Sets: DisableErrorResolving +Aliases: + +Required: True +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Silent + +If specified, doesn't write anything to the log and just handles the ErrorRecord itself. + +```yaml +Type: SwitchParameter +Parameter Sets: Silent +Aliases: + +Required: True +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### None + +### You cannot pipe objects to this function. +## OUTPUTS + +### None + +### This function does not return any output. +## NOTES +An active ADT session is NOT required to use this function. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/Invoke-ADTFunctionErrorHandler](https://psappdeploytoolkit.com/docs/reference/functions/Invoke-ADTFunctionErrorHandler) diff --git a/versioned_docs/version-4.1.x/reference/functions/Invoke-ADTObjectMethod.mdx b/versioned_docs/version-4.1.x/reference/functions/Invoke-ADTObjectMethod.mdx new file mode 100644 index 0000000..ff70c66 --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Invoke-ADTObjectMethod.mdx @@ -0,0 +1,146 @@ +--- +id: Invoke-ADTObjectMethod +title: Invoke-ADTObjectMethod +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Invoke method on any object. + +## SYNTAX + +### Positional (Default) + +```powershell +Invoke-ADTObjectMethod [-InputObject] [-MethodName] [[-ArgumentList] ] + [] +``` + +### Named + +```powershell +Invoke-ADTObjectMethod [-InputObject] [-MethodName] [-Parameter] + [] +``` + +## DESCRIPTION + +Invoke method on any object with or without using named parameters. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +$ShellApp = New-Object -ComObject 'Shell.Application' +$null = Invoke-ADTObjectMethod -InputObject $ShellApp -MethodName 'MinimizeAll' +``` + + +Minimizes all windows. + +### EXAMPLE 2 + +```powershell +$ShellApp = New-Object -ComObject 'Shell.Application' +$null = Invoke-ADTObjectMethod -InputObject $ShellApp -MethodName 'Explore' -Parameter @{'vDir'='C:\Windows'} +``` + + +Opens the C:\Windows folder in a Windows Explorer window. + +## PARAMETERS + +### -InputObject + +Specifies an object which has methods that can be invoked. + +```yaml +Type: Object +Parameter Sets: (All) +Aliases: + +Required: True +Position: 1 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -MethodName + +Specifies the name of a method to invoke. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: True +Position: 2 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ArgumentList + +Argument to pass to the method being executed. +Allows execution of method without specifying named parameters. + +```yaml +Type: Object[] +Parameter Sets: Positional +Aliases: + +Required: False +Position: 3 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Parameter + +Argument to pass to the method being executed. +Allows execution of method by using named parameters. + +```yaml +Type: Hashtable +Parameter Sets: Named +Aliases: + +Required: True +Position: 3 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### None + +### You cannot pipe objects to this function. +## OUTPUTS + +### System.Object + +### The object returned by the method being invoked. +## NOTES +An active ADT session is NOT required to use this function. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/Invoke-ADTObjectMethod](https://psappdeploytoolkit.com/docs/reference/functions/Invoke-ADTObjectMethod) diff --git a/versioned_docs/version-4.1.x/reference/functions/Invoke-ADTRegSvr32.mdx b/versioned_docs/version-4.1.x/reference/functions/Invoke-ADTRegSvr32.mdx new file mode 100644 index 0000000..929f277 --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Invoke-ADTRegSvr32.mdx @@ -0,0 +1,135 @@ +--- +id: Invoke-ADTRegSvr32 +title: Invoke-ADTRegSvr32 +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Register or unregister a DLL file. + +## SYNTAX + +```powershell +Invoke-ADTRegSvr32 [-FilePath] [-Action] [-WhatIf] [-Confirm] [] +``` + +## DESCRIPTION + +Register or unregister a DLL file using regsvr32.exe. +This function determines the bitness of the DLL file and uses the appropriate version of regsvr32.exe to perform the action. +It supports both 32-bit and 64-bit DLL files on corresponding operating systems. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +Invoke-ADTRegSvr32 -FilePath "C:\Test\DcTLSFileToDMSComp.dll" -Action 'Register' +``` + +Registers the specified DLL file. + +### EXAMPLE 2 + +```powershell +Invoke-ADTRegSvr32 -FilePath "C:\Test\DcTLSFileToDMSComp.dll" -Action 'Unregister' +``` + +Unregisters the specified DLL file. + +## PARAMETERS + +### -FilePath + +Path to the DLL file. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: True +Position: 1 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Action + +Specify whether to register or unregister the DLL. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: True +Position: 2 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf + +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm + +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### None + +### You cannot pipe objects to this function. +## OUTPUTS + +### None + +### This function does not return objects. +## NOTES +An active ADT session is NOT required to use this function. + +This function supports the -WhatIf and -Confirm parameters for testing changes before applying them. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/Invoke-ADTRegSvr32](https://psappdeploytoolkit.com/docs/reference/functions/Invoke-ADTRegSvr32) diff --git a/versioned_docs/version-4.1.x/reference/functions/Invoke-ADTSCCMTask.mdx b/versioned_docs/version-4.1.x/reference/functions/Invoke-ADTSCCMTask.mdx new file mode 100644 index 0000000..6039d02 --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Invoke-ADTSCCMTask.mdx @@ -0,0 +1,119 @@ +--- +id: Invoke-ADTSCCMTask +title: Invoke-ADTSCCMTask +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Triggers SCCM to invoke the requested schedule task ID. + +## SYNTAX + +```powershell +Invoke-ADTSCCMTask [-ScheduleId] [-WhatIf] [-Confirm] [] +``` + +## DESCRIPTION + +Triggers SCCM to invoke the requested schedule task ID. +This function supports a variety of Schedule Id values as defined via https://learn.microsoft.com/en-us/intune/configmgr/develop/reference/core/clients/client-classes/triggerschedule-method-in-class-sms_client. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +Invoke-ADTSCCMTask -ScheduleId 'SoftwareUpdatesScan' +``` + +Triggers the 'SoftwareUpdatesScan' schedule task in SCCM. + +### EXAMPLE 2 + +```powershell +Invoke-ADTSCCMTask -ScheduleId 'HardwareInventory' +``` + +Triggers the 'HardwareInventory' schedule task in SCCM. + +## PARAMETERS + +### -ScheduleId + +Name of the Schedule Id to trigger. + +```yaml +Type: TriggerScheduleId +Parameter Sets: (All) +Aliases: +Accepted values: HardwareInventory, SoftwareInventory, HeartbeatDiscovery, SoftwareInventoryFileCollection, IDMIFCollection, ClientMachineAuthentication, RequestMachinePolicy, EvaluateMachinePolicy, RefreshDefaultMp, RefreshLocationServices, LocationServicesCleanup, PolicyAgentRequestAssignment, PolicyAgentEvaluateAssignment, SoftwareMeteringReport, SourceUpdate, ClearProxySettingsCache, PolicyAgentCleanup, UserPolicyAgentCleanup, PolicyAgentValidateMachinePolicy, PolicyAgentValidateUserPolicy, CertificateMaintenance, PeerDistributionPointStatus, PeerDistributionPointProvisioning, SUMUpdatesInstallSchedule, HardwareInventoryCollectionCycle, SoftwareInventoryCollectionCycle, DiscoveryDataCollectionCycle, FileCollectionCycle, IDMIFCollectionCycle, SoftwareMeteringUsageReportCycle, WindowsInstallerSourceListUpdateCycle, SoftwareUpdatesAgentAssignmentEvaluation, BranchDistributionPointMaintenanceTask, UploadStateMessage, StateMessageManager, SoftwareUpdatesScan, UpdateStorePolicy, StateSystemPolicyBulkSendHigh, StateSystemPolicyBulkSendLow, ApplicationManagerPolicyAction, ApplicationManagerUserPolicyAction, ApplicationManagerGlobalEvaluationAction, PowerManagementStartSummarizer, EndpointDeploymentReevaluate, EndpointAMPolicyReevaluate, ExternalEventDetection + +Required: True +Position: 1 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf + +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm + +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### None + +### You cannot pipe objects to this function. +## OUTPUTS + +### None + +### This function does not return any objects. +## NOTES +An active ADT session is NOT required to use this function. + +This function supports the -WhatIf and -Confirm parameters for testing changes before applying them. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/Invoke-ADTSCCMTask](https://psappdeploytoolkit.com/docs/reference/functions/Invoke-ADTSCCMTask) diff --git a/versioned_docs/version-4.1.x/reference/functions/Mount-ADTWimFile.mdx b/versioned_docs/version-4.1.x/reference/functions/Mount-ADTWimFile.mdx new file mode 100644 index 0000000..49d9138 --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Mount-ADTWimFile.mdx @@ -0,0 +1,218 @@ +--- +id: Mount-ADTWimFile +title: Mount-ADTWimFile +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Mounts a WIM file to a specified directory. + +## SYNTAX + +### Name + +```powershell +Mount-ADTWimFile -ImagePath -Path -Name [-Force] [-PassThru] [-WhatIf] + [-Confirm] [] +``` + +### Index + +```powershell +Mount-ADTWimFile -ImagePath -Path -Index [-Force] [-PassThru] [-WhatIf] + [-Confirm] [] +``` + +## DESCRIPTION + +Mounts a WIM file to a specified directory. +The function supports mounting by image index or image name. +It also provides options to forcefully remove existing directories and return the mounted image details. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +Mount-ADTWimFile -ImagePath 'C:\Images\install.wim' -Path 'C:\Mount' -Index 1 +``` + +Mounts the first image in the 'install.wim' file to the 'C:\Mount' directory, creating the directory if it does not exist. + +### EXAMPLE 2 + +```powershell +Mount-ADTWimFile -ImagePath 'C:\Images\install.wim' -Path 'C:\Mount' -Name 'Windows 10 Pro' +``` + +Mounts the image named 'Windows 10 Pro' in the 'install.wim' file to the 'C:\Mount' directory, creating the directory if it does not exist. + +### EXAMPLE 3 + +```powershell +Mount-ADTWimFile -ImagePath 'C:\Images\install.wim' -Path 'C:\Mount' -Index 1 -Force +``` + +Mounts the first image in the 'install.wim' file to the 'C:\Mount' directory, forcefully removing the existing directory if it is not empty. + +## PARAMETERS + +### -ImagePath + +Path to the WIM file to be mounted. + +```yaml +Type: FileInfo +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Path + +Directory where the WIM file will be mounted. +The directory either must not exist, or must be empty and not have a pre-existing WIM mounted. + +```yaml +Type: DirectoryInfo +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Index + +Index of the image within the WIM file to be mounted. + +```yaml +Type: UInt32 +Parameter Sets: Index +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Name + +Name of the image within the WIM file to be mounted. + +```yaml +Type: String +Parameter Sets: Name +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Force + +Forces the removal of the existing directory if it is not empty. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PassThru + +If specified, the function will return the results from `Mount-WindowsImage`. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf + +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm + +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### None + +### You cannot pipe objects to this function. +## OUTPUTS + +### Microsoft.Dism.Commands.ImageObject + +### Returns the mounted image details if the PassThru parameter is specified. +## NOTES +An active ADT session is NOT required to use this function. + +This function supports the -WhatIf and -Confirm parameters for testing changes before applying them. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/Mount-ADTWimFile](https://psappdeploytoolkit.com/docs/reference/functions/Mount-ADTWimFile) diff --git a/versioned_docs/version-4.1.x/reference/functions/New-ADTErrorRecord.mdx b/versioned_docs/version-4.1.x/reference/functions/New-ADTErrorRecord.mdx new file mode 100644 index 0000000..d8f5212 --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/New-ADTErrorRecord.mdx @@ -0,0 +1,210 @@ +--- +id: New-ADTErrorRecord +title: New-ADTErrorRecord +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Creates a new ErrorRecord object. + +## SYNTAX + +```powershell +New-ADTErrorRecord [-Exception] [-Category] [[-ErrorId] ] + [[-TargetObject] ] [[-TargetName] ] [[-TargetType] ] [[-Activity] ] + [[-Reason] ] [[-RecommendedAction] ] [] +``` + +## DESCRIPTION + +This function creates a new ErrorRecord object with the specified exception, error category, and optional parameters. +It allows for detailed error information to be captured and returned to the caller, who can then throw the error. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +$exception = [System.Exception]::new("An error occurred.") +$category = [System.Management.Automation.ErrorCategory]::NotSpecified +New-ADTErrorRecord -Exception $exception -Category $category -ErrorId "CustomErrorId" -TargetObject $null -TargetName "TargetName" -TargetType "TargetType" -Activity "Activity" -Reason "Reason" -RecommendedAction "RecommendedAction" +``` + + +Creates a new ErrorRecord object with the specified parameters. + +## PARAMETERS + +### -Exception + +The exception object that caused the error. + +```yaml +Type: Exception +Parameter Sets: (All) +Aliases: + +Required: True +Position: 1 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Category + +The category of the error. + +```yaml +Type: ErrorCategory +Parameter Sets: (All) +Aliases: +Accepted values: NotSpecified, OpenError, CloseError, DeviceError, DeadlockDetected, InvalidArgument, InvalidData, InvalidOperation, InvalidResult, InvalidType, MetadataError, NotImplemented, NotInstalled, ObjectNotFound, OperationStopped, OperationTimeout, SyntaxError, ParserError, PermissionDenied, ResourceBusy, ResourceExists, ResourceUnavailable, ReadError, WriteError, FromStdErr, SecurityError, ProtocolError, ConnectionError, AuthenticationError, LimitsExceeded, QuotaExceeded, NotEnabled + +Required: True +Position: 2 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ErrorId + +The identifier for the error. +Default is 'NotSpecified'. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: False +Position: 3 +Default value: NotSpecified +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -TargetObject + +The target object that the error is related to. + +```yaml +Type: Object +Parameter Sets: (All) +Aliases: + +Required: False +Position: 4 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -TargetName + +The name of the target that the error is related to. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: False +Position: 5 +Default value: [System.Management.Automation.Language.NullString]::Value +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -TargetType + +The type of the target that the error is related to. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: False +Position: 6 +Default value: [System.Management.Automation.Language.NullString]::Value +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Activity + +The activity that was being performed when the error occurred. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: False +Position: 7 +Default value: [System.Management.Automation.Language.NullString]::Value +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Reason + +The reason for the error. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: False +Position: 8 +Default value: [System.Management.Automation.Language.NullString]::Value +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -RecommendedAction + +The recommended action to resolve the error. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: False +Position: 9 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### None + +### You cannot pipe objects to this function. +## OUTPUTS + +### System.Management.Automation.ErrorRecord + +### This function returns an ErrorRecord object. +## NOTES +An active ADT session is NOT required to use this function. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/New-ADTErrorRecord](https://psappdeploytoolkit.com/docs/reference/functions/New-ADTErrorRecord) diff --git a/versioned_docs/version-4.1.x/reference/functions/New-ADTFolder.mdx b/versioned_docs/version-4.1.x/reference/functions/New-ADTFolder.mdx new file mode 100644 index 0000000..2813db0 --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/New-ADTFolder.mdx @@ -0,0 +1,111 @@ +--- +id: New-ADTFolder +title: New-ADTFolder +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Create a new folder. + +## SYNTAX + +```powershell +New-ADTFolder [-LiteralPath] [-WhatIf] [-Confirm] [] +``` + +## DESCRIPTION + +Create a new folder if it does not exist. +This function checks if the specified path already exists and creates the folder if it does not. +It logs the creation process and handles any errors that may occur during the folder creation. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +New-ADTFolder -LiteralPath "$env:WinDir\System32" +``` + +Creates a new folder at the specified path if it does not already exist. + +## PARAMETERS + +### -LiteralPath + +Path to the new folder to create. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: Path, PSPath + +Required: True +Position: 1 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf + +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm + +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### None + +### You cannot pipe objects to this function. +## OUTPUTS + +### None + +### This function does not generate any output. +## NOTES +An active ADT session is NOT required to use this function. + +This function supports the -WhatIf and -Confirm parameters for testing changes before applying them. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/New-ADTFolder](https://psappdeploytoolkit.com/docs/reference/functions/New-ADTFolder) diff --git a/versioned_docs/version-4.1.x/reference/functions/New-ADTLogFileName.mdx b/versioned_docs/version-4.1.x/reference/functions/New-ADTLogFileName.mdx new file mode 100644 index 0000000..1a8b587 --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/New-ADTLogFileName.mdx @@ -0,0 +1,92 @@ +--- +id: New-ADTLogFileName +title: New-ADTLogFileName +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Generates a new log file name based off the current deployment session's properties. + +## SYNTAX + +```powershell +New-ADTLogFileName [-Discriminator] [-FileNameOnly] [] +``` + +## DESCRIPTION + +Generates a new log file name based off the current deployment session's properties, using the same default format that PSAppDeployTookit uses itself. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +New-ADTLogFileName -Discriminator Setup +``` + +This example returns a pre-formatted string that can be used as a log file name. + +## PARAMETERS + +### -Discriminator + +The identifier to pre-format the log file name with. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: True +Position: 1 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -FileNameOnly + +If specified, just returns a log file name without and preceeding path. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### None + +### You cannot pipe objects to this function. +## OUTPUTS + +### System.String + +### Returns a pre-formatted string with the specified discriminator. +## NOTES +An active ADT session is required to use this function. + +Requires: PSADT session should be initialized using Open-ADTSession + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/New-ADTLogFileName](https://psappdeploytoolkit.com/docs/reference/functions/New-ADTLogFileName) diff --git a/versioned_docs/version-4.1.x/reference/functions/New-ADTMsiTransform.mdx b/versioned_docs/version-4.1.x/reference/functions/New-ADTMsiTransform.mdx new file mode 100644 index 0000000..f2e969c --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/New-ADTMsiTransform.mdx @@ -0,0 +1,135 @@ +--- +id: New-ADTMsiTransform +title: New-ADTMsiTransform +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Create a transform file for an MSI database. + +## SYNTAX + +```powershell +New-ADTMsiTransform [-MsiPath] [[-ApplyTransformPath] ] [[-NewTransformPath] ] + [-TransformProperties] [] +``` + +## DESCRIPTION + +Create a transform file for an MSI database and create/modify properties in the Properties table. +This function allows you to specify an existing transform to apply before making changes and to define the path for the new transform file. +If the new transform file already exists, it will be deleted before creating a new one. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +New-ADTMsiTransform -MsiPath 'C:\Temp\PSADTInstall.msi' -TransformProperties @{ + ALLUSERS = 1 + AgreeToLicense = 'Yes' + REBOOT = 'ReallySuppress' + RebootYesNo = 'No' + ROOTDRIVE = 'C:' +} +``` + + +Creates a new transform file for the specified MSI with the given properties. + +## PARAMETERS + +### -MsiPath + +Specify the path to an MSI file. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: True +Position: 1 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ApplyTransformPath + +Specify the path to a transform which should be applied to the MSI database before any new properties are created or modified. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: False +Position: 2 +Default value: [System.Management.Automation.Language.NullString]::Value +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -NewTransformPath + +Specify the path where the new transform file with the desired properties will be created. +If a transform file of the same name already exists, it will be deleted before a new one is created. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: False +Position: 3 +Default value: If `-ApplyTransformPath` was specified: `.new.mst`; If only `-MsiPath` was specified: `.mst` +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -TransformProperties + +Hashtable which contains calls to `Set-ADTMsiProperty` for configuring the desired properties which should be included in the new transform file. + +Example hashtable: `@{ ALLUSERS = 1 }` + +```yaml +Type: Hashtable +Parameter Sets: (All) +Aliases: + +Required: True +Position: 4 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### None + +### You cannot pipe objects to this function. +## OUTPUTS + +### None + +### This function does not generate any output. +## NOTES +An active ADT session is NOT required to use this function. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/New-ADTMsiTransform](https://psappdeploytoolkit.com/docs/reference/functions/New-ADTMsiTransform) diff --git a/versioned_docs/version-4.1.x/reference/functions/New-ADTShortcut.mdx b/versioned_docs/version-4.1.x/reference/functions/New-ADTShortcut.mdx new file mode 100644 index 0000000..0f08cf4 --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/New-ADTShortcut.mdx @@ -0,0 +1,265 @@ +--- +id: New-ADTShortcut +title: New-ADTShortcut +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Creates a new .lnk or .url type shortcut. + +## SYNTAX + +```powershell +New-ADTShortcut [-LiteralPath] -TargetPath [-Arguments ] [-IconLocation ] + [-IconIndex ] [-Description ] [-WorkingDirectory ] [-WindowStyle ] + [-RunAsAdmin] [-Hotkey ] [-WhatIf] [-Confirm] [] +``` + +## DESCRIPTION + +Creates a new shortcut .lnk or .url file, with configurable options. +This function allows you to specify various parameters such as the target path, arguments, icon location, description, working directory, window style, run as administrator, and hotkey. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +New-ADTShortcut -LiteralPath "$envCommonStartMenuPrograms\My Shortcut.lnk" -TargetPath "$envWinDir\notepad.exe" -IconLocation "$envWinDir\notepad.exe" -Description 'Notepad' -WorkingDirectory '%HOMEDRIVE%\%HOMEPATH%' +``` + +Creates a new shortcut for Notepad with the specified parameters. + +## PARAMETERS + +### -LiteralPath + +Path to save the shortcut. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: Path, PSPath + +Required: True +Position: 1 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -TargetPath + +Target path or URL that the shortcut launches. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Arguments + +Arguments to be passed to the target path. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: [System.Management.Automation.Language.NullString]::Value +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -IconLocation + +Location of the icon used for the shortcut. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: [System.Management.Automation.Language.NullString]::Value +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -IconIndex + +The index of the icon. +Executables, DLLs, ICO files with multiple icons need the icon index to be specified. +This parameter is an Integer. +The first index is 0. + +```yaml +Type: UInt32 +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Description + +Description of the shortcut. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: [System.Management.Automation.Language.NullString]::Value +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WorkingDirectory + +Working Directory to be used for the target path. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: [System.Management.Automation.Language.NullString]::Value +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WindowStyle + +Windows style of the application. +Options: Normal, Maximized, Minimized. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: Normal +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -RunAsAdmin + +Set shortcut to run program as administrator. +This option will prompt user to elevate when executing shortcut. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Hotkey + +Create a Hotkey to launch the shortcut, e.g. +"CTRL+SHIFT+F". + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf + +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm + +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### None + +### You cannot pipe objects to this function. +## OUTPUTS + +### None + +### This function does not return any output. +## NOTES +An active ADT session is NOT required to use this function. + +Url shortcuts only support TargetPath, IconLocation and IconIndex. +Other parameters are ignored. + +This function supports the -WhatIf and -Confirm parameters for testing changes before applying them. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/New-ADTShortcut](https://psappdeploytoolkit.com/docs/reference/functions/New-ADTShortcut) diff --git a/versioned_docs/version-4.1.x/reference/functions/New-ADTTemplate.mdx b/versioned_docs/version-4.1.x/reference/functions/New-ADTTemplate.mdx new file mode 100644 index 0000000..9c28088 --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/New-ADTTemplate.mdx @@ -0,0 +1,167 @@ +--- +id: New-ADTTemplate +title: New-ADTTemplate +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Creates a new folder containing a template front end and module folder, ready to customise. + +## SYNTAX + +```powershell +New-ADTTemplate [[-Destination] ] [[-Name] ] [[-Version] ] [-Show] [-Force] [-PassThru] + [] +``` + +## DESCRIPTION + +Specify a destination path where a new folder will be created. +You also have the option of creating a template for v3 compatibility mode. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +New-ADTTemplate -Destination 'C:\Temp' -Name 'PSAppDeployToolkitv4' +``` + +Creates a new v4 template named PSAppDeployToolkitv4 under C:\Temp. + +### EXAMPLE 2 + +```powershell +New-ADTTemplate -Destination 'C:\Temp' -Name 'PSAppDeployToolkitv3' -Version 3 +``` + +Creates a new v3 compatibility mode template named PSAppDeployToolkitv3 under C:\Temp. + +## PARAMETERS + +### -Destination + +Path where the new folder should be created. +Default is the current working directory. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: False +Position: 1 +Default value: $ExecutionContext.SessionState.Path.CurrentLocation.Path +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Name + +Name of the newly created folder. +Default is PSAppDeployToolkit_Version. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: False +Position: 2 +Default value: PSAppDeployToolkit_ +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Version + +Defaults to 4 for the standard v4 template. +Use 3 for the v3 compatibility mode template. + +```yaml +Type: Int32 +Parameter Sets: (All) +Aliases: + +Required: False +Position: 3 +Default value: 4 +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Show + +Opens the newly created folder in Windows Explorer. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Force + +If the destination folder already exists, this switch will force the creation of the new folder. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PassThru + +Returns the newly created folder object. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### None + +### You cannot pipe objects to this function. +## OUTPUTS + +### None + +### This function does not generate any output. +## NOTES +An active ADT session is NOT required to use this function. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/New-ADTTemplate](https://psappdeploytoolkit.com/docs/reference/functions/New-ADTTemplate) diff --git a/versioned_docs/version-4.1.x/reference/functions/New-ADTValidateScriptErrorRecord.mdx b/versioned_docs/version-4.1.x/reference/functions/New-ADTValidateScriptErrorRecord.mdx new file mode 100644 index 0000000..bc5889a --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/New-ADTValidateScriptErrorRecord.mdx @@ -0,0 +1,129 @@ +--- +id: New-ADTValidateScriptErrorRecord +title: New-ADTValidateScriptErrorRecord +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Creates a new ErrorRecord for script validation errors. + +## SYNTAX + +```powershell +New-ADTValidateScriptErrorRecord [-ParameterName] [-ProvidedValue] + [-ExceptionMessage] [[-InnerException] ] [] +``` + +## DESCRIPTION + +This function creates a new ErrorRecord object for script validation errors. +It takes the parameter name, provided value, exception message, and an optional inner exception to build a detailed error record. +This helps in identifying and handling invalid parameter values in scripts. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +$paramName = "FilePath" +$providedValue = "C:\InvalidPath" +$exceptionMessage = "The specified path does not exist." +New-ADTValidateScriptErrorRecord -ParameterName $paramName -ProvidedValue $providedValue -ExceptionMessage $exceptionMessage +``` + + +Creates a new ErrorRecord for a validation error with the specified parameters. + +## PARAMETERS + +### -ParameterName + +The name of the parameter that caused the validation error. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: True +Position: 1 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ProvidedValue + +The value provided for the parameter that caused the validation error. + +```yaml +Type: Object +Parameter Sets: (All) +Aliases: + +Required: True +Position: 2 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ExceptionMessage + +The message describing the validation error. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: True +Position: 3 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InnerException + +An optional inner exception that provides more details about the validation error. + +```yaml +Type: Exception +Parameter Sets: (All) +Aliases: + +Required: False +Position: 4 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### None + +### You cannot pipe objects to this function. +## OUTPUTS + +### System.Management.Automation.ErrorRecord + +### This function returns an ErrorRecord object. +## NOTES +An active ADT session is NOT required to use this function. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/New-ADTValidateScriptErrorRecord](https://psappdeploytoolkit.com/docs/reference/functions/New-ADTValidateScriptErrorRecord) diff --git a/versioned_docs/version-4.1.x/reference/functions/New-ADTZipFile.mdx b/versioned_docs/version-4.1.x/reference/functions/New-ADTZipFile.mdx new file mode 100644 index 0000000..a9e31bd --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/New-ADTZipFile.mdx @@ -0,0 +1,214 @@ +--- +id: New-ADTZipFile +title: New-ADTZipFile +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Create a new zip archive or add content to an existing archive. + +## SYNTAX + +### Path + +```powershell +New-ADTZipFile -Path -DestinationPath [-CompressionLevel ] [-Update] [-Force] + [-RemoveSourceAfterArchiving] [-WhatIf] [-Confirm] [] +``` + +### LiteralPath + +```powershell +New-ADTZipFile -LiteralPath -DestinationPath [-CompressionLevel ] [-Update] + [-Force] [-RemoveSourceAfterArchiving] [-WhatIf] [-Confirm] [] +``` + +## DESCRIPTION + +Create a new zip archive or add content to an existing archive by using PowerShell's Compress-Archive. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +New-ADTZipFile -SourceDirectory 'E:\Testing\Logs' -DestinationPath 'E:\Testing\TestingLogs.zip' +``` + +## PARAMETERS + +### -Path + +One or more paths to compress. +Supports wildcards. + +```yaml +Type: String[] +Parameter Sets: Path +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: True +``` + +### -LiteralPath + +One or more literal paths to compress. + +```yaml +Type: String[] +Parameter Sets: LiteralPath +Aliases: PSPath + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DestinationPath + +The file path for where the zip file should be created. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -CompressionLevel + +The level of compression to apply to the zip file. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: [System.Management.Automation.Language.NullString]::Value +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Update + +Specifies whether to update an existing zip file or not. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Force + +Specifies whether an existing zip file should be overwritten. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -RemoveSourceAfterArchiving + +Remove the source path after successfully archiving the content. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf + +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm + +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### None + +### You cannot pipe objects to this function. +## OUTPUTS + +### None + +### This function does not generate any output. +## NOTES +An active ADT session is NOT required to use this function. + +This function supports the -WhatIf and -Confirm parameters for testing changes before applying them. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/New-ADTZipFile](https://psappdeploytoolkit.com/docs/reference/functions/New-ADTZipFile) diff --git a/versioned_docs/version-4.1.x/reference/functions/Open-ADTSession.mdx b/versioned_docs/version-4.1.x/reference/functions/Open-ADTSession.mdx new file mode 100644 index 0000000..42822ea --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Open-ADTSession.mdx @@ -0,0 +1,732 @@ +--- +id: Open-ADTSession +title: Open-ADTSession +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Opens a new ADT session. + +## SYNTAX + +```powershell +Open-ADTSession [[-SessionState] ] [[-DeploymentType] ] + [[-DeployMode] ] [-SuppressRebootPassThru] [-TerminalServerMode] [-DisableLogging] + [[-AppVendor] ] [[-AppName] ] [[-AppVersion] ] [[-AppArch] ] + [[-AppLang] ] [[-AppRevision] ] [[-AppScriptVersion] ] [[-AppScriptDate] ] + [[-AppScriptAuthor] ] [[-InstallName] ] [[-InstallTitle] ] + [[-DeployAppScriptFriendlyName] ] [[-DeployAppScriptVersion] ] + [[-DeployAppScriptParameters] ] + [[-AppSuccessExitCodes] ] [[-AppRebootExitCodes] ] + [[-AppProcessesToClose] ] [-RequireAdmin] [[-ScriptDirectory] ] + [[-DirFiles] ] [[-DirSupportFiles] ] [[-DefaultMsiFile] ] [[-DefaultMstFile] ] + [[-DefaultMspFiles] ] [-DisableDefaultMsiProcessList] [-ForceMsiDetection] [-ForceWimDetection] + [-NoSessionDetection] [-NoOobeDetection] [-NoProcessDetection] [-AllowWowProcess] [-PassThru] + [[-LogName] ] [[-SessionClass] ] + [[-UnboundArguments] ] [] +``` + +## DESCRIPTION + +This function initializes and opens a new ADT session with the specified parameters. +It handles the setup of the session environment and processes any callbacks defined for the session. +If the session fails to open, it handles the error and closes the session if necessary. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +Open-ADTSession -SessionState $ExecutionContext.SessionState -DeploymentType "Install" -DeployMode "Interactive" +``` + +Opens a new ADT session with the specified parameters. + +## PARAMETERS + +### -SessionState + +Defaults to $PSCmdlet.SessionState to get the caller's SessionState, so only required if you need to override this. + +```yaml +Type: SessionState +Parameter Sets: (All) +Aliases: + +Required: False +Position: 1 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DeploymentType + +Specifies the type of deployment: Install, Uninstall, or Repair. + +```yaml +Type: DeploymentType +Parameter Sets: (All) +Aliases: +Accepted values: Install, Uninstall, Repair + +Required: False +Position: 2 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DeployMode + +Specifies the deployment mode: Interactive, NonInteractive, or Silent. + +```yaml +Type: DeployMode +Parameter Sets: (All) +Aliases: +Accepted values: Auto, Interactive, NonInteractive, Silent + +Required: False +Position: 3 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SuppressRebootPassThru + +Suppresses reboot pass-through. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -TerminalServerMode + +Enables Terminal Server mode. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DisableLogging + +Disables logging for the session. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -AppVendor + +Specifies the application vendor. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: False +Position: 4 +Default value: [System.Management.Automation.Language.NullString]::Value +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -AppName + +Specifies the application name. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: False +Position: 5 +Default value: [System.Management.Automation.Language.NullString]::Value +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -AppVersion + +Specifies the application version. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: False +Position: 6 +Default value: [System.Management.Automation.Language.NullString]::Value +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -AppArch + +Specifies the application architecture. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: False +Position: 7 +Default value: [System.Management.Automation.Language.NullString]::Value +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -AppLang + +Specifies the application language. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: False +Position: 8 +Default value: [System.Management.Automation.Language.NullString]::Value +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -AppRevision + +Specifies the application revision. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: False +Position: 9 +Default value: [System.Management.Automation.Language.NullString]::Value +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -AppScriptVersion + +Specifies the application script version. + +```yaml +Type: Version +Parameter Sets: (All) +Aliases: + +Required: False +Position: 10 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -AppScriptDate + +Specifies the application script date. + +```yaml +Type: DateTime +Parameter Sets: (All) +Aliases: + +Required: False +Position: 11 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -AppScriptAuthor + +Specifies the application script author. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: False +Position: 12 +Default value: [System.Management.Automation.Language.NullString]::Value +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InstallName + +Specifies the install name. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: False +Position: 13 +Default value: [System.Management.Automation.Language.NullString]::Value +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InstallTitle + +Specifies the install title. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: False +Position: 14 +Default value: [System.Management.Automation.Language.NullString]::Value +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DeployAppScriptFriendlyName + +Specifies the friendly name of the deploy application script. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: False +Position: 15 +Default value: [System.Management.Automation.Language.NullString]::Value +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DeployAppScriptVersion + +Specifies the version of the deploy application script. + +```yaml +Type: Version +Parameter Sets: (All) +Aliases: + +Required: False +Position: 16 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DeployAppScriptParameters + +Specifies the parameters for the deploy application script. + +```yaml +Type: System.Collections.Generic.IReadOnlyDictionary`2[System.String,System.Object] +Parameter Sets: (All) +Aliases: + +Required: False +Position: 17 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -AppSuccessExitCodes + +Specifies the application exit codes. + +```yaml +Type: Int32[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: 18 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -AppRebootExitCodes + +Specifies the application reboot codes. + +```yaml +Type: Int32[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: 19 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -AppProcessesToClose + +Specifies one or more processes that require closing to ensure a successful deployment. + +```yaml +Type: ProcessDefinition[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: 20 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -RequireAdmin + +Specifies that this deployment requires administrative permissions. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ScriptDirectory + +Specifies the base path for Files and SupportFiles. + +```yaml +Type: String[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: 21 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DirFiles + +Specifies the override path to Files. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: False +Position: 22 +Default value: [System.Management.Automation.Language.NullString]::Value +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DirSupportFiles + +Specifies the override path to SupportFiles. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: False +Position: 23 +Default value: [System.Management.Automation.Language.NullString]::Value +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultMsiFile + +Specifies the default MSI file. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: False +Position: 24 +Default value: [System.Management.Automation.Language.NullString]::Value +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultMstFile + +Specifies the default MST file. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: False +Position: 25 +Default value: [System.Management.Automation.Language.NullString]::Value +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultMspFiles + +Specifies the default MSP files. + +```yaml +Type: String[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: 26 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DisableDefaultMsiProcessList + +Specifies that the zero-config MSI code should not gather process names from the MSI file. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ForceMsiDetection + +Specifies that MSI files should be detected and parsed during session initialization, irrespective of whether any App values are provided. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ForceWimDetection + +Specifies that WIM files should be detected and mounted during session initialization, irrespective of whether any App values are provided. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -NoSessionDetection + +When DeployMode is not specified or is Auto, bypasses DeployMode adjustment when there's no logged on user session available. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -NoOobeDetection + +When DeployMode is not specified or is Auto, bypasses DeployMode adjustment when the device hasn't completed the OOBE or a user ESP is active. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -NoProcessDetection + +When DeployMode is not specified or is Auto, bypasses DeployMode adjustment when there's no processes to close in the specified AppProcessesToClose list. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -AllowWowProcess + +When specified, allows the session to initialize within a Windows on Windows (WOW) process, such as a 32-bit PowerShell instance on a 64-bit operating system. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PassThru + +Passes the session object through the pipeline. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -LogName + +Specifies an override for the default-generated log file name. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: False +Position: 27 +Default value: [System.Management.Automation.Language.NullString]::Value +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SessionClass + +Specifies an override for PSAppDeployToolkit.SessionManagement.DeploymentSession class. +Use this if you're deriving a class inheriting off PSAppDeployToolkit's base. + +```yaml +Type: Type +Parameter Sets: (All) +Aliases: + +Required: False +Position: 28 +Default value: PSAppDeployToolkit.SessionManagement.DeploymentSession +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -UnboundArguments + +Captures any additional arguments passed to the function. + +```yaml +Type: System.Collections.Generic.IReadOnlyList`1[System.Object] +Parameter Sets: (All) +Aliases: + +Required: False +Position: 29 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### None + +### You cannot pipe objects to this function. +## OUTPUTS + +### ADTSession + +### This function returns the session object if -PassThru is specified. +## NOTES +An active ADT session is NOT required to use this function. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/Open-ADTSession](https://psappdeploytoolkit.com/docs/reference/functions/Open-ADTSession) diff --git a/versioned_docs/version-4.1.x/reference/functions/Out-ADTPowerShellEncodedCommand.mdx b/versioned_docs/version-4.1.x/reference/functions/Out-ADTPowerShellEncodedCommand.mdx new file mode 100644 index 0000000..9cc7c3c --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Out-ADTPowerShellEncodedCommand.mdx @@ -0,0 +1,75 @@ +--- +id: Out-ADTPowerShellEncodedCommand +title: Out-ADTPowerShellEncodedCommand +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Encodes a PowerShell command into a Base64 string. + +## SYNTAX + +```powershell +Out-ADTPowerShellEncodedCommand [-Command] [] +``` + +## DESCRIPTION + +This function takes a PowerShell command as input and encodes it into a Base64 string. +This is useful for passing commands to PowerShell through mechanisms that require encoded input. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +Out-ADTPowerShellEncodedCommand -Command 'Get-Process' +``` + +Encodes the "Get-Process" command into a Base64 string. + +## PARAMETERS + +### -Command + +The PowerShell command to be encoded. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: True +Position: 1 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### None + +### You cannot pipe objects to this function. +## OUTPUTS + +### System.String + +### This function returns the encoded Base64 string representation of the input command. +## NOTES +An active ADT session is NOT required to use this function. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/Out-ADTPowerShellEncodedCommand](https://psappdeploytoolkit.com/docs/reference/functions/Out-ADTPowerShellEncodedCommand) diff --git a/versioned_docs/version-4.1.x/reference/functions/Register-ADTDll.mdx b/versioned_docs/version-4.1.x/reference/functions/Register-ADTDll.mdx new file mode 100644 index 0000000..fdd9e73 --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Register-ADTDll.mdx @@ -0,0 +1,111 @@ +--- +id: Register-ADTDll +title: Register-ADTDll +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Register a DLL file. + +## SYNTAX + +```powershell +Register-ADTDll [-FilePath] [-WhatIf] [-Confirm] [] +``` + +## DESCRIPTION + +This function registers a DLL file using regsvr32.exe. +It ensures that the specified DLL file exists before attempting to register it. +If the file does not exist, it throws an error. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +Register-ADTDll -FilePath "C:\Test\DcTLSFileToDMSComp.dll" +``` + +Registers the specified DLL file. + +## PARAMETERS + +### -FilePath + +Path to the DLL file. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: True +Position: 1 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf + +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm + +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### None + +### You cannot pipe objects to this function. +## OUTPUTS + +### None + +### This function does not return objects. +## NOTES +An active ADT session is NOT required to use this function. + +This function supports the -WhatIf and -Confirm parameters for testing changes before applying them. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/Register-ADTDll](https://psappdeploytoolkit.com/docs/reference/functions/Register-ADTDll) diff --git a/versioned_docs/version-4.1.x/reference/functions/Remove-ADTContentFromCache.mdx b/versioned_docs/version-4.1.x/reference/functions/Remove-ADTContentFromCache.mdx new file mode 100644 index 0000000..406a915 --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Remove-ADTContentFromCache.mdx @@ -0,0 +1,111 @@ +--- +id: Remove-ADTContentFromCache +title: Remove-ADTContentFromCache +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Removes the toolkit content from the cache folder on the local machine and reverts the $adtSession.DirFiles and $adtSession.SupportFiles directory. + +## SYNTAX + +```powershell +Remove-ADTContentFromCache [[-LiteralPath] ] [-WhatIf] [-Confirm] [] +``` + +## DESCRIPTION + +This function removes the toolkit content from the cache folder on the local machine. +It also reverts the $adtSession.DirFiles and $adtSession.SupportFiles directory to their original state. +If the specified cache folder does not exist, it logs a message and exits. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +Remove-ADTContentFromCache -LiteralPath "$envWinDir\Temp\PSAppDeployToolkit" +``` + +Removes the toolkit content from the specified cache folder. + +## PARAMETERS + +### -LiteralPath + +The path to the software cache folder. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: Path, PSPath + +Required: False +Position: 1 +Default value: "$((& $Script:CommandTable.'Get-ADTConfig').Toolkit.CachePath)\\$((& $Script:CommandTable.'Get-ADTSession').InstallName)" +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf + +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm + +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### None + +### You cannot pipe objects to this function. +## OUTPUTS + +### None + +### This function does not return objects. +## NOTES +An active ADT session is required to use this function. + +This function supports the -WhatIf and -Confirm parameters for testing changes before applying them. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/Remove-ADTContentFromCache](https://psappdeploytoolkit.com/docs/reference/functions/Remove-ADTContentFromCache) diff --git a/versioned_docs/version-4.1.x/reference/functions/Remove-ADTDesktopShortcut.mdx b/versioned_docs/version-4.1.x/reference/functions/Remove-ADTDesktopShortcut.mdx new file mode 100644 index 0000000..13d642b --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Remove-ADTDesktopShortcut.mdx @@ -0,0 +1,172 @@ +--- +id: Remove-ADTDesktopShortcut +title: Remove-ADTDesktopShortcut +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Removes desktop shortcuts from the common desktop folder or logged on user's desktop. + +## SYNTAX + +### FilterScript + +```powershell +Remove-ADTDesktopShortcut [-Scope ] -FilterScript [-WhatIf] [-Confirm] + [] +``` + +### RemoveAllShortcuts + +```powershell +Remove-ADTDesktopShortcut [-Scope ] [-RemoveAllShortcuts] [-WhatIf] [-Confirm] [] +``` + +### SinceSessionStart + +```powershell +Remove-ADTDesktopShortcut [-Scope ] [-SinceSessionStart] [-WhatIf] [-Confirm] [] +``` + +## DESCRIPTION + +Removes desktop shortcuts from the common desktop folder or logged on user's desktop, either all since the commencement of the session, all shortcuts in general, or based on a custom FilterScript. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +Remove-ADTDesktopShortcut -SinceSessionStart +``` + +This example removes all shortcuts created after the active deployment session started from the common desktop folder. + +## PARAMETERS + +### -Scope + +The scope of which to target (common desktop and/or logged on user's desktop). + +```yaml +Type: String[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: AllUsersDesktop +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SinceSessionStart + +Removes all shortcuts created after the active deployment session commenced. + +```yaml +Type: SwitchParameter +Parameter Sets: SinceSessionStart +Aliases: + +Required: True +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -RemoveAllShortcuts + +Removes all shortcuts in the nominated scope(s). + +```yaml +Type: SwitchParameter +Parameter Sets: RemoveAllShortcuts +Aliases: + +Required: True +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -FilterScript + +Removes all shortcuts that match the given FilterScript (filtration on any FileInfo property/method is available). + +```yaml +Type: ScriptBlock +Parameter Sets: FilterScript +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf + +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm + +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### None + +### You cannot pipe objects to this function. +## OUTPUTS + +### None + +### This function returns no output. +## NOTES +An active ADT session is required to use this function. + +This function supports the -WhatIf and -Confirm parameters for testing changes before applying them. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/Remove-ADTDesktopShortcut](https://psappdeploytoolkit.com/docs/reference/functions/Remove-ADTDesktopShortcut) diff --git a/versioned_docs/version-4.1.x/reference/functions/Remove-ADTEdgeExtension.mdx b/versioned_docs/version-4.1.x/reference/functions/Remove-ADTEdgeExtension.mdx new file mode 100644 index 0000000..657eee8 --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Remove-ADTEdgeExtension.mdx @@ -0,0 +1,116 @@ +--- +id: Remove-ADTEdgeExtension +title: Remove-ADTEdgeExtension +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Removes an extension for Microsoft Edge using the ExtensionSettings policy. + +## SYNTAX + +```powershell +Remove-ADTEdgeExtension [-ExtensionID] [-WhatIf] [-Confirm] [] +``` + +## DESCRIPTION + +This function removes an extension for Microsoft Edge using the ExtensionSettings policy: https://learn.microsoft.com/en-us/deployedge/microsoft-edge-manage-extensions-ref-guide. + +This enables Edge Extensions to be installed and managed like applications, enabling extensions to be pushed to specific devices or users alongside existing GPO/Intune extension policies. + +This should not be used in conjunction with Edge Management Service or "Configure extension management settings" as configured via Group Policy or Intune as they leverage the same registry key to configure Edge extensions. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +Remove-ADTEdgeExtension -ExtensionID "extensionID" +``` + +Removes the specified extension from Microsoft Edge. + +## PARAMETERS + +### -ExtensionID + +The ID of the extension to remove. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: True +Position: 1 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf + +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm + +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### None + +### You cannot pipe objects to this function. +## OUTPUTS + +### None + +### This function does not return objects. +## NOTES +An active ADT session is NOT required to use this function. + +This function is provided as a template to remove an extension for Microsoft Edge. +This should not be used in conjunction with Edge Management Service which leverages the same registry key to configure Edge extensions. + +This function supports the -WhatIf and -Confirm parameters for testing changes before applying them. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/Remove-ADTEdgeExtension](https://psappdeploytoolkit.com/docs/reference/functions/Remove-ADTEdgeExtension) diff --git a/versioned_docs/version-4.1.x/reference/functions/Remove-ADTEnvironmentVariable.mdx b/versioned_docs/version-4.1.x/reference/functions/Remove-ADTEnvironmentVariable.mdx new file mode 100644 index 0000000..12502c0 --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Remove-ADTEnvironmentVariable.mdx @@ -0,0 +1,136 @@ +--- +id: Remove-ADTEnvironmentVariable +title: Remove-ADTEnvironmentVariable +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Removes the specified environment variable. + +## SYNTAX + +```powershell +Remove-ADTEnvironmentVariable [-Variable] [[-Target] ] [-WhatIf] [-Confirm] + [] +``` + +## DESCRIPTION + +This function removes the specified environment variable. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +Remove-ADTEnvironmentVariable -Variable Path +``` + +Removes the Path environment variable. + +### EXAMPLE 2 + +```powershell +Remove-ADTEnvironmentVariable -Variable Path -Target Machine +``` + +Removes the Path environment variable for the machine. + +## PARAMETERS + +### -Variable + +The variable to remove. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: True +Position: 1 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Target + +The target of the variable to remove. +This can be the machine, user, or process. + +```yaml +Type: EnvironmentVariableTarget +Parameter Sets: (All) +Aliases: +Accepted values: Process, User, Machine + +Required: False +Position: 2 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf + +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm + +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### None + +### You cannot pipe objects to this function. +## OUTPUTS + +### None + +### This function does not return any output. +## NOTES +An active ADT session is NOT required to use this function. + +This function supports the -WhatIf and -Confirm parameters for testing changes before applying them. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/Remove-ADTEnvironmentVariable](https://psappdeploytoolkit.com/docs/reference/functions/Remove-ADTEnvironmentVariable) diff --git a/versioned_docs/version-4.1.x/reference/functions/Remove-ADTFile.mdx b/versioned_docs/version-4.1.x/reference/functions/Remove-ADTFile.mdx new file mode 100644 index 0000000..12d7fd4 --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Remove-ADTFile.mdx @@ -0,0 +1,167 @@ +--- +id: Remove-ADTFile +title: Remove-ADTFile +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Removes one or more items from a given path on the filesystem. + +## SYNTAX + +### Path + +```powershell +Remove-ADTFile -Path [-Recurse] [-WhatIf] [-Confirm] [] +``` + +### LiteralPath + +```powershell +Remove-ADTFile -LiteralPath [-Recurse] [-WhatIf] [-Confirm] [] +``` + +## DESCRIPTION + +This function removes one or more items from a given path on the filesystem. +It can handle both wildcard paths and literal paths. +If the specified path does not exist, it logs a warning instead of throwing an error. +The function can also delete items recursively if the Recurse parameter is specified. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +Remove-ADTFile -LiteralPath 'C:\Windows\Downloaded Program Files\Temp.inf' +``` + +Removes the specified file. + +### EXAMPLE 2 + +```powershell +Remove-ADTFile -LiteralPath 'C:\Windows\Downloaded Program Files' -Recurse +``` + +Removes the specified folder and all its contents recursively. + +## PARAMETERS + +### -Path + +Specifies the file on the filesystem to be removed. +The value of Path will accept wildcards. +Will accept an array of values. + +```yaml +Type: String[] +Parameter Sets: Path +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: True +``` + +### -LiteralPath + +Specifies the file on the filesystem to be removed. +The value of LiteralPath is used exactly as it is typed; no characters are interpreted as wildcards. +Will accept an array of values. + +```yaml +Type: String[] +Parameter Sets: LiteralPath +Aliases: PSPath + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Recurse + +Deletes the files in the specified location(s) and in all child items of the location(s). + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf + +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm + +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### None + +### You cannot pipe objects to this function. +## OUTPUTS + +### None + +### This function does not generate any output. +## NOTES +An active ADT session is NOT required to use this function. + +This function continues on received errors by default. +To have the function stop on an error, please provide `-ErrorAction Stop` on the end of your call. + +This function supports the -WhatIf and -Confirm parameters for testing changes before applying them. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/Remove-ADTFile](https://psappdeploytoolkit.com/docs/reference/functions/Remove-ADTFile) diff --git a/versioned_docs/version-4.1.x/reference/functions/Remove-ADTFileFromUserProfiles.mdx b/versioned_docs/version-4.1.x/reference/functions/Remove-ADTFileFromUserProfiles.mdx new file mode 100644 index 0000000..d4bb36f --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Remove-ADTFileFromUserProfiles.mdx @@ -0,0 +1,233 @@ +--- +id: Remove-ADTFileFromUserProfiles +title: Remove-ADTFileFromUserProfiles +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Removes one or more items from each user profile on the system. + +## SYNTAX + +### Path + +```powershell +Remove-ADTFileFromUserProfiles [-Path] [-Recurse] [-ExcludeNTAccount ] + [-ExcludeDefaultUser] [-IncludeSystemProfiles] [-IncludeServiceProfiles] [-WhatIf] [-Confirm] + [] +``` + +### LiteralPath + +```powershell +Remove-ADTFileFromUserProfiles [-LiteralPath] [-Recurse] [-ExcludeNTAccount ] + [-ExcludeDefaultUser] [-IncludeSystemProfiles] [-IncludeServiceProfiles] [-WhatIf] [-Confirm] + [] +``` + +## DESCRIPTION + +This function removes one or more items from each user profile on the system. +It can handle both wildcard paths and literal paths. +If the specified path does not exist, it logs a warning instead of throwing an error. +The function can also delete items recursively if the Recurse parameter is specified. +Additionally, it allows excluding specific NT accounts, system profiles, service profiles, and the default user profile. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +Remove-ADTFileFromUserProfiles -Path "AppData\Roaming\MyApp\config.txt" +``` + +Removes the specified file from each user profile on the system. + +### EXAMPLE 2 + +```powershell +Remove-ADTFileFromUserProfiles -Path "AppData\Local\MyApp" -Recurse +``` + +Removes the specified folder and all its contents recursively from each user profile on the system. + +## PARAMETERS + +### -Path + +Specifies the path to append to the root of the user profile to be resolved. +The value of Path will accept wildcards. +Will accept an array of values. + +```yaml +Type: String[] +Parameter Sets: Path +Aliases: + +Required: True +Position: 1 +Default value: None +Accept pipeline input: False +Accept wildcard characters: True +``` + +### -LiteralPath + +Specifies the path to append to the root of the user profile to be resolved. +The value of LiteralPath is used exactly as it is typed; no characters are interpreted as wildcards. +Will accept an array of values. + +```yaml +Type: String[] +Parameter Sets: LiteralPath +Aliases: PSPath + +Required: True +Position: 1 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Recurse + +Deletes the files in the specified location(s) and in all child items of the location(s). + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ExcludeNTAccount + +Specify NT account names in Domain\Username format to exclude from the list of user profiles. + +```yaml +Type: String[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ExcludeDefaultUser + +Exclude the Default User. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -IncludeSystemProfiles + +Include system profiles: SYSTEM, LOCAL SERVICE, NETWORK SERVICE. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -IncludeServiceProfiles + +Include service profiles where NTAccount begins with NT SERVICE. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf + +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm + +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### None + +### You cannot pipe objects to this function. +## OUTPUTS + +### None + +### This function does not generate any output. +## NOTES +An active ADT session is NOT required to use this function. + +This function supports the -WhatIf and -Confirm parameters for testing changes before applying them. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/Remove-ADTFileFromUserProfiles](https://psappdeploytoolkit.com/docs/reference/functions/Remove-ADTFileFromUserProfiles) diff --git a/versioned_docs/version-4.1.x/reference/functions/Remove-ADTFolder.mdx b/versioned_docs/version-4.1.x/reference/functions/Remove-ADTFolder.mdx new file mode 100644 index 0000000..7a79271 --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Remove-ADTFolder.mdx @@ -0,0 +1,183 @@ +--- +id: Remove-ADTFolder +title: Remove-ADTFolder +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Remove folder and files if they exist. + +## SYNTAX + +### Path + +```powershell +Remove-ADTFolder -Path [-DisableRecursion] [-WhatIf] [-Confirm] [] +``` + +### LiteralPath + +```powershell +Remove-ADTFolder -LiteralPath [-DisableRecursion] [-WhatIf] [-Confirm] [] +``` + +### InputObject + +```powershell +Remove-ADTFolder -InputObject [-DisableRecursion] [-WhatIf] [-Confirm] [] +``` + +## DESCRIPTION + +This function removes a folder and all files within it, with or without recursion, in a given path. +If the specified folder does not exist, it logs a warning instead of throwing an error. +The function can also delete items recursively if the DisableRecursion parameter is not specified. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +Remove-ADTFolder -Path "$envWinDir\Downloaded Program Files" +``` + +Deletes all files and subfolders in the Windows\Downloaded Program Files folder. + +### EXAMPLE 2 + +```powershell +Remove-ADTFolder -Path "$envTemp\MyAppCache" -DisableRecursion +``` + +Deletes all files in the Temp\MyAppCache folder but does not delete any subfolders. + +## PARAMETERS + +### -Path + +A path to the folder to remove. +Can contain wildcards. + +```yaml +Type: String[] +Parameter Sets: Path +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: True +``` + +### -LiteralPath + +A literal path to the folder to remove. + +```yaml +Type: String[] +Parameter Sets: LiteralPath +Aliases: PSPath + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject + +A DirectoryInfo object to remove. +Available for pipelining. + +```yaml +Type: DirectoryInfo +Parameter Sets: InputObject +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -DisableRecursion + +Disables recursion while deleting. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf + +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm + +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### None + +### You cannot pipe objects to this function. +## OUTPUTS + +### None + +### This function does not generate any output. +## NOTES +An active ADT session is NOT required to use this function. + +This function supports the -WhatIf and -Confirm parameters for testing changes before applying them. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/Remove-ADTFolder](https://psappdeploytoolkit.com/docs/reference/functions/Remove-ADTFolder) diff --git a/versioned_docs/version-4.1.x/reference/functions/Remove-ADTHashtableNullOrEmptyValues.mdx b/versioned_docs/version-4.1.x/reference/functions/Remove-ADTHashtableNullOrEmptyValues.mdx new file mode 100644 index 0000000..c0ecc83 --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Remove-ADTHashtableNullOrEmptyValues.mdx @@ -0,0 +1,74 @@ +--- +id: Remove-ADTHashtableNullOrEmptyValues +title: Remove-ADTHashtableNullOrEmptyValues +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Removes any key/value pairs from the supplied hashtable where the value is null. + +## SYNTAX + +```powershell +Remove-ADTHashtableNullOrEmptyValues [-Hashtable] [] +``` + +## DESCRIPTION + +This function removes any key/value pairs from the supplied hashtable where the value is null. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +Remove-ADTHashtableNullOrEmptyValues -Hashtable +``` + +Returns a new hashtable with only key/values where the value isn't null. + +## PARAMETERS + +### -Hashtable + +The hashtable to remove null values from. + +```yaml +Type: Hashtable +Parameter Sets: (All) +Aliases: + +Required: True +Position: 1 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### None + +### You cannot pipe objects to this function. +## OUTPUTS + +### System.Collections.Hashtable + +### Returns a new hashtable with only key/values where the value isn't null. +## NOTES +An active ADT session is NOT required to use this function. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/Remove-ADTHashtableNullOrEmptyValues](https://psappdeploytoolkit.com/docs/reference/functions/Remove-ADTHashtableNullOrEmptyValues) diff --git a/versioned_docs/version-4.1.x/reference/functions/Remove-ADTIniSection.mdx b/versioned_docs/version-4.1.x/reference/functions/Remove-ADTIniSection.mdx new file mode 100644 index 0000000..69782e1 --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Remove-ADTIniSection.mdx @@ -0,0 +1,127 @@ +--- +id: Remove-ADTIniSection +title: Remove-ADTIniSection +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Opens an INI file and removes the specified section. + +## SYNTAX + +```powershell +Remove-ADTIniSection [-FilePath] [-Section] [-WhatIf] [-Confirm] [] +``` + +## DESCRIPTION + +Opens an INI file and removes the specified section. + +Please note that the INI file provided cannot have a byte order mark (BOM) present as the underlying Win32 API cannot process it correctly. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +Remove-ADTIniSection -FilePath "$env:ProgramFilesX86\IBM\Notes\notes.ini" -Section 'Notes' +``` + +Removes the 'Notes' section of the 'notes.ini' file. + +## PARAMETERS + +### -FilePath + +Path to the INI file. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: True +Position: 1 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Section + +Section within the INI file. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: True +Position: 2 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf + +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm + +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### None + +### You cannot pipe objects to this function. +## OUTPUTS + +### None + +### This function does not return any output. +## NOTES +An active ADT session is NOT required to use this function. + +This function supports the -WhatIf and -Confirm parameters for testing changes before applying them. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/Remove-ADTIniSection](https://psappdeploytoolkit.com/docs/reference/functions/Remove-ADTIniSection) diff --git a/versioned_docs/version-4.1.x/reference/functions/Remove-ADTIniValue.mdx b/versioned_docs/version-4.1.x/reference/functions/Remove-ADTIniValue.mdx new file mode 100644 index 0000000..66fb820 --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Remove-ADTIniValue.mdx @@ -0,0 +1,152 @@ +--- +id: Remove-ADTIniValue +title: Remove-ADTIniValue +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Opens an INI file and removes the specified key or section. + +## SYNTAX + +```powershell +Remove-ADTIniValue [-FilePath] [-Section] [[-Key] ] [-WhatIf] [-Confirm] + [] +``` + +## DESCRIPTION + +Opens an INI file and removes the specified key or section. + +Please note that the INI file provided cannot have a byte order mark (BOM) present as the underlying Win32 API cannot process it correctly. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +Remove-ADTIniValue -FilePath "$env:ProgramFilesX86\IBM\Notes\notes.ini" -Section 'Notes' -Key 'KeyFileName' +``` + +Removes the 'KeyFileName' key from the 'Notes' section of the 'notes.ini' file. + +### EXAMPLE 2 + +```powershell +Remove-ADTIniValue -FilePath "$env:ProgramFilesX86\IBM\Notes\notes.ini" -Section 'Notes' +``` + +Removes the entire 'Notes' section of the 'notes.ini' file. + +## PARAMETERS + +### -FilePath + +Path to the INI file. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: True +Position: 1 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Section + +Section within the INI file. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: True +Position: 2 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Key + +Key within the section of the INI file. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: False +Position: 3 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf + +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm + +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### None + +### You cannot pipe objects to this function. +## OUTPUTS + +### None + +### This function does not return any output. +## NOTES +An active ADT session is NOT required to use this function. + +This function supports the -WhatIf and -Confirm parameters for testing changes before applying them. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/Remove-ADTIniValue](https://psappdeploytoolkit.com/docs/reference/functions/Remove-ADTIniValue) diff --git a/versioned_docs/version-4.1.x/reference/functions/Remove-ADTInvalidFileNameChars.mdx b/versioned_docs/version-4.1.x/reference/functions/Remove-ADTInvalidFileNameChars.mdx new file mode 100644 index 0000000..92020df --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Remove-ADTInvalidFileNameChars.mdx @@ -0,0 +1,79 @@ +--- +id: Remove-ADTInvalidFileNameChars +title: Remove-ADTInvalidFileNameChars +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Remove invalid characters from the supplied string. + +## SYNTAX + +```powershell +Remove-ADTInvalidFileNameChars [-Name] [] +``` + +## DESCRIPTION + +This function removes invalid characters from the supplied string and returns a valid filename as a string. +It ensures that the resulting string does not contain any characters that are not allowed in filenames. +This function should not be used for entire paths as '\' is not a valid filename character. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +Remove-ADTInvalidFileNameChars -Name "Filename/\1" +``` + +Removes invalid filename characters from the string "Filename/\1". + +## PARAMETERS + +### -Name + +Text to remove invalid filename characters from. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: True +Position: 1 +Default value: None +Accept pipeline input: True (ByPropertyName, ByValue) +Accept wildcard characters: False +``` + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### System.String + +### A string containing invalid filename characters. +## OUTPUTS + +### System.String + +### Returns the input string with the invalid characters removed. +## NOTES +An active ADT session is NOT required to use this function. + +This function always returns a string; however, it can be empty if the name only contains invalid characters. +Do not use this command for an entire path as '\' is not a valid filename character. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/Remove-ADTInvalidFileNameChars](https://psappdeploytoolkit.com/docs/reference/functions/Remove-ADTInvalidFileNameChars) diff --git a/versioned_docs/version-4.1.x/reference/functions/Remove-ADTModuleCallback.mdx b/versioned_docs/version-4.1.x/reference/functions/Remove-ADTModuleCallback.mdx new file mode 100644 index 0000000..1edaf2a --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Remove-ADTModuleCallback.mdx @@ -0,0 +1,91 @@ +--- +id: Remove-ADTModuleCallback +title: Remove-ADTModuleCallback +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Removes a callback function from the nominated hooking point. + +## SYNTAX + +```powershell +Remove-ADTModuleCallback [-Hookpoint] [-Callback] [] +``` + +## DESCRIPTION + +This function removes a specified callback function from the nominated hooking point. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +Remove-ADTModuleCallback -Hookpoint PostOpen -Callback (Get-Command -Name 'MyCallbackFunction') +``` + +Removes the specified callback function from being invoked after a DeploymentSession has opened. + +## PARAMETERS + +### -Hookpoint + +Where you wish for the callback to be removed from. + +```yaml +Type: CallbackType +Parameter Sets: (All) +Aliases: +Accepted values: OnInit, OnStart, PreOpen, PostOpen, OnDefer, PreClose, PostClose, OnFinish, OnExit + +Required: True +Position: 1 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Callback + +The callback function to remove from the nominated hooking point. + +```yaml +Type: CommandInfo[] +Parameter Sets: (All) +Aliases: + +Required: True +Position: 2 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### None + +### You cannot pipe objects to this function. +## OUTPUTS + +### None + +### This function does not generate any output. +## NOTES +An active ADT session is NOT required to use this function. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/Remove-ADTModuleCallback](https://psappdeploytoolkit.com/docs/reference/functions/Remove-ADTModuleCallback) diff --git a/versioned_docs/version-4.1.x/reference/functions/Remove-ADTRegistryKey.mdx b/versioned_docs/version-4.1.x/reference/functions/Remove-ADTRegistryKey.mdx new file mode 100644 index 0000000..97bec32 --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Remove-ADTRegistryKey.mdx @@ -0,0 +1,236 @@ +--- +id: Remove-ADTRegistryKey +title: Remove-ADTRegistryKey +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Deletes the specified registry key or value. + +## SYNTAX + +### Path + +```powershell +Remove-ADTRegistryKey -Path [-Name ] [-Wow6432Node] [-Recurse] [-SID ] + [-WhatIf] [-Confirm] [] +``` + +### LiteralPath + +```powershell +Remove-ADTRegistryKey -LiteralPath [-Name ] [-Wow6432Node] [-Recurse] + [-SID ] [-WhatIf] [-Confirm] [] +``` + +## DESCRIPTION + +This function deletes the specified registry key or value. +It can handle both registry keys and values, and it supports recursive deletion of registry keys. +If the SID parameter is specified, it converts HKEY_CURRENT_USER registry keys to the HKEY_USERS\$SID format, allowing for the manipulation of HKCU registry settings for all users on the system. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +Remove-ADTRegistryKey -LiteralPath 'HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce' +``` + +Deletes the specified registry key. + +### EXAMPLE 2 + +```powershell +Remove-ADTRegistryKey -LiteralPath 'HKLM:SOFTWARE\Microsoft\Windows\CurrentVersion\Run' -Name 'RunAppInstall' +``` + +Deletes the specified registry value. + +### EXAMPLE 3 + +```powershell +Remove-ADTRegistryKey -LiteralPath 'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Example' -Name '(Default)' +``` + +Deletes the default registry value in the specified key. + +### EXAMPLE 4 + +```powershell +Remove-ADTRegistryKey -Path 'HKEY_LOCAL_MACHINE\SOFTWARE\MyCustomKey\*' -Recurse +``` + +Removes all subkeys from `HKEY_LOCAL_MACHINE\SOFTWARE\MyCustomKey` as requested. + +### EXAMPLE 5 + +```powershell +Remove-ADTRegistryKey -Path 'HKEY_LOCAL_MACHINE\SOFTWARE\MyCustomKey\*' -Name 'PropertyName' +``` + +Removes `PropertyName` from all subkeys of `HKEY_LOCAL_MACHINE\SOFTWARE\MyCustomKey`. + +## PARAMETERS + +### -Path + +Path of the registry key to delete, wildcards permitted. + +```yaml +Type: String +Parameter Sets: Path +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: True +``` + +### -LiteralPath + +Literal path of the registry key to delete. + +```yaml +Type: String +Parameter Sets: LiteralPath +Aliases: Key + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Name + +Name of the registry value to delete. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: [System.Management.Automation.Language.NullString]::Value +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Wow6432Node + +Specify this switch to read the 32-bit registry (Wow6432Node) on 64-bit systems. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Recurse + +Delete registry key recursively. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SID + +The security identifier (SID) for a user. +Specifying this parameter will convert a HKEY_CURRENT_USER registry key to the HKEY_USERS\$SID format. + +Specify this parameter from the Invoke-ADTAllUsersRegistryAction function to read/edit HKCU registry settings for all users on the system. + +```yaml +Type: SecurityIdentifier +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf + +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm + +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### None + +### You cannot pipe objects to this function. +## OUTPUTS + +### None + +### This function does not generate any output. +## NOTES +An active ADT session is NOT required to use this function. + +This function supports the -WhatIf and -Confirm parameters for testing changes before applying them. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/Remove-ADTRegistryKey](https://psappdeploytoolkit.com/docs/reference/functions/Remove-ADTRegistryKey) diff --git a/versioned_docs/version-4.1.x/reference/functions/Reset-ADTDeferHistory.mdx b/versioned_docs/version-4.1.x/reference/functions/Reset-ADTDeferHistory.mdx new file mode 100644 index 0000000..f096ec2 --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Reset-ADTDeferHistory.mdx @@ -0,0 +1,56 @@ +--- +id: Reset-ADTDeferHistory +title: Reset-ADTDeferHistory +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Reset the history of deferrals in the registry for the current application. + +## SYNTAX + +```powershell +Reset-ADTDeferHistory [] +``` + +## DESCRIPTION + +Reset the history of deferrals in the registry for the current application. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +Reset-DeferHistory +``` + +## PARAMETERS + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### None + +### You cannot pipe objects to this function. +## OUTPUTS + +### None + +### This function does not return any objects. +## NOTES +An active ADT session is required to use this function. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/Reset-ADTDeferHistory](https://psappdeploytoolkit.com/docs/reference/functions/Reset-ADTDeferHistory) diff --git a/versioned_docs/version-4.1.x/reference/functions/Resolve-ADTErrorRecord.mdx b/versioned_docs/version-4.1.x/reference/functions/Resolve-ADTErrorRecord.mdx new file mode 100644 index 0000000..2baec0f --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Resolve-ADTErrorRecord.mdx @@ -0,0 +1,184 @@ +--- +id: Resolve-ADTErrorRecord +title: Resolve-ADTErrorRecord +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Enumerates ErrorRecord details. + +## SYNTAX + +```powershell +Resolve-ADTErrorRecord [-ErrorRecord] [[-Property] ] [-ExcludeErrorRecord] + [-ExcludeErrorInvocation] [-ExcludeErrorException] [-IncludeErrorInnerException] [] +``` + +## DESCRIPTION + +Enumerates an ErrorRecord, or a collection of ErrorRecord properties. +This function can filter and display specific properties of the ErrorRecord, and can exclude certain parts of the error details. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +Resolve-ADTErrorRecord +``` + +Enumerates the details of the last ErrorRecord. + +### EXAMPLE 2 + +```powershell +Resolve-ADTErrorRecord -Property * +``` + +Enumerates all properties of the last ErrorRecord. + +### EXAMPLE 3 + +```powershell +Resolve-ADTErrorRecord -Property InnerException +``` + +Enumerates only the InnerException property of the last ErrorRecord. + +### EXAMPLE 4 + +```powershell +Resolve-ADTErrorRecord -ExcludeErrorInvocation +``` + +Enumerates the details of the last ErrorRecord, excluding the invocation information. + +## PARAMETERS + +### -ErrorRecord + +The ErrorRecord to resolve. +For usage in a catch block, you'd use the automatic variable `$PSItem`. +For usage out of a catch block, you can access the global $Error array's first error (on index 0). + +```yaml +Type: ErrorRecord +Parameter Sets: (All) +Aliases: + +Required: True +Position: 1 +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Property + +The list of properties to display from the ErrorRecord. +Use "*" to display all properties. + +```yaml +Type: String[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: 2 +Default value: ('Message', 'InnerException', 'FullyQualifiedErrorId', 'ScriptStackTrace', 'TargetObject', 'PositionMessage') +Accept pipeline input: False +Accept wildcard characters: True +``` + +### -ExcludeErrorRecord + +Exclude ErrorRecord details as represented by $ErrorRecord. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ExcludeErrorInvocation + +Exclude ErrorRecord invocation information as represented by $ErrorRecord.InvocationInfo. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ExcludeErrorException + +Exclude ErrorRecord exception details as represented by $ErrorRecord.Exception. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -IncludeErrorInnerException + +Includes further ErrorRecord inner exception details as represented by $ErrorRecord.Exception.InnerException. +Will retrieve all inner exceptions if there is more than one. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### System.Management.Automation.ErrorRecord + +### Accepts one or more ErrorRecord objects via the pipeline. +## OUTPUTS + +### System.String + +### Displays the ErrorRecord details. +## NOTES +An active ADT session is NOT required to use this function. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/Resolve-ADTErrorRecord](https://psappdeploytoolkit.com/docs/reference/functions/Resolve-ADTErrorRecord) diff --git a/versioned_docs/version-4.1.x/reference/functions/Send-ADTKeys.mdx b/versioned_docs/version-4.1.x/reference/functions/Send-ADTKeys.mdx new file mode 100644 index 0000000..aec1866 --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Send-ADTKeys.mdx @@ -0,0 +1,160 @@ +--- +id: Send-ADTKeys +title: Send-ADTKeys +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Send a sequence of keys to one or more application windows. + +## SYNTAX + +### WindowTitle + +```powershell +Send-ADTKeys -WindowTitle -Keys [-WaitDuration ] [] +``` + +### WindowHandle + +```powershell +Send-ADTKeys -WindowHandle -Keys [-WaitDuration ] [] +``` + +## DESCRIPTION + +Send a sequence of keys to one or more application windows. +If the window title searched for returns more than one window, then all of them will receive the sent keys. + +Function does not work in SYSTEM context unless launched with "psexec.exe -s -i" to run it as an interactive process under the SYSTEM account. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +Send-ADTKeys -WindowTitle 'foobar - Notepad' -Keys 'Hello world' +``` + +Send the sequence of keys "Hello world" to the application titled "foobar - Notepad". + +### EXAMPLE 2 + +```powershell +Send-ADTKeys -WindowTitle 'foobar - Notepad' -Keys 'Hello world' WaitDuration 00:00:05 +``` + +Send the sequence of keys "Hello world" to the application titled "foobar - Notepad" and wait 5 seconds. + +### EXAMPLE 3 + +```powershell +Send-ADTKeys -WindowTitle 'foobar - Notepad' -Keys 'Hello world' WaitDuration (New-TimeSpan -Seconds 5) +``` + +Send the sequence of keys "Hello world" to the application titled "foobar - Notepad" and wait 5 seconds. + +### EXAMPLE 4 + +```powershell +Send-ADTKeys -WindowHandle ([IntPtr]17368294) -Keys 'Hello World' +``` + +Send the sequence of keys "Hello World" to the application with a Window Handle of '17368294'. + +## PARAMETERS + +### -WindowTitle + +The title of the application window to search for using regex matching. + +```yaml +Type: String +Parameter Sets: WindowTitle +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WindowHandle + +Send keys to a specific window where the Window Handle is already known. + +```yaml +Type: IntPtr +Parameter Sets: WindowHandle +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Keys + +The sequence of keys to send. +Info on Key input at: http://msdn.microsoft.com/en-us/library/System.Windows.Forms.SendKeys(v=vs.100).aspx + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WaitDuration + +An optional amount of time to wait after the sending of the keys. + +```yaml +Type: TimeSpan +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### None + +### You cannot pipe objects to this function. +## OUTPUTS + +### None + +### This function does not return any objects. +## NOTES +An active ADT session is NOT required to use this function. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[http://msdn.microsoft.com/en-us/library/System.Windows.Forms.SendKeys(v=vs.100).aspx](http://msdn.microsoft.com/en-us/library/System.Windows.Forms.SendKeys(v=vs.100).aspx) + +[https://psappdeploytoolkit.com/docs/reference/functions/Send-ADTKeys](https://psappdeploytoolkit.com/docs/reference/functions/Send-ADTKeys) diff --git a/versioned_docs/version-4.1.x/reference/functions/Set-ADTActiveSetup.mdx b/versioned_docs/version-4.1.x/reference/functions/Set-ADTActiveSetup.mdx new file mode 100644 index 0000000..76c7cdb --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Set-ADTActiveSetup.mdx @@ -0,0 +1,351 @@ +--- +id: Set-ADTActiveSetup +title: Set-ADTActiveSetup +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Creates an Active Setup entry in the registry to execute a file for each user upon login. + +## SYNTAX + +### Create (Default) + +```powershell +Set-ADTActiveSetup -StubExePath [-Arguments ] [-Wow6432Node] + [-ExecutionPolicy ] [-Version ] [-Locale ] [-DisableActiveSetup] [-PassThru] + [-WhatIf] [-Confirm] -Key -Description [] +``` + +### CreateNoExecute + +```powershell +Set-ADTActiveSetup -StubExePath [-Arguments ] [-Wow6432Node] + [-ExecutionPolicy ] [-Version ] [-Locale ] [-DisableActiveSetup] + [-NoExecuteForCurrentUser] [-WhatIf] [-Confirm] -Key -Description [] +``` + +### Purge + +```powershell +Set-ADTActiveSetup [-Wow6432Node] [-PurgeActiveSetupKey] [-WhatIf] [-Confirm] -Key + [] +``` + +## DESCRIPTION + +Active Setup allows handling of per-user changes registry/file changes upon login. + +A registry key is created in the HKLM registry hive which gets replicated to the HKCU hive when a user logs in. + +If the "Version" value of the Active Setup entry in HKLM is higher than the version value in HKCU, the file referenced in "StubPath" is executed. + +This Function: + +- Creates the registry entries in "HKLM:\SOFTWARE\Microsoft\Active Setup\Installed Components\$($adtSession.InstallName)". +- Creates StubPath value depending on the file extension of the $StubExePath parameter. +- Handles Version value with YYYYMMDDHHMMSS granularity to permit re-installs on the same day and still trigger Active Setup after Version increase. +- Copies/overwrites the StubPath file to $StubExePath destination path if file exists in 'Files' subdirectory of script directory. +- Executes the StubPath file for the current user based on $NoExecuteForCurrentUser (no need to logout/login to trigger Active Setup). + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +Set-ADTActiveSetup -StubExePath 'C:\Users\Public\Company\ProgramUserConfig.vbs' -Arguments '/Silent' -Description 'Program User Config' -Key 'ProgramUserConfig' -Locale 'en' +``` + +### EXAMPLE 2 + +```powershell +Set-ADTActiveSetup -StubExePath "$envWinDir\regedit.exe" -Arguments "/S `"%SystemDrive%\Program Files (x86)\PS App Deploy\PSAppDeployHKCUSettings.reg`"" -Description 'PS App Deploy Config' -Key 'PS_App_Deploy_Config' +``` + +### EXAMPLE 3 + +```powershell +Set-ADTActiveSetup -Key 'ProgramUserConfig' -PurgeActiveSetupKey +``` + +Delete "ProgramUserConfig" active setup entry from all registry hives. + +## PARAMETERS + +### -StubExePath + +Use this parameter to specify the destination path of the file that will be executed upon user login. + +Note: Place the file you want users to execute in the '\Files' subdirectory of the script directory and the toolkit will install it to the path specificed in this parameter. + +```yaml +Type: String +Parameter Sets: Create, CreateNoExecute +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Arguments + +Arguments to pass to the file being executed. + +```yaml +Type: String +Parameter Sets: Create, CreateNoExecute +Aliases: + +Required: False +Position: Named +Default value: [System.Management.Automation.Language.NullString]::Value +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Wow6432Node + +Specify this switch to use Active Setup entry under Wow6432Node on a 64-bit OS. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ExecutionPolicy + +Specifies the ExecutionPolicy to set when StubExePath is a PowerShell script. + +```yaml +Type: ExecutionPolicy +Parameter Sets: Create, CreateNoExecute +Aliases: +Accepted values: Unrestricted, RemoteSigned, AllSigned, Restricted, Default, Bypass, Undefined + +Required: False +Position: Named +Default value: (Get-ExecutionPolicy) +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Version + +Optional. +Specify version for Active setup entry. +Active Setup is not triggered if Version value has more than 8 consecutive digits. +Use commas to get around this limitation. + +Note: + - Do not use this parameter if it is not necessary. +PSADT will handle this parameter automatically using the time of the installation as the version number. + - In Windows 10, scripts and executables might be blocked by AppLocker. +Ensure that the path given to -StubExePath will permit end users to run scripts and executables unelevated. + +```yaml +Type: String +Parameter Sets: Create, CreateNoExecute +Aliases: + +Required: False +Position: Named +Default value: [System.DateTime]::Now.ToString('yyMM,ddHH,mmss') +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Locale + +Optional. +Arbitrary string used to specify the installation language of the file being executed. +Not replicated to HKCU. + +```yaml +Type: String +Parameter Sets: Create, CreateNoExecute +Aliases: + +Required: False +Position: Named +Default value: [System.Management.Automation.Language.NullString]::Value +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DisableActiveSetup + +Disables the Active Setup entry so that the StubPath file will not be executed. +This also enables -NoExecuteForCurrentUser. + +```yaml +Type: SwitchParameter +Parameter Sets: Create, CreateNoExecute +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PurgeActiveSetupKey + +Remove Active Setup entry from HKLM registry hive. +Will also load each logon user's HKCU registry hive to remove Active Setup entry. +Function returns after purging. + +```yaml +Type: SwitchParameter +Parameter Sets: Purge +Aliases: + +Required: True +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -NoExecuteForCurrentUser + +Specifies whether the StubExePath should be executed for the current user. +Since this user is already logged in, the user won't have the application started without logging out and logging back in. + +```yaml +Type: SwitchParameter +Parameter Sets: CreateNoExecute +Aliases: + +Required: True +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PassThru + +Returns a ProcessResult from the execution of the ActiveSetup configuration for the current user if `-PassThru` is provided. + +```yaml +Type: SwitchParameter +Parameter Sets: Create +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf + +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm + +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Description + +Description for the Active Setup. +Users will see "Setting up personalized settings for: $Description" at logon. +Defaults to active session InstallName. + +```yaml +Type: String +Parameter Sets: Create, CreateNoExecute +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Key + +Name of the registry key for the Active Setup entry. +Defaults to active session InstallName. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### None + +### You cannot pipe objects to this function. +## OUTPUTS + +### PSADT.ProcessManagement.ProcessResult + +### This function returns a ProcessResult from the execution of the ActiveSetup configuration for the current user if `-PassThru` is provided. +## NOTES +An active ADT session is NOT required to use this function. + +Original code borrowed from: Denis St-Pierre (Ottawa, Canada), Todd MacNaught (Ottawa, Canada) + +This function supports the -WhatIf and -Confirm parameters for testing changes before applying them. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/Set-ADTActiveSetup](https://psappdeploytoolkit.com/docs/reference/functions/Set-ADTActiveSetup) diff --git a/versioned_docs/version-4.1.x/reference/functions/Set-ADTDeferHistory.mdx b/versioned_docs/version-4.1.x/reference/functions/Set-ADTDeferHistory.mdx new file mode 100644 index 0000000..3c9bc23 --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Set-ADTDeferHistory.mdx @@ -0,0 +1,126 @@ +--- +id: Set-ADTDeferHistory +title: Set-ADTDeferHistory +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Set the history of deferrals in the registry for the current application. + +## SYNTAX + +```powershell +Set-ADTDeferHistory [[-DeferTimesRemaining] ] [[-DeferDeadline] ] + [[-DeferRunInterval] ] [[-DeferRunIntervalLastTime] ] [] +``` + +## DESCRIPTION + +Set the history of deferrals in the registry for the current application. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +Set-DeferHistory +``` + +## PARAMETERS + +### -DeferTimesRemaining + +Specify the number of deferrals remaining. + +```yaml +Type: UInt32 +Parameter Sets: (All) +Aliases: + +Required: False +Position: 1 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DeferDeadline + +Specify the deadline for the deferral. + +```yaml +Type: DateTime +Parameter Sets: (All) +Aliases: + +Required: False +Position: 2 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DeferRunInterval + +Specifies the time span that must elapse before prompting the user again if a process listed in 'CloseProcesses' is still running after a deferral. + +This helps address the issue where Intune retries installations shortly after a user defers, preventing multiple immediate prompts and improving the user experience. + +This parameter is specifically utilized within the `Show-ADTInstallationWelcome` function, and if specified, the current date and time will be used for the DeferRunIntervalLastTime. + +```yaml +Type: TimeSpan +Parameter Sets: (All) +Aliases: + +Required: False +Position: 3 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DeferRunIntervalLastTime + +Specifies the last time the DeferRunInterval value was tested. +This is set from within `Show-ADTInstallationWelcome` as required. + +```yaml +Type: DateTime +Parameter Sets: (All) +Aliases: + +Required: False +Position: 4 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### None + +### You cannot pipe objects to this function. +## OUTPUTS + +### None + +### This function does not return any objects. +## NOTES +An active ADT session is required to use this function. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/Set-ADTDeferHistory](https://psappdeploytoolkit.com/docs/reference/functions/Set-ADTDeferHistory) diff --git a/versioned_docs/version-4.1.x/reference/functions/Set-ADTEnvironmentVariable.mdx b/versioned_docs/version-4.1.x/reference/functions/Set-ADTEnvironmentVariable.mdx new file mode 100644 index 0000000..b1d86d3 --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Set-ADTEnvironmentVariable.mdx @@ -0,0 +1,216 @@ +--- +id: Set-ADTEnvironmentVariable +title: Set-ADTEnvironmentVariable +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Sets the value for the specified environment variable. + +## SYNTAX + +### None (Default) + +```powershell +Set-ADTEnvironmentVariable -Variable -Value [-Target ] + [-Expandable] [-WhatIf] [-Confirm] [] +``` + +### Append + +```powershell +Set-ADTEnvironmentVariable -Variable -Value [-Target ] [-Append] + [-Expandable] [-WhatIf] [-Confirm] [] +``` + +### Remove + +```powershell +Set-ADTEnvironmentVariable -Variable -Value [-Target ] [-Remove] + [-Expandable] [-WhatIf] [-Confirm] [] +``` + +## DESCRIPTION + +This function sets the value for the specified environment variable. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +Set-ADTEnvironmentVariable -Variable Path -Value C:\Windows +``` + +Sets the value of the Path environment variable to C:\Windows. + +### EXAMPLE 2 + +```powershell +Set-ADTEnvironmentVariable -Variable Path -Value C:\Windows -Target Machine +``` + +Sets the value of the Path environment variable to C:\Windows for the machine. + +## PARAMETERS + +### -Variable + +The variable to set. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Value + +The value to set to variable to. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Target + +The target of the variable to set. +This can be the machine, user, or process. + +```yaml +Type: EnvironmentVariableTarget +Parameter Sets: (All) +Aliases: +Accepted values: Process, User, Machine + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Append + +Specifies the value should be appended to an existing value if present. + +```yaml +Type: SwitchParameter +Parameter Sets: Append +Aliases: + +Required: True +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Remove + +Specifies the value should be removed from an existing value if present. + +```yaml +Type: SwitchParameter +Parameter Sets: Remove +Aliases: + +Required: True +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Expandable + +Indicates that the environment variable should be written to the registry using a REG_EXPAND_SZ type to support environment variables. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf + +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm + +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### None + +### You cannot pipe objects to this function. +## OUTPUTS + +### None + +### This function does not return any output. +## NOTES +An active ADT session is NOT required to use this function. + +This function supports the -WhatIf and -Confirm parameters for testing changes before applying them. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/Set-ADTEnvironmentVariable](https://psappdeploytoolkit.com/docs/reference/functions/Set-ADTEnvironmentVariable) diff --git a/versioned_docs/version-4.1.x/reference/functions/Set-ADTIniSection.mdx b/versioned_docs/version-4.1.x/reference/functions/Set-ADTIniSection.mdx new file mode 100644 index 0000000..6c3e656 --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Set-ADTIniSection.mdx @@ -0,0 +1,195 @@ +--- +id: Set-ADTIniSection +title: Set-ADTIniSection +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Opens an INI file and sets the values of the specified section. + +## SYNTAX + +```powershell +Set-ADTIniSection [-FilePath] [-Section] [-Content] [-Overwrite] [-Force] + [-WhatIf] [-Confirm] [] +``` + +## DESCRIPTION + +Opens an INI file and sets the values of the specified section. + +Please note that the INI file provided cannot have a byte order mark (BOM) present as the underlying Win32 API cannot process it correctly. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +Set-ADTIniSection -FilePath "$env:ProgramFilesX86\IBM\Notes\notes.ini" -Section 'Notes' -Content ([ordered]@{'KeyFileName' = 'MyFile.ID'; 'KeyFileType' = 'ID'}) +``` + +Adds the provided content to the 'Notes' section, preserving input order + +### EXAMPLE 2 + +```powershell +Set-ADTIniSection -FilePath "$env:ProgramFilesX86\IBM\Notes\notes.ini" -Section 'Notes' -Content @{'KeyFileName' = 'MyFile.ID'} -Overwrite +``` + +Overwrites the 'Notes' section to only contain the content specified. + +### EXAMPLE 3 + +```powershell +Set-ADTIniSection -FilePath "$env:ProgramFilesX86\IBM\Notes\notes.ini" -Section 'Notes' -Content $null -Overwrite +``` + +Sets the 'Notes' section to be empty by sending null content in combination with the -Overwrite switch. + +## PARAMETERS + +### -FilePath + +Path to the INI file. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: True +Position: 1 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Section + +Section within the INI file. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: True +Position: 2 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Content + +A hashtable or dictionary object containing the key-value pairs to set in the specified section. + Supply an ordered hashtable to preserve the order of supplied entries. +Values can be strings, numbers, booleans, enums, or null. + Supply $null or an empty hashtable in combination with -Overwrite to empty an entire section. + +```yaml +Type: IDictionary +Parameter Sets: (All) +Aliases: + +Required: True +Position: 3 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Overwrite + +Specifies whether the provided INI content should overwrite all existing section content. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Force + +Specifies whether the INI file should be created if it does not already exist. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf + +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm + +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### None + +### You cannot pipe objects to this function. +## OUTPUTS + +### None + +### This function does not return any output. +## NOTES +An active ADT session is NOT required to use this function. + +This function supports the -WhatIf and -Confirm parameters for testing changes before applying them. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/Set-ADTIniSection](https://psappdeploytoolkit.com/docs/reference/functions/Set-ADTIniSection) diff --git a/versioned_docs/version-4.1.x/reference/functions/Set-ADTIniValue.mdx b/versioned_docs/version-4.1.x/reference/functions/Set-ADTIniValue.mdx new file mode 100644 index 0000000..4abfc10 --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Set-ADTIniValue.mdx @@ -0,0 +1,176 @@ +--- +id: Set-ADTIniValue +title: Set-ADTIniValue +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Opens an INI file and sets the value of the specified section and key. + +## SYNTAX + +```powershell +Set-ADTIniValue [-FilePath] [-Section] [-Key] [-Value] [-Force] [-WhatIf] + [-Confirm] [] +``` + +## DESCRIPTION + +Opens an INI file and sets the value of the specified section and key. + +Please note that the INI file provided cannot have a byte order mark (BOM) present as the underlying Win32 API cannot process it correctly. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +Set-ADTIniValue -FilePath "$env:ProgramFilesX86\IBM\Notes\notes.ini" -Section 'Notes' -Key 'KeyFileName' -Value 'MyFile.ID' +``` + +Sets the 'KeyFileName' key in the 'Notes' section of the 'notes.ini' file to 'MyFile.ID'. + +## PARAMETERS + +### -FilePath + +Path to the INI file. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: True +Position: 1 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Section + +Section within the INI file. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: True +Position: 2 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Key + +Key within the section of the INI file. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: True +Position: 3 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Value + +Value for the key within the section of the INI file. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: True +Position: 4 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Force + +Specifies whether the INI file should be created if it does not already exist. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf + +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm + +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### None + +### You cannot pipe objects to this function. +## OUTPUTS + +### None + +### This function does not return any output. +## NOTES +An active ADT session is NOT required to use this function. + +This function supports the -WhatIf and -Confirm parameters for testing changes before applying them. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/Set-ADTIniValue](https://psappdeploytoolkit.com/docs/reference/functions/Set-ADTIniValue) diff --git a/versioned_docs/version-4.1.x/reference/functions/Set-ADTItemPermission.mdx b/versioned_docs/version-4.1.x/reference/functions/Set-ADTItemPermission.mdx new file mode 100644 index 0000000..057579b --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Set-ADTItemPermission.mdx @@ -0,0 +1,331 @@ +--- +id: Set-ADTItemPermission +title: Set-ADTItemPermission +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Allows you to easily change permissions on files or folders. + +## SYNTAX + +### AccessControlList + +```powershell +Set-ADTItemPermission -LiteralPath -AccessControlList [-WhatIf] [-Confirm] + [] +``` + +### EnableInheritance + +```powershell +Set-ADTItemPermission -LiteralPath [-EnableInheritance] [-RemoveExplicitRules] [-WhatIf] [-Confirm] + [] +``` + +### DisableInheritance + +```powershell +Set-ADTItemPermission -LiteralPath -User -Permission + [-PermissionType ] [-Inheritance ] [-Propagation ] + [-Method ] [-DisableInheritance] [-WhatIf] [-Confirm] [] +``` + +## DESCRIPTION + +Allows you to easily change permissions on files or folders for a given user or group. +You can add, remove or replace permissions, set inheritance and propagation. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +Set-ADTItemPermission -LiteralPath 'C:\Temp' -User 'DOMAIN\John', 'BUILTIN\Users' -Permission FullControl -Inheritance ObjectInherit,ContainerInherit +``` + +Will grant FullControl permissions to 'John' and 'Users' on 'C:\Temp' and its files and folders children. + +### EXAMPLE 2 + +```powershell +Set-ADTItemPermission -LiteralPath 'C:\Temp\pic.png' -User 'DOMAIN\John' -Permission 'Read' +``` + +Will grant Read permissions to 'John' on 'C:\Temp\pic.png'. + +### EXAMPLE 3 + +```powershell +Set-ADTItemPermission -LiteralPath 'C:\Temp\Private' -User 'DOMAIN\John' -Permission 'None' -Method 'RemoveAll' +``` + +Will remove all permissions to 'John' on 'C:\Temp\Private'. + +## PARAMETERS + +### -LiteralPath + +Path to the folder or file you want to modify (ex: C:\Temp) + +```yaml +Type: String +Parameter Sets: (All) +Aliases: Path, PSPath, File, Folder + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -AccessControlList + +The ACL object to apply to the given path. + +```yaml +Type: FileSystemSecurity +Parameter Sets: AccessControlList +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -User + +One or more user names (ex: BUILTIN\Users, DOMAIN\Admin) to give the permissions to. +If you want to use SID, prefix it with an asterisk * (ex: *S-1-5-18) + +```yaml +Type: String[] +Parameter Sets: DisableInheritance +Aliases: Username, Users, SID, Usernames + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Permission + +Permission or list of permissions to be set/added/removed/replaced. +Permission DeleteSubdirectoriesAndFiles does not apply to files. + +```yaml +Type: FileSystemRights +Parameter Sets: DisableInheritance +Aliases: Grant, Permissions, Deny +Accepted values: ListDirectory, ReadData, WriteData, CreateFiles, CreateDirectories, AppendData, ReadExtendedAttributes, WriteExtendedAttributes, Traverse, ExecuteFile, DeleteSubdirectoriesAndFiles, ReadAttributes, WriteAttributes, Write, Delete, ReadPermissions, Read, ReadAndExecute, Modify, ChangePermissions, TakeOwnership, Synchronize, FullControl + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PermissionType + +Sets Access Control Type of the permissions. + +```yaml +Type: AccessControlType +Parameter Sets: DisableInheritance +Aliases: AccessControlType +Accepted values: Allow, Deny + +Required: False +Position: Named +Default value: Allow +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Inheritance + +Sets permission inheritance. +Does not apply to files. +Multiple options can be specified. + +* None - The permission entry is not inherited by child objects. +* ObjectInherit - The permission entry is inherited by child leaf objects. +* ContainerInherit - The permission entry is inherited by child container objects. + +```yaml +Type: InheritanceFlags +Parameter Sets: DisableInheritance +Aliases: +Accepted values: None, ContainerInherit, ObjectInherit + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Propagation + +Sets how to propagate inheritance. +Does not apply to files. + +* None - Specifies that no inheritance flags are set. +* NoPropagateInherit - Specifies that the permission entry is not propagated to child objects. +* InheritOnly - Specifies that the permission entry is propagated only to child objects. +This includes both container and leaf child objects. + +```yaml +Type: PropagationFlags +Parameter Sets: DisableInheritance +Aliases: +Accepted values: None, NoPropagateInherit, InheritOnly + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Method + +Specifies which method will be used to apply the permissions. + +* AddAccessRule - Adds permissions rules but it does not remove previous permissions. +* SetAccessRule - Overwrites matching permission rules with new ones. +* ResetAccessRule - Removes matching permissions rules and then adds permission rules. +* RemoveAccessRule - Removes matching permission rules. +* RemoveAccessRuleAll - Removes all permission rules for specified user/s. +* RemoveAccessRuleSpecific - Removes specific permissions. + +```yaml +Type: String +Parameter Sets: DisableInheritance +Aliases: ApplyMethod, ApplicationMethod + +Required: False +Position: Named +Default value: AddAccessRule +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DisableInheritance + +Disables inheritance, preserving permissions before doing so. + +```yaml +Type: SwitchParameter +Parameter Sets: DisableInheritance +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -EnableInheritance + +Enables inheritance on the files/folders. + +```yaml +Type: SwitchParameter +Parameter Sets: EnableInheritance +Aliases: + +Required: True +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -RemoveExplicitRules + +Removes non-inherited permissions from the object when enabling inheritance. + +```yaml +Type: SwitchParameter +Parameter Sets: EnableInheritance +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf + +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm + +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### None + +### You cannot pipe objects to this function. +## OUTPUTS + +### None + +### This function does not return any output. +## NOTES +An active ADT session is NOT required to use this function. + +Original Author: Julian DA CUNHA - dacunha.julian@gmail.com, used with permission. + +This function supports the -WhatIf and -Confirm parameters for testing changes before applying them. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/Set-ADTItemPermission](https://psappdeploytoolkit.com/docs/reference/functions/Set-ADTItemPermission) diff --git a/versioned_docs/version-4.1.x/reference/functions/Set-ADTMsiProperty.mdx b/versioned_docs/version-4.1.x/reference/functions/Set-ADTMsiProperty.mdx new file mode 100644 index 0000000..0658f87 --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Set-ADTMsiProperty.mdx @@ -0,0 +1,140 @@ +--- +id: Set-ADTMsiProperty +title: Set-ADTMsiProperty +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Set a property in the MSI property table. + +## SYNTAX + +```powershell +Set-ADTMsiProperty [-Database] <__ComObject> [-PropertyName] [-PropertyValue] [-WhatIf] + [-Confirm] [] +``` + +## DESCRIPTION + +Set a property in the MSI property table. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +Set-ADTMsiProperty -Database $TempMsiPathDatabase -PropertyName 'ALLUSERS' -PropertyValue '1' +``` + +## PARAMETERS + +### -Database + +Specify a ComObject representing an MSI database opened in view/modify/update mode. + +```yaml +Type: __ComObject +Parameter Sets: (All) +Aliases: + +Required: True +Position: 1 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PropertyName + +The name of the property to be set/modified. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: True +Position: 2 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PropertyValue + +The value of the property to be set/modified. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: True +Position: 3 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf + +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm + +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### None + +### You cannot pipe objects to this function. +## OUTPUTS + +### None + +### This function does not generate any output. +## NOTES +An active ADT session is NOT required to use this function. + +This function supports the -WhatIf and -Confirm parameters for testing changes before applying them. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/Set-ADTMsiProperty](https://psappdeploytoolkit.com/docs/reference/functions/Set-ADTMsiProperty) diff --git a/versioned_docs/version-4.1.x/reference/functions/Set-ADTPowerShellCulture.mdx b/versioned_docs/version-4.1.x/reference/functions/Set-ADTPowerShellCulture.mdx new file mode 100644 index 0000000..449f5b9 --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Set-ADTPowerShellCulture.mdx @@ -0,0 +1,73 @@ +--- +id: Set-ADTPowerShellCulture +title: Set-ADTPowerShellCulture +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Changes the current thread's Culture and UICulture to the specified culture. + +## SYNTAX + +```powershell +Set-ADTPowerShellCulture [-CultureInfo] [] +``` + +## DESCRIPTION + +This function changes the current thread's Culture and UICulture to the specified culture. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +Set-ADTPowerShellCulture -Culture en-US +``` + +## PARAMETERS + +### -CultureInfo + +The culture to set the current thread's Culture and UICulture to. +Can be a CultureInfo object, or any valid IETF BCP 47 language tag. + +```yaml +Type: CultureInfo +Parameter Sets: (All) +Aliases: + +Required: True +Position: 1 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### None + +### You cannot pipe objects to this function. +## OUTPUTS + +### None + +### This function does not generate any output. +## NOTES +An active ADT session is NOT required to use this function. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/Set-ADTPowerShellCulture](https://psappdeploytoolkit.com/docs/reference/functions/Set-ADTPowerShellCulture) diff --git a/versioned_docs/version-4.1.x/reference/functions/Set-ADTRegistryKey.mdx b/versioned_docs/version-4.1.x/reference/functions/Set-ADTRegistryKey.mdx new file mode 100644 index 0000000..6514a43 --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Set-ADTRegistryKey.mdx @@ -0,0 +1,266 @@ +--- +id: Set-ADTRegistryKey +title: Set-ADTRegistryKey +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Creates or sets a registry key name, value, and value data. + +## SYNTAX + +```powershell +Set-ADTRegistryKey [-LiteralPath] [[-Name] ] [[-Value] ] [[-Type] ] + [[-MultiStringValueMode] ] [-Wow6432Node] [[-RegistryOptions] ] + [[-SID] ] [-WhatIf] [-Confirm] [] +``` + +## DESCRIPTION + +Creates a registry key name, value, and value data; it sets the same if it already exists. +This function can also handle registry keys for specific user SIDs and 32-bit registry on 64-bit systems. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +Set-ADTRegistryKey -LiteralPath $blockedAppPath -Name 'Debugger' -Value $blockedAppDebuggerValue +``` + +Creates or sets the 'Debugger' value in the specified registry key. + +### EXAMPLE 2 + +```powershell +Set-ADTRegistryKey -LiteralPath 'HKEY_LOCAL_MACHINE\SOFTWARE' -Name 'Application' -Type 'DWord' -Value '1' +``` + +Creates or sets a DWord value in the specified registry key. + +### EXAMPLE 3 + +```powershell +Set-ADTRegistryKey -LiteralPath 'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce' -Name 'Debugger' -Value $blockedAppDebuggerValue -Type String +``` + +Creates or sets a String value in the specified registry key. + +### EXAMPLE 4 + +```powershell +Set-ADTRegistryKey -LiteralPath 'HKCU\Software\Microsoft\Example' -Name 'Data' -Value (0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x02,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x02,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x01,0x01,0x01,0x02,0x02,0x02) -Type 'Binary' +``` + +Creates or sets a Binary value in the specified registry key. + +### EXAMPLE 5 + +```powershell +Set-ADTRegistryKey -LiteralPath 'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Example' -Name '(Default)' -Value "Text" +``` + +Creates or sets the default value in the specified registry key. + +## PARAMETERS + +### -LiteralPath + +The registry key path. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: Key + +Required: True +Position: 1 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Name + +The value name. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: False +Position: 2 +Default value: [System.Management.Automation.Language.NullString]::Value +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Value + +The value data. + +```yaml +Type: Object +Parameter Sets: (All) +Aliases: + +Required: False +Position: 3 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Type + +The type of registry value to create or set. + +DWord should be specified as a decimal. + +```yaml +Type: RegistryValueKind +Parameter Sets: (All) +Aliases: +Accepted values: Unknown, String, ExpandString, Binary, DWord, MultiString, QWord, None + +Required: False +Position: 4 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -MultiStringValueMode + +The mode to operate when working with MultiString objects. +The default is replace, but add and remove modes are supported also. + +```yaml +Type: MultiStringValueMode +Parameter Sets: (All) +Aliases: +Accepted values: Replace, Add, Remove + +Required: False +Position: 5 +Default value: Replace +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Wow6432Node + +Specify this switch to write to the 32-bit registry (Wow6432Node) on 64-bit systems. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -RegistryOptions + +Extra options to use while creating the key. +This is useful for creating volatile keys that do not survive a reboot. + +```yaml +Type: RegistryOptions +Parameter Sets: (All) +Aliases: +Accepted values: None, Volatile + +Required: False +Position: 6 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SID + +The security identifier (SID) for a user. +Specifying this parameter will convert a HKEY_CURRENT_USER registry key to the HKEY_USERS\$SID format. + +Specify this parameter from the Invoke-ADTAllUsersRegistryAction function to read/edit HKCU registry settings for all users on the system. + +```yaml +Type: SecurityIdentifier +Parameter Sets: (All) +Aliases: + +Required: False +Position: 7 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf + +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm + +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### None + +### You cannot pipe objects to this function. +## OUTPUTS + +### None + +### This function does not return any output. +## NOTES +An active ADT session is NOT required to use this function. + +This function supports the -WhatIf and -Confirm parameters for testing changes before applying them. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/Set-ADTRegistryKey](https://psappdeploytoolkit.com/docs/reference/functions/Set-ADTRegistryKey) diff --git a/versioned_docs/version-4.1.x/reference/functions/Set-ADTServiceStartMode.mdx b/versioned_docs/version-4.1.x/reference/functions/Set-ADTServiceStartMode.mdx new file mode 100644 index 0000000..6423098 --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Set-ADTServiceStartMode.mdx @@ -0,0 +1,129 @@ +--- +id: Set-ADTServiceStartMode +title: Set-ADTServiceStartMode +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Set the service startup mode. + +## SYNTAX + +```powershell +Set-ADTServiceStartMode [-Service] [-StartMode] [-WhatIf] [-Confirm] + [] +``` + +## DESCRIPTION + +Set the service startup mode. +This function allows you to configure the startup mode of a specified service. +The startup modes available are: Automatic, Automatic (Delayed Start), Manual, Disabled, Boot, and System. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +Set-ADTServiceStartMode -Service 'wuauserv' -StartMode 'Automatic (Delayed Start)' +``` + +Sets the 'wuauserv' service to start automatically with a delayed start. + +## PARAMETERS + +### -Service + +Specify the name of the service. + +```yaml +Type: ServiceController +Parameter Sets: (All) +Aliases: + +Required: True +Position: 1 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -StartMode + +Specify startup mode for the service. +Options: Automatic, Automatic (Delayed Start), Manual, Disabled, Boot, System. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: True +Position: 2 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf + +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm + +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### None + +### You cannot pipe objects to this function. +## OUTPUTS + +### None + +### This function does not return any output. +## NOTES +An active ADT session is NOT required to use this function. + +This function supports the -WhatIf and -Confirm parameters for testing changes before applying them. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/Set-ADTServiceStartMode](https://psappdeploytoolkit.com/docs/reference/functions/Set-ADTServiceStartMode) diff --git a/versioned_docs/version-4.1.x/reference/functions/Set-ADTShortcut.mdx b/versioned_docs/version-4.1.x/reference/functions/Set-ADTShortcut.mdx new file mode 100644 index 0000000..715bfd1 --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Set-ADTShortcut.mdx @@ -0,0 +1,260 @@ +--- +id: Set-ADTShortcut +title: Set-ADTShortcut +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Modifies a .lnk or .url type shortcut. + +## SYNTAX + +```powershell +Set-ADTShortcut [-LiteralPath] [-TargetPath ] [-Arguments ] [-IconLocation ] + [-IconIndex ] [-Description ] [-WorkingDirectory ] [-WindowStyle ] + [-RunAsAdmin] [-Hotkey ] [-WhatIf] [-Confirm] [] +``` + +## DESCRIPTION + +Modifies a shortcut - .lnk or .url file, with configurable options. +Only specify the parameters that you want to change. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +Set-ADTShortcut -LiteralPath "$envCommonDesktop\Application.lnk" -TargetPath "$envProgramFiles\Application\application.exe" +``` + +Creates a shortcut on the All Users desktop named 'Application', targeted to '$envProgramFiles\Application\application.exe'. + +## PARAMETERS + +### -LiteralPath + +Path to the shortcut to be changed. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: Path + +Required: True +Position: 1 +Default value: None +Accept pipeline input: True (ByPropertyName, ByValue) +Accept wildcard characters: False +``` + +### -TargetPath + +Sets target path or URL that the shortcut launches. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: [System.Management.Automation.Language.NullString]::Value +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Arguments + +Sets the arguments used against the target path. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: [System.Management.Automation.Language.NullString]::Value +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -IconLocation + +Sets location of the icon used for the shortcut. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: [System.Management.Automation.Language.NullString]::Value +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -IconIndex + +Sets the index of the icon. +Executables, DLLs, ICO files with multiple icons need the icon index to be specified. +This parameter is an Integer. +The first index is 0. + +```yaml +Type: UInt32 +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Description + +Sets the description of the shortcut as can be seen in the shortcut's properties. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: [System.Management.Automation.Language.NullString]::Value +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WorkingDirectory + +Sets working directory to be used for the target path. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: [System.Management.Automation.Language.NullString]::Value +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WindowStyle + +Sets the shortcut's window style to be minimised, maximised, etc. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: DontChange +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -RunAsAdmin + +Sets the shortcut to require elevated permissions to run. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Hotkey + +Sets the hotkey to launch the shortcut, e.g. +"CTRL+SHIFT+F". + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf + +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm + +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### None + +### You cannot pipe objects to this function. +## OUTPUTS + +### None + +### This function does not generate any output. +## NOTES +An active ADT session is NOT required to use this function. + +This function supports the -WhatIf and -Confirm parameters for testing changes before applying them. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/Set-ADTShortcut](https://psappdeploytoolkit.com/docs/reference/functions/Set-ADTShortcut) diff --git a/versioned_docs/version-4.1.x/reference/functions/Show-ADTBalloonTip.mdx b/versioned_docs/version-4.1.x/reference/functions/Show-ADTBalloonTip.mdx new file mode 100644 index 0000000..d2b699b --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Show-ADTBalloonTip.mdx @@ -0,0 +1,169 @@ +--- +id: Show-ADTBalloonTip +title: Show-ADTBalloonTip +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Displays a balloon tip notification in the system tray. + +## SYNTAX + +```powershell +Show-ADTBalloonTip [-BalloonTipText] [-BalloonTipIcon ] [-BalloonTipTime ] + [-NoWait] [-Force] -BalloonTipTitle [] +``` + +## DESCRIPTION + +Displays a balloon tip notification in the system tray. +This function can be used to show notifications to the user with customizable text, title, icon, and display duration. + +For Windows 10 and above, balloon tips automatically get translated by the system into toast notifications. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +Show-ADTBalloonTip -BalloonTipText 'Installation Started' -BalloonTipTitle 'Application Name' +``` + +Displays a balloon tip with the text 'Installation Started' and the title 'Application Name'. + +### EXAMPLE 2 + +```powershell +Show-ADTBalloonTip -BalloonTipIcon 'Info' -BalloonTipText 'Installation Started' -BalloonTipTitle 'Application Name' +``` + +Displays a balloon tip with the info icon, the text 'Installation Started', and the title 'Application Name' + +## PARAMETERS + +### -BalloonTipText + +Text of the balloon tip. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: True +Position: 1 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -BalloonTipIcon + +Icon to be used. +Options: 'Error', 'Info', 'None', 'Warning'. + +```yaml +Type: ToolTipIcon +Parameter Sets: (All) +Aliases: +Accepted values: None, Info, Warning, Error + +Required: False +Position: Named +Default value: Info +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -BalloonTipTime + +Time in milliseconds to display the balloon tip. +Default: 10000. + +```yaml +Type: UInt32 +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: 10000 +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -NoWait + +Creates the balloon tip asynchronously. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Force + +Creates the balloon tip irrespective of whether running silently or not. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -BalloonTipTitle + +Title of the balloon tip. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### None + +### You cannot pipe objects to this function. +## OUTPUTS + +### None + +### This function does not return any output. +## NOTES +An active ADT session is NOT required to use this function. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/Show-ADTBalloonTip](https://psappdeploytoolkit.com/docs/reference/functions/Show-ADTBalloonTip) diff --git a/versioned_docs/version-4.1.x/reference/functions/Show-ADTDialogBox.mdx b/versioned_docs/version-4.1.x/reference/functions/Show-ADTDialogBox.mdx new file mode 100644 index 0000000..8022a6b --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Show-ADTDialogBox.mdx @@ -0,0 +1,226 @@ +--- +id: Show-ADTDialogBox +title: Show-ADTDialogBox +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Display a custom dialog box with optional title, buttons, icon, and timeout. + +## SYNTAX + +```powershell +Show-ADTDialogBox [-Text] [-Buttons ] [-DefaultButton ] + [-Icon ] [-NoWait] [-ExitOnTimeout] [-NotTopMost] [-Force] -Title [-Timeout ] + [] +``` + +## DESCRIPTION + +Display a custom dialog box with optional title, buttons, icon, and timeout. +The default button is "OK", the default Icon is "None", and the default Timeout is None. + +Show-ADTInstallationPrompt is recommended over this function as it provides more customization and uses consistent branding with the other UI components. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +Show-ADTDialogBox -Title 'Installation Notice' -Text 'Installation will take approximately 30 minutes. Do you wish to proceed?' -Buttons 'OKCancel' -DefaultButton 'Second' -Icon 'Exclamation' -Timeout 600 -NotTopMost +``` + +## PARAMETERS + +### -Text + +Text in the message dialog box. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: True +Position: 1 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Buttons + +The button(s) to display on the dialog box. + +```yaml +Type: DialogBoxButtons +Parameter Sets: (All) +Aliases: +Accepted values: Ok, OkCancel, AbortRetryIgnore, YesNoCancel, YesNo, RetryCancel, CancelTryContinue + +Required: False +Position: Named +Default value: Ok +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultButton + +The Default button that is selected. +Options: First, Second, Third. + +```yaml +Type: DialogBoxDefaultButton +Parameter Sets: (All) +Aliases: +Accepted values: First, Second, Third + +Required: False +Position: Named +Default value: First +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Icon + +Icon to display on the dialog box. +Options: None, Stop, Question, Exclamation, Information. + +```yaml +Type: DialogBoxIcon +Parameter Sets: (All) +Aliases: +Accepted values: Stop, Question, Exclamation, Information + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -NoWait + +Presents the dialog in a separate, independent thread so that the main process isn't stalled waiting for a response. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ExitOnTimeout + +Specifies whether to not exit the script if the UI times out. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -NotTopMost + +Specifies whether the message box shouldn't be a system modal message box that appears in a topmost window. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Force + +Specifies whether the message box should appear irrespective of an ongoing DeploymentSession's DeployMode. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Timeout + +Specifies how long (in seconds) to show the message prompt before aborting. + +```yaml +Type: UInt32 +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Title + +Title of the message dialog box. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### None + +### You cannot pipe objects to this function. +## OUTPUTS + +### PSADT.UserInterface.DialogResults.DialogBoxResult + +### Returns the text of the button that was clicked. +## NOTES +An active ADT session is NOT required to use this function. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/Show-ADTDialogBox](https://psappdeploytoolkit.com/docs/reference/functions/Show-ADTDialogBox) diff --git a/versioned_docs/version-4.1.x/reference/functions/Show-ADTHelpConsole.mdx b/versioned_docs/version-4.1.x/reference/functions/Show-ADTHelpConsole.mdx new file mode 100644 index 0000000..ee0b5f8 --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Show-ADTHelpConsole.mdx @@ -0,0 +1,56 @@ +--- +id: Show-ADTHelpConsole +title: Show-ADTHelpConsole +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Displays a help console for the ADT module. + +## SYNTAX + +```powershell +Show-ADTHelpConsole +``` + +## DESCRIPTION + +Displays a help console for the ADT module in a new PowerShell window. +The console provides a graphical interface to browse and view detailed help information for all commands exported by the ADT module. +The help console includes a list box to select commands and a text box to display the full help content for the selected command. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +Show-ADTHelpConsole +``` + +Opens a new PowerShell window displaying the help console for the ADT module. + +## PARAMETERS + +## INPUTS + +### None + +### You cannot pipe objects to this function. +## OUTPUTS + +### None + +### This function does not return any output. +## NOTES +An active ADT session is NOT required to use this function. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/Show-ADTHelpConsole](https://psappdeploytoolkit.com/docs/reference/functions/Show-ADTHelpConsole) diff --git a/versioned_docs/version-4.1.x/reference/functions/Show-ADTInstallationProgress.mdx b/versioned_docs/version-4.1.x/reference/functions/Show-ADTInstallationProgress.mdx new file mode 100644 index 0000000..826dcd5 --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Show-ADTInstallationProgress.mdx @@ -0,0 +1,239 @@ +--- +id: Show-ADTInstallationProgress +title: Show-ADTInstallationProgress +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Displays a progress dialog in a separate thread with an updateable custom message. + +## SYNTAX + +```powershell +Show-ADTInstallationProgress [[-StatusMessage] ] [[-StatusMessageDetail] ] + [[-StatusBarPercentage] ] [[-MessageAlignment] ] + [[-WindowLocation] ] [-NotTopMost] [-AllowMove] -Title -Subtitle + [] +``` + +## DESCRIPTION + +Creates a WPF window in a separate thread to display a marquee style progress ellipse with a custom message that can be updated. +The status message supports line breaks. + +The first time this function is called in a script, it will display a balloon tip notification to indicate that the installation has started (provided balloon tips are enabled in the config.psd1 file). + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +Show-ADTInstallationProgress +``` + +Uses the default status message from the strings.psd1 file. + +### EXAMPLE 2 + +```powershell +Show-ADTInstallationProgress -StatusMessage 'Installation in Progress...' +``` + +Displays a progress dialog with the status message 'Installation in Progress...'. + +### EXAMPLE 3 + +```powershell +Show-ADTInstallationProgress -StatusMessage "Installation in Progress...`nThe installation may take 20 minutes to complete." +``` + +Displays a progress dialog with a multiline status message. + +### EXAMPLE 4 + +```powershell +Show-ADTInstallationProgress -StatusMessage 'Installation in Progress...' -WindowLocation 'BottomRight' -NotTopMost +``` + +Displays a progress dialog with the status message 'Installation in Progress...', positioned at the bottom right of the screen, and not set as topmost. + +## PARAMETERS + +### -StatusMessage + +The status message to be displayed. +The default status message is taken from the imported strings.psd1 file. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: False +Position: 1 +Default value: [System.Management.Automation.Language.NullString]::Value +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -StatusMessageDetail + +The status message detail to be displayed with a fluent progress window. +The default status message is taken from the imported strings.psd1 file. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: False +Position: 2 +Default value: [System.Management.Automation.Language.NullString]::Value +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -StatusBarPercentage + +The percentage to display on the status bar. +If null or not supplied, the status bar will continuously scroll. + +```yaml +Type: Double +Parameter Sets: (All) +Aliases: + +Required: False +Position: 3 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -MessageAlignment + +The text alignment to use for the status message. + +```yaml +Type: DialogMessageAlignment +Parameter Sets: (All) +Aliases: +Accepted values: Left, Center, Right + +Required: False +Position: 4 +Default value: Center +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WindowLocation + +The location of the dialog on the screen. + +```yaml +Type: DialogPosition +Parameter Sets: (All) +Aliases: +Accepted values: Default, TopLeft, Top, TopRight, TopCenter, Center, BottomLeft, Bottom, BottomRight, BottomCenter + +Required: False +Position: 5 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -NotTopMost + +Specifies whether the progress window shouldn't be topmost. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -AllowMove + +Specifies that the user can move the dialog on the screen. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Subtitle + +The subtitle of the window to be displayed with a fluent progress window. +Optionally used to override the subtitle defined in the strings.psd1 file. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: WindowSubtitle + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Title + +The title of the window to be displayed. +Optionally used to override the active DeploymentSession's InstallTitle value. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: WindowTitle + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### None + +### You cannot pipe objects to this function. +## OUTPUTS + +### None + +### This function does not generate any output. +## NOTES +An active ADT session is NOT required to use this function. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/Show-ADTInstallationProgress](https://psappdeploytoolkit.com/docs/reference/functions/Show-ADTInstallationProgress) diff --git a/versioned_docs/version-4.1.x/reference/functions/Show-ADTInstallationPrompt.mdx b/versioned_docs/version-4.1.x/reference/functions/Show-ADTInstallationPrompt.mdx new file mode 100644 index 0000000..692a194 --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Show-ADTInstallationPrompt.mdx @@ -0,0 +1,454 @@ +--- +id: Show-ADTInstallationPrompt +title: Show-ADTInstallationPrompt +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Displays a custom installation prompt with the toolkit branding and optional buttons. + +## SYNTAX + +### ShowCustomDialog (Default) + +```powershell +Show-ADTInstallationPrompt -Message [-MessageAlignment ] + [-ButtonRightText ] [-ButtonLeftText ] [-ButtonMiddleText ] [-Icon ] + [-WindowLocation ] [-NoWait] [-PersistPrompt] [-MinimizeWindows] [-NoExitOnTimeout] + [-NotTopMost] [-AllowMove] [-Force] -Title -Subtitle [-Timeout ] + [] +``` + +### ShowInputDialog_SecureInput + +```powershell +Show-ADTInstallationPrompt [-RequestInput] [-SecureInput] -Message + [-MessageAlignment ] [-ButtonRightText ] [-ButtonLeftText ] + [-ButtonMiddleText ] [-Icon ] [-WindowLocation ] [-PersistPrompt] + [-MinimizeWindows] [-NoExitOnTimeout] [-NotTopMost] [-AllowMove] [-Force] -Title -Subtitle + [-Timeout ] [] +``` + +### ShowInputDialog_DefaultValue + +```powershell +Show-ADTInstallationPrompt [-RequestInput] -DefaultValue -Message + [-MessageAlignment ] [-ButtonRightText ] [-ButtonLeftText ] + [-ButtonMiddleText ] [-Icon ] [-WindowLocation ] [-PersistPrompt] + [-MinimizeWindows] [-NoExitOnTimeout] [-NotTopMost] [-AllowMove] [-Force] -Title -Subtitle + [-Timeout ] [] +``` + +### ShowInputDialog + +```powershell +Show-ADTInstallationPrompt [-RequestInput] -Message [-MessageAlignment ] + [-ButtonRightText ] [-ButtonLeftText ] [-ButtonMiddleText ] [-Icon ] + [-WindowLocation ] [-PersistPrompt] [-MinimizeWindows] [-NoExitOnTimeout] [-NotTopMost] + [-AllowMove] [-Force] -Title -Subtitle [-Timeout ] [] +``` + +## DESCRIPTION + +Displays a custom installation prompt with the toolkit branding and optional buttons. +Any combination of Left, Middle, or Right buttons can be displayed. +The return value of the button clicked by the user is the button text specified. +The prompt can also display a system icon and be configured to persist, minimize other windows, or timeout after a specified period. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +$result = Show-ADTInstallationPrompt -Message 'Do you want to proceed with the installation?' -ButtonLeftText Yes -ButtonRightText No +switch ($result) +{ + Yes { + Write-ADTLogEntry "User clicked the [Yes] button." + } + No { + Write-ADTLogEntry "User clicked the [No] button." + } +} +``` + +### EXAMPLE 2 + +```powershell +Show-ADTInstallationPrompt -Title 'Funny Prompt' -Message 'How are you feeling today?' -ButtonLeftText 'Good' -ButtonRightText 'Bad' -ButtonMiddleText 'Indifferent' +``` + +### EXAMPLE 3 + +```powershell +Show-ADTInstallationPrompt -Message 'You can customize text to appear at the end of an install, or remove it completely for unattended installations.' -ButtonLeftText 'OK' -Icon Information -NoWait +``` + +### EXAMPLE 4 + +```powershell +Show-ADTInstallationPrompt -RequestInput -Message 'Tell us why you think PSADT is the best thing since sliced bread.' -ButtonRightText 'Submit' +``` + +### EXAMPLE 5 + +```powershell +Show-ADTInstallationPrompt -RequestInput -DefaultValue 'XXXX' -Message 'Please type in your favourite beer.' -ButtonRightText 'Submit' +``` + +## PARAMETERS + +### -RequestInput + +Show a text box for the user to provide an answer. + +```yaml +Type: SwitchParameter +Parameter Sets: ShowInputDialog_SecureInput, ShowInputDialog_DefaultValue, ShowInputDialog +Aliases: + +Required: True +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultValue + +The default value to show in the text box. + +```yaml +Type: String +Parameter Sets: ShowInputDialog_DefaultValue +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SecureInput + +Indicates input should be masked (i.e. +for password use). + +```yaml +Type: SwitchParameter +Parameter Sets: ShowInputDialog_SecureInput +Aliases: + +Required: True +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Message + +The message text to be displayed on the prompt. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -MessageAlignment + +Alignment of the message text. + +```yaml +Type: DialogMessageAlignment +Parameter Sets: (All) +Aliases: +Accepted values: Left, Center, Right + +Required: False +Position: Named +Default value: Center +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ButtonRightText + +Show a button on the right of the prompt with the specified text. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: [System.Management.Automation.Language.NullString]::Value +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ButtonLeftText + +Show a button on the left of the prompt with the specified text. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: [System.Management.Automation.Language.NullString]::Value +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ButtonMiddleText + +Show a button in the middle of the prompt with the specified text. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: [System.Management.Automation.Language.NullString]::Value +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Icon + +Show a system icon in the prompt. + +```yaml +Type: DialogSystemIcon +Parameter Sets: (All) +Aliases: +Accepted values: Application, Asterisk, Error, Exclamation, Hand, Information, Question, Shield, Warning, WinLogo + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WindowLocation + +The location of the dialog on the screen. + +```yaml +Type: DialogPosition +Parameter Sets: (All) +Aliases: +Accepted values: Default, TopLeft, Top, TopRight, TopCenter, Center, BottomLeft, Bottom, BottomRight, BottomCenter + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -NoWait + +Presents the dialog in a separate, independent thread so that the main process isn't stalled waiting for a response. + +```yaml +Type: SwitchParameter +Parameter Sets: ShowCustomDialog +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PersistPrompt + +Specify whether to make the prompt persist in the center of the screen every couple of seconds, specified in the config.psd1 file. +The user will have no option but to respond to the prompt. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -MinimizeWindows + +Specifies whether to minimize other windows when displaying prompt. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -NoExitOnTimeout + +Specifies whether to not exit the script if the UI times out. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -NotTopMost + +Specifies whether the prompt shouldn't be topmost, above all other windows. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -AllowMove + +Specifies that the user can move the dialog on the screen. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Force + +Specifies whether the message box should appear irrespective of an ongoing DeploymentSession's DeployMode. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Subtitle + +Subtitle of the prompt. +Optionally used to override the subtitle defined in the strings.psd1 file. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Timeout + +Specifies how long to show the message prompt before aborting. + +```yaml +Type: UInt32 +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Title + +Title of the prompt. +Optionally used to override the active DeploymentSession's InstallTitle value. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### None + +### You cannot pipe objects to this function. +## OUTPUTS + +### None + +### This function does not generate any output. +## NOTES +An active ADT session is NOT required to use this function. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/Show-ADTInstallationPrompt](https://psappdeploytoolkit.com/docs/reference/functions/Show-ADTInstallationPrompt) diff --git a/versioned_docs/version-4.1.x/reference/functions/Show-ADTInstallationRestartPrompt.mdx b/versioned_docs/version-4.1.x/reference/functions/Show-ADTInstallationRestartPrompt.mdx new file mode 100644 index 0000000..ed346bf --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Show-ADTInstallationRestartPrompt.mdx @@ -0,0 +1,275 @@ +--- +id: Show-ADTInstallationRestartPrompt +title: Show-ADTInstallationRestartPrompt +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Displays a restart prompt with a countdown to a forced restart. + +## SYNTAX + +### Countdown (Default) + +```powershell +Show-ADTInstallationRestartPrompt [-CountdownSeconds ] [-CountdownNoHideSeconds ] + [-WindowLocation ] [-CustomText] [-NotTopMost] [-AllowMove] -Title -Subtitle + [] +``` + +### NoCountdown + +```powershell +Show-ADTInstallationRestartPrompt [-NoCountdown] [-WindowLocation ] [-CustomText] [-NotTopMost] + [-AllowMove] -Title -Subtitle [] +``` + +### SilentRestart + +```powershell +Show-ADTInstallationRestartPrompt [-SilentRestart] [-SilentCountdownSeconds ] + [-WindowLocation ] [-NotTopMost] [-AllowMove] -Title -Subtitle + [] +``` + +## DESCRIPTION + +Displays a restart prompt with a countdown to a forced restart. +The prompt can be customized with a title, countdown duration, and whether it should be topmost. +It also supports silent mode where the restart can be triggered without user interaction. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +Show-ADTInstallationRestartPrompt -NoCountdown +``` + +Displays a restart prompt without a countdown. + +### EXAMPLE 2 + +```powershell +Show-ADTInstallationRestartPrompt -CountdownSeconds 300 +``` + +Displays a restart prompt with a 300-second countdown. + +### EXAMPLE 3 + +```powershell +Show-ADTInstallationRestartPrompt -CountdownSeconds 600 -CountdownNoHideSeconds 60 +``` + +Displays a restart prompt with a 600-second countdown, removing the ability to hide/minimise the dialog for the last 60 seconds. + +## PARAMETERS + +### -NoCountdown + +Specifies whether the user should receive a prompt to immediately restart their workstation. + +```yaml +Type: SwitchParameter +Parameter Sets: NoCountdown +Aliases: + +Required: True +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -CountdownSeconds + +Specifies the number of seconds to display the restart prompt. + +```yaml +Type: UInt32 +Parameter Sets: Countdown +Aliases: + +Required: False +Position: Named +Default value: 60 +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -CountdownNoHideSeconds + +Specifies the number of seconds to display the restart prompt without allowing the window to be hidden. + +```yaml +Type: UInt32 +Parameter Sets: Countdown +Aliases: + +Required: False +Position: Named +Default value: 30 +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SilentRestart + +Specifies whether the restart should be triggered when DeployMode is silent or very silent. + +```yaml +Type: SwitchParameter +Parameter Sets: SilentRestart +Aliases: + +Required: True +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SilentCountdownSeconds + +Specifies number of seconds to countdown for the restart when the toolkit is running in silent mode and `-SilentRestart` isn't specified. + +```yaml +Type: UInt32 +Parameter Sets: SilentRestart +Aliases: + +Required: False +Position: Named +Default value: 5 +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WindowLocation + +The location of the dialog on the screen. + +```yaml +Type: DialogPosition +Parameter Sets: (All) +Aliases: +Accepted values: Default, TopLeft, Top, TopRight, TopCenter, Center, BottomLeft, Bottom, BottomRight, BottomCenter + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -CustomText + +Specify whether to display a custom message specified in the `strings.psd1` file. +Custom message must be populated for each language section in the `strings.psd1` file. + +```yaml +Type: SwitchParameter +Parameter Sets: Countdown, NoCountdown +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -NotTopMost + +Specifies whether the prompt shouldn't be topmost, above all other windows. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -AllowMove + +Specifies that the user can move the dialog on the screen. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Subtitle + +Subtitle of the prompt. +Optionally used to override the subtitle defined in the strings.psd1 file. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Title + +Title of the prompt. +Optionally used to override the active DeploymentSession's InstallTitle value. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### None + +### You cannot pipe objects to this function. +## OUTPUTS + +### None + +### This function does not generate any output. +## NOTES +Be mindful of the countdown you specify for the reboot as code directly after this function might NOT be able to execute - that includes logging. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/Show-ADTInstallationRestartPrompt](https://psappdeploytoolkit.com/docs/reference/functions/Show-ADTInstallationRestartPrompt) diff --git a/versioned_docs/version-4.1.x/reference/functions/Show-ADTInstallationWelcome.mdx b/versioned_docs/version-4.1.x/reference/functions/Show-ADTInstallationWelcome.mdx new file mode 100644 index 0000000..9ed379d --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Show-ADTInstallationWelcome.mdx @@ -0,0 +1,886 @@ +--- +id: Show-ADTInstallationWelcome +title: Show-ADTInstallationWelcome +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Show a welcome dialog prompting the user with information about the deployment and actions to be performed before the deployment can begin. + +## SYNTAX + +### Interactive, with no modifying options. (Default) + +```powershell +Show-ADTInstallationWelcome [-WindowLocation ] [-PersistPrompt] [-ContinueOnProcessClosure] + [-MinimizeWindows] [-NotTopMost] [-AllowMove] [-AllowMinimize] [-CustomText] [-PassThru] -Title + -Subtitle [] +``` + +### Silent, with processes to close, and a free disk space check. + +```powershell +Show-ADTInstallationWelcome -CloseProcesses [-HideCloseButton] [-Silent] + [-BlockExecution] [-CheckDiskSpace] [-RequiredDiskSpace ] -Title -Subtitle + [] +``` + +### Silent, and with processes to close. + +```powershell +Show-ADTInstallationWelcome -CloseProcesses [-HideCloseButton] [-Silent] + [-BlockExecution] -Title -Subtitle [] +``` + +### Interactive, with processes to close, with deferral allowed only if the processes to close are open, with a close processes countdown irrespective of whether the user can defer or not, and a free disk space check. + +```powershell +Show-ADTInstallationWelcome -CloseProcesses [-HideCloseButton] + [-AllowDeferCloseProcesses] -ForceCloseProcessesCountdown [-DeferTimes ] + [-DeferDays ] [-DeferDeadline ] [-DeferRunInterval ] + [-WindowLocation ] [-BlockExecution] [-PromptToSave] [-PersistPrompt] [-MinimizeWindows] + [-NotTopMost] [-AllowMove] [-AllowMinimize] [-CustomText] [-CheckDiskSpace] [-RequiredDiskSpace ] + [-PassThru] -Title -Subtitle [] +``` + +### Interactive, with processes to close, with deferral allowed only if the processes to close are open, and with a close processes countdown irrespective of whether the user can defer or not. + +```powershell +Show-ADTInstallationWelcome -CloseProcesses [-HideCloseButton] + [-AllowDeferCloseProcesses] -ForceCloseProcessesCountdown [-DeferTimes ] + [-DeferDays ] [-DeferDeadline ] [-DeferRunInterval ] + [-WindowLocation ] [-BlockExecution] [-PromptToSave] [-PersistPrompt] [-MinimizeWindows] + [-NotTopMost] [-AllowMove] [-AllowMinimize] [-CustomText] [-PassThru] -Title -Subtitle + [] +``` + +### Interactive, with processes to close, with deferral allowed only if the processes to close are open, with a close processes countdown if the user has no available deferrals, and a free disk space check. + +```powershell +Show-ADTInstallationWelcome -CloseProcesses [-HideCloseButton] + [-AllowDeferCloseProcesses] -CloseProcessesCountdown [-DeferTimes ] [-DeferDays ] + [-DeferDeadline ] [-DeferRunInterval ] [-WindowLocation ] + [-BlockExecution] [-PromptToSave] [-PersistPrompt] [-MinimizeWindows] [-NotTopMost] [-AllowMove] + [-AllowMinimize] [-CustomText] [-CheckDiskSpace] [-RequiredDiskSpace ] [-PassThru] -Title + -Subtitle [] +``` + +### Interactive, with processes to close, with deferral allowed only if the processes to close are open, and with a close processes countdown if the user has no available deferrals. + +```powershell +Show-ADTInstallationWelcome -CloseProcesses [-HideCloseButton] + [-AllowDeferCloseProcesses] -CloseProcessesCountdown [-DeferTimes ] [-DeferDays ] + [-DeferDeadline ] [-DeferRunInterval ] [-WindowLocation ] + [-BlockExecution] [-PromptToSave] [-PersistPrompt] [-MinimizeWindows] [-NotTopMost] [-AllowMove] + [-AllowMinimize] [-CustomText] [-PassThru] -Title -Subtitle [] +``` + +### Interactive, with processes to close, with deferral allowed only if the processes to close are open, with a continue/defer countdown depending on whether processes to close are open or not, and a free disk space check. + +```powershell +Show-ADTInstallationWelcome -CloseProcesses [-HideCloseButton] + [-AllowDeferCloseProcesses] -ForceCountdown [-DeferTimes ] [-DeferDays ] + [-DeferDeadline ] [-DeferRunInterval ] [-WindowLocation ] + [-BlockExecution] [-PromptToSave] [-PersistPrompt] [-MinimizeWindows] [-NotTopMost] [-AllowMove] + [-AllowMinimize] [-CustomText] [-CheckDiskSpace] [-RequiredDiskSpace ] [-PassThru] -Title + -Subtitle [] +``` + +### Interactive, with processes to close, with deferral allowed only if the processes to close are open, and with a continue/defer countdown depending on whether processes to close are open or not. + +```powershell +Show-ADTInstallationWelcome -CloseProcesses [-HideCloseButton] + [-AllowDeferCloseProcesses] -ForceCountdown [-DeferTimes ] [-DeferDays ] + [-DeferDeadline ] [-DeferRunInterval ] [-WindowLocation ] + [-BlockExecution] [-PromptToSave] [-PersistPrompt] [-MinimizeWindows] [-NotTopMost] [-AllowMove] + [-AllowMinimize] [-CustomText] [-PassThru] -Title -Subtitle [] +``` + +### Interactive, with processes to close, with deferral allowed only if the processes to close are open, and a free disk space check. + +```powershell +Show-ADTInstallationWelcome -CloseProcesses [-HideCloseButton] + [-AllowDeferCloseProcesses] [-DeferTimes ] [-DeferDays ] [-DeferDeadline ] + [-DeferRunInterval ] [-WindowLocation ] [-BlockExecution] [-PromptToSave] + [-PersistPrompt] [-MinimizeWindows] [-NotTopMost] [-AllowMove] [-AllowMinimize] [-CustomText] + [-CheckDiskSpace] [-RequiredDiskSpace ] [-PassThru] -Title -Subtitle + [] +``` + +### Interactive, with processes to close, and with deferral allowed only if the processes to close are open. + +```powershell +Show-ADTInstallationWelcome -CloseProcesses [-HideCloseButton] + [-AllowDeferCloseProcesses] [-DeferTimes ] [-DeferDays ] [-DeferDeadline ] + [-DeferRunInterval ] [-WindowLocation ] [-BlockExecution] [-PromptToSave] + [-PersistPrompt] [-MinimizeWindows] [-NotTopMost] [-AllowMove] [-AllowMinimize] [-CustomText] [-PassThru] + -Title -Subtitle [] +``` + +### Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, with a close processes countdown irrespective of whether the user can defer or not, and a free disk space check. + +```powershell +Show-ADTInstallationWelcome -CloseProcesses [-HideCloseButton] [-AllowDefer] + -ForceCloseProcessesCountdown [-DeferTimes ] [-DeferDays ] + [-DeferDeadline ] [-DeferRunInterval ] [-WindowLocation ] + [-BlockExecution] [-PromptToSave] [-PersistPrompt] [-ContinueOnProcessClosure] [-MinimizeWindows] + [-NotTopMost] [-AllowMove] [-AllowMinimize] [-CustomText] [-CheckDiskSpace] [-RequiredDiskSpace ] + [-PassThru] -Title -Subtitle [] +``` + +### Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, and with a close processes countdown irrespective of whether the user can defer or not. + +```powershell +Show-ADTInstallationWelcome -CloseProcesses [-HideCloseButton] [-AllowDefer] + -ForceCloseProcessesCountdown [-DeferTimes ] [-DeferDays ] + [-DeferDeadline ] [-DeferRunInterval ] [-WindowLocation ] + [-BlockExecution] [-PromptToSave] [-PersistPrompt] [-ContinueOnProcessClosure] [-MinimizeWindows] + [-NotTopMost] [-AllowMove] [-AllowMinimize] [-CustomText] [-PassThru] -Title -Subtitle + [] +``` + +### Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, with a close processes countdown if the user has no available deferrals, and a free disk space check. + +```powershell +Show-ADTInstallationWelcome -CloseProcesses [-HideCloseButton] [-AllowDefer] + -CloseProcessesCountdown [-DeferTimes ] [-DeferDays ] [-DeferDeadline ] + [-DeferRunInterval ] [-WindowLocation ] [-BlockExecution] [-PromptToSave] + [-PersistPrompt] [-ContinueOnProcessClosure] [-MinimizeWindows] [-NotTopMost] [-AllowMove] [-AllowMinimize] + [-CustomText] [-CheckDiskSpace] [-RequiredDiskSpace ] [-PassThru] -Title -Subtitle + [] +``` + +### Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, and with a close processes countdown if the user has no available deferrals. + +```powershell +Show-ADTInstallationWelcome -CloseProcesses [-HideCloseButton] [-AllowDefer] + -CloseProcessesCountdown [-DeferTimes ] [-DeferDays ] [-DeferDeadline ] + [-DeferRunInterval ] [-WindowLocation ] [-BlockExecution] [-PromptToSave] + [-PersistPrompt] [-ContinueOnProcessClosure] [-MinimizeWindows] [-NotTopMost] [-AllowMove] [-AllowMinimize] + [-CustomText] [-PassThru] -Title -Subtitle [] +``` + +### Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, with a continue/defer countdown depending on whether processes to close are open or not, and a free disk space check. + +```powershell +Show-ADTInstallationWelcome -CloseProcesses [-HideCloseButton] [-AllowDefer] + -ForceCountdown [-DeferTimes ] [-DeferDays ] [-DeferDeadline ] + [-DeferRunInterval ] [-WindowLocation ] [-BlockExecution] [-PromptToSave] + [-PersistPrompt] [-ContinueOnProcessClosure] [-MinimizeWindows] [-NotTopMost] [-AllowMove] [-AllowMinimize] + [-CustomText] [-CheckDiskSpace] [-RequiredDiskSpace ] [-PassThru] -Title -Subtitle + [] +``` + +### Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, and with a continue/defer countdown depending on whether processes to close are open or not. + +```powershell +Show-ADTInstallationWelcome -CloseProcesses [-HideCloseButton] [-AllowDefer] + -ForceCountdown [-DeferTimes ] [-DeferDays ] [-DeferDeadline ] + [-DeferRunInterval ] [-WindowLocation ] [-BlockExecution] [-PromptToSave] + [-PersistPrompt] [-ContinueOnProcessClosure] [-MinimizeWindows] [-NotTopMost] [-AllowMove] [-AllowMinimize] + [-CustomText] [-PassThru] -Title -Subtitle [] +``` + +### Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, and a free disk space check. + +```powershell +Show-ADTInstallationWelcome -CloseProcesses [-HideCloseButton] [-AllowDefer] + [-DeferTimes ] [-DeferDays ] [-DeferDeadline ] [-DeferRunInterval ] + [-WindowLocation ] [-BlockExecution] [-PromptToSave] [-PersistPrompt] + [-ContinueOnProcessClosure] [-MinimizeWindows] [-NotTopMost] [-AllowMove] [-AllowMinimize] [-CustomText] + [-CheckDiskSpace] [-RequiredDiskSpace ] [-PassThru] -Title -Subtitle + [] +``` + +### Interactive, with processes to close, and with deferral allowed irrespective of whether processes to close are open. + +```powershell +Show-ADTInstallationWelcome -CloseProcesses [-HideCloseButton] [-AllowDefer] + [-DeferTimes ] [-DeferDays ] [-DeferDeadline ] [-DeferRunInterval ] + [-WindowLocation ] [-BlockExecution] [-PromptToSave] [-PersistPrompt] + [-ContinueOnProcessClosure] [-MinimizeWindows] [-NotTopMost] [-AllowMove] [-AllowMinimize] [-CustomText] + [-PassThru] -Title -Subtitle [] +``` + +### Interactive, with processes to close, with a close processes countdown irrespective of whether the user can defer or not, and a free disk space check. + +```powershell +Show-ADTInstallationWelcome -CloseProcesses [-HideCloseButton] + -ForceCloseProcessesCountdown [-WindowLocation ] [-BlockExecution] [-PromptToSave] + [-PersistPrompt] [-ContinueOnProcessClosure] [-MinimizeWindows] [-NotTopMost] [-AllowMove] [-AllowMinimize] + [-CustomText] [-CheckDiskSpace] [-RequiredDiskSpace ] [-PassThru] -Title -Subtitle + [] +``` + +### Interactive, with processes to close, and with a close processes countdown irrespective of whether the user can defer or not. + +```powershell +Show-ADTInstallationWelcome -CloseProcesses [-HideCloseButton] + -ForceCloseProcessesCountdown [-WindowLocation ] [-BlockExecution] [-PromptToSave] + [-PersistPrompt] [-ContinueOnProcessClosure] [-MinimizeWindows] [-NotTopMost] [-AllowMove] [-AllowMinimize] + [-CustomText] [-PassThru] -Title -Subtitle [] +``` + +### Interactive, with processes to close, with a close processes countdown if the user has no available deferrals, and a free disk space check. + +```powershell +Show-ADTInstallationWelcome -CloseProcesses [-HideCloseButton] + -CloseProcessesCountdown [-WindowLocation ] [-BlockExecution] [-PromptToSave] + [-PersistPrompt] [-ContinueOnProcessClosure] [-MinimizeWindows] [-NotTopMost] [-AllowMove] [-AllowMinimize] + [-CustomText] [-CheckDiskSpace] [-RequiredDiskSpace ] [-PassThru] -Title -Subtitle + [] +``` + +### Interactive, with processes to close, and with a close processes countdown if the user has no available deferrals. + +```powershell +Show-ADTInstallationWelcome -CloseProcesses [-HideCloseButton] + -CloseProcessesCountdown [-WindowLocation ] [-BlockExecution] [-PromptToSave] + [-PersistPrompt] [-ContinueOnProcessClosure] [-MinimizeWindows] [-NotTopMost] [-AllowMove] [-AllowMinimize] + [-CustomText] [-PassThru] -Title -Subtitle [] +``` + +### Interactive, with processes to close, and a free disk space check. + +```powershell +Show-ADTInstallationWelcome -CloseProcesses [-HideCloseButton] + [-WindowLocation ] [-BlockExecution] [-PromptToSave] [-PersistPrompt] + [-ContinueOnProcessClosure] [-MinimizeWindows] [-NotTopMost] [-AllowMove] [-AllowMinimize] [-CustomText] + [-CheckDiskSpace] [-RequiredDiskSpace ] [-PassThru] -Title -Subtitle + [] +``` + +### Interactive, and with processes to close. + +```powershell +Show-ADTInstallationWelcome -CloseProcesses [-HideCloseButton] + [-WindowLocation ] [-BlockExecution] [-PromptToSave] [-PersistPrompt] + [-ContinueOnProcessClosure] [-MinimizeWindows] [-NotTopMost] [-AllowMove] [-AllowMinimize] [-CustomText] + [-PassThru] -Title -Subtitle [] +``` + +### Interactive, with deferral allowed, with a continue countdown irrespective of deferrals, and a free disk space check. + +```powershell +Show-ADTInstallationWelcome [-AllowDefer] -ForceCountdown [-DeferTimes ] [-DeferDays ] + [-DeferDeadline ] [-DeferRunInterval ] [-WindowLocation ] [-PersistPrompt] + [-ContinueOnProcessClosure] [-MinimizeWindows] [-NotTopMost] [-AllowMove] [-AllowMinimize] [-CustomText] + [-CheckDiskSpace] [-RequiredDiskSpace ] [-PassThru] -Title -Subtitle + [] +``` + +### Interactive, with deferral allowed, and with a continue countdown irrespective of deferrals. + +```powershell +Show-ADTInstallationWelcome [-AllowDefer] -ForceCountdown [-DeferTimes ] [-DeferDays ] + [-DeferDeadline ] [-DeferRunInterval ] [-WindowLocation ] [-PersistPrompt] + [-ContinueOnProcessClosure] [-MinimizeWindows] [-NotTopMost] [-AllowMove] [-AllowMinimize] [-CustomText] + [-PassThru] -Title -Subtitle [] +``` + +### Interactive, with deferral allowed, and a free disk space check. + +```powershell +Show-ADTInstallationWelcome [-AllowDefer] [-DeferTimes ] [-DeferDays ] + [-DeferDeadline ] [-DeferRunInterval ] [-WindowLocation ] [-PersistPrompt] + [-ContinueOnProcessClosure] [-MinimizeWindows] [-NotTopMost] [-AllowMove] [-AllowMinimize] [-CustomText] + [-CheckDiskSpace] [-RequiredDiskSpace ] [-PassThru] -Title -Subtitle + [] +``` + +### Interactive, and with deferral allowed. + +```powershell +Show-ADTInstallationWelcome [-AllowDefer] [-DeferTimes ] [-DeferDays ] + [-DeferDeadline ] [-DeferRunInterval ] [-WindowLocation ] [-PersistPrompt] + [-ContinueOnProcessClosure] [-MinimizeWindows] [-NotTopMost] [-AllowMove] [-AllowMinimize] [-CustomText] + [-PassThru] -Title -Subtitle [] +``` + +### Silent, and with a free disk space check. + +```powershell +Show-ADTInstallationWelcome [-Silent] [-CheckDiskSpace] [-RequiredDiskSpace ] -Title + -Subtitle [] +``` + +### Silent, with no modifying options. + +```powershell +Show-ADTInstallationWelcome [-Silent] -Title -Subtitle [] +``` + +### Interactive, and with a free disk space check. + +```powershell +Show-ADTInstallationWelcome [-WindowLocation ] [-PersistPrompt] [-ContinueOnProcessClosure] + [-MinimizeWindows] [-NotTopMost] [-AllowMove] [-AllowMinimize] [-CustomText] [-CheckDiskSpace] + [-RequiredDiskSpace ] [-PassThru] -Title -Subtitle [] +``` + +## DESCRIPTION + +The following prompts can be included in the welcome dialog: + +* Close the specified running applications, or optionally close the applications without showing a prompt (using the `-Silent` switch). +* Defer the deployment a certain number of times, for a certain number of days or until a deadline is reached. +* Countdown until applications are automatically closed. +* Prevent users from launching the specified applications while the deployment is in progress. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +Show-ADTInstallationWelcome -CloseProcesses iexplore, winword, excel +``` + +Prompt the user to close Internet Explorer, Word and Excel. + +### EXAMPLE 2 + +```powershell +Show-ADTInstallationWelcome -CloseProcesses @{ Name = 'winword' }, @{ Name = 'excel' } -Silent +``` + +Close Word and Excel without prompting the user. + +### EXAMPLE 3 + +```powershell +Show-ADTInstallationWelcome -CloseProcesses @{ Name = 'winword' }, @{ Name = 'excel' } -BlockExecution +``` + +Close Word and Excel and prevent the user from launching the applications while the deployment is in progress. + +### EXAMPLE 4 + +```powershell +Show-ADTInstallationWelcome -CloseProcesses @{ Name = 'winword'; Description = 'Microsoft Office Word' }, @{ Name = 'excel'; Description = 'Microsoft Office Excel' } -CloseProcessesCountdown 600 +``` + +Prompt the user to close Word and Excel, with customized descriptions for the applications and automatically close the applications after 10 minutes. + +### EXAMPLE 5 + +```powershell +Show-ADTInstallationWelcome -CloseProcesses @{ Name = 'winword' }, @{ Name = 'msaccess' }, @{ Name = 'excel' } -PersistPrompt +``` + +Prompt the user to close Word, MSAccess and Excel. +By using the PersistPrompt switch, the dialog will return to the center of the screen every couple of seconds, specified in the config.psd1, so the user cannot ignore it by dragging it aside. + +### EXAMPLE 6 + +```powershell +Show-ADTInstallationWelcome -AllowDefer -DeferDeadline '2013-08-25' +``` + +Allow the user to defer the deployment until the deadline is reached. + +### EXAMPLE 7 + +```powershell +Show-ADTInstallationWelcome -CloseProcesses @{ Name = 'winword' }, @{ Name = 'excel' } -BlockExecution -AllowDefer -DeferTimes 10 -DeferDeadline '2013-08-25' -CloseProcessesCountdown 600 +Close Word and Excel and prevent the user from launching the applications while the deployment is in progress. +``` + + +Allow the user to defer the deployment a maximum of 10 times or until the deadline is reached, whichever happens first. +When deferral expires, prompt the user to close the applications and automatically close them after 10 minutes. + +## PARAMETERS + +### -CloseProcesses + +Name of the process to stop (do not include the .exe). +Specify multiple processes separated by a comma. +Specify custom descriptions like this: `@{ Name = 'winword'; Description = 'Microsoft Office Word' }, @{ Name = 'excel'; Description = 'Microsoft Office Excel' }` + +```yaml +Type: ProcessDefinition[] +Parameter Sets: Silent, with processes to close, and a free disk space check., Silent, and with processes to close., Interactive, with processes to close, with deferral allowed only if the processes to close are open, with a close processes countdown irrespective of whether the user can defer or not, and a free disk space check., Interactive, with processes to close, with deferral allowed only if the processes to close are open, and with a close processes countdown irrespective of whether the user can defer or not., Interactive, with processes to close, with deferral allowed only if the processes to close are open, with a close processes countdown if the user has no available deferrals, and a free disk space check., Interactive, with processes to close, with deferral allowed only if the processes to close are open, and with a close processes countdown if the user has no available deferrals., Interactive, with processes to close, with deferral allowed only if the processes to close are open, with a continue/defer countdown depending on whether processes to close are open or not, and a free disk space check., Interactive, with processes to close, with deferral allowed only if the processes to close are open, and with a continue/defer countdown depending on whether processes to close are open or not., Interactive, with processes to close, with deferral allowed only if the processes to close are open, and a free disk space check., Interactive, with processes to close, and with deferral allowed only if the processes to close are open., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, with a close processes countdown irrespective of whether the user can defer or not, and a free disk space check., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, and with a close processes countdown irrespective of whether the user can defer or not., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, with a close processes countdown if the user has no available deferrals, and a free disk space check., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, and with a close processes countdown if the user has no available deferrals., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, with a continue/defer countdown depending on whether processes to close are open or not, and a free disk space check., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, and with a continue/defer countdown depending on whether processes to close are open or not., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, and a free disk space check., Interactive, with processes to close, and with deferral allowed irrespective of whether processes to close are open., Interactive, with processes to close, with a close processes countdown irrespective of whether the user can defer or not, and a free disk space check., Interactive, with processes to close, and with a close processes countdown irrespective of whether the user can defer or not., Interactive, with processes to close, with a close processes countdown if the user has no available deferrals, and a free disk space check., Interactive, with processes to close, and with a close processes countdown if the user has no available deferrals., Interactive, with processes to close, and a free disk space check., Interactive, and with processes to close. +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -HideCloseButton + +Specifies that the 'Close Processes' button be hidden/disabled to force users to manually close down their running processes. + +```yaml +Type: SwitchParameter +Parameter Sets: Silent, with processes to close, and a free disk space check., Silent, and with processes to close., Interactive, with processes to close, with deferral allowed only if the processes to close are open, with a close processes countdown irrespective of whether the user can defer or not, and a free disk space check., Interactive, with processes to close, with deferral allowed only if the processes to close are open, and with a close processes countdown irrespective of whether the user can defer or not., Interactive, with processes to close, with deferral allowed only if the processes to close are open, with a close processes countdown if the user has no available deferrals, and a free disk space check., Interactive, with processes to close, with deferral allowed only if the processes to close are open, and with a close processes countdown if the user has no available deferrals., Interactive, with processes to close, with deferral allowed only if the processes to close are open, with a continue/defer countdown depending on whether processes to close are open or not, and a free disk space check., Interactive, with processes to close, with deferral allowed only if the processes to close are open, and with a continue/defer countdown depending on whether processes to close are open or not., Interactive, with processes to close, with deferral allowed only if the processes to close are open, and a free disk space check., Interactive, with processes to close, and with deferral allowed only if the processes to close are open., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, with a close processes countdown irrespective of whether the user can defer or not, and a free disk space check., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, and with a close processes countdown irrespective of whether the user can defer or not., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, with a close processes countdown if the user has no available deferrals, and a free disk space check., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, and with a close processes countdown if the user has no available deferrals., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, with a continue/defer countdown depending on whether processes to close are open or not, and a free disk space check., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, and with a continue/defer countdown depending on whether processes to close are open or not., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, and a free disk space check., Interactive, with processes to close, and with deferral allowed irrespective of whether processes to close are open., Interactive, with processes to close, with a close processes countdown irrespective of whether the user can defer or not, and a free disk space check., Interactive, with processes to close, and with a close processes countdown irrespective of whether the user can defer or not., Interactive, with processes to close, with a close processes countdown if the user has no available deferrals, and a free disk space check., Interactive, with processes to close, and with a close processes countdown if the user has no available deferrals., Interactive, with processes to close, and a free disk space check., Interactive, and with processes to close. +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -AllowDefer + +Enables an optional defer button to allow the user to defer the deployment. + +```yaml +Type: SwitchParameter +Parameter Sets: Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, with a close processes countdown irrespective of whether the user can defer or not, and a free disk space check., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, and with a close processes countdown irrespective of whether the user can defer or not., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, with a close processes countdown if the user has no available deferrals, and a free disk space check., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, and with a close processes countdown if the user has no available deferrals., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, with a continue/defer countdown depending on whether processes to close are open or not, and a free disk space check., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, and with a continue/defer countdown depending on whether processes to close are open or not., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, and a free disk space check., Interactive, with processes to close, and with deferral allowed irrespective of whether processes to close are open., Interactive, with deferral allowed, with a continue countdown irrespective of deferrals, and a free disk space check., Interactive, with deferral allowed, and with a continue countdown irrespective of deferrals., Interactive, with deferral allowed, and a free disk space check., Interactive, and with deferral allowed. +Aliases: + +Required: True +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -AllowDeferCloseProcesses + +Enables an optional defer button to allow the user to defer the deployment only if there are running applications that need to be closed. +This parameter automatically enables `-AllowDefer`. + +```yaml +Type: SwitchParameter +Parameter Sets: Interactive, with processes to close, with deferral allowed only if the processes to close are open, with a close processes countdown irrespective of whether the user can defer or not, and a free disk space check., Interactive, with processes to close, with deferral allowed only if the processes to close are open, and with a close processes countdown irrespective of whether the user can defer or not., Interactive, with processes to close, with deferral allowed only if the processes to close are open, with a close processes countdown if the user has no available deferrals, and a free disk space check., Interactive, with processes to close, with deferral allowed only if the processes to close are open, and with a close processes countdown if the user has no available deferrals., Interactive, with processes to close, with deferral allowed only if the processes to close are open, with a continue/defer countdown depending on whether processes to close are open or not, and a free disk space check., Interactive, with processes to close, with deferral allowed only if the processes to close are open, and with a continue/defer countdown depending on whether processes to close are open or not., Interactive, with processes to close, with deferral allowed only if the processes to close are open, and a free disk space check., Interactive, with processes to close, and with deferral allowed only if the processes to close are open. +Aliases: + +Required: True +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Silent + +Stop processes without prompting the user. + +```yaml +Type: SwitchParameter +Parameter Sets: Silent, with processes to close, and a free disk space check., Silent, and with processes to close., Silent, and with a free disk space check., Silent, with no modifying options. +Aliases: + +Required: True +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -CloseProcessesCountdown + +Option to provide a countdown in seconds until the specified applications are automatically closed. +This only takes effect if deferral is not allowed or has expired. + +```yaml +Type: UInt32 +Parameter Sets: Interactive, with processes to close, with deferral allowed only if the processes to close are open, with a close processes countdown if the user has no available deferrals, and a free disk space check., Interactive, with processes to close, with deferral allowed only if the processes to close are open, and with a close processes countdown if the user has no available deferrals., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, with a close processes countdown if the user has no available deferrals, and a free disk space check., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, and with a close processes countdown if the user has no available deferrals., Interactive, with processes to close, with a close processes countdown if the user has no available deferrals, and a free disk space check., Interactive, with processes to close, and with a close processes countdown if the user has no available deferrals. +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ForceCloseProcessesCountdown + +Option to provide a countdown in seconds until the specified applications are automatically closed regardless of whether deferral is allowed. + +```yaml +Type: UInt32 +Parameter Sets: Interactive, with processes to close, with deferral allowed only if the processes to close are open, with a close processes countdown irrespective of whether the user can defer or not, and a free disk space check., Interactive, with processes to close, with deferral allowed only if the processes to close are open, and with a close processes countdown irrespective of whether the user can defer or not., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, with a close processes countdown irrespective of whether the user can defer or not, and a free disk space check., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, and with a close processes countdown irrespective of whether the user can defer or not., Interactive, with processes to close, with a close processes countdown irrespective of whether the user can defer or not, and a free disk space check., Interactive, with processes to close, and with a close processes countdown irrespective of whether the user can defer or not. +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ForceCountdown + +Specify a countdown to display before automatically proceeding with the deployment when a deferral is enabled. + +```yaml +Type: UInt32 +Parameter Sets: Interactive, with processes to close, with deferral allowed only if the processes to close are open, with a continue/defer countdown depending on whether processes to close are open or not, and a free disk space check., Interactive, with processes to close, with deferral allowed only if the processes to close are open, and with a continue/defer countdown depending on whether processes to close are open or not., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, with a continue/defer countdown depending on whether processes to close are open or not, and a free disk space check., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, and with a continue/defer countdown depending on whether processes to close are open or not., Interactive, with deferral allowed, with a continue countdown irrespective of deferrals, and a free disk space check., Interactive, with deferral allowed, and with a continue countdown irrespective of deferrals. +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DeferTimes + +Specify the number of times the deployment can be deferred. + +```yaml +Type: UInt32 +Parameter Sets: Interactive, with processes to close, with deferral allowed only if the processes to close are open, with a close processes countdown irrespective of whether the user can defer or not, and a free disk space check., Interactive, with processes to close, with deferral allowed only if the processes to close are open, and with a close processes countdown irrespective of whether the user can defer or not., Interactive, with processes to close, with deferral allowed only if the processes to close are open, with a close processes countdown if the user has no available deferrals, and a free disk space check., Interactive, with processes to close, with deferral allowed only if the processes to close are open, and with a close processes countdown if the user has no available deferrals., Interactive, with processes to close, with deferral allowed only if the processes to close are open, with a continue/defer countdown depending on whether processes to close are open or not, and a free disk space check., Interactive, with processes to close, with deferral allowed only if the processes to close are open, and with a continue/defer countdown depending on whether processes to close are open or not., Interactive, with processes to close, with deferral allowed only if the processes to close are open, and a free disk space check., Interactive, with processes to close, and with deferral allowed only if the processes to close are open., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, with a close processes countdown irrespective of whether the user can defer or not, and a free disk space check., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, and with a close processes countdown irrespective of whether the user can defer or not., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, with a close processes countdown if the user has no available deferrals, and a free disk space check., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, and with a close processes countdown if the user has no available deferrals., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, with a continue/defer countdown depending on whether processes to close are open or not, and a free disk space check., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, and with a continue/defer countdown depending on whether processes to close are open or not., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, and a free disk space check., Interactive, with processes to close, and with deferral allowed irrespective of whether processes to close are open., Interactive, with deferral allowed, with a continue countdown irrespective of deferrals, and a free disk space check., Interactive, with deferral allowed, and with a continue countdown irrespective of deferrals., Interactive, with deferral allowed, and a free disk space check., Interactive, and with deferral allowed. +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DeferDays + +Specify the number of days since first run that the deployment can be deferred. +This is converted to a deadline. + +```yaml +Type: Double +Parameter Sets: Interactive, with processes to close, with deferral allowed only if the processes to close are open, with a close processes countdown irrespective of whether the user can defer or not, and a free disk space check., Interactive, with processes to close, with deferral allowed only if the processes to close are open, and with a close processes countdown irrespective of whether the user can defer or not., Interactive, with processes to close, with deferral allowed only if the processes to close are open, with a close processes countdown if the user has no available deferrals, and a free disk space check., Interactive, with processes to close, with deferral allowed only if the processes to close are open, and with a close processes countdown if the user has no available deferrals., Interactive, with processes to close, with deferral allowed only if the processes to close are open, with a continue/defer countdown depending on whether processes to close are open or not, and a free disk space check., Interactive, with processes to close, with deferral allowed only if the processes to close are open, and with a continue/defer countdown depending on whether processes to close are open or not., Interactive, with processes to close, with deferral allowed only if the processes to close are open, and a free disk space check., Interactive, with processes to close, and with deferral allowed only if the processes to close are open., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, with a close processes countdown irrespective of whether the user can defer or not, and a free disk space check., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, and with a close processes countdown irrespective of whether the user can defer or not., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, with a close processes countdown if the user has no available deferrals, and a free disk space check., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, and with a close processes countdown if the user has no available deferrals., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, with a continue/defer countdown depending on whether processes to close are open or not, and a free disk space check., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, and with a continue/defer countdown depending on whether processes to close are open or not., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, and a free disk space check., Interactive, with processes to close, and with deferral allowed irrespective of whether processes to close are open., Interactive, with deferral allowed, with a continue countdown irrespective of deferrals, and a free disk space check., Interactive, with deferral allowed, and with a continue countdown irrespective of deferrals., Interactive, with deferral allowed, and a free disk space check., Interactive, and with deferral allowed. +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DeferDeadline + +Specify the deadline date until which the deployment can be deferred. + +Specify the date in the local culture if the script is intended for that same culture. + +If the script is intended to run on en-US machines, specify the date in the format: `08/25/2013`, or `08-25-2013`, or `08-25-2013 18:00:00`. + +If the script is intended for multiple cultures, specify the date in the universal sortable date/time format: `2013-08-22 11:51:52Z`. + +The deadline date will be displayed to the user in the format of their culture. + +```yaml +Type: DateTime +Parameter Sets: Interactive, with processes to close, with deferral allowed only if the processes to close are open, with a close processes countdown irrespective of whether the user can defer or not, and a free disk space check., Interactive, with processes to close, with deferral allowed only if the processes to close are open, and with a close processes countdown irrespective of whether the user can defer or not., Interactive, with processes to close, with deferral allowed only if the processes to close are open, with a close processes countdown if the user has no available deferrals, and a free disk space check., Interactive, with processes to close, with deferral allowed only if the processes to close are open, and with a close processes countdown if the user has no available deferrals., Interactive, with processes to close, with deferral allowed only if the processes to close are open, with a continue/defer countdown depending on whether processes to close are open or not, and a free disk space check., Interactive, with processes to close, with deferral allowed only if the processes to close are open, and with a continue/defer countdown depending on whether processes to close are open or not., Interactive, with processes to close, with deferral allowed only if the processes to close are open, and a free disk space check., Interactive, with processes to close, and with deferral allowed only if the processes to close are open., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, with a close processes countdown irrespective of whether the user can defer or not, and a free disk space check., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, and with a close processes countdown irrespective of whether the user can defer or not., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, with a close processes countdown if the user has no available deferrals, and a free disk space check., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, and with a close processes countdown if the user has no available deferrals., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, with a continue/defer countdown depending on whether processes to close are open or not, and a free disk space check., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, and with a continue/defer countdown depending on whether processes to close are open or not., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, and a free disk space check., Interactive, with processes to close, and with deferral allowed irrespective of whether processes to close are open., Interactive, with deferral allowed, with a continue countdown irrespective of deferrals, and a free disk space check., Interactive, with deferral allowed, and with a continue countdown irrespective of deferrals., Interactive, with deferral allowed, and a free disk space check., Interactive, and with deferral allowed. +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DeferRunInterval + +Specifies the time span that must elapse before prompting the user again if a process listed in 'CloseProcesses' is still running after a deferral. + +This addresses the issue where Intune retries deployments shortly after a user defers, preventing multiple immediate prompts and improving the user experience. + +Example: +- To specify 30 minutes, use: `([System.TimeSpan]::FromMinutes(30))` or `00:30:00`. +- To specify 24 hours, use: `([System.TimeSpan]::FromHours(24))` or `1.00:00:00`. + +```yaml +Type: TimeSpan +Parameter Sets: Interactive, with processes to close, with deferral allowed only if the processes to close are open, with a close processes countdown irrespective of whether the user can defer or not, and a free disk space check., Interactive, with processes to close, with deferral allowed only if the processes to close are open, and with a close processes countdown irrespective of whether the user can defer or not., Interactive, with processes to close, with deferral allowed only if the processes to close are open, with a close processes countdown if the user has no available deferrals, and a free disk space check., Interactive, with processes to close, with deferral allowed only if the processes to close are open, and with a close processes countdown if the user has no available deferrals., Interactive, with processes to close, with deferral allowed only if the processes to close are open, with a continue/defer countdown depending on whether processes to close are open or not, and a free disk space check., Interactive, with processes to close, with deferral allowed only if the processes to close are open, and with a continue/defer countdown depending on whether processes to close are open or not., Interactive, with processes to close, with deferral allowed only if the processes to close are open, and a free disk space check., Interactive, with processes to close, and with deferral allowed only if the processes to close are open., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, with a close processes countdown irrespective of whether the user can defer or not, and a free disk space check., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, and with a close processes countdown irrespective of whether the user can defer or not., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, with a close processes countdown if the user has no available deferrals, and a free disk space check., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, and with a close processes countdown if the user has no available deferrals., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, with a continue/defer countdown depending on whether processes to close are open or not, and a free disk space check., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, and with a continue/defer countdown depending on whether processes to close are open or not., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, and a free disk space check., Interactive, with processes to close, and with deferral allowed irrespective of whether processes to close are open., Interactive, with deferral allowed, with a continue countdown irrespective of deferrals, and a free disk space check., Interactive, with deferral allowed, and with a continue countdown irrespective of deferrals., Interactive, with deferral allowed, and a free disk space check., Interactive, and with deferral allowed. +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WindowLocation + +The location of the dialog on the screen. + +```yaml +Type: DialogPosition +Parameter Sets: Interactive, with no modifying options., Interactive, with processes to close, with deferral allowed only if the processes to close are open, with a close processes countdown irrespective of whether the user can defer or not, and a free disk space check., Interactive, with processes to close, with deferral allowed only if the processes to close are open, and with a close processes countdown irrespective of whether the user can defer or not., Interactive, with processes to close, with deferral allowed only if the processes to close are open, with a close processes countdown if the user has no available deferrals, and a free disk space check., Interactive, with processes to close, with deferral allowed only if the processes to close are open, and with a close processes countdown if the user has no available deferrals., Interactive, with processes to close, with deferral allowed only if the processes to close are open, with a continue/defer countdown depending on whether processes to close are open or not, and a free disk space check., Interactive, with processes to close, with deferral allowed only if the processes to close are open, and with a continue/defer countdown depending on whether processes to close are open or not., Interactive, with processes to close, with deferral allowed only if the processes to close are open, and a free disk space check., Interactive, with processes to close, and with deferral allowed only if the processes to close are open., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, with a close processes countdown irrespective of whether the user can defer or not, and a free disk space check., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, and with a close processes countdown irrespective of whether the user can defer or not., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, with a close processes countdown if the user has no available deferrals, and a free disk space check., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, and with a close processes countdown if the user has no available deferrals., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, with a continue/defer countdown depending on whether processes to close are open or not, and a free disk space check., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, and with a continue/defer countdown depending on whether processes to close are open or not., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, and a free disk space check., Interactive, with processes to close, and with deferral allowed irrespective of whether processes to close are open., Interactive, with processes to close, with a close processes countdown irrespective of whether the user can defer or not, and a free disk space check., Interactive, with processes to close, and with a close processes countdown irrespective of whether the user can defer or not., Interactive, with processes to close, with a close processes countdown if the user has no available deferrals, and a free disk space check., Interactive, with processes to close, and with a close processes countdown if the user has no available deferrals., Interactive, with processes to close, and a free disk space check., Interactive, and with processes to close., Interactive, with deferral allowed, with a continue countdown irrespective of deferrals, and a free disk space check., Interactive, with deferral allowed, and with a continue countdown irrespective of deferrals., Interactive, with deferral allowed, and a free disk space check., Interactive, and with deferral allowed., Interactive, and with a free disk space check. +Aliases: +Accepted values: Default, TopLeft, Top, TopRight, TopCenter, Center, BottomLeft, Bottom, BottomRight, BottomCenter + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -BlockExecution + +Option to prevent the user from launching processes/applications, specified in -CloseProcesses, during the deployment. + +```yaml +Type: SwitchParameter +Parameter Sets: Silent, with processes to close, and a free disk space check., Silent, and with processes to close., Interactive, with processes to close, with deferral allowed only if the processes to close are open, with a close processes countdown irrespective of whether the user can defer or not, and a free disk space check., Interactive, with processes to close, with deferral allowed only if the processes to close are open, and with a close processes countdown irrespective of whether the user can defer or not., Interactive, with processes to close, with deferral allowed only if the processes to close are open, with a close processes countdown if the user has no available deferrals, and a free disk space check., Interactive, with processes to close, with deferral allowed only if the processes to close are open, and with a close processes countdown if the user has no available deferrals., Interactive, with processes to close, with deferral allowed only if the processes to close are open, with a continue/defer countdown depending on whether processes to close are open or not, and a free disk space check., Interactive, with processes to close, with deferral allowed only if the processes to close are open, and with a continue/defer countdown depending on whether processes to close are open or not., Interactive, with processes to close, with deferral allowed only if the processes to close are open, and a free disk space check., Interactive, with processes to close, and with deferral allowed only if the processes to close are open., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, with a close processes countdown irrespective of whether the user can defer or not, and a free disk space check., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, and with a close processes countdown irrespective of whether the user can defer or not., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, with a close processes countdown if the user has no available deferrals, and a free disk space check., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, and with a close processes countdown if the user has no available deferrals., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, with a continue/defer countdown depending on whether processes to close are open or not, and a free disk space check., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, and with a continue/defer countdown depending on whether processes to close are open or not., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, and a free disk space check., Interactive, with processes to close, and with deferral allowed irrespective of whether processes to close are open., Interactive, with processes to close, with a close processes countdown irrespective of whether the user can defer or not, and a free disk space check., Interactive, with processes to close, and with a close processes countdown irrespective of whether the user can defer or not., Interactive, with processes to close, with a close processes countdown if the user has no available deferrals, and a free disk space check., Interactive, with processes to close, and with a close processes countdown if the user has no available deferrals., Interactive, with processes to close, and a free disk space check., Interactive, and with processes to close. +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PromptToSave + +Specify whether to prompt to save working documents when the user chooses to close applications by selecting the "Close Programs" button. +Option does not work in SYSTEM context unless toolkit launched with "psexec.exe -s -i" to run it as an interactive process under the SYSTEM account. + +```yaml +Type: SwitchParameter +Parameter Sets: Interactive, with processes to close, with deferral allowed only if the processes to close are open, with a close processes countdown irrespective of whether the user can defer or not, and a free disk space check., Interactive, with processes to close, with deferral allowed only if the processes to close are open, and with a close processes countdown irrespective of whether the user can defer or not., Interactive, with processes to close, with deferral allowed only if the processes to close are open, with a close processes countdown if the user has no available deferrals, and a free disk space check., Interactive, with processes to close, with deferral allowed only if the processes to close are open, and with a close processes countdown if the user has no available deferrals., Interactive, with processes to close, with deferral allowed only if the processes to close are open, with a continue/defer countdown depending on whether processes to close are open or not, and a free disk space check., Interactive, with processes to close, with deferral allowed only if the processes to close are open, and with a continue/defer countdown depending on whether processes to close are open or not., Interactive, with processes to close, with deferral allowed only if the processes to close are open, and a free disk space check., Interactive, with processes to close, and with deferral allowed only if the processes to close are open., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, with a close processes countdown irrespective of whether the user can defer or not, and a free disk space check., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, and with a close processes countdown irrespective of whether the user can defer or not., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, with a close processes countdown if the user has no available deferrals, and a free disk space check., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, and with a close processes countdown if the user has no available deferrals., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, with a continue/defer countdown depending on whether processes to close are open or not, and a free disk space check., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, and with a continue/defer countdown depending on whether processes to close are open or not., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, and a free disk space check., Interactive, with processes to close, and with deferral allowed irrespective of whether processes to close are open., Interactive, with processes to close, with a close processes countdown irrespective of whether the user can defer or not, and a free disk space check., Interactive, with processes to close, and with a close processes countdown irrespective of whether the user can defer or not., Interactive, with processes to close, with a close processes countdown if the user has no available deferrals, and a free disk space check., Interactive, with processes to close, and with a close processes countdown if the user has no available deferrals., Interactive, with processes to close, and a free disk space check., Interactive, and with processes to close. +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PersistPrompt + +Specify whether to make the Show-ADTInstallationWelcome prompt persist in the center of the screen every couple of seconds, specified in the config.psd1. +The user will have no option but to respond to the prompt. +This only takes effect if deferral is not allowed or has expired. + +```yaml +Type: SwitchParameter +Parameter Sets: Interactive, with no modifying options., Interactive, with processes to close, with deferral allowed only if the processes to close are open, with a close processes countdown irrespective of whether the user can defer or not, and a free disk space check., Interactive, with processes to close, with deferral allowed only if the processes to close are open, and with a close processes countdown irrespective of whether the user can defer or not., Interactive, with processes to close, with deferral allowed only if the processes to close are open, with a close processes countdown if the user has no available deferrals, and a free disk space check., Interactive, with processes to close, with deferral allowed only if the processes to close are open, and with a close processes countdown if the user has no available deferrals., Interactive, with processes to close, with deferral allowed only if the processes to close are open, with a continue/defer countdown depending on whether processes to close are open or not, and a free disk space check., Interactive, with processes to close, with deferral allowed only if the processes to close are open, and with a continue/defer countdown depending on whether processes to close are open or not., Interactive, with processes to close, with deferral allowed only if the processes to close are open, and a free disk space check., Interactive, with processes to close, and with deferral allowed only if the processes to close are open., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, with a close processes countdown irrespective of whether the user can defer or not, and a free disk space check., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, and with a close processes countdown irrespective of whether the user can defer or not., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, with a close processes countdown if the user has no available deferrals, and a free disk space check., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, and with a close processes countdown if the user has no available deferrals., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, with a continue/defer countdown depending on whether processes to close are open or not, and a free disk space check., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, and with a continue/defer countdown depending on whether processes to close are open or not., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, and a free disk space check., Interactive, with processes to close, and with deferral allowed irrespective of whether processes to close are open., Interactive, with processes to close, with a close processes countdown irrespective of whether the user can defer or not, and a free disk space check., Interactive, with processes to close, and with a close processes countdown irrespective of whether the user can defer or not., Interactive, with processes to close, with a close processes countdown if the user has no available deferrals, and a free disk space check., Interactive, with processes to close, and with a close processes countdown if the user has no available deferrals., Interactive, with processes to close, and a free disk space check., Interactive, and with processes to close., Interactive, with deferral allowed, with a continue countdown irrespective of deferrals, and a free disk space check., Interactive, with deferral allowed, and with a continue countdown irrespective of deferrals., Interactive, with deferral allowed, and a free disk space check., Interactive, and with deferral allowed., Interactive, and with a free disk space check. +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ContinueOnProcessClosure + +Specifies that the dialog should auto-continue when running processes have been closed by the user. + +```yaml +Type: SwitchParameter +Parameter Sets: Interactive, with no modifying options., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, with a close processes countdown irrespective of whether the user can defer or not, and a free disk space check., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, and with a close processes countdown irrespective of whether the user can defer or not., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, with a close processes countdown if the user has no available deferrals, and a free disk space check., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, and with a close processes countdown if the user has no available deferrals., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, with a continue/defer countdown depending on whether processes to close are open or not, and a free disk space check., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, and with a continue/defer countdown depending on whether processes to close are open or not., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, and a free disk space check., Interactive, with processes to close, and with deferral allowed irrespective of whether processes to close are open., Interactive, with processes to close, with a close processes countdown irrespective of whether the user can defer or not, and a free disk space check., Interactive, with processes to close, and with a close processes countdown irrespective of whether the user can defer or not., Interactive, with processes to close, with a close processes countdown if the user has no available deferrals, and a free disk space check., Interactive, with processes to close, and with a close processes countdown if the user has no available deferrals., Interactive, with processes to close, and a free disk space check., Interactive, and with processes to close., Interactive, with deferral allowed, with a continue countdown irrespective of deferrals, and a free disk space check., Interactive, with deferral allowed, and with a continue countdown irrespective of deferrals., Interactive, with deferral allowed, and a free disk space check., Interactive, and with deferral allowed., Interactive, and with a free disk space check. +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -MinimizeWindows + +Specifies whether to minimize other windows when displaying prompt. + +```yaml +Type: SwitchParameter +Parameter Sets: Interactive, with no modifying options., Interactive, with processes to close, with deferral allowed only if the processes to close are open, with a close processes countdown irrespective of whether the user can defer or not, and a free disk space check., Interactive, with processes to close, with deferral allowed only if the processes to close are open, and with a close processes countdown irrespective of whether the user can defer or not., Interactive, with processes to close, with deferral allowed only if the processes to close are open, with a close processes countdown if the user has no available deferrals, and a free disk space check., Interactive, with processes to close, with deferral allowed only if the processes to close are open, and with a close processes countdown if the user has no available deferrals., Interactive, with processes to close, with deferral allowed only if the processes to close are open, with a continue/defer countdown depending on whether processes to close are open or not, and a free disk space check., Interactive, with processes to close, with deferral allowed only if the processes to close are open, and with a continue/defer countdown depending on whether processes to close are open or not., Interactive, with processes to close, with deferral allowed only if the processes to close are open, and a free disk space check., Interactive, with processes to close, and with deferral allowed only if the processes to close are open., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, with a close processes countdown irrespective of whether the user can defer or not, and a free disk space check., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, and with a close processes countdown irrespective of whether the user can defer or not., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, with a close processes countdown if the user has no available deferrals, and a free disk space check., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, and with a close processes countdown if the user has no available deferrals., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, with a continue/defer countdown depending on whether processes to close are open or not, and a free disk space check., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, and with a continue/defer countdown depending on whether processes to close are open or not., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, and a free disk space check., Interactive, with processes to close, and with deferral allowed irrespective of whether processes to close are open., Interactive, with processes to close, with a close processes countdown irrespective of whether the user can defer or not, and a free disk space check., Interactive, with processes to close, and with a close processes countdown irrespective of whether the user can defer or not., Interactive, with processes to close, with a close processes countdown if the user has no available deferrals, and a free disk space check., Interactive, with processes to close, and with a close processes countdown if the user has no available deferrals., Interactive, with processes to close, and a free disk space check., Interactive, and with processes to close., Interactive, with deferral allowed, with a continue countdown irrespective of deferrals, and a free disk space check., Interactive, with deferral allowed, and with a continue countdown irrespective of deferrals., Interactive, with deferral allowed, and a free disk space check., Interactive, and with deferral allowed., Interactive, and with a free disk space check. +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -NotTopMost + +Specifies whether the windows is the topmost window. + +```yaml +Type: SwitchParameter +Parameter Sets: Interactive, with no modifying options., Interactive, with processes to close, with deferral allowed only if the processes to close are open, with a close processes countdown irrespective of whether the user can defer or not, and a free disk space check., Interactive, with processes to close, with deferral allowed only if the processes to close are open, and with a close processes countdown irrespective of whether the user can defer or not., Interactive, with processes to close, with deferral allowed only if the processes to close are open, with a close processes countdown if the user has no available deferrals, and a free disk space check., Interactive, with processes to close, with deferral allowed only if the processes to close are open, and with a close processes countdown if the user has no available deferrals., Interactive, with processes to close, with deferral allowed only if the processes to close are open, with a continue/defer countdown depending on whether processes to close are open or not, and a free disk space check., Interactive, with processes to close, with deferral allowed only if the processes to close are open, and with a continue/defer countdown depending on whether processes to close are open or not., Interactive, with processes to close, with deferral allowed only if the processes to close are open, and a free disk space check., Interactive, with processes to close, and with deferral allowed only if the processes to close are open., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, with a close processes countdown irrespective of whether the user can defer or not, and a free disk space check., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, and with a close processes countdown irrespective of whether the user can defer or not., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, with a close processes countdown if the user has no available deferrals, and a free disk space check., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, and with a close processes countdown if the user has no available deferrals., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, with a continue/defer countdown depending on whether processes to close are open or not, and a free disk space check., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, and with a continue/defer countdown depending on whether processes to close are open or not., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, and a free disk space check., Interactive, with processes to close, and with deferral allowed irrespective of whether processes to close are open., Interactive, with processes to close, with a close processes countdown irrespective of whether the user can defer or not, and a free disk space check., Interactive, with processes to close, and with a close processes countdown irrespective of whether the user can defer or not., Interactive, with processes to close, with a close processes countdown if the user has no available deferrals, and a free disk space check., Interactive, with processes to close, and with a close processes countdown if the user has no available deferrals., Interactive, with processes to close, and a free disk space check., Interactive, and with processes to close., Interactive, with deferral allowed, with a continue countdown irrespective of deferrals, and a free disk space check., Interactive, with deferral allowed, and with a continue countdown irrespective of deferrals., Interactive, with deferral allowed, and a free disk space check., Interactive, and with deferral allowed., Interactive, and with a free disk space check. +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -AllowMove + +Specifies that the user can move the dialog on the screen. + +```yaml +Type: SwitchParameter +Parameter Sets: Interactive, with no modifying options., Interactive, with processes to close, with deferral allowed only if the processes to close are open, with a close processes countdown irrespective of whether the user can defer or not, and a free disk space check., Interactive, with processes to close, with deferral allowed only if the processes to close are open, and with a close processes countdown irrespective of whether the user can defer or not., Interactive, with processes to close, with deferral allowed only if the processes to close are open, with a close processes countdown if the user has no available deferrals, and a free disk space check., Interactive, with processes to close, with deferral allowed only if the processes to close are open, and with a close processes countdown if the user has no available deferrals., Interactive, with processes to close, with deferral allowed only if the processes to close are open, with a continue/defer countdown depending on whether processes to close are open or not, and a free disk space check., Interactive, with processes to close, with deferral allowed only if the processes to close are open, and with a continue/defer countdown depending on whether processes to close are open or not., Interactive, with processes to close, with deferral allowed only if the processes to close are open, and a free disk space check., Interactive, with processes to close, and with deferral allowed only if the processes to close are open., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, with a close processes countdown irrespective of whether the user can defer or not, and a free disk space check., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, and with a close processes countdown irrespective of whether the user can defer or not., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, with a close processes countdown if the user has no available deferrals, and a free disk space check., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, and with a close processes countdown if the user has no available deferrals., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, with a continue/defer countdown depending on whether processes to close are open or not, and a free disk space check., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, and with a continue/defer countdown depending on whether processes to close are open or not., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, and a free disk space check., Interactive, with processes to close, and with deferral allowed irrespective of whether processes to close are open., Interactive, with processes to close, with a close processes countdown irrespective of whether the user can defer or not, and a free disk space check., Interactive, with processes to close, and with a close processes countdown irrespective of whether the user can defer or not., Interactive, with processes to close, with a close processes countdown if the user has no available deferrals, and a free disk space check., Interactive, with processes to close, and with a close processes countdown if the user has no available deferrals., Interactive, with processes to close, and a free disk space check., Interactive, and with processes to close., Interactive, with deferral allowed, with a continue countdown irrespective of deferrals, and a free disk space check., Interactive, with deferral allowed, and with a continue countdown irrespective of deferrals., Interactive, with deferral allowed, and a free disk space check., Interactive, and with deferral allowed., Interactive, and with a free disk space check. +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -AllowMinimize + +Specifies that the user is allowed to minimize the dialog. + +```yaml +Type: SwitchParameter +Parameter Sets: Interactive, with no modifying options., Interactive, with processes to close, with deferral allowed only if the processes to close are open, with a close processes countdown irrespective of whether the user can defer or not, and a free disk space check., Interactive, with processes to close, with deferral allowed only if the processes to close are open, and with a close processes countdown irrespective of whether the user can defer or not., Interactive, with processes to close, with deferral allowed only if the processes to close are open, with a close processes countdown if the user has no available deferrals, and a free disk space check., Interactive, with processes to close, with deferral allowed only if the processes to close are open, and with a close processes countdown if the user has no available deferrals., Interactive, with processes to close, with deferral allowed only if the processes to close are open, with a continue/defer countdown depending on whether processes to close are open or not, and a free disk space check., Interactive, with processes to close, with deferral allowed only if the processes to close are open, and with a continue/defer countdown depending on whether processes to close are open or not., Interactive, with processes to close, with deferral allowed only if the processes to close are open, and a free disk space check., Interactive, with processes to close, and with deferral allowed only if the processes to close are open., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, with a close processes countdown irrespective of whether the user can defer or not, and a free disk space check., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, and with a close processes countdown irrespective of whether the user can defer or not., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, with a close processes countdown if the user has no available deferrals, and a free disk space check., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, and with a close processes countdown if the user has no available deferrals., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, with a continue/defer countdown depending on whether processes to close are open or not, and a free disk space check., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, and with a continue/defer countdown depending on whether processes to close are open or not., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, and a free disk space check., Interactive, with processes to close, and with deferral allowed irrespective of whether processes to close are open., Interactive, with processes to close, with a close processes countdown irrespective of whether the user can defer or not, and a free disk space check., Interactive, with processes to close, and with a close processes countdown irrespective of whether the user can defer or not., Interactive, with processes to close, with a close processes countdown if the user has no available deferrals, and a free disk space check., Interactive, with processes to close, and with a close processes countdown if the user has no available deferrals., Interactive, with processes to close, and a free disk space check., Interactive, and with processes to close., Interactive, with deferral allowed, with a continue countdown irrespective of deferrals, and a free disk space check., Interactive, with deferral allowed, and with a continue countdown irrespective of deferrals., Interactive, with deferral allowed, and a free disk space check., Interactive, and with deferral allowed., Interactive, and with a free disk space check. +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -CustomText + +Specify whether to display a custom message as specified in the `strings.psd1` file below the main preamble. +Custom message must be populated for each language section in the `strings.psd1` file. + +```yaml +Type: SwitchParameter +Parameter Sets: Interactive, with no modifying options., Interactive, with processes to close, with deferral allowed only if the processes to close are open, with a close processes countdown irrespective of whether the user can defer or not, and a free disk space check., Interactive, with processes to close, with deferral allowed only if the processes to close are open, and with a close processes countdown irrespective of whether the user can defer or not., Interactive, with processes to close, with deferral allowed only if the processes to close are open, with a close processes countdown if the user has no available deferrals, and a free disk space check., Interactive, with processes to close, with deferral allowed only if the processes to close are open, and with a close processes countdown if the user has no available deferrals., Interactive, with processes to close, with deferral allowed only if the processes to close are open, with a continue/defer countdown depending on whether processes to close are open or not, and a free disk space check., Interactive, with processes to close, with deferral allowed only if the processes to close are open, and with a continue/defer countdown depending on whether processes to close are open or not., Interactive, with processes to close, with deferral allowed only if the processes to close are open, and a free disk space check., Interactive, with processes to close, and with deferral allowed only if the processes to close are open., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, with a close processes countdown irrespective of whether the user can defer or not, and a free disk space check., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, and with a close processes countdown irrespective of whether the user can defer or not., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, with a close processes countdown if the user has no available deferrals, and a free disk space check., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, and with a close processes countdown if the user has no available deferrals., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, with a continue/defer countdown depending on whether processes to close are open or not, and a free disk space check., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, and with a continue/defer countdown depending on whether processes to close are open or not., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, and a free disk space check., Interactive, with processes to close, and with deferral allowed irrespective of whether processes to close are open., Interactive, with processes to close, with a close processes countdown irrespective of whether the user can defer or not, and a free disk space check., Interactive, with processes to close, and with a close processes countdown irrespective of whether the user can defer or not., Interactive, with processes to close, with a close processes countdown if the user has no available deferrals, and a free disk space check., Interactive, with processes to close, and with a close processes countdown if the user has no available deferrals., Interactive, with processes to close, and a free disk space check., Interactive, and with processes to close., Interactive, with deferral allowed, with a continue countdown irrespective of deferrals, and a free disk space check., Interactive, with deferral allowed, and with a continue countdown irrespective of deferrals., Interactive, with deferral allowed, and a free disk space check., Interactive, and with deferral allowed., Interactive, and with a free disk space check. +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -CheckDiskSpace + +Specify whether to check if there is enough disk space for the deployment to proceed. + +If this parameter is specified without the RequiredDiskSpace parameter, the required disk space is calculated automatically based on the size of the script source and associated files. + +```yaml +Type: SwitchParameter +Parameter Sets: Silent, with processes to close, and a free disk space check., Interactive, with processes to close, with deferral allowed only if the processes to close are open, with a close processes countdown irrespective of whether the user can defer or not, and a free disk space check., Interactive, with processes to close, with deferral allowed only if the processes to close are open, with a close processes countdown if the user has no available deferrals, and a free disk space check., Interactive, with processes to close, with deferral allowed only if the processes to close are open, with a continue/defer countdown depending on whether processes to close are open or not, and a free disk space check., Interactive, with processes to close, with deferral allowed only if the processes to close are open, and a free disk space check., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, with a close processes countdown irrespective of whether the user can defer or not, and a free disk space check., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, with a close processes countdown if the user has no available deferrals, and a free disk space check., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, with a continue/defer countdown depending on whether processes to close are open or not, and a free disk space check., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, and a free disk space check., Interactive, with processes to close, with a close processes countdown irrespective of whether the user can defer or not, and a free disk space check., Interactive, with processes to close, with a close processes countdown if the user has no available deferrals, and a free disk space check., Interactive, with processes to close, and a free disk space check., Interactive, with deferral allowed, with a continue countdown irrespective of deferrals, and a free disk space check., Interactive, with deferral allowed, and a free disk space check., Silent, and with a free disk space check., Interactive, and with a free disk space check. +Aliases: + +Required: True +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -RequiredDiskSpace + +Specify required disk space in MB, used in combination with CheckDiskSpace. + +```yaml +Type: UInt32 +Parameter Sets: Silent, with processes to close, and a free disk space check., Interactive, with processes to close, with deferral allowed only if the processes to close are open, with a close processes countdown irrespective of whether the user can defer or not, and a free disk space check., Interactive, with processes to close, with deferral allowed only if the processes to close are open, with a close processes countdown if the user has no available deferrals, and a free disk space check., Interactive, with processes to close, with deferral allowed only if the processes to close are open, with a continue/defer countdown depending on whether processes to close are open or not, and a free disk space check., Interactive, with processes to close, with deferral allowed only if the processes to close are open, and a free disk space check., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, with a close processes countdown irrespective of whether the user can defer or not, and a free disk space check., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, with a close processes countdown if the user has no available deferrals, and a free disk space check., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, with a continue/defer countdown depending on whether processes to close are open or not, and a free disk space check., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, and a free disk space check., Interactive, with processes to close, with a close processes countdown irrespective of whether the user can defer or not, and a free disk space check., Interactive, with processes to close, with a close processes countdown if the user has no available deferrals, and a free disk space check., Interactive, with processes to close, and a free disk space check., Interactive, with deferral allowed, with a continue countdown irrespective of deferrals, and a free disk space check., Interactive, with deferral allowed, and a free disk space check., Silent, and with a free disk space check., Interactive, and with a free disk space check. +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PassThru + +Returns the user's prompt choice to the caller for further decision making. + +```yaml +Type: SwitchParameter +Parameter Sets: Interactive, with no modifying options., Interactive, with processes to close, with deferral allowed only if the processes to close are open, with a close processes countdown irrespective of whether the user can defer or not, and a free disk space check., Interactive, with processes to close, with deferral allowed only if the processes to close are open, and with a close processes countdown irrespective of whether the user can defer or not., Interactive, with processes to close, with deferral allowed only if the processes to close are open, with a close processes countdown if the user has no available deferrals, and a free disk space check., Interactive, with processes to close, with deferral allowed only if the processes to close are open, and with a close processes countdown if the user has no available deferrals., Interactive, with processes to close, with deferral allowed only if the processes to close are open, with a continue/defer countdown depending on whether processes to close are open or not, and a free disk space check., Interactive, with processes to close, with deferral allowed only if the processes to close are open, and with a continue/defer countdown depending on whether processes to close are open or not., Interactive, with processes to close, with deferral allowed only if the processes to close are open, and a free disk space check., Interactive, with processes to close, and with deferral allowed only if the processes to close are open., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, with a close processes countdown irrespective of whether the user can defer or not, and a free disk space check., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, and with a close processes countdown irrespective of whether the user can defer or not., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, with a close processes countdown if the user has no available deferrals, and a free disk space check., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, and with a close processes countdown if the user has no available deferrals., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, with a continue/defer countdown depending on whether processes to close are open or not, and a free disk space check., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, and with a continue/defer countdown depending on whether processes to close are open or not., Interactive, with processes to close, with deferral allowed irrespective of whether processes to close are open, and a free disk space check., Interactive, with processes to close, and with deferral allowed irrespective of whether processes to close are open., Interactive, with processes to close, with a close processes countdown irrespective of whether the user can defer or not, and a free disk space check., Interactive, with processes to close, and with a close processes countdown irrespective of whether the user can defer or not., Interactive, with processes to close, with a close processes countdown if the user has no available deferrals, and a free disk space check., Interactive, with processes to close, and with a close processes countdown if the user has no available deferrals., Interactive, with processes to close, and a free disk space check., Interactive, and with processes to close., Interactive, with deferral allowed, with a continue countdown irrespective of deferrals, and a free disk space check., Interactive, with deferral allowed, and with a continue countdown irrespective of deferrals., Interactive, with deferral allowed, and a free disk space check., Interactive, and with deferral allowed., Interactive, and with a free disk space check. +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Subtitle + +Subtitle of the prompt. +Optionally used to override the subtitle defined in the strings.psd1 file. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Title + +Title of the prompt. +Optionally used to override the active DeploymentSession's InstallTitle value. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### None + +### You cannot pipe objects to this function. +## OUTPUTS + +### None + +### This function does not return any output. +## NOTES +An active ADT session is NOT required to use this function. + +The process descriptions are retrieved via Get-Process, with a fall back on the process name if no description is available. +Alternatively, you can specify the description yourself with a '=' symbol - see examples. + +The dialog box will timeout after the timeout specified in the config.psd1 file (default 55 minutes) to prevent Intune/SCCM deployments from timing out and returning a failure code. +When the dialog times out, the script will exit and return a 1618 code (SCCM fast retry code). + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/Show-ADTInstallationWelcome](https://psappdeploytoolkit.com/docs/reference/functions/Show-ADTInstallationWelcome) diff --git a/versioned_docs/version-4.1.x/reference/functions/Start-ADTMsiProcess.mdx b/versioned_docs/version-4.1.x/reference/functions/Start-ADTMsiProcess.mdx new file mode 100644 index 0000000..e0fbfe9 --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Start-ADTMsiProcess.mdx @@ -0,0 +1,870 @@ +--- +id: Start-ADTMsiProcess +title: Start-ADTMsiProcess +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Executes msiexec.exe to perform actions such as install, uninstall, patch, repair, or active setup for MSI and MSP files or MSI product codes. + +## SYNTAX + +### UseUnelevatedToken_FilePath_NoWait + +```powershell +Start-ADTMsiProcess [-Action ] -FilePath [-ArgumentList ] + [-AdditionalArgumentList ] [-SecureArgumentList] [-WorkingDirectory ] + [-Transforms ] [-Patches ] [-UseUnelevatedToken] [-ExpandEnvironmentVariables] + [-LoggingOptions ] [-LogFileName ] [-RepairMode ] [-RepairFromSource] + [-SkipMSIAlreadyInstalledCheck] [-IncludeUpdatesAndHotfixes] [-PriorityClass ] + [-NoDesktopRefresh] [-NoWait] [-PassThru] [-WhatIf] [-Confirm] [] +``` + +### UseUnelevatedToken_FilePath + +```powershell +Start-ADTMsiProcess [-Action ] -FilePath [-ArgumentList ] + [-AdditionalArgumentList ] [-SecureArgumentList] [-WorkingDirectory ] + [-Transforms ] [-Patches ] [-UseUnelevatedToken] [-ExpandEnvironmentVariables] + [-LoggingOptions ] [-LogFileName ] [-RepairMode ] [-RepairFromSource] + [-SkipMSIAlreadyInstalledCheck] [-IncludeUpdatesAndHotfixes] [-SuccessExitCodes ] + [-RebootExitCodes ] [-IgnoreExitCodes ] [-PriorityClass ] + [-ExitOnProcessFailure] [-NoDesktopRefresh] [-PassThru] [-WhatIf] [-Confirm] [] +``` + +### RunAsActiveUser_FilePath_NoWait + +```powershell +Start-ADTMsiProcess [-Action ] -FilePath [-ArgumentList ] + [-AdditionalArgumentList ] [-SecureArgumentList] [-WorkingDirectory ] + [-Transforms ] [-Patches ] -RunAsActiveUser [-UseLinkedAdminToken] + [-UseHighestAvailableToken] [-InheritEnvironmentVariables] [-DenyUserTermination] + [-ExpandEnvironmentVariables] [-LoggingOptions ] [-LogFileName ] [-RepairMode ] + [-RepairFromSource] [-SkipMSIAlreadyInstalledCheck] [-IncludeUpdatesAndHotfixes] + [-PriorityClass ] [-NoDesktopRefresh] [-NoWait] [-PassThru] [-WhatIf] [-Confirm] + [] +``` + +### RunAsActiveUser_FilePath + +```powershell +Start-ADTMsiProcess [-Action ] -FilePath [-ArgumentList ] + [-AdditionalArgumentList ] [-SecureArgumentList] [-WorkingDirectory ] + [-Transforms ] [-Patches ] -RunAsActiveUser [-UseLinkedAdminToken] + [-UseHighestAvailableToken] [-InheritEnvironmentVariables] [-DenyUserTermination] + [-ExpandEnvironmentVariables] [-LoggingOptions ] [-LogFileName ] [-RepairMode ] + [-RepairFromSource] [-SkipMSIAlreadyInstalledCheck] [-IncludeUpdatesAndHotfixes] [-SuccessExitCodes ] + [-RebootExitCodes ] [-IgnoreExitCodes ] [-PriorityClass ] + [-ExitOnProcessFailure] [-NoDesktopRefresh] [-PassThru] [-WhatIf] [-Confirm] [] +``` + +### FilePath_NoWait + +```powershell +Start-ADTMsiProcess [-Action ] -FilePath [-ArgumentList ] + [-AdditionalArgumentList ] [-SecureArgumentList] [-WorkingDirectory ] + [-Transforms ] [-Patches ] [-ExpandEnvironmentVariables] [-LoggingOptions ] + [-LogFileName ] [-RepairMode ] [-RepairFromSource] [-SkipMSIAlreadyInstalledCheck] + [-IncludeUpdatesAndHotfixes] [-PriorityClass ] [-NoDesktopRefresh] [-NoWait] [-PassThru] + [-WhatIf] [-Confirm] [] +``` + +### FilePath + +```powershell +Start-ADTMsiProcess [-Action ] -FilePath [-ArgumentList ] + [-AdditionalArgumentList ] [-SecureArgumentList] [-WorkingDirectory ] + [-Transforms ] [-Patches ] [-ExpandEnvironmentVariables] [-LoggingOptions ] + [-LogFileName ] [-RepairMode ] [-RepairFromSource] [-SkipMSIAlreadyInstalledCheck] + [-IncludeUpdatesAndHotfixes] [-SuccessExitCodes ] [-RebootExitCodes ] + [-IgnoreExitCodes ] [-PriorityClass ] [-ExitOnProcessFailure] + [-NoDesktopRefresh] [-PassThru] [-WhatIf] [-Confirm] [] +``` + +### UseUnelevatedToken_ProductCode_NoWait + +```powershell +Start-ADTMsiProcess [-Action ] -ProductCode [-ArgumentList ] + [-AdditionalArgumentList ] [-SecureArgumentList] [-WorkingDirectory ] + [-Transforms ] [-Patches ] [-UseUnelevatedToken] [-ExpandEnvironmentVariables] + [-LoggingOptions ] [-LogFileName ] [-RepairMode ] [-RepairFromSource] + [-SkipMSIAlreadyInstalledCheck] [-IncludeUpdatesAndHotfixes] [-PriorityClass ] + [-NoDesktopRefresh] [-NoWait] [-PassThru] [-WhatIf] [-Confirm] [] +``` + +### UseUnelevatedToken_ProductCode + +```powershell +Start-ADTMsiProcess [-Action ] -ProductCode [-ArgumentList ] + [-AdditionalArgumentList ] [-SecureArgumentList] [-WorkingDirectory ] + [-Transforms ] [-Patches ] [-UseUnelevatedToken] [-ExpandEnvironmentVariables] + [-LoggingOptions ] [-LogFileName ] [-RepairMode ] [-RepairFromSource] + [-SkipMSIAlreadyInstalledCheck] [-IncludeUpdatesAndHotfixes] [-SuccessExitCodes ] + [-RebootExitCodes ] [-IgnoreExitCodes ] [-PriorityClass ] + [-ExitOnProcessFailure] [-NoDesktopRefresh] [-PassThru] [-WhatIf] [-Confirm] [] +``` + +### RunAsActiveUser_ProductCode_NoWait + +```powershell +Start-ADTMsiProcess [-Action ] -ProductCode [-ArgumentList ] + [-AdditionalArgumentList ] [-SecureArgumentList] [-WorkingDirectory ] + [-Transforms ] [-Patches ] -RunAsActiveUser [-UseLinkedAdminToken] + [-UseHighestAvailableToken] [-InheritEnvironmentVariables] [-DenyUserTermination] + [-ExpandEnvironmentVariables] [-LoggingOptions ] [-LogFileName ] [-RepairMode ] + [-RepairFromSource] [-SkipMSIAlreadyInstalledCheck] [-IncludeUpdatesAndHotfixes] + [-PriorityClass ] [-NoDesktopRefresh] [-NoWait] [-PassThru] [-WhatIf] [-Confirm] + [] +``` + +### RunAsActiveUser_ProductCode + +```powershell +Start-ADTMsiProcess [-Action ] -ProductCode [-ArgumentList ] + [-AdditionalArgumentList ] [-SecureArgumentList] [-WorkingDirectory ] + [-Transforms ] [-Patches ] -RunAsActiveUser [-UseLinkedAdminToken] + [-UseHighestAvailableToken] [-InheritEnvironmentVariables] [-DenyUserTermination] + [-ExpandEnvironmentVariables] [-LoggingOptions ] [-LogFileName ] [-RepairMode ] + [-RepairFromSource] [-SkipMSIAlreadyInstalledCheck] [-IncludeUpdatesAndHotfixes] [-SuccessExitCodes ] + [-RebootExitCodes ] [-IgnoreExitCodes ] [-PriorityClass ] + [-ExitOnProcessFailure] [-NoDesktopRefresh] [-PassThru] [-WhatIf] [-Confirm] [] +``` + +### ProductCode_NoWait + +```powershell +Start-ADTMsiProcess [-Action ] -ProductCode [-ArgumentList ] + [-AdditionalArgumentList ] [-SecureArgumentList] [-WorkingDirectory ] + [-Transforms ] [-Patches ] [-ExpandEnvironmentVariables] [-LoggingOptions ] + [-LogFileName ] [-RepairMode ] [-RepairFromSource] [-SkipMSIAlreadyInstalledCheck] + [-IncludeUpdatesAndHotfixes] [-PriorityClass ] [-NoDesktopRefresh] [-NoWait] [-PassThru] + [-WhatIf] [-Confirm] [] +``` + +### ProductCode + +```powershell +Start-ADTMsiProcess [-Action ] -ProductCode [-ArgumentList ] + [-AdditionalArgumentList ] [-SecureArgumentList] [-WorkingDirectory ] + [-Transforms ] [-Patches ] [-ExpandEnvironmentVariables] [-LoggingOptions ] + [-LogFileName ] [-RepairMode ] [-RepairFromSource] [-SkipMSIAlreadyInstalledCheck] + [-IncludeUpdatesAndHotfixes] [-SuccessExitCodes ] [-RebootExitCodes ] + [-IgnoreExitCodes ] [-PriorityClass ] [-ExitOnProcessFailure] + [-NoDesktopRefresh] [-PassThru] [-WhatIf] [-Confirm] [] +``` + +### UseUnelevatedToken_InstalledApplication_NoWait + +```powershell +Start-ADTMsiProcess [-Action ] -InstalledApplication [-ArgumentList ] + [-AdditionalArgumentList ] [-SecureArgumentList] [-WorkingDirectory ] + [-Transforms ] [-Patches ] [-UseUnelevatedToken] [-ExpandEnvironmentVariables] + [-LoggingOptions ] [-LogFileName ] [-RepairMode ] [-RepairFromSource] + [-SkipMSIAlreadyInstalledCheck] [-IncludeUpdatesAndHotfixes] [-PriorityClass ] + [-NoDesktopRefresh] [-NoWait] [-PassThru] [-WhatIf] [-Confirm] [] +``` + +### UseUnelevatedToken_InstalledApplication + +```powershell +Start-ADTMsiProcess [-Action ] -InstalledApplication [-ArgumentList ] + [-AdditionalArgumentList ] [-SecureArgumentList] [-WorkingDirectory ] + [-Transforms ] [-Patches ] [-UseUnelevatedToken] [-ExpandEnvironmentVariables] + [-LoggingOptions ] [-LogFileName ] [-RepairMode ] [-RepairFromSource] + [-SkipMSIAlreadyInstalledCheck] [-IncludeUpdatesAndHotfixes] [-SuccessExitCodes ] + [-RebootExitCodes ] [-IgnoreExitCodes ] [-PriorityClass ] + [-ExitOnProcessFailure] [-NoDesktopRefresh] [-PassThru] [-WhatIf] [-Confirm] [] +``` + +### RunAsActiveUser_InstalledApplication_NoWait + +```powershell +Start-ADTMsiProcess [-Action ] -InstalledApplication [-ArgumentList ] + [-AdditionalArgumentList ] [-SecureArgumentList] [-WorkingDirectory ] + [-Transforms ] [-Patches ] -RunAsActiveUser [-UseLinkedAdminToken] + [-UseHighestAvailableToken] [-InheritEnvironmentVariables] [-DenyUserTermination] + [-ExpandEnvironmentVariables] [-LoggingOptions ] [-LogFileName ] [-RepairMode ] + [-RepairFromSource] [-SkipMSIAlreadyInstalledCheck] [-IncludeUpdatesAndHotfixes] + [-PriorityClass ] [-NoDesktopRefresh] [-NoWait] [-PassThru] [-WhatIf] [-Confirm] + [] +``` + +### RunAsActiveUser_InstalledApplication + +```powershell +Start-ADTMsiProcess [-Action ] -InstalledApplication [-ArgumentList ] + [-AdditionalArgumentList ] [-SecureArgumentList] [-WorkingDirectory ] + [-Transforms ] [-Patches ] -RunAsActiveUser [-UseLinkedAdminToken] + [-UseHighestAvailableToken] [-InheritEnvironmentVariables] [-DenyUserTermination] + [-ExpandEnvironmentVariables] [-LoggingOptions ] [-LogFileName ] [-RepairMode ] + [-RepairFromSource] [-SkipMSIAlreadyInstalledCheck] [-IncludeUpdatesAndHotfixes] [-SuccessExitCodes ] + [-RebootExitCodes ] [-IgnoreExitCodes ] [-PriorityClass ] + [-ExitOnProcessFailure] [-NoDesktopRefresh] [-PassThru] [-WhatIf] [-Confirm] [] +``` + +### InstalledApplication_NoWait + +```powershell +Start-ADTMsiProcess [-Action ] -InstalledApplication [-ArgumentList ] + [-AdditionalArgumentList ] [-SecureArgumentList] [-WorkingDirectory ] + [-Transforms ] [-Patches ] [-ExpandEnvironmentVariables] [-LoggingOptions ] + [-LogFileName ] [-RepairMode ] [-RepairFromSource] [-SkipMSIAlreadyInstalledCheck] + [-IncludeUpdatesAndHotfixes] [-PriorityClass ] [-NoDesktopRefresh] [-NoWait] [-PassThru] + [-WhatIf] [-Confirm] [] +``` + +### InstalledApplication + +```powershell +Start-ADTMsiProcess [-Action ] -InstalledApplication [-ArgumentList ] + [-AdditionalArgumentList ] [-SecureArgumentList] [-WorkingDirectory ] + [-Transforms ] [-Patches ] [-ExpandEnvironmentVariables] [-LoggingOptions ] + [-LogFileName ] [-RepairMode ] [-RepairFromSource] [-SkipMSIAlreadyInstalledCheck] + [-IncludeUpdatesAndHotfixes] [-SuccessExitCodes ] [-RebootExitCodes ] + [-IgnoreExitCodes ] [-PriorityClass ] [-ExitOnProcessFailure] + [-NoDesktopRefresh] [-PassThru] [-WhatIf] [-Confirm] [] +``` + +## DESCRIPTION + +This function utilizes msiexec.exe to handle various operations on MSI and MSP files, as well as MSI product codes. +The operations include installation, uninstallation, patching, repair, and setting up active configurations. + +If the -Action parameter is set to "Install" and the MSI is already installed, the function will terminate without performing any actions. + +The function automatically sets default switches for msiexec based on preferences defined in the config.psd1 file. +Additionally, it generates a log file name and creates a verbose log for all msiexec operations, ensuring detailed tracking. + +The MSI or MSP file is expected to reside in the "Files" subdirectory of the App Deploy Toolkit, with transform files expected to be in the same directory as the MSI file. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +Start-ADTMsiProcess -Action 'Install' -FilePath 'Adobe_FlashPlayer_11.2.202.233_x64_EN.msi' +``` + +Install an MSI. + +### EXAMPLE 2 + +```powershell +Start-ADTMsiProcess -Action 'Install' -FilePath 'Adobe_FlashPlayer_11.2.202.233_x64_EN.msi' -Transforms 'Adobe_FlashPlayer_11.2.202.233_x64_EN_01.mst' -ArgumentList '/QN' +``` + +Install an MSI, applying a transform and overriding the default MSI toolkit parameters. + +### EXAMPLE 3 + +```powershell +$ExecuteMSIResult = Start-ADTMsiProcess -Action 'Install' -FilePath 'Adobe_FlashPlayer_11.2.202.233_x64_EN.msi' -PassThru +``` + +Install an MSI and stores the result of the execution into a variable by using the -PassThru option. + +### EXAMPLE 4 + +```powershell +$ExecuteMSIResult = Start-ADTMsiProcess -Action 'Install' -FilePath 'Adobe_FlashPlayer_11.2.202.233_x64_EN.msi' -AdditionalArgumentList 'ALLUSERS=1', 'SOMEPROPERTY=TRUE' -PassThru +``` + +Install an MSI and stores the result of the execution into a variable by using the -PassThru option, specifically taking advantage of our `-AdditionalArgumentList` array support to avoid escaped quote issues. + +### EXAMPLE 5 + +```powershell +Start-ADTMsiProcess -Action 'Uninstall' -ProductCode '{26923b43-4d38-484f-9b9e-de460746276c}' +``` + +Uninstall an MSI using a product code. + +### EXAMPLE 6 + +```powershell +Start-ADTMsiProcess -Action 'Patch' -FilePath 'Adobe_Reader_11.0.3_EN.msp' +``` + +Install an MSP. + +## PARAMETERS + +### -Action + +Specifies the action to be performed. +Available options: Install, Uninstall, Patch, Repair, ActiveSetup. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: Install +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -FilePath + +The file path to the MSI/MSP file. +If the specified FilePath is just a file name, the function will look within `$adtSession.DirFiles` for the specified file, so long as a session is active. + +```yaml +Type: String +Parameter Sets: UseUnelevatedToken_FilePath_NoWait, UseUnelevatedToken_FilePath, RunAsActiveUser_FilePath_NoWait, RunAsActiveUser_FilePath, FilePath_NoWait, FilePath +Aliases: + +Required: True +Position: Named +Default value: [System.Management.Automation.Language.NullString]::Value +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -ProductCode + +The product code of the installed MSI. + +```yaml +Type: Guid +Parameter Sets: UseUnelevatedToken_ProductCode_NoWait, UseUnelevatedToken_ProductCode, RunAsActiveUser_ProductCode_NoWait, RunAsActiveUser_ProductCode, ProductCode_NoWait, ProductCode +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -InstalledApplication + +The InstalledApplication object of the installed MSI. + +```yaml +Type: InstalledApplication +Parameter Sets: UseUnelevatedToken_InstalledApplication_NoWait, UseUnelevatedToken_InstalledApplication, RunAsActiveUser_InstalledApplication_NoWait, RunAsActiveUser_InstalledApplication, InstalledApplication_NoWait, InstalledApplication +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -ArgumentList + +Overrides the default parameters specified in the config.psd1 file. + +```yaml +Type: String[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: Install (Normal): (Get-ADTConfig).MSI.InstallParams; Install (Silent): (Get-ADTConfig).MSI.SilentParams; Uninstall (Normal): (Get-ADTConfig).MSI.UninstallParams; Uninstall (Silent): (Get-ADTConfig).MSI.SilentParams +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -AdditionalArgumentList + +Adds additional parameters to the default set specified in the config.psd1 file. + +```yaml +Type: String[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SecureArgumentList + +Hides all parameters passed to the MSI or MSP file from the toolkit log file. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WorkingDirectory + +Overrides the working directory. +The working directory is set to the location of the MSI file. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: [System.Management.Automation.Language.NullString]::Value +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Transforms + +The name(s) of the transform file(s) to be applied to the MSI. +The transform files should be in the same directory as the MSI file. + +```yaml +Type: String[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Patches + +The name(s) of the patch (MSP) file(s) to be applied to the MSI for the "Install" action. +The patch files should be in the same directory as the MSI file. + +```yaml +Type: String[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -RunAsActiveUser + +A RunAsActiveUser object to invoke the process as. + +```yaml +Type: RunAsActiveUser +Parameter Sets: RunAsActiveUser_FilePath_NoWait, RunAsActiveUser_FilePath, RunAsActiveUser_ProductCode_NoWait, RunAsActiveUser_ProductCode, RunAsActiveUser_InstalledApplication_NoWait, RunAsActiveUser_InstalledApplication +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -UseLinkedAdminToken + +Use a user's linked administrative token while running the process under their context. + +```yaml +Type: SwitchParameter +Parameter Sets: RunAsActiveUser_FilePath_NoWait, RunAsActiveUser_FilePath, RunAsActiveUser_ProductCode_NoWait, RunAsActiveUser_ProductCode, RunAsActiveUser_InstalledApplication_NoWait, RunAsActiveUser_InstalledApplication +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -UseHighestAvailableToken + +Use a user's linked administrative token if it's available while running the process under their context. + +```yaml +Type: SwitchParameter +Parameter Sets: RunAsActiveUser_FilePath_NoWait, RunAsActiveUser_FilePath, RunAsActiveUser_ProductCode_NoWait, RunAsActiveUser_ProductCode, RunAsActiveUser_InstalledApplication_NoWait, RunAsActiveUser_InstalledApplication +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InheritEnvironmentVariables + +Specifies whether the process running as a user should inherit the SYSTEM account's environment variables. + +```yaml +Type: SwitchParameter +Parameter Sets: RunAsActiveUser_FilePath_NoWait, RunAsActiveUser_FilePath, RunAsActiveUser_ProductCode_NoWait, RunAsActiveUser_ProductCode, RunAsActiveUser_InstalledApplication_NoWait, RunAsActiveUser_InstalledApplication +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DenyUserTermination + +Specifies that users cannot terminate the process started in their context. +The user will still be able to terminate the process if they're an administrator, though. + +```yaml +Type: SwitchParameter +Parameter Sets: RunAsActiveUser_FilePath_NoWait, RunAsActiveUser_FilePath, RunAsActiveUser_ProductCode_NoWait, RunAsActiveUser_ProductCode, RunAsActiveUser_InstalledApplication_NoWait, RunAsActiveUser_InstalledApplication +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -UseUnelevatedToken + +If the current process is elevated, starts the new process unelevated using the user's unelevated linked token. + +```yaml +Type: SwitchParameter +Parameter Sets: UseUnelevatedToken_FilePath_NoWait, UseUnelevatedToken_FilePath, UseUnelevatedToken_ProductCode_NoWait, UseUnelevatedToken_ProductCode, UseUnelevatedToken_InstalledApplication_NoWait, UseUnelevatedToken_InstalledApplication +Aliases: + +Required: True +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ExpandEnvironmentVariables + +Specifies whether to expand any Windows/DOS-style environment variables in the specified FilePath/ArgumentList. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -LoggingOptions + +Overrides the default logging options specified in the config.psd1 file. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: [System.Management.Automation.Language.NullString]::Value +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -LogFileName + +Overrides the default log file name. +The default log file name is generated from the MSI file name. +If LogFileName does not end in .log, it will be automatically appended. + +For uninstallations, by default the product code is resolved to the DisplayName and version of the application. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: [System.Management.Automation.Language.NullString]::Value +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -RepairMode + +Specifies the mode of repair. +Choosing `Repair` will repair via `msiexec.exe /p` (which can trigger unsupressable reboots). +Choosing `Reinstall` will reinstall by adding `REINSTALL=ALL REINSTALLMODE=omus` to the standard InstallParams. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: Reinstall +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -RepairFromSource + +Specifies whether we should repair from source. +Also rewrites local cache. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SkipMSIAlreadyInstalledCheck + +Skips the check to determine if the MSI is already installed on the system. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -IncludeUpdatesAndHotfixes + +Include matches against updates and hotfixes in results. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SuccessExitCodes + +List of exit codes to be considered successful. +Defaults to values set during ADTSession initialization, otherwise: 0 + +```yaml +Type: Int32[] +Parameter Sets: UseUnelevatedToken_FilePath, RunAsActiveUser_FilePath, FilePath, UseUnelevatedToken_ProductCode, RunAsActiveUser_ProductCode, ProductCode, UseUnelevatedToken_InstalledApplication, RunAsActiveUser_InstalledApplication, InstalledApplication +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -RebootExitCodes + +List of exit codes to indicate a reboot is required. +Defaults to values set during ADTSession initialization, otherwise: 1641, 3010 + +```yaml +Type: Int32[] +Parameter Sets: UseUnelevatedToken_FilePath, RunAsActiveUser_FilePath, FilePath, UseUnelevatedToken_ProductCode, RunAsActiveUser_ProductCode, ProductCode, UseUnelevatedToken_InstalledApplication, RunAsActiveUser_InstalledApplication, InstalledApplication +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -IgnoreExitCodes + +List the exit codes to ignore or * to ignore all exit codes. + +```yaml +Type: String[] +Parameter Sets: UseUnelevatedToken_FilePath, RunAsActiveUser_FilePath, FilePath, UseUnelevatedToken_ProductCode, RunAsActiveUser_ProductCode, ProductCode, UseUnelevatedToken_InstalledApplication, RunAsActiveUser_InstalledApplication, InstalledApplication +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PriorityClass + +Specifies priority class for the process. +Options: Idle, Normal, High, AboveNormal, BelowNormal, RealTime. + +```yaml +Type: ProcessPriorityClass +Parameter Sets: (All) +Aliases: +Accepted values: Normal, Idle, High, RealTime, BelowNormal, AboveNormal + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ExitOnProcessFailure + +Automatically closes the active deployment session via Close-ADTSession in the event the process exits with a non-success or non-ignored exit code. + +```yaml +Type: SwitchParameter +Parameter Sets: UseUnelevatedToken_FilePath, RunAsActiveUser_FilePath, FilePath, UseUnelevatedToken_ProductCode, RunAsActiveUser_ProductCode, ProductCode, UseUnelevatedToken_InstalledApplication, RunAsActiveUser_InstalledApplication, InstalledApplication +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -NoDesktopRefresh + +If specifies, doesn't refresh the desktop and environment after successful MSI installation. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -NoWait + +Immediately continue after executing the process. + +```yaml +Type: SwitchParameter +Parameter Sets: UseUnelevatedToken_FilePath_NoWait, RunAsActiveUser_FilePath_NoWait, FilePath_NoWait, UseUnelevatedToken_ProductCode_NoWait, RunAsActiveUser_ProductCode_NoWait, ProductCode_NoWait, UseUnelevatedToken_InstalledApplication_NoWait, RunAsActiveUser_InstalledApplication_NoWait, InstalledApplication_NoWait +Aliases: + +Required: True +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PassThru + +Returns ExitCode, StdOut, and StdErr output from the process. +Note that a failed execution will only return an object if either `-ErrorAction` is set to `SilentlyContinue`/`Ignore`, or if `-IgnoreExitCodes`/`-SuccessExitCodes` are used. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf + +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm + +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### None + +### You cannot pipe objects to this function. +## OUTPUTS + +### PSADT.Types.ProcessResult + +### Returns an object with the results of the installation if -PassThru is specified. +### - ExitCode +### - StdOut +### - StdErr +## NOTES +An active ADT session is NOT required to use this function. + +This function supports the -WhatIf and -Confirm parameters for testing changes before applying them. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/Start-ADTMsiProcess](https://psappdeploytoolkit.com/docs/reference/functions/Start-ADTMsiProcess) diff --git a/versioned_docs/version-4.1.x/reference/functions/Start-ADTMsiProcessAsUser.mdx b/versioned_docs/version-4.1.x/reference/functions/Start-ADTMsiProcessAsUser.mdx new file mode 100644 index 0000000..85e2d1f --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Start-ADTMsiProcessAsUser.mdx @@ -0,0 +1,709 @@ +--- +id: Start-ADTMsiProcessAsUser +title: Start-ADTMsiProcessAsUser +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Executes msiexec.exe to perform actions such as install, uninstall, patch, repair, or active setup for MSI and MSP files or MSI product codes. + +## SYNTAX + +### FilePath_NoWait + +```powershell +Start-ADTMsiProcessAsUser [-Username ] [-Action ] -FilePath + [-ArgumentList ] [-AdditionalArgumentList ] [-SecureArgumentList] + [-WorkingDirectory ] [-Transforms ] [-Patches ] [-UseLinkedAdminToken] + [-UseHighestAvailableToken] [-InheritEnvironmentVariables] [-ExpandEnvironmentVariables] + [-DenyUserTermination] [-LoggingOptions ] [-LogFileName ] [-RepairMode ] + [-RepairFromSource] [-SkipMSIAlreadyInstalledCheck] [-IncludeUpdatesAndHotfixes] + [-PriorityClass ] [-NoDesktopRefresh] [-NoWait] [-PassThru] [-WhatIf] [-Confirm] + [] +``` + +### FilePath + +```powershell +Start-ADTMsiProcessAsUser [-Username ] [-Action ] -FilePath + [-ArgumentList ] [-AdditionalArgumentList ] [-SecureArgumentList] + [-WorkingDirectory ] [-Transforms ] [-Patches ] [-UseLinkedAdminToken] + [-UseHighestAvailableToken] [-InheritEnvironmentVariables] [-ExpandEnvironmentVariables] + [-DenyUserTermination] [-LoggingOptions ] [-LogFileName ] [-RepairMode ] + [-RepairFromSource] [-SkipMSIAlreadyInstalledCheck] [-IncludeUpdatesAndHotfixes] [-SuccessExitCodes ] + [-RebootExitCodes ] [-IgnoreExitCodes ] [-PriorityClass ] + [-ExitOnProcessFailure] [-NoDesktopRefresh] [-PassThru] [-WhatIf] [-Confirm] [] +``` + +### ProductCode_NoWait + +```powershell +Start-ADTMsiProcessAsUser [-Username ] [-Action ] -ProductCode + [-ArgumentList ] [-AdditionalArgumentList ] [-SecureArgumentList] + [-WorkingDirectory ] [-Transforms ] [-Patches ] [-UseLinkedAdminToken] + [-UseHighestAvailableToken] [-InheritEnvironmentVariables] [-ExpandEnvironmentVariables] + [-DenyUserTermination] [-LoggingOptions ] [-LogFileName ] [-RepairMode ] + [-RepairFromSource] [-SkipMSIAlreadyInstalledCheck] [-IncludeUpdatesAndHotfixes] + [-PriorityClass ] [-NoDesktopRefresh] [-NoWait] [-PassThru] [-WhatIf] [-Confirm] + [] +``` + +### ProductCode + +```powershell +Start-ADTMsiProcessAsUser [-Username ] [-Action ] -ProductCode + [-ArgumentList ] [-AdditionalArgumentList ] [-SecureArgumentList] + [-WorkingDirectory ] [-Transforms ] [-Patches ] [-UseLinkedAdminToken] + [-UseHighestAvailableToken] [-InheritEnvironmentVariables] [-ExpandEnvironmentVariables] + [-DenyUserTermination] [-LoggingOptions ] [-LogFileName ] [-RepairMode ] + [-RepairFromSource] [-SkipMSIAlreadyInstalledCheck] [-IncludeUpdatesAndHotfixes] [-SuccessExitCodes ] + [-RebootExitCodes ] [-IgnoreExitCodes ] [-PriorityClass ] + [-ExitOnProcessFailure] [-NoDesktopRefresh] [-PassThru] [-WhatIf] [-Confirm] [] +``` + +### InstalledApplication_NoWait + +```powershell +Start-ADTMsiProcessAsUser [-Username ] [-Action ] + -InstalledApplication [-ArgumentList ] [-AdditionalArgumentList ] + [-SecureArgumentList] [-WorkingDirectory ] [-Transforms ] [-Patches ] + [-UseLinkedAdminToken] [-UseHighestAvailableToken] [-InheritEnvironmentVariables] + [-ExpandEnvironmentVariables] [-DenyUserTermination] [-LoggingOptions ] [-LogFileName ] + [-RepairMode ] [-RepairFromSource] [-SkipMSIAlreadyInstalledCheck] [-IncludeUpdatesAndHotfixes] + [-PriorityClass ] [-NoDesktopRefresh] [-NoWait] [-PassThru] [-WhatIf] [-Confirm] + [] +``` + +### InstalledApplication + +```powershell +Start-ADTMsiProcessAsUser [-Username ] [-Action ] + -InstalledApplication [-ArgumentList ] [-AdditionalArgumentList ] + [-SecureArgumentList] [-WorkingDirectory ] [-Transforms ] [-Patches ] + [-UseLinkedAdminToken] [-UseHighestAvailableToken] [-InheritEnvironmentVariables] + [-ExpandEnvironmentVariables] [-DenyUserTermination] [-LoggingOptions ] [-LogFileName ] + [-RepairMode ] [-RepairFromSource] [-SkipMSIAlreadyInstalledCheck] [-IncludeUpdatesAndHotfixes] + [-SuccessExitCodes ] [-RebootExitCodes ] [-IgnoreExitCodes ] + [-PriorityClass ] [-ExitOnProcessFailure] [-NoDesktopRefresh] [-PassThru] [-WhatIf] + [-Confirm] [] +``` + +## DESCRIPTION + +This function utilizes msiexec.exe to handle various operations on MSI and MSP files, as well as MSI product codes. +The operations include installation, uninstallation, patching, repair, and setting up active configurations. + +If the -Action parameter is set to "Install" and the MSI is already installed, the function will terminate without performing any actions. + +The function automatically sets default switches for msiexec based on preferences defined in the config.psd1 file. +Additionally, it generates a log file name and creates a verbose log for all msiexec operations, ensuring detailed tracking. + +The MSI or MSP file is expected to reside in the "Files" subdirectory of the App Deploy Toolkit, with transform files expected to be in the same directory as the MSI file. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +Start-ADTMsiProcessAsUser -Action 'Install' -FilePath 'Adobe_FlashPlayer_11.2.202.233_x64_EN.msi' +``` + +Install an MSI. + +### EXAMPLE 2 + +```powershell +Start-ADTMsiProcessAsUser -Action 'Install' -FilePath 'Adobe_FlashPlayer_11.2.202.233_x64_EN.msi' -Transforms 'Adobe_FlashPlayer_11.2.202.233_x64_EN_01.mst' -ArgumentList '/QN' +``` + +Install an MSI, applying a transform and overriding the default MSI toolkit parameters. + +### EXAMPLE 3 + +```powershell +$ExecuteMSIResult = Start-ADTMsiProcessAsUser -Action 'Install' -FilePath 'Adobe_FlashPlayer_11.2.202.233_x64_EN.msi' -PassThru +``` + +Install an MSI and stores the result of the execution into a variable by using the -PassThru option. + +### EXAMPLE 4 + +```powershell +Start-ADTMsiProcessAsUser -Action 'Uninstall' -ProductCode '{26923b43-4d38-484f-9b9e-de460746276c}' +``` + +Uninstall an MSI using a product code. + +### EXAMPLE 5 + +```powershell +Start-ADTMsiProcessAsUser -Action 'Patch' -FilePath 'Adobe_Reader_11.0.3_EN.msp' +``` + +Install an MSP. + +## PARAMETERS + +### -Username + +A username to invoke the process as. +Only supported while running as the SYSTEM account. + +```yaml +Type: NTAccount +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: $RunAsActiveUser.UserName +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Action + +Specifies the action to be performed. +Available options: Install, Uninstall, Patch, Repair, ActiveSetup. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: Install +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -FilePath + +The file path to the MSI/MSP file. + +```yaml +Type: String +Parameter Sets: FilePath_NoWait, FilePath +Aliases: + +Required: True +Position: Named +Default value: [System.Management.Automation.Language.NullString]::Value +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -ProductCode + +The product code of the installed MSI. + +```yaml +Type: Guid +Parameter Sets: ProductCode_NoWait, ProductCode +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -InstalledApplication + +The InstalledApplication object of the installed MSI. + +```yaml +Type: InstalledApplication +Parameter Sets: InstalledApplication_NoWait, InstalledApplication +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -ArgumentList + +Overrides the default parameters specified in the config.psd1 file. + +```yaml +Type: String[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: Install (Normal): (Get-ADTConfig).MSI.InstallParams; Install (Silent): (Get-ADTConfig).MSI.SilentParams; Uninstall (Normal): (Get-ADTConfig).MSI.UninstallParams; Uninstall (Silent): (Get-ADTConfig).MSI.SilentParams +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -AdditionalArgumentList + +Adds additional parameters to the default set specified in the config.psd1 file. + +```yaml +Type: String[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SecureArgumentList + +Hides all parameters passed to the MSI or MSP file from the toolkit log file. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WorkingDirectory + +Overrides the working directory. +The working directory is set to the location of the MSI file. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: [System.Management.Automation.Language.NullString]::Value +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Transforms + +The name(s) of the transform file(s) to be applied to the MSI. +The transform files should be in the same directory as the MSI file. + +```yaml +Type: String[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Patches + +The name(s) of the patch (MSP) file(s) to be applied to the MSI for the "Install" action. +The patch files should be in the same directory as the MSI file. + +```yaml +Type: String[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -UseLinkedAdminToken + +Use a user's linked administrative token while running the process under their context. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -UseHighestAvailableToken + +Use a user's linked administrative token if it's available while running the process under their context. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InheritEnvironmentVariables + +Specifies whether the process running as a user should inherit the SYSTEM account's environment variables. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ExpandEnvironmentVariables + +Specifies whether to expand any Windows/DOS-style environment variables in the specified FilePath/ArgumentList. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DenyUserTermination + +Specifies that users cannot terminate the process started in their context. +The user will still be able to terminate the process if they're an administrator, though. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -LoggingOptions + +Overrides the default logging options specified in the config.psd1 file. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: [System.Management.Automation.Language.NullString]::Value +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -LogFileName + +Overrides the default log file name. +The default log file name is generated from the MSI file name. +If LogFileName does not end in .log, it will be automatically appended. + +For uninstallations, by default the product code is resolved to the DisplayName and version of the application. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: [System.Management.Automation.Language.NullString]::Value +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -RepairMode + +Specifies the mode of repair. +Choosing `Repair` will repair via `msiexec.exe /p` (which can trigger unsupressable reboots). +Choosing `Reinstall` will reinstall by adding `REINSTALL=ALL REINSTALLMODE=omus` to the standard InstallParams. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -RepairFromSource + +Specifies whether we should repair from source. +Also rewrites local cache. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SkipMSIAlreadyInstalledCheck + +Skips the check to determine if the MSI is already installed on the system. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -IncludeUpdatesAndHotfixes + +Include matches against updates and hotfixes in results. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SuccessExitCodes + +List of exit codes to be considered successful. +Defaults to values set during ADTSession initialization, otherwise: 0 + +```yaml +Type: Int32[] +Parameter Sets: FilePath, ProductCode, InstalledApplication +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -RebootExitCodes + +List of exit codes to indicate a reboot is required. +Defaults to values set during ADTSession initialization, otherwise: 1641, 3010 + +```yaml +Type: Int32[] +Parameter Sets: FilePath, ProductCode, InstalledApplication +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -IgnoreExitCodes + +List the exit codes to ignore or * to ignore all exit codes. + +```yaml +Type: String[] +Parameter Sets: FilePath, ProductCode, InstalledApplication +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PriorityClass + +Specifies priority class for the process. +Options: Idle, Normal, High, AboveNormal, BelowNormal, RealTime. + +```yaml +Type: ProcessPriorityClass +Parameter Sets: (All) +Aliases: +Accepted values: Normal, Idle, High, RealTime, BelowNormal, AboveNormal + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ExitOnProcessFailure + +Automatically closes the active deployment session via Close-ADTSession in the event the process exits with a non-success or non-ignored exit code. + +```yaml +Type: SwitchParameter +Parameter Sets: FilePath, ProductCode, InstalledApplication +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -NoDesktopRefresh + +If specifies, doesn't refresh the desktop and environment after successful MSI installation. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -NoWait + +Immediately continue after executing the process. + +```yaml +Type: SwitchParameter +Parameter Sets: FilePath_NoWait, ProductCode_NoWait, InstalledApplication_NoWait +Aliases: + +Required: True +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PassThru + +Returns ExitCode, StdOut, and StdErr output from the process. +Note that a failed execution will only return an object if either `-ErrorAction` is set to `SilentlyContinue`/`Ignore`, or if `-IgnoreExitCodes`/`-SuccessExitCodes` are used. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf + +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm + +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### None + +### You cannot pipe objects to this function. +## OUTPUTS + +### PSADT.Types.ProcessResult + +### Returns an object with the results of the installation if -PassThru is specified. +### - ExitCode +### - StdOut +### - StdErr +## NOTES +An active ADT session is NOT required to use this function. + +This function supports the -WhatIf and -Confirm parameters for testing changes before applying them. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/Start-ADTMsiProcessAsUser](https://psappdeploytoolkit.com/docs/reference/functions/Start-ADTMsiProcessAsUser) diff --git a/versioned_docs/version-4.1.x/reference/functions/Start-ADTMspProcess.mdx b/versioned_docs/version-4.1.x/reference/functions/Start-ADTMspProcess.mdx new file mode 100644 index 0000000..d79b749 --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Start-ADTMspProcess.mdx @@ -0,0 +1,461 @@ +--- +id: Start-ADTMspProcess +title: Start-ADTMspProcess +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Executes an MSP file using the same logic as Start-ADTMsiProcess. + +## SYNTAX + +### None (Default) + +```powershell +Start-ADTMspProcess -FilePath [-AdditionalArgumentList ] [-SecureArgumentList] + [-ExpandEnvironmentVariables] [-LoggingOptions ] [-LogFileName ] [-SuccessExitCodes ] + [-RebootExitCodes ] [-IgnoreExitCodes ] [-PriorityClass ] + [-ExitOnProcessFailure] [-NoDesktopRefresh] [-NoWait] [-PassThru] [-WhatIf] [-Confirm] [] +``` + +### RunAsActiveUser + +```powershell +Start-ADTMspProcess -FilePath [-AdditionalArgumentList ] [-SecureArgumentList] + -RunAsActiveUser [-UseLinkedAdminToken] [-UseHighestAvailableToken] + [-InheritEnvironmentVariables] [-DenyUserTermination] [-ExpandEnvironmentVariables] [-LoggingOptions ] + [-LogFileName ] [-SuccessExitCodes ] [-RebootExitCodes ] + [-IgnoreExitCodes ] [-PriorityClass ] [-ExitOnProcessFailure] + [-NoDesktopRefresh] [-NoWait] [-PassThru] [-WhatIf] [-Confirm] [] +``` + +### UseUnelevatedToken + +```powershell +Start-ADTMspProcess -FilePath [-AdditionalArgumentList ] [-SecureArgumentList] + [-UseUnelevatedToken] [-ExpandEnvironmentVariables] [-LoggingOptions ] [-LogFileName ] + [-SuccessExitCodes ] [-RebootExitCodes ] [-IgnoreExitCodes ] + [-PriorityClass ] [-ExitOnProcessFailure] [-NoDesktopRefresh] [-NoWait] [-PassThru] + [-WhatIf] [-Confirm] [] +``` + +## DESCRIPTION + +Reads SummaryInfo targeted product codes in MSP file and determines if the MSP file applies to any installed products. +If a valid installed product is found, triggers the Start-ADTMsiProcess function to patch the installation. + +Uses default config MSI parameters. +You can use -AdditionalArgumentList to add additional parameters. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +Start-ADTMspProcess -FilePath 'Adobe_Reader_11.0.3_EN.msp' +``` + +Executes the specified MSP file for Adobe Reader 11.0.3. + +### EXAMPLE 2 + +```powershell +Start-ADTMspProcess -FilePath 'AcroRdr2017Upd1701130143_MUI.msp' -AdditionalArgumentList 'ALLUSERS=1' +``` + +Executes the specified MSP file for Acrobat Reader 2017 with additional parameters. + +## PARAMETERS + +### -FilePath + +Path to the MSP file. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -AdditionalArgumentList + +Additional parameters. + +```yaml +Type: String[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SecureArgumentList + +Hides all parameters passed to the MSI or MSP file from the toolkit log file. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -RunAsActiveUser + +A RunAsActiveUser object to invoke the process as. + +```yaml +Type: RunAsActiveUser +Parameter Sets: RunAsActiveUser +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -UseLinkedAdminToken + +Use a user's linked administrative token while running the process under their context. + +```yaml +Type: SwitchParameter +Parameter Sets: RunAsActiveUser +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -UseHighestAvailableToken + +Use a user's linked administrative token if it's available while running the process under their context. + +```yaml +Type: SwitchParameter +Parameter Sets: RunAsActiveUser +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InheritEnvironmentVariables + +Specifies whether the process running as a user should inherit the SYSTEM account's environment variables. + +```yaml +Type: SwitchParameter +Parameter Sets: RunAsActiveUser +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DenyUserTermination + +Specifies that users cannot terminate the process started in their context. +The user will still be able to terminate the process if they're an administrator, though. + +```yaml +Type: SwitchParameter +Parameter Sets: RunAsActiveUser +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -UseUnelevatedToken + +If the current process is elevated, starts the new process unelevated using the user's unelevated linked token. + +```yaml +Type: SwitchParameter +Parameter Sets: UseUnelevatedToken +Aliases: + +Required: True +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ExpandEnvironmentVariables + +Specifies whether to expand any Windows/DOS-style environment variables in the specified FilePath/ArgumentList. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -LoggingOptions + +Overrides the default logging options specified in the config.psd1 file. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: [System.Management.Automation.Language.NullString]::Value +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -LogFileName + +Overrides the default log file name. +The default log file name is generated from the MSI file name. +If LogFileName does not end in .log, it will be automatically appended. + +For uninstallations, by default the product code is resolved to the DisplayName and version of the application. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: [System.Management.Automation.Language.NullString]::Value +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SuccessExitCodes + +List of exit codes to be considered successful. +Defaults to values set during ADTSession initialization, otherwise: 0 + +```yaml +Type: Int32[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -RebootExitCodes + +List of exit codes to indicate a reboot is required. +Defaults to values set during ADTSession initialization, otherwise: 1641, 3010 + +```yaml +Type: Int32[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -IgnoreExitCodes + +List the exit codes to ignore or * to ignore all exit codes. + +```yaml +Type: String[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PriorityClass + +Specifies priority class for the process. +Options: Idle, Normal, High, AboveNormal, BelowNormal, RealTime. + +```yaml +Type: ProcessPriorityClass +Parameter Sets: (All) +Aliases: +Accepted values: Normal, Idle, High, RealTime, BelowNormal, AboveNormal + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ExitOnProcessFailure + +Automatically closes the active deployment session via Close-ADTSession in the event the process exits with a non-success or non-ignored exit code. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -NoDesktopRefresh + +If specifies, doesn't refresh the desktop and environment after successful MSI installation. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -NoWait + +Immediately continue after executing the process. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PassThru + +Returns ExitCode, StdOut, and StdErr output from the process. +Note that a failed execution will only return an object if either `-ErrorAction` is set to `SilentlyContinue`/`Ignore`, or if `-IgnoreExitCodes`/`-SuccessExitCodes` are used. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf + +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm + +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### None + +### You cannot pipe objects to this function. +## OUTPUTS + +### None + +### This function does not generate any output. +## NOTES +An active ADT session is NOT required to use this function. + +This function supports the -WhatIf and -Confirm parameters for testing changes before applying them. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/Start-ADTMspProcess](https://psappdeploytoolkit.com/docs/reference/functions/Start-ADTMspProcess) diff --git a/versioned_docs/version-4.1.x/reference/functions/Start-ADTMspProcessAsUser.mdx b/versioned_docs/version-4.1.x/reference/functions/Start-ADTMspProcessAsUser.mdx new file mode 100644 index 0000000..4a2aaf6 --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Start-ADTMspProcessAsUser.mdx @@ -0,0 +1,409 @@ +--- +id: Start-ADTMspProcessAsUser +title: Start-ADTMspProcessAsUser +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Executes an MSP file using the same logic as Start-ADTMsiProcess. + +## SYNTAX + +```powershell +Start-ADTMspProcessAsUser [[-Username] ] [-FilePath] [[-AdditionalArgumentList] ] + [-UseLinkedAdminToken] [-UseHighestAvailableToken] [-InheritEnvironmentVariables] [-DenyUserTermination] + [-ExpandEnvironmentVariables] [[-LoggingOptions] ] [[-LogFileName] ] + [[-SuccessExitCodes] ] [[-RebootExitCodes] ] [[-IgnoreExitCodes] ] + [[-PriorityClass] ] [-ExitOnProcessFailure] [-NoDesktopRefresh] [-NoWait] [-PassThru] + [-WhatIf] [-Confirm] [] +``` + +## DESCRIPTION + +Reads SummaryInfo targeted product codes in MSP file and determines if the MSP file applies to any installed products. +If a valid installed product is found, triggers the Start-ADTMsiProcess function to patch the installation. + +Uses default config MSI parameters. +You can use -AdditionalArgumentList to add additional parameters. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +Start-ADTMspProcessAsUser -FilePath 'Adobe_Reader_11.0.3_EN.msp' +``` + +Executes the specified MSP file for Adobe Reader 11.0.3. + +### EXAMPLE 2 + +```powershell +Start-ADTMspProcessAsUser -FilePath 'AcroRdr2017Upd1701130143_MUI.msp' -AdditionalArgumentList 'ALLUSERS=1' +``` + +Executes the specified MSP file for Acrobat Reader 2017 with additional parameters. + +## PARAMETERS + +### -Username + +A username to invoke the process as. +Only supported while running as the SYSTEM account. + +```yaml +Type: NTAccount +Parameter Sets: (All) +Aliases: + +Required: False +Position: 1 +Default value: $RunAsActiveUser.UserName +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -FilePath + +Path to the MSP file. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: True +Position: 2 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -AdditionalArgumentList + +Additional parameters. + +```yaml +Type: String[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: 3 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -UseLinkedAdminToken + +Use a user's linked administrative token while running the process under their context. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -UseHighestAvailableToken + +Use a user's linked administrative token if it's available while running the process under their context. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InheritEnvironmentVariables + +Specifies whether the process running as a user should inherit the SYSTEM account's environment variables. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DenyUserTermination + +Specifies that users cannot terminate the process started in their context. +The user will still be able to terminate the process if they're an administrator, though. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ExpandEnvironmentVariables + +Specifies whether to expand any Windows/DOS-style environment variables in the specified FilePath/ArgumentList. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -LoggingOptions + +Overrides the default logging options specified in the config.psd1 file. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: False +Position: 4 +Default value: [System.Management.Automation.Language.NullString]::Value +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -LogFileName + +Overrides the default log file name. +The default log file name is generated from the MSI file name. +If LogFileName does not end in .log, it will be automatically appended. + +For uninstallations, by default the product code is resolved to the DisplayName and version of the application. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: False +Position: 5 +Default value: [System.Management.Automation.Language.NullString]::Value +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SuccessExitCodes + +List of exit codes to be considered successful. +Defaults to values set during ADTSession initialization, otherwise: 0 + +```yaml +Type: Int32[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: 6 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -RebootExitCodes + +List of exit codes to indicate a reboot is required. +Defaults to values set during ADTSession initialization, otherwise: 1641, 3010 + +```yaml +Type: Int32[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: 7 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -IgnoreExitCodes + +List the exit codes to ignore or * to ignore all exit codes. + +```yaml +Type: String[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: 8 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PriorityClass + +Specifies priority class for the process. +Options: Idle, Normal, High, AboveNormal, BelowNormal, RealTime. + +```yaml +Type: ProcessPriorityClass +Parameter Sets: (All) +Aliases: +Accepted values: Normal, Idle, High, RealTime, BelowNormal, AboveNormal + +Required: False +Position: 9 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ExitOnProcessFailure + +Automatically closes the active deployment session via Close-ADTSession in the event the process exits with a non-success or non-ignored exit code. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -NoDesktopRefresh + +If specifies, doesn't refresh the desktop and environment after successful MSI installation. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -NoWait + +Immediately continue after executing the process. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PassThru + +Returns ExitCode, StdOut, and StdErr output from the process. +Note that a failed execution will only return an object if either `-ErrorAction` is set to `SilentlyContinue`/`Ignore`, or if `-IgnoreExitCodes`/`-SuccessExitCodes` are used. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf + +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm + +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### None + +### You cannot pipe objects to this function. +## OUTPUTS + +### None + +### This function does not generate any output. +## NOTES +An active ADT session is NOT required to use this function. + +This function supports the -WhatIf and -Confirm parameters for testing changes before applying them. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/Start-ADTMspProcessAsUser](https://psappdeploytoolkit.com/docs/reference/functions/Start-ADTMspProcessAsUser) diff --git a/versioned_docs/version-4.1.x/reference/functions/Start-ADTProcess.mdx b/versioned_docs/version-4.1.x/reference/functions/Start-ADTProcess.mdx new file mode 100644 index 0000000..6abc0bf --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Start-ADTProcess.mdx @@ -0,0 +1,1001 @@ +--- +id: Start-ADTProcess +title: Start-ADTProcess +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Execute a process with optional arguments, working directory, window style. + +## SYNTAX + +### Default_CreateWindow_Wait (Default) + +```powershell +Start-ADTProcess -FilePath [-ArgumentList ] [-SecureArgumentList] + [-WorkingDirectory ] [-UseUnelevatedToken] [-ExpandEnvironmentVariables] [-WaitForMsiExec] + [-MsiExecWaitTime ] [-WaitForChildProcesses] [-KillChildProcessesWithParent] + [-SuccessExitCodes ] [-RebootExitCodes ] [-IgnoreExitCodes ] + [-PriorityClass ] [-ExitOnProcessFailure] [-PassThru] [-WhatIf] [-Confirm] + [] +``` + +### RunAsActiveUser_CreateNoWindow_Timeout + +```powershell +Start-ADTProcess -FilePath [-ArgumentList ] [-SecureArgumentList] + [-WorkingDirectory ] -RunAsActiveUser [-UseLinkedAdminToken] + [-UseHighestAvailableToken] [-InheritEnvironmentVariables] [-DenyUserTermination] + [-ExpandEnvironmentVariables] [-CreateNoWindow] [-StreamEncoding ] [-NoStreamLogging] + [-WaitForMsiExec] [-MsiExecWaitTime ] [-WaitForChildProcesses] [-KillChildProcessesWithParent] + -Timeout [-TimeoutAction ] [-NoTerminateOnTimeout] [-SuccessExitCodes ] + [-RebootExitCodes ] [-IgnoreExitCodes ] [-PriorityClass ] + [-ExitOnProcessFailure] [-PassThru] [-WhatIf] [-Confirm] [] +``` + +### RunAsActiveUser_CreateNoWindow_NoWait + +```powershell +Start-ADTProcess -FilePath [-ArgumentList ] [-SecureArgumentList] + [-WorkingDirectory ] -RunAsActiveUser [-UseLinkedAdminToken] + [-UseHighestAvailableToken] [-InheritEnvironmentVariables] [-DenyUserTermination] + [-ExpandEnvironmentVariables] [-CreateNoWindow] [-StreamEncoding ] [-NoStreamLogging] + [-WaitForMsiExec] [-MsiExecWaitTime ] [-WaitForChildProcesses] [-KillChildProcessesWithParent] + [-PriorityClass ] [-NoWait] [-PassThru] [-WhatIf] [-Confirm] [] +``` + +### RunAsActiveUser_CreateNoWindow_Wait + +```powershell +Start-ADTProcess -FilePath [-ArgumentList ] [-SecureArgumentList] + [-WorkingDirectory ] -RunAsActiveUser [-UseLinkedAdminToken] + [-UseHighestAvailableToken] [-InheritEnvironmentVariables] [-DenyUserTermination] + [-ExpandEnvironmentVariables] [-CreateNoWindow] [-StreamEncoding ] [-NoStreamLogging] + [-WaitForMsiExec] [-MsiExecWaitTime ] [-WaitForChildProcesses] [-KillChildProcessesWithParent] + [-SuccessExitCodes ] [-RebootExitCodes ] [-IgnoreExitCodes ] + [-PriorityClass ] [-ExitOnProcessFailure] [-PassThru] [-WhatIf] [-Confirm] + [] +``` + +### RunAsActiveUser_WindowStyle_Timeout + +```powershell +Start-ADTProcess -FilePath [-ArgumentList ] [-SecureArgumentList] + [-WorkingDirectory ] -RunAsActiveUser [-UseLinkedAdminToken] + [-UseHighestAvailableToken] [-InheritEnvironmentVariables] [-DenyUserTermination] + [-ExpandEnvironmentVariables] -WindowStyle [-WaitForMsiExec] + [-MsiExecWaitTime ] [-WaitForChildProcesses] [-KillChildProcessesWithParent] -Timeout + [-TimeoutAction ] [-NoTerminateOnTimeout] [-SuccessExitCodes ] + [-RebootExitCodes ] [-IgnoreExitCodes ] [-PriorityClass ] + [-ExitOnProcessFailure] [-PassThru] [-WhatIf] [-Confirm] [] +``` + +### RunAsActiveUser_WindowStyle_NoWait + +```powershell +Start-ADTProcess -FilePath [-ArgumentList ] [-SecureArgumentList] + [-WorkingDirectory ] -RunAsActiveUser [-UseLinkedAdminToken] + [-UseHighestAvailableToken] [-InheritEnvironmentVariables] [-DenyUserTermination] + [-ExpandEnvironmentVariables] -WindowStyle [-WaitForMsiExec] + [-MsiExecWaitTime ] [-WaitForChildProcesses] [-KillChildProcessesWithParent] + [-PriorityClass ] [-NoWait] [-PassThru] [-WhatIf] [-Confirm] [] +``` + +### RunAsActiveUser_WindowStyle_Wait + +```powershell +Start-ADTProcess -FilePath [-ArgumentList ] [-SecureArgumentList] + [-WorkingDirectory ] -RunAsActiveUser [-UseLinkedAdminToken] + [-UseHighestAvailableToken] [-InheritEnvironmentVariables] [-DenyUserTermination] + [-ExpandEnvironmentVariables] -WindowStyle [-WaitForMsiExec] + [-MsiExecWaitTime ] [-WaitForChildProcesses] [-KillChildProcessesWithParent] + [-SuccessExitCodes ] [-RebootExitCodes ] [-IgnoreExitCodes ] + [-PriorityClass ] [-ExitOnProcessFailure] [-PassThru] [-WhatIf] [-Confirm] + [] +``` + +### RunAsActiveUser_CreateWindow_Timeout + +```powershell +Start-ADTProcess -FilePath [-ArgumentList ] [-SecureArgumentList] + [-WorkingDirectory ] -RunAsActiveUser [-UseLinkedAdminToken] + [-UseHighestAvailableToken] [-InheritEnvironmentVariables] [-DenyUserTermination] + [-ExpandEnvironmentVariables] [-WaitForMsiExec] [-MsiExecWaitTime ] [-WaitForChildProcesses] + [-KillChildProcessesWithParent] -Timeout [-TimeoutAction ] + [-NoTerminateOnTimeout] [-SuccessExitCodes ] [-RebootExitCodes ] + [-IgnoreExitCodes ] [-PriorityClass ] [-ExitOnProcessFailure] [-PassThru] + [-WhatIf] [-Confirm] [] +``` + +### RunAsActiveUser_CreateWindow_NoWait + +```powershell +Start-ADTProcess -FilePath [-ArgumentList ] [-SecureArgumentList] + [-WorkingDirectory ] -RunAsActiveUser [-UseLinkedAdminToken] + [-UseHighestAvailableToken] [-InheritEnvironmentVariables] [-DenyUserTermination] + [-ExpandEnvironmentVariables] [-WaitForMsiExec] [-MsiExecWaitTime ] [-WaitForChildProcesses] + [-KillChildProcessesWithParent] [-PriorityClass ] [-NoWait] [-PassThru] [-WhatIf] + [-Confirm] [] +``` + +### RunAsActiveUser_CreateWindow_Wait + +```powershell +Start-ADTProcess -FilePath [-ArgumentList ] [-SecureArgumentList] + [-WorkingDirectory ] -RunAsActiveUser [-UseLinkedAdminToken] + [-UseHighestAvailableToken] [-InheritEnvironmentVariables] [-DenyUserTermination] + [-ExpandEnvironmentVariables] [-WaitForMsiExec] [-MsiExecWaitTime ] [-WaitForChildProcesses] + [-KillChildProcessesWithParent] [-SuccessExitCodes ] [-RebootExitCodes ] + [-IgnoreExitCodes ] [-PriorityClass ] [-ExitOnProcessFailure] [-PassThru] + [-WhatIf] [-Confirm] [] +``` + +### Default_CreateNoWindow_Timeout + +```powershell +Start-ADTProcess -FilePath [-ArgumentList ] [-SecureArgumentList] + [-WorkingDirectory ] [-UseUnelevatedToken] [-ExpandEnvironmentVariables] [-CreateNoWindow] + [-StreamEncoding ] [-NoStreamLogging] [-WaitForMsiExec] [-MsiExecWaitTime ] + [-WaitForChildProcesses] [-KillChildProcessesWithParent] -Timeout + [-TimeoutAction ] [-NoTerminateOnTimeout] [-SuccessExitCodes ] + [-RebootExitCodes ] [-IgnoreExitCodes ] [-PriorityClass ] + [-ExitOnProcessFailure] [-PassThru] [-WhatIf] [-Confirm] [] +``` + +### Default_CreateNoWindow_NoWait + +```powershell +Start-ADTProcess -FilePath [-ArgumentList ] [-SecureArgumentList] + [-WorkingDirectory ] [-UseUnelevatedToken] [-ExpandEnvironmentVariables] [-CreateNoWindow] + [-StreamEncoding ] [-NoStreamLogging] [-WaitForMsiExec] [-MsiExecWaitTime ] + [-WaitForChildProcesses] [-KillChildProcessesWithParent] [-PriorityClass ] [-NoWait] + [-PassThru] [-WhatIf] [-Confirm] [] +``` + +### Default_CreateNoWindow_Wait + +```powershell +Start-ADTProcess -FilePath [-ArgumentList ] [-SecureArgumentList] + [-WorkingDirectory ] [-UseUnelevatedToken] [-ExpandEnvironmentVariables] [-CreateNoWindow] + [-StreamEncoding ] [-NoStreamLogging] [-WaitForMsiExec] [-MsiExecWaitTime ] + [-WaitForChildProcesses] [-KillChildProcessesWithParent] [-SuccessExitCodes ] + [-RebootExitCodes ] [-IgnoreExitCodes ] [-PriorityClass ] + [-ExitOnProcessFailure] [-PassThru] [-WhatIf] [-Confirm] [] +``` + +### Default_WindowStyle_Timeout + +```powershell +Start-ADTProcess -FilePath [-ArgumentList ] [-SecureArgumentList] + [-WorkingDirectory ] [-UseUnelevatedToken] [-ExpandEnvironmentVariables] + -WindowStyle [-WaitForMsiExec] [-MsiExecWaitTime ] [-WaitForChildProcesses] + [-KillChildProcessesWithParent] -Timeout [-TimeoutAction ] + [-NoTerminateOnTimeout] [-SuccessExitCodes ] [-RebootExitCodes ] + [-IgnoreExitCodes ] [-PriorityClass ] [-ExitOnProcessFailure] [-PassThru] + [-WhatIf] [-Confirm] [] +``` + +### Default_WindowStyle_NoWait + +```powershell +Start-ADTProcess -FilePath [-ArgumentList ] [-SecureArgumentList] + [-WorkingDirectory ] [-UseUnelevatedToken] [-ExpandEnvironmentVariables] + -WindowStyle [-WaitForMsiExec] [-MsiExecWaitTime ] [-WaitForChildProcesses] + [-KillChildProcessesWithParent] [-PriorityClass ] [-NoWait] [-PassThru] [-WhatIf] + [-Confirm] [] +``` + +### Default_WindowStyle_Wait + +```powershell +Start-ADTProcess -FilePath [-ArgumentList ] [-SecureArgumentList] + [-WorkingDirectory ] [-UseUnelevatedToken] [-ExpandEnvironmentVariables] + -WindowStyle [-WaitForMsiExec] [-MsiExecWaitTime ] [-WaitForChildProcesses] + [-KillChildProcessesWithParent] [-SuccessExitCodes ] [-RebootExitCodes ] + [-IgnoreExitCodes ] [-PriorityClass ] [-ExitOnProcessFailure] [-PassThru] + [-WhatIf] [-Confirm] [] +``` + +### Default_CreateWindow_Timeout + +```powershell +Start-ADTProcess -FilePath [-ArgumentList ] [-SecureArgumentList] + [-WorkingDirectory ] [-UseUnelevatedToken] [-ExpandEnvironmentVariables] [-WaitForMsiExec] + [-MsiExecWaitTime ] [-WaitForChildProcesses] [-KillChildProcessesWithParent] -Timeout + [-TimeoutAction ] [-NoTerminateOnTimeout] [-SuccessExitCodes ] + [-RebootExitCodes ] [-IgnoreExitCodes ] [-PriorityClass ] + [-ExitOnProcessFailure] [-PassThru] [-WhatIf] [-Confirm] [] +``` + +### Default_CreateWindow_NoWait + +```powershell +Start-ADTProcess -FilePath [-ArgumentList ] [-SecureArgumentList] + [-WorkingDirectory ] [-UseUnelevatedToken] [-ExpandEnvironmentVariables] [-WaitForMsiExec] + [-MsiExecWaitTime ] [-WaitForChildProcesses] [-KillChildProcessesWithParent] + [-PriorityClass ] [-NoWait] [-PassThru] [-WhatIf] [-Confirm] [] +``` + +### UseShellExecute_CreateNoWindow_Timeout + +```powershell +Start-ADTProcess -FilePath [-ArgumentList ] [-SecureArgumentList] + [-WorkingDirectory ] [-UseShellExecute] [-Verb ] [-ExpandEnvironmentVariables] + [-CreateNoWindow] [-StreamEncoding ] [-NoStreamLogging] [-WaitForMsiExec] + [-MsiExecWaitTime ] [-WaitForChildProcesses] [-KillChildProcessesWithParent] -Timeout + [-TimeoutAction ] [-NoTerminateOnTimeout] [-SuccessExitCodes ] + [-RebootExitCodes ] [-IgnoreExitCodes ] [-PriorityClass ] + [-ExitOnProcessFailure] [-PassThru] [-WhatIf] [-Confirm] [] +``` + +### UseShellExecute_CreateNoWindow_NoWait + +```powershell +Start-ADTProcess -FilePath [-ArgumentList ] [-SecureArgumentList] + [-WorkingDirectory ] [-UseShellExecute] [-Verb ] [-ExpandEnvironmentVariables] + [-CreateNoWindow] [-StreamEncoding ] [-NoStreamLogging] [-WaitForMsiExec] + [-MsiExecWaitTime ] [-WaitForChildProcesses] [-KillChildProcessesWithParent] + [-PriorityClass ] [-NoWait] [-PassThru] [-WhatIf] [-Confirm] [] +``` + +### UseShellExecute_CreateNoWindow_Wait + +```powershell +Start-ADTProcess -FilePath [-ArgumentList ] [-SecureArgumentList] + [-WorkingDirectory ] [-UseShellExecute] [-Verb ] [-ExpandEnvironmentVariables] + [-CreateNoWindow] [-StreamEncoding ] [-NoStreamLogging] [-WaitForMsiExec] + [-MsiExecWaitTime ] [-WaitForChildProcesses] [-KillChildProcessesWithParent] + [-SuccessExitCodes ] [-RebootExitCodes ] [-IgnoreExitCodes ] + [-PriorityClass ] [-ExitOnProcessFailure] [-PassThru] [-WhatIf] [-Confirm] + [] +``` + +### UseShellExecute_WindowStyle_Timeout + +```powershell +Start-ADTProcess -FilePath [-ArgumentList ] [-SecureArgumentList] + [-WorkingDirectory ] [-UseShellExecute] [-Verb ] [-ExpandEnvironmentVariables] + -WindowStyle [-WaitForMsiExec] [-MsiExecWaitTime ] [-WaitForChildProcesses] + [-KillChildProcessesWithParent] -Timeout [-TimeoutAction ] + [-NoTerminateOnTimeout] [-SuccessExitCodes ] [-RebootExitCodes ] + [-IgnoreExitCodes ] [-PriorityClass ] [-ExitOnProcessFailure] [-PassThru] + [-WhatIf] [-Confirm] [] +``` + +### UseShellExecute_WindowStyle_NoWait + +```powershell +Start-ADTProcess -FilePath [-ArgumentList ] [-SecureArgumentList] + [-WorkingDirectory ] [-UseShellExecute] [-Verb ] [-ExpandEnvironmentVariables] + -WindowStyle [-WaitForMsiExec] [-MsiExecWaitTime ] [-WaitForChildProcesses] + [-KillChildProcessesWithParent] [-PriorityClass ] [-NoWait] [-PassThru] [-WhatIf] + [-Confirm] [] +``` + +### UseShellExecute_WindowStyle_Wait + +```powershell +Start-ADTProcess -FilePath [-ArgumentList ] [-SecureArgumentList] + [-WorkingDirectory ] [-UseShellExecute] [-Verb ] [-ExpandEnvironmentVariables] + -WindowStyle [-WaitForMsiExec] [-MsiExecWaitTime ] [-WaitForChildProcesses] + [-KillChildProcessesWithParent] [-SuccessExitCodes ] [-RebootExitCodes ] + [-IgnoreExitCodes ] [-PriorityClass ] [-ExitOnProcessFailure] [-PassThru] + [-WhatIf] [-Confirm] [] +``` + +### UseShellExecute_CreateWindow_Timeout + +```powershell +Start-ADTProcess -FilePath [-ArgumentList ] [-SecureArgumentList] + [-WorkingDirectory ] [-UseShellExecute] [-Verb ] [-ExpandEnvironmentVariables] + [-WaitForMsiExec] [-MsiExecWaitTime ] [-WaitForChildProcesses] [-KillChildProcessesWithParent] + -Timeout [-TimeoutAction ] [-NoTerminateOnTimeout] [-SuccessExitCodes ] + [-RebootExitCodes ] [-IgnoreExitCodes ] [-PriorityClass ] + [-ExitOnProcessFailure] [-PassThru] [-WhatIf] [-Confirm] [] +``` + +### UseShellExecute_CreateWindow_NoWait + +```powershell +Start-ADTProcess -FilePath [-ArgumentList ] [-SecureArgumentList] + [-WorkingDirectory ] [-UseShellExecute] [-Verb ] [-ExpandEnvironmentVariables] + [-WaitForMsiExec] [-MsiExecWaitTime ] [-WaitForChildProcesses] [-KillChildProcessesWithParent] + [-PriorityClass ] [-NoWait] [-PassThru] [-WhatIf] [-Confirm] [] +``` + +### UseShellExecute_CreateWindow_Wait + +```powershell +Start-ADTProcess -FilePath [-ArgumentList ] [-SecureArgumentList] + [-WorkingDirectory ] [-UseShellExecute] [-Verb ] [-ExpandEnvironmentVariables] + [-WaitForMsiExec] [-MsiExecWaitTime ] [-WaitForChildProcesses] [-KillChildProcessesWithParent] + [-SuccessExitCodes ] [-RebootExitCodes ] [-IgnoreExitCodes ] + [-PriorityClass ] [-ExitOnProcessFailure] [-PassThru] [-WhatIf] [-Confirm] + [] +``` + +## DESCRIPTION + +Executes a process, e.g. +a file included in the Files directory of the App Deploy Toolkit, or a file on the local machine. +Provides various options for handling the return codes (see Parameters). + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +Start-ADTProcess -FilePath 'setup.exe' -ArgumentList '/S' -SuccessExitCodes 1,2 +``` + +Launch InstallShield "setup.exe" from the ".\Files" sub-directory. + +### EXAMPLE 2 + +```powershell +Start-ADTProcess -FilePath "$($adtSession.DirFiles)\Bin\setup.exe" -ArgumentList '/S' -WindowStyle 'Hidden' +``` + +Launch InstallShield "setup.exe" from the ".\Files\Bin" sub-directory. + +### EXAMPLE 3 + +```powershell +Start-ADTProcess -FilePath 'uninstall_flash_player_64bit.exe' -ArgumentList '/uninstall' -WindowStyle 'Hidden' +``` + +If the file is in the "Files" directory of the AppDeployToolkit, only the file name needs to be specified. + +### EXAMPLE 4 + +```powershell +Start-ADTProcess -FilePath 'setup.exe' -ArgumentList "-s -f2`"$((Get-ADTConfig).Toolkit.LogPath)\$($adtSession.InstallName).log`"" +``` + +Launch InstallShield "setup.exe" from the ".\Files" sub-directory and force log files to the logging folder. + +### EXAMPLE 5 + +```powershell +Start-ADTProcess -FilePath 'setup.exe' -ArgumentList "/s /v`"ALLUSERS=1 /qn /L* `"$((Get-ADTConfig).Toolkit.LogPath)\$($adtSession.InstallName).log`"`"" +``` + +Launch InstallShield "setup.exe" with embedded MSI and force log files to the logging folder. + +### EXAMPLE 6 + +```powershell +Start-ADTProcessAs -FilePath 'setup.exe' -ArgumentList "/s /v`"ALLUSERS=1 /qn /L* `"$((Get-ADTConfig).Toolkit.LogPath)\$($adtSession.InstallName).log`"`"" -Timeout 00:10:00 +``` + +Launch InstallShield "setup.exe" with embedded MSI and force log files to the logging folder, terminating the process if it takes longer than 10 minutes to complete. + +### EXAMPLE 7 + +```powershell +Start-ADTProcessAs -FilePath 'setup.exe' -ArgumentList "/s /v`"ALLUSERS=1 /qn /L* `"$((Get-ADTConfig).Toolkit.LogPath)\$($adtSession.InstallName).log`"`"" -Timeout (New-TimeSpan -Minutes 10) +``` + +Launch InstallShield "setup.exe" with embedded MSI and force log files to the logging folder, terminating the process if it takes longer than 10 minutes to complete. + +### EXAMPLE 8 + +```powershell +$result = Start-ADTProcess -FilePath "setup.exe" -ArgumentList "-i -f `"$($adtSession.DirFiles)\licenseFile.lic`"" -CreateNoWindow -ErrorAction SilentlyContinue -PassThru +``` + +Launch "setup.exe" with -PassThru so we can capture the exit code and stdout/stderr from the executable if it's a console application. + +### EXAMPLE 9 + +```powershell +$result = Start-ADTProcess -FilePath cmd.exe -ArgumentList '/c', 'echo Testing stdout capture. & exit 0' -CreateNoWindow -PassThru +``` + +Launch cmd.exe to echo out a message to stdout, specifically taking advantage of our `-ArgumentList` array support to avoid escaped quote issues. + +## PARAMETERS + +### -FilePath + +Path to the file to be executed. +If the file is located directly in the "Files" directory of the App Deploy Toolkit, only the file name needs to be specified. + +Otherwise, the full path of the file must be specified. +If the files is in a subdirectory of "Files", use the "$($adtSession.DirFiles)" variable as shown in the example. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ArgumentList + +Arguments to be passed to the executable. + +```yaml +Type: String[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SecureArgumentList + +Hides all parameters passed to the executable from the Toolkit log file. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WorkingDirectory + +The working directory used for executing the process. +Defaults to DirFiles if there is an active DeploymentSession. +The use of UseShellExecute affects this parameter. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: [System.Management.Automation.Language.NullString]::Value +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -RunAsActiveUser + +A RunAsActiveUser object to invoke the process as. + +```yaml +Type: RunAsActiveUser +Parameter Sets: RunAsActiveUser_CreateNoWindow_Timeout, RunAsActiveUser_CreateNoWindow_NoWait, RunAsActiveUser_CreateNoWindow_Wait, RunAsActiveUser_WindowStyle_Timeout, RunAsActiveUser_WindowStyle_NoWait, RunAsActiveUser_WindowStyle_Wait, RunAsActiveUser_CreateWindow_Timeout, RunAsActiveUser_CreateWindow_NoWait, RunAsActiveUser_CreateWindow_Wait +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -UseLinkedAdminToken + +Use a user's linked administrative token while running the process under their context. + +```yaml +Type: SwitchParameter +Parameter Sets: RunAsActiveUser_CreateNoWindow_Timeout, RunAsActiveUser_CreateNoWindow_NoWait, RunAsActiveUser_CreateNoWindow_Wait, RunAsActiveUser_WindowStyle_Timeout, RunAsActiveUser_WindowStyle_NoWait, RunAsActiveUser_WindowStyle_Wait, RunAsActiveUser_CreateWindow_Timeout, RunAsActiveUser_CreateWindow_NoWait, RunAsActiveUser_CreateWindow_Wait +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -UseHighestAvailableToken + +Use a user's linked administrative token if it's available while running the process under their context. + +```yaml +Type: SwitchParameter +Parameter Sets: RunAsActiveUser_CreateNoWindow_Timeout, RunAsActiveUser_CreateNoWindow_NoWait, RunAsActiveUser_CreateNoWindow_Wait, RunAsActiveUser_WindowStyle_Timeout, RunAsActiveUser_WindowStyle_NoWait, RunAsActiveUser_WindowStyle_Wait, RunAsActiveUser_CreateWindow_Timeout, RunAsActiveUser_CreateWindow_NoWait, RunAsActiveUser_CreateWindow_Wait +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InheritEnvironmentVariables + +Specifies whether the process running as a user should inherit the SYSTEM account's environment variables. + +```yaml +Type: SwitchParameter +Parameter Sets: RunAsActiveUser_CreateNoWindow_Timeout, RunAsActiveUser_CreateNoWindow_NoWait, RunAsActiveUser_CreateNoWindow_Wait, RunAsActiveUser_WindowStyle_Timeout, RunAsActiveUser_WindowStyle_NoWait, RunAsActiveUser_WindowStyle_Wait, RunAsActiveUser_CreateWindow_Timeout, RunAsActiveUser_CreateWindow_NoWait, RunAsActiveUser_CreateWindow_Wait +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DenyUserTermination + +Specifies that users cannot terminate the process started in their context. +The user will still be able to terminate the process if they're an administrator, though. + +```yaml +Type: SwitchParameter +Parameter Sets: RunAsActiveUser_CreateNoWindow_Timeout, RunAsActiveUser_CreateNoWindow_NoWait, RunAsActiveUser_CreateNoWindow_Wait, RunAsActiveUser_WindowStyle_Timeout, RunAsActiveUser_WindowStyle_NoWait, RunAsActiveUser_WindowStyle_Wait, RunAsActiveUser_CreateWindow_Timeout, RunAsActiveUser_CreateWindow_NoWait, RunAsActiveUser_CreateWindow_Wait +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -UseUnelevatedToken + +If the current process is elevated, starts the new process unelevated using the user's unelevated linked token. + +```yaml +Type: SwitchParameter +Parameter Sets: Default_CreateWindow_Wait, Default_CreateNoWindow_Timeout, Default_CreateNoWindow_NoWait, Default_CreateNoWindow_Wait, Default_WindowStyle_Timeout, Default_WindowStyle_NoWait, Default_WindowStyle_Wait, Default_CreateWindow_Timeout, Default_CreateWindow_NoWait +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -UseShellExecute + +Specifies whether to use the operating system shell to start the process. +$true if the shell should be used when starting the process; $false if the process should be created directly from the executable file. + +The word "Shell" in this context refers to a graphical shell (similar to the Windows shell) rather than command shells (for example, bash or sh) and lets users launch graphical applications or open documents. +It lets you open a file or a url and the Shell will figure out the program to open it with. + +The WorkingDirectory property behaves differently depending on the value of the UseShellExecute property. +When UseShellExecute is true, the WorkingDirectory property specifies the location of the executable. +When UseShellExecute is false, the WorkingDirectory property is not used to find the executable. +Instead, it is used only by the process that is started and has meaning only within the context of the new process. + +If you set UseShellExecute to $true, there will be no available output from the process. + +```yaml +Type: SwitchParameter +Parameter Sets: UseShellExecute_CreateNoWindow_Timeout, UseShellExecute_CreateNoWindow_NoWait, UseShellExecute_CreateNoWindow_Wait, UseShellExecute_WindowStyle_Timeout, UseShellExecute_WindowStyle_NoWait, UseShellExecute_WindowStyle_Wait, UseShellExecute_CreateWindow_Timeout, UseShellExecute_CreateWindow_NoWait, UseShellExecute_CreateWindow_Wait +Aliases: + +Required: True +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Verb + +The verb to use when doing a ShellExecute invocation. +Common usages are "runas" to trigger a UAC elevation of the process. + +```yaml +Type: String +Parameter Sets: UseShellExecute_CreateNoWindow_Timeout, UseShellExecute_CreateNoWindow_NoWait, UseShellExecute_CreateNoWindow_Wait, UseShellExecute_WindowStyle_Timeout, UseShellExecute_WindowStyle_NoWait, UseShellExecute_WindowStyle_Wait, UseShellExecute_CreateWindow_Timeout, UseShellExecute_CreateWindow_NoWait, UseShellExecute_CreateWindow_Wait +Aliases: + +Required: False +Position: Named +Default value: [System.Management.Automation.Language.NullString]::Value +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ExpandEnvironmentVariables + +Specifies whether to expand any Windows/DOS-style environment variables in the specified FilePath/ArgumentList. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WindowStyle + +Style of the window of the process executed. +Options: Normal, Hidden, Maximized, Minimized. +Only works for native Windows GUI applications. +If the WindowStyle is set to Hidden, UseShellExecute should be set to $true. + +Note: Not all processes honor WindowStyle. +WindowStyle is a recommendation passed to the process. +They can choose to ignore it. + +```yaml +Type: ProcessWindowStyle +Parameter Sets: RunAsActiveUser_WindowStyle_Timeout, RunAsActiveUser_WindowStyle_NoWait, RunAsActiveUser_WindowStyle_Wait, Default_WindowStyle_Timeout, Default_WindowStyle_NoWait, Default_WindowStyle_Wait, UseShellExecute_WindowStyle_Timeout, UseShellExecute_WindowStyle_NoWait, UseShellExecute_WindowStyle_Wait +Aliases: +Accepted values: Normal, Hidden, Minimized, Maximized + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -CreateNoWindow + +Specifies whether the process should be started with a new window to contain it. + +```yaml +Type: SwitchParameter +Parameter Sets: RunAsActiveUser_CreateNoWindow_Timeout, RunAsActiveUser_CreateNoWindow_NoWait, RunAsActiveUser_CreateNoWindow_Wait, Default_CreateNoWindow_Timeout, Default_CreateNoWindow_NoWait, Default_CreateNoWindow_Wait, UseShellExecute_CreateNoWindow_Timeout, UseShellExecute_CreateNoWindow_NoWait, UseShellExecute_CreateNoWindow_Wait +Aliases: + +Required: True +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -StreamEncoding + +Specifies the encoding type to use when reading stdout/stderr. +Some apps like WinGet encode using UTF8, which will corrupt if incorrectly set. + +```yaml +Type: Encoding +Parameter Sets: RunAsActiveUser_CreateNoWindow_Timeout, RunAsActiveUser_CreateNoWindow_NoWait, RunAsActiveUser_CreateNoWindow_Wait, Default_CreateNoWindow_Timeout, Default_CreateNoWindow_NoWait, Default_CreateNoWindow_Wait, UseShellExecute_CreateNoWindow_Timeout, UseShellExecute_CreateNoWindow_NoWait, UseShellExecute_CreateNoWindow_Wait +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -NoStreamLogging + +Don't log any available stdout/stderr data to the log file. + +```yaml +Type: SwitchParameter +Parameter Sets: RunAsActiveUser_CreateNoWindow_Timeout, RunAsActiveUser_CreateNoWindow_NoWait, RunAsActiveUser_CreateNoWindow_Wait, Default_CreateNoWindow_Timeout, Default_CreateNoWindow_NoWait, Default_CreateNoWindow_Wait, UseShellExecute_CreateNoWindow_Timeout, UseShellExecute_CreateNoWindow_NoWait, UseShellExecute_CreateNoWindow_Wait +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WaitForMsiExec + +Sometimes an EXE bootstrapper will launch an MSI install. +In such cases, this variable will ensure that this function waits for the msiexec engine to become available before starting the install. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -MsiExecWaitTime + +Specify the length of time in seconds to wait for the msiexec engine to become available. + +```yaml +Type: TimeSpan +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WaitForChildProcesses + +Specifies whether the started process should be considered finished only when any child processes it spawns have finished also. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -KillChildProcessesWithParent + +Specifies whether any child processes started by the provided executable should be closed when the provided executable closes. +This is handy for application installs that open web browsers and other programs that cannot be suppressed. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Timeout + +How long to wait for the process before timing out. + +```yaml +Type: TimeSpan +Parameter Sets: RunAsActiveUser_CreateNoWindow_Timeout, RunAsActiveUser_WindowStyle_Timeout, RunAsActiveUser_CreateWindow_Timeout, Default_CreateNoWindow_Timeout, Default_WindowStyle_Timeout, Default_CreateWindow_Timeout, UseShellExecute_CreateNoWindow_Timeout, UseShellExecute_WindowStyle_Timeout, UseShellExecute_CreateWindow_Timeout +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -TimeoutAction + +What action to take on timeout. +Follows ErrorAction if not specified. + +```yaml +Type: ActionPreference +Parameter Sets: RunAsActiveUser_CreateNoWindow_Timeout, RunAsActiveUser_WindowStyle_Timeout, RunAsActiveUser_CreateWindow_Timeout, Default_CreateNoWindow_Timeout, Default_WindowStyle_Timeout, Default_CreateWindow_Timeout, UseShellExecute_CreateNoWindow_Timeout, UseShellExecute_WindowStyle_Timeout, UseShellExecute_CreateWindow_Timeout +Aliases: +Accepted values: SilentlyContinue, Stop, Continue, Inquire, Ignore, Suspend + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -NoTerminateOnTimeout + +Indicates that the process should not be terminated on timeout. +Only supported for GUI-based applications. + +```yaml +Type: SwitchParameter +Parameter Sets: RunAsActiveUser_CreateNoWindow_Timeout, RunAsActiveUser_WindowStyle_Timeout, RunAsActiveUser_CreateWindow_Timeout, Default_CreateNoWindow_Timeout, Default_WindowStyle_Timeout, Default_CreateWindow_Timeout, UseShellExecute_CreateNoWindow_Timeout, UseShellExecute_WindowStyle_Timeout, UseShellExecute_CreateWindow_Timeout +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SuccessExitCodes + +List of exit codes to be considered successful. +Defaults to values set during ADTSession initialization, otherwise: 0 + +```yaml +Type: Int32[] +Parameter Sets: Default_CreateWindow_Wait, RunAsActiveUser_CreateNoWindow_Timeout, RunAsActiveUser_CreateNoWindow_Wait, RunAsActiveUser_WindowStyle_Timeout, RunAsActiveUser_WindowStyle_Wait, RunAsActiveUser_CreateWindow_Timeout, RunAsActiveUser_CreateWindow_Wait, Default_CreateNoWindow_Timeout, Default_CreateNoWindow_Wait, Default_WindowStyle_Timeout, Default_WindowStyle_Wait, Default_CreateWindow_Timeout, UseShellExecute_CreateNoWindow_Timeout, UseShellExecute_CreateNoWindow_Wait, UseShellExecute_WindowStyle_Timeout, UseShellExecute_WindowStyle_Wait, UseShellExecute_CreateWindow_Timeout, UseShellExecute_CreateWindow_Wait +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -RebootExitCodes + +List of exit codes to indicate a reboot is required. +Defaults to values set during ADTSession initialization, otherwise: 1641, 3010 + +```yaml +Type: Int32[] +Parameter Sets: Default_CreateWindow_Wait, RunAsActiveUser_CreateNoWindow_Timeout, RunAsActiveUser_CreateNoWindow_Wait, RunAsActiveUser_WindowStyle_Timeout, RunAsActiveUser_WindowStyle_Wait, RunAsActiveUser_CreateWindow_Timeout, RunAsActiveUser_CreateWindow_Wait, Default_CreateNoWindow_Timeout, Default_CreateNoWindow_Wait, Default_WindowStyle_Timeout, Default_WindowStyle_Wait, Default_CreateWindow_Timeout, UseShellExecute_CreateNoWindow_Timeout, UseShellExecute_CreateNoWindow_Wait, UseShellExecute_WindowStyle_Timeout, UseShellExecute_WindowStyle_Wait, UseShellExecute_CreateWindow_Timeout, UseShellExecute_CreateWindow_Wait +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -IgnoreExitCodes + +List the exit codes to ignore or * to ignore all exit codes. +Where possible, please use `-SuccessExitCodes` and/or `-RebootExitCodes` instead. + +```yaml +Type: String[] +Parameter Sets: Default_CreateWindow_Wait, RunAsActiveUser_CreateNoWindow_Timeout, RunAsActiveUser_CreateNoWindow_Wait, RunAsActiveUser_WindowStyle_Timeout, RunAsActiveUser_WindowStyle_Wait, RunAsActiveUser_CreateWindow_Timeout, RunAsActiveUser_CreateWindow_Wait, Default_CreateNoWindow_Timeout, Default_CreateNoWindow_Wait, Default_WindowStyle_Timeout, Default_WindowStyle_Wait, Default_CreateWindow_Timeout, UseShellExecute_CreateNoWindow_Timeout, UseShellExecute_CreateNoWindow_Wait, UseShellExecute_WindowStyle_Timeout, UseShellExecute_WindowStyle_Wait, UseShellExecute_CreateWindow_Timeout, UseShellExecute_CreateWindow_Wait +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: True +``` + +### -PriorityClass + +Specifies priority class for the process. +Options: Idle, Normal, High, AboveNormal, BelowNormal, RealTime. + +```yaml +Type: ProcessPriorityClass +Parameter Sets: (All) +Aliases: +Accepted values: Normal, Idle, High, RealTime, BelowNormal, AboveNormal + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ExitOnProcessFailure + +Automatically closes the active deployment session via Close-ADTSession in the event the process exits with a non-success or non-ignored exit code. + +```yaml +Type: SwitchParameter +Parameter Sets: Default_CreateWindow_Wait, RunAsActiveUser_CreateNoWindow_Timeout, RunAsActiveUser_CreateNoWindow_Wait, RunAsActiveUser_WindowStyle_Timeout, RunAsActiveUser_WindowStyle_Wait, RunAsActiveUser_CreateWindow_Timeout, RunAsActiveUser_CreateWindow_Wait, Default_CreateNoWindow_Timeout, Default_CreateNoWindow_Wait, Default_WindowStyle_Timeout, Default_WindowStyle_Wait, Default_CreateWindow_Timeout, UseShellExecute_CreateNoWindow_Timeout, UseShellExecute_CreateNoWindow_Wait, UseShellExecute_WindowStyle_Timeout, UseShellExecute_WindowStyle_Wait, UseShellExecute_CreateWindow_Timeout, UseShellExecute_CreateWindow_Wait +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -NoWait + +Immediately continue after executing the process. + +```yaml +Type: SwitchParameter +Parameter Sets: RunAsActiveUser_CreateNoWindow_NoWait, RunAsActiveUser_WindowStyle_NoWait, RunAsActiveUser_CreateWindow_NoWait, Default_CreateNoWindow_NoWait, Default_WindowStyle_NoWait, Default_CreateWindow_NoWait, UseShellExecute_CreateNoWindow_NoWait, UseShellExecute_WindowStyle_NoWait, UseShellExecute_CreateWindow_NoWait +Aliases: + +Required: True +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PassThru + +If `-NoWait` is not specified, returns an object with ExitCode, StdOut, and StdErr output from the process. +If `-NoWait` is specified, returns a task that can be awaited. +Note that a failed execution will only return an object if either `-ErrorAction` is set to `SilentlyContinue`/`Ignore`, or if `-IgnoreExitCodes`/`-SuccessExitCodes` are used. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf + +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm + +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### None + +### You cannot pipe objects to this function. +## OUTPUTS + +### PSADT.Types.ProcessResult + +### Returns an object with the results of the installation if -PassThru is specified. +### - ProcessId +### - ExitCode +### - StdOut +### - StdErr +### - Interleaved +## NOTES +An active ADT session is NOT required to use this function. + +This function supports the -WhatIf and -Confirm parameters for testing changes before applying them. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/Start-ADTProcess](https://psappdeploytoolkit.com/docs/reference/functions/Start-ADTProcess) diff --git a/versioned_docs/version-4.1.x/reference/functions/Start-ADTProcessAsUser.mdx b/versioned_docs/version-4.1.x/reference/functions/Start-ADTProcessAsUser.mdx new file mode 100644 index 0000000..a79e1db --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Start-ADTProcessAsUser.mdx @@ -0,0 +1,724 @@ +--- +id: Start-ADTProcessAsUser +title: Start-ADTProcessAsUser +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Invokes a process in another user's session. + +## SYNTAX + +### Default_CreateWindow_Wait (Default) + +```powershell +Start-ADTProcessAsUser [-Username ] -FilePath [-ArgumentList ] + [-SecureArgumentList] [-WorkingDirectory ] [-UseLinkedAdminToken] [-UseHighestAvailableToken] + [-InheritEnvironmentVariables] [-ExpandEnvironmentVariables] [-DenyUserTermination] [-WaitForMsiExec] + [-MsiExecWaitTime ] [-WaitForChildProcesses] [-KillChildProcessesWithParent] + [-SuccessExitCodes ] [-RebootExitCodes ] [-IgnoreExitCodes ] + [-PriorityClass ] [-ExitOnProcessFailure] [-PassThru] [-WhatIf] [-Confirm] + [] +``` + +### Default_WindowStyle_Timeout + +```powershell +Start-ADTProcessAsUser [-Username ] -FilePath [-ArgumentList ] + [-SecureArgumentList] [-WorkingDirectory ] [-UseLinkedAdminToken] [-UseHighestAvailableToken] + [-InheritEnvironmentVariables] [-ExpandEnvironmentVariables] [-DenyUserTermination] + -WindowStyle [-WaitForMsiExec] [-MsiExecWaitTime ] [-WaitForChildProcesses] + [-KillChildProcessesWithParent] -Timeout [-TimeoutAction ] + [-NoTerminateOnTimeout] [-SuccessExitCodes ] [-RebootExitCodes ] + [-IgnoreExitCodes ] [-PriorityClass ] [-ExitOnProcessFailure] [-PassThru] + [-WhatIf] [-Confirm] [] +``` + +### Default_WindowStyle_NoWait + +```powershell +Start-ADTProcessAsUser [-Username ] -FilePath [-ArgumentList ] + [-SecureArgumentList] [-WorkingDirectory ] [-UseLinkedAdminToken] [-UseHighestAvailableToken] + [-InheritEnvironmentVariables] [-ExpandEnvironmentVariables] [-DenyUserTermination] + -WindowStyle [-WaitForMsiExec] [-MsiExecWaitTime ] [-WaitForChildProcesses] + [-KillChildProcessesWithParent] [-PriorityClass ] [-NoWait] [-PassThru] [-WhatIf] + [-Confirm] [] +``` + +### Default_WindowStyle_Wait + +```powershell +Start-ADTProcessAsUser [-Username ] -FilePath [-ArgumentList ] + [-SecureArgumentList] [-WorkingDirectory ] [-UseLinkedAdminToken] [-UseHighestAvailableToken] + [-InheritEnvironmentVariables] [-ExpandEnvironmentVariables] [-DenyUserTermination] + -WindowStyle [-WaitForMsiExec] [-MsiExecWaitTime ] [-WaitForChildProcesses] + [-KillChildProcessesWithParent] [-SuccessExitCodes ] [-RebootExitCodes ] + [-IgnoreExitCodes ] [-PriorityClass ] [-ExitOnProcessFailure] [-PassThru] + [-WhatIf] [-Confirm] [] +``` + +### Default_CreateNoWindow_Timeout + +```powershell +Start-ADTProcessAsUser [-Username ] -FilePath [-ArgumentList ] + [-SecureArgumentList] [-WorkingDirectory ] [-UseLinkedAdminToken] [-UseHighestAvailableToken] + [-InheritEnvironmentVariables] [-ExpandEnvironmentVariables] [-DenyUserTermination] [-CreateNoWindow] + [-StreamEncoding ] [-NoStreamLogging] [-WaitForMsiExec] [-MsiExecWaitTime ] + [-WaitForChildProcesses] [-KillChildProcessesWithParent] -Timeout + [-TimeoutAction ] [-NoTerminateOnTimeout] [-SuccessExitCodes ] + [-RebootExitCodes ] [-IgnoreExitCodes ] [-PriorityClass ] + [-ExitOnProcessFailure] [-PassThru] [-WhatIf] [-Confirm] [] +``` + +### Default_CreateNoWindow_NoWait + +```powershell +Start-ADTProcessAsUser [-Username ] -FilePath [-ArgumentList ] + [-SecureArgumentList] [-WorkingDirectory ] [-UseLinkedAdminToken] [-UseHighestAvailableToken] + [-InheritEnvironmentVariables] [-ExpandEnvironmentVariables] [-DenyUserTermination] [-CreateNoWindow] + [-StreamEncoding ] [-NoStreamLogging] [-WaitForMsiExec] [-MsiExecWaitTime ] + [-WaitForChildProcesses] [-KillChildProcessesWithParent] [-PriorityClass ] [-NoWait] + [-PassThru] [-WhatIf] [-Confirm] [] +``` + +### Default_CreateNoWindow_Wait + +```powershell +Start-ADTProcessAsUser [-Username ] -FilePath [-ArgumentList ] + [-SecureArgumentList] [-WorkingDirectory ] [-UseLinkedAdminToken] [-UseHighestAvailableToken] + [-InheritEnvironmentVariables] [-ExpandEnvironmentVariables] [-DenyUserTermination] [-CreateNoWindow] + [-StreamEncoding ] [-NoStreamLogging] [-WaitForMsiExec] [-MsiExecWaitTime ] + [-WaitForChildProcesses] [-KillChildProcessesWithParent] [-SuccessExitCodes ] + [-RebootExitCodes ] [-IgnoreExitCodes ] [-PriorityClass ] + [-ExitOnProcessFailure] [-PassThru] [-WhatIf] [-Confirm] [] +``` + +### Default_CreateWindow_Timeout + +```powershell +Start-ADTProcessAsUser [-Username ] -FilePath [-ArgumentList ] + [-SecureArgumentList] [-WorkingDirectory ] [-UseLinkedAdminToken] [-UseHighestAvailableToken] + [-InheritEnvironmentVariables] [-ExpandEnvironmentVariables] [-DenyUserTermination] [-WaitForMsiExec] + [-MsiExecWaitTime ] [-WaitForChildProcesses] [-KillChildProcessesWithParent] -Timeout + [-TimeoutAction ] [-NoTerminateOnTimeout] [-SuccessExitCodes ] + [-RebootExitCodes ] [-IgnoreExitCodes ] [-PriorityClass ] + [-ExitOnProcessFailure] [-PassThru] [-WhatIf] [-Confirm] [] +``` + +### Default_CreateWindow_NoWait + +```powershell +Start-ADTProcessAsUser [-Username ] -FilePath [-ArgumentList ] + [-SecureArgumentList] [-WorkingDirectory ] [-UseLinkedAdminToken] [-UseHighestAvailableToken] + [-InheritEnvironmentVariables] [-ExpandEnvironmentVariables] [-DenyUserTermination] [-WaitForMsiExec] + [-MsiExecWaitTime ] [-WaitForChildProcesses] [-KillChildProcessesWithParent] + [-PriorityClass ] [-NoWait] [-PassThru] [-WhatIf] [-Confirm] [] +``` + +## DESCRIPTION + +Invokes a process from SYSTEM in another user's session. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +Start-ADTProcessAsUser -FilePath 'setup.exe' -ArgumentList '/S' -IgnoreExitCodes 1,2 +``` + +Launch InstallShield "setup.exe" from the ".\Files" sub-directory. + +### EXAMPLE 2 + +```powershell +Start-ADTProcessAsUser -FilePath "$($adtSession.DirFiles)\Bin\setup.exe" -ArgumentList '/S' -WindowStyle 'Hidden' +``` + +Launch InstallShield "setup.exe" from the ".\Files\Bin" sub-directory. + +### EXAMPLE 3 + +```powershell +Start-ADTProcessAsUser -FilePath 'uninstall_flash_player_64bit.exe' -ArgumentList '/uninstall' -WindowStyle 'Hidden' +``` + +If the file is in the "Files" directory of the AppDeployToolkit, only the file name needs to be specified. + +### EXAMPLE 4 + +```powershell +Start-ADTProcessAsUser -FilePath 'setup.exe' -ArgumentList "-s -f2`"$((Get-ADTConfig).Toolkit.LogPath)\$($adtSession.InstallName).log`"" +``` + +Launch InstallShield "setup.exe" from the ".\Files" sub-directory and force log files to the logging folder. + +### EXAMPLE 5 + +```powershell +Start-ADTProcessAsUser -FilePath 'setup.exe' -ArgumentList "/s /v`"ALLUSERS=1 /qn /L* `"$((Get-ADTConfig).Toolkit.LogPath)\$($adtSession.InstallName).log`"`"" +``` + +Launch InstallShield "setup.exe" with embedded MSI and force log files to the logging folder. + +### EXAMPLE 6 + +```powershell +Start-ADTProcessAsUser -FilePath 'setup.exe' -ArgumentList "/s /v`"ALLUSERS=1 /qn /L* `"$((Get-ADTConfig).Toolkit.LogPath)\$($adtSession.InstallName).log`"`"" -Timeout 00:10:00 +``` + +Launch InstallShield "setup.exe" with embedded MSI and force log files to the logging folder, terminating the process if it takes longer than 10 minutes to complete. + +### EXAMPLE 7 + +```powershell +Start-ADTProcessAsUser -FilePath 'setup.exe' -ArgumentList "/s /v`"ALLUSERS=1 /qn /L* `"$((Get-ADTConfig).Toolkit.LogPath)\$($adtSession.InstallName).log`"`"" -Timeout (New-TimeSpan -Minutes 10) +``` + +Launch InstallShield "setup.exe" with embedded MSI and force log files to the logging folder, terminating the process if it takes longer than 10 minutes to complete. + +## PARAMETERS + +### -Username + +A username to invoke the process as. +Only supported while running as the SYSTEM account. + +```yaml +Type: NTAccount +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: $RunAsActiveUser.UserName +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -FilePath + +Path to the file to be executed. +If the file is located directly in the "Files" directory of the App Deploy Toolkit, only the file name needs to be specified. + +Otherwise, the full path of the file must be specified. +If the files is in a subdirectory of "Files", use the "$($adtSession.DirFiles)" variable as shown in the example. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: [System.Management.Automation.Language.NullString]::Value +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ArgumentList + +Arguments to be passed to the executable. + +```yaml +Type: String[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SecureArgumentList + +Hides all parameters passed to the executable from the Toolkit log file. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WorkingDirectory + +The working directory used for executing the process. +Defaults to the directory of the file being executed. +The use of UseShellExecute affects this parameter. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: [System.Management.Automation.Language.NullString]::Value +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -UseLinkedAdminToken + +Use a user's linked administrative token while running the process under their context. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -UseHighestAvailableToken + +Use a user's linked administrative token if it's available while running the process under their context. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InheritEnvironmentVariables + +Specifies whether the process running as a user should inherit the SYSTEM account's environment variables. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ExpandEnvironmentVariables + +Specifies whether to expand any Windows/DOS-style environment variables in the specified FilePath/ArgumentList. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DenyUserTermination + +Specifies that users cannot terminate the process started in their context. +The user will still be able to terminate the process if they're an administrator, though. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WindowStyle + +Style of the window of the process executed. +Options: Normal, Hidden, Maximized, Minimized. +Only works for native Windows GUI applications. +If the WindowStyle is set to Hidden, UseShellExecute should be set to $true. + +Note: Not all processes honor WindowStyle. +WindowStyle is a recommendation passed to the process. +They can choose to ignore it. + +```yaml +Type: ProcessWindowStyle +Parameter Sets: Default_WindowStyle_Timeout, Default_WindowStyle_NoWait, Default_WindowStyle_Wait +Aliases: +Accepted values: Normal, Hidden, Minimized, Maximized + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -CreateNoWindow + +Specifies whether the process should be started with a new window to contain it. + +```yaml +Type: SwitchParameter +Parameter Sets: Default_CreateNoWindow_Timeout, Default_CreateNoWindow_NoWait, Default_CreateNoWindow_Wait +Aliases: + +Required: True +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -StreamEncoding + +Specifies the encoding type to use when reading stdout/stderr. +Some apps like WinGet encode using UTF8, which will corrupt if incorrectly set. + +```yaml +Type: Encoding +Parameter Sets: Default_CreateNoWindow_Timeout, Default_CreateNoWindow_NoWait, Default_CreateNoWindow_Wait +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -NoStreamLogging + +Don't log any available stdout/stderr data to the log file. + +```yaml +Type: SwitchParameter +Parameter Sets: Default_CreateNoWindow_Timeout, Default_CreateNoWindow_NoWait, Default_CreateNoWindow_Wait +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WaitForMsiExec + +Sometimes an EXE bootstrapper will launch an MSI install. +In such cases, this variable will ensure that this function waits for the msiexec engine to become available before starting the install. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -MsiExecWaitTime + +Specify the length of time in seconds to wait for the msiexec engine to become available. + +```yaml +Type: TimeSpan +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WaitForChildProcesses + +Specifies whether the started process should be considered finished only when any child processes it spawns have finished also. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -KillChildProcessesWithParent + +Specifies whether any child processes started by the provided executable should be closed when the provided executable closes. +This is handy for application installs that open web browsers and other programs that cannot be suppressed. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Timeout + +How long to wait for the process before timing out. + +```yaml +Type: TimeSpan +Parameter Sets: Default_WindowStyle_Timeout, Default_CreateNoWindow_Timeout, Default_CreateWindow_Timeout +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -TimeoutAction + +What action to take on timeout. +Follows ErrorAction if not specified. + +```yaml +Type: ActionPreference +Parameter Sets: Default_WindowStyle_Timeout, Default_CreateNoWindow_Timeout, Default_CreateWindow_Timeout +Aliases: +Accepted values: SilentlyContinue, Stop, Continue, Inquire, Ignore, Suspend + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -NoTerminateOnTimeout + +Indicates that the process should not be terminated on timeout. +Only supported for GUI-based applications, or when -CreateNoWindow isn't specified. + +```yaml +Type: SwitchParameter +Parameter Sets: Default_WindowStyle_Timeout, Default_CreateNoWindow_Timeout, Default_CreateWindow_Timeout +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SuccessExitCodes + +List of exit codes to be considered successful. +Defaults to values set during ADTSession initialization, otherwise: 0 + +```yaml +Type: Int32[] +Parameter Sets: Default_CreateWindow_Wait, Default_WindowStyle_Timeout, Default_WindowStyle_Wait, Default_CreateNoWindow_Timeout, Default_CreateNoWindow_Wait, Default_CreateWindow_Timeout +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -RebootExitCodes + +List of exit codes to indicate a reboot is required. +Defaults to values set during ADTSession initialization, otherwise: 1641, 3010 + +```yaml +Type: Int32[] +Parameter Sets: Default_CreateWindow_Wait, Default_WindowStyle_Timeout, Default_WindowStyle_Wait, Default_CreateNoWindow_Timeout, Default_CreateNoWindow_Wait, Default_CreateWindow_Timeout +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -IgnoreExitCodes + +List the exit codes to ignore or * to ignore all exit codes. + +```yaml +Type: String[] +Parameter Sets: Default_CreateWindow_Wait, Default_WindowStyle_Timeout, Default_WindowStyle_Wait, Default_CreateNoWindow_Timeout, Default_CreateNoWindow_Wait, Default_CreateWindow_Timeout +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: True +``` + +### -PriorityClass + +Specifies priority class for the process. +Options: Idle, Normal, High, AboveNormal, BelowNormal, RealTime. + +```yaml +Type: ProcessPriorityClass +Parameter Sets: (All) +Aliases: +Accepted values: Normal, Idle, High, RealTime, BelowNormal, AboveNormal + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ExitOnProcessFailure + +Automatically closes the active deployment session via Close-ADTSession in the event the process exits with a non-success or non-ignored exit code. + +```yaml +Type: SwitchParameter +Parameter Sets: Default_CreateWindow_Wait, Default_WindowStyle_Timeout, Default_WindowStyle_Wait, Default_CreateNoWindow_Timeout, Default_CreateNoWindow_Wait, Default_CreateWindow_Timeout +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -NoWait + +Immediately continue after executing the process. + +```yaml +Type: SwitchParameter +Parameter Sets: Default_WindowStyle_NoWait, Default_CreateNoWindow_NoWait, Default_CreateWindow_NoWait +Aliases: + +Required: True +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PassThru + +If `-NoWait` is not specified, returns an object with ExitCode, StdOut, and StdErr output from the process. +If `-NoWait` is specified, returns a task that can be awaited. +Note that a failed execution will only return an object if either `-ErrorAction` is set to `SilentlyContinue`/`Ignore`, or if `-IgnoreExitCodes`/`-SuccessExitCodes` are used. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf + +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm + +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### None + +### You cannot pipe objects to this function. +## OUTPUTS + +### PSADT.Types.ProcessResult + +### Returns an object with the results of the installation if -PassThru is specified. +### - ProcessId +### - ExitCode +### - StdOut +### - StdErr +### - Interleaved +## NOTES +An active ADT session is NOT required to use this function. + +This function supports the -WhatIf and -Confirm parameters for testing changes before applying them. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/Start-ADTProcess](https://psappdeploytoolkit.com/docs/reference/functions/Start-ADTProcess) diff --git a/versioned_docs/version-4.1.x/reference/functions/Start-ADTServiceAndDependencies.mdx b/versioned_docs/version-4.1.x/reference/functions/Start-ADTServiceAndDependencies.mdx new file mode 100644 index 0000000..62642aa --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Start-ADTServiceAndDependencies.mdx @@ -0,0 +1,201 @@ +--- +id: Start-ADTServiceAndDependencies +title: Start-ADTServiceAndDependencies +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Start a Windows service and its dependencies. + +## SYNTAX + +### Name + +```powershell +Start-ADTServiceAndDependencies -Name [-SkipDependentServices] [-PendingStatusWait ] + [-PassThru] [-WhatIf] [-Confirm] [] +``` + +### InputObject + +```powershell +Start-ADTServiceAndDependencies -InputObject [-SkipDependentServices] + [-PendingStatusWait ] [-PassThru] [-WhatIf] [-Confirm] [] +``` + +## DESCRIPTION + +This function starts a specified Windows service and its dependencies. +It provides options to skip starting dependent services, wait for a service to get out of a pending state, and return the service object. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +Start-ADTServiceAndDependencies -Name 'wuauserv' +``` + +Starts the Windows Update service and its dependencies. + +### EXAMPLE 2 + +```powershell +Start-ADTServiceAndDependencies -Name 'wuauserv' -PendingStatusWait 00:01:00 +``` + +Starts the Windows Update service and its dependencies, waiting 1 minute for the serivce to start. + +### EXAMPLE 3 + +```powershell +Start-ADTServiceAndDependencies -Name 'wuauserv' -PendingStatusWait (New-TimeSpan -Minutes 1) +``` + +Starts the Windows Update service and its dependencies, waiting 1 minute for the serivce to start. + +## PARAMETERS + +### -Name + +Specify the name of the service. + +```yaml +Type: String +Parameter Sets: Name +Aliases: Service + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject + +A ServiceController object to start. + +```yaml +Type: ServiceController +Parameter Sets: InputObject +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SkipDependentServices + +Choose to skip checking for and starting dependent services. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PendingStatusWait + +The amount of time to wait for a service to get out of a pending state before continuing. +Default is 60 seconds. + +```yaml +Type: TimeSpan +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PassThru + +Return the System.ServiceProcess.ServiceController service object. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf + +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm + +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### None + +### You cannot pipe objects to this function. +## OUTPUTS + +### System.ServiceProcess.ServiceController + +### Returns the service object. +## NOTES +An active ADT session is NOT required to use this function. + +This function supports the -WhatIf and -Confirm parameters for testing changes before applying them. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/Start-ADTServiceAndDependencies](https://psappdeploytoolkit.com/docs/reference/functions/Start-ADTServiceAndDependencies) diff --git a/versioned_docs/version-4.1.x/reference/functions/Stop-ADTServiceAndDependencies.mdx b/versioned_docs/version-4.1.x/reference/functions/Stop-ADTServiceAndDependencies.mdx new file mode 100644 index 0000000..7834a70 --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Stop-ADTServiceAndDependencies.mdx @@ -0,0 +1,201 @@ +--- +id: Stop-ADTServiceAndDependencies +title: Stop-ADTServiceAndDependencies +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Stop a Windows service and its dependencies. + +## SYNTAX + +### Name + +```powershell +Stop-ADTServiceAndDependencies -Name [-SkipDependentServices] [-PendingStatusWait ] + [-PassThru] [-WhatIf] [-Confirm] [] +``` + +### InputObject + +```powershell +Stop-ADTServiceAndDependencies -InputObject [-SkipDependentServices] + [-PendingStatusWait ] [-PassThru] [-WhatIf] [-Confirm] [] +``` + +## DESCRIPTION + +This function stops a specified Windows service and its dependencies. +It provides options to skip stopping dependent services, wait for a service to get out of a pending state, and return the service object. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +Stop-ADTServiceAndDependencies -Name 'wuauserv' +``` + +Stops the Windows Update service and its dependencies. + +### EXAMPLE 2 + +```powershell +Stop-ADTServiceAndDependencies -Name 'wuauserv' -PendingStatusWait 00:01:00 +``` + +Stops the Windows Update service and its dependencies, waiting 1 minute for the service to stop. + +### EXAMPLE 3 + +```powershell +Stop-ADTServiceAndDependencies -Name 'wuauserv' -PendingStatusWait (New-TimeSpan -Minutes 1) +``` + +Stops the Windows Update service and its dependencies, waiting 1 minute for the service to stop. + +## PARAMETERS + +### -Name + +Specify the name of the service. + +```yaml +Type: String +Parameter Sets: Name +Aliases: Service + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject + +A ServiceController object to stop. + +```yaml +Type: ServiceController +Parameter Sets: InputObject +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SkipDependentServices + +Choose to skip checking for and stopping dependent services. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PendingStatusWait + +The amount of time to wait for a service to get out of a pending state before continuing. +Default is 60 seconds. + +```yaml +Type: TimeSpan +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PassThru + +Return the System.ServiceProcess.ServiceController service object. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf + +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm + +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### None + +### You cannot pipe objects to this function. +## OUTPUTS + +### System.ServiceProcess.ServiceController + +### Returns the service object. +## NOTES +An active ADT session is NOT required to use this function. + +This function supports the -WhatIf and -Confirm parameters for testing changes before applying them. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/Stop-ADTServiceAndDependencies](https://psappdeploytoolkit.com/docs/reference/functions/Stop-ADTServiceAndDependencies) diff --git a/versioned_docs/version-4.1.x/reference/functions/Test-ADTBattery.mdx b/versioned_docs/version-4.1.x/reference/functions/Test-ADTBattery.mdx new file mode 100644 index 0000000..c155441 --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Test-ADTBattery.mdx @@ -0,0 +1,100 @@ +--- +id: Test-ADTBattery +title: Test-ADTBattery +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Tests whether the local machine is running on AC power or not. + +## SYNTAX + +```powershell +Test-ADTBattery [-PassThru] [] +``` + +## DESCRIPTION + +Tests whether the local machine is running on AC power and returns true/false. +For detailed information, use the -PassThru option to get a hashtable containing various battery and power status properties. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +Test-ADTBattery +``` + +Checks if the local machine is running on AC power and returns true or false. + +### EXAMPLE 2 + +```powershell +(Test-ADTBattery -PassThru).IsLaptop +``` + +Returns true if the current system is a laptop, otherwise false. + +## PARAMETERS + +### -PassThru + +Outputs an object containing the following properties: + +- ACPowerLineStatus +- BatteryChargeStatus +- BatteryLifePercent +- BatterySaverEnabled +- BatteryLifeRemaining +- BatteryFullLifetime +- IsUsingACPower +- IsLaptop + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### None + +### You cannot pipe objects to this function. +## OUTPUTS + +### PSADT.Types.BatteryInfo + +### Returns an object containing the following properties: +### - ACPowerLineStatus +### - BatteryChargeStatus +### - BatteryLifePercent +### - BatterySaverEnabled +### - BatteryLifeRemaining +### - BatteryFullLifetime +### - IsUsingACPower +### - IsLaptop +## NOTES +An active ADT session is NOT required to use this function. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/Test-ADTBattery](https://psappdeploytoolkit.com/docs/reference/functions/Test-ADTBattery) diff --git a/versioned_docs/version-4.1.x/reference/functions/Test-ADTCallerIsAdmin.mdx b/versioned_docs/version-4.1.x/reference/functions/Test-ADTCallerIsAdmin.mdx new file mode 100644 index 0000000..e47b360 --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Test-ADTCallerIsAdmin.mdx @@ -0,0 +1,55 @@ +--- +id: Test-ADTCallerIsAdmin +title: Test-ADTCallerIsAdmin +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Checks if the current user has administrative privileges. + +## SYNTAX + +```powershell +Test-ADTCallerIsAdmin +``` + +## DESCRIPTION + +This function checks if the current user is a member of the Administrators group. +It returns a boolean value indicating whether the user has administrative privileges. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +Test-ADTCallerIsAdmin +``` + +Checks if the current user has administrative privileges and returns true or false. + +## PARAMETERS + +## INPUTS + +### None + +### You cannot pipe objects to this function. +## OUTPUTS + +### System.Boolean + +### Returns $true if the current user is an administrator, otherwise $false. +## NOTES +An active ADT session is NOT required to use this function. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/Test-ADTCallerIsAdmin](https://psappdeploytoolkit.com/docs/reference/functions/Test-ADTCallerIsAdmin) diff --git a/versioned_docs/version-4.1.x/reference/functions/Test-ADTEspActive.mdx b/versioned_docs/version-4.1.x/reference/functions/Test-ADTEspActive.mdx new file mode 100644 index 0000000..5c8216f --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Test-ADTEspActive.mdx @@ -0,0 +1,58 @@ +--- +id: Test-ADTEspActive +title: Test-ADTEspActive +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Checks if the device is currently within a device or user Enrollment Status Page (ESP) phase. + +## SYNTAX + +```powershell +Test-ADTEspActive [] +``` + +## DESCRIPTION + +This function checks if the device is currently within a device or user Enrollment Status Page (ESP) phase. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +Test-ADTEspActive +``` + +Checks if the device is actively within a device or user ESP phase or not and returns true or false. + +## PARAMETERS + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### None + +### You cannot pipe objects to this function. +## OUTPUTS + +### System.Boolean + +### Returns $true if the device is actively within a device or user ESP phase, otherwise $false. +## NOTES +An active ADT session is NOT required to use this function. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/Test-ADTEspActive](https://psappdeploytoolkit.com/docs/reference/functions/Test-ADTEspActive) diff --git a/versioned_docs/version-4.1.x/reference/functions/Test-ADTMSUpdates.mdx b/versioned_docs/version-4.1.x/reference/functions/Test-ADTMSUpdates.mdx new file mode 100644 index 0000000..0035c95 --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Test-ADTMSUpdates.mdx @@ -0,0 +1,75 @@ +--- +id: Test-ADTMSUpdates +title: Test-ADTMSUpdates +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Test whether a Microsoft Windows update is installed. + +## SYNTAX + +```powershell +Test-ADTMSUpdates [-KbNumber] [] +``` + +## DESCRIPTION + +This function checks if a specified Microsoft Windows update, identified by its KB number, is installed on the local machine. +It first attempts to find the update using the Get-HotFix cmdlet and, if unsuccessful, uses a COM object to search the update history. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +Test-ADTMSUpdates -KBNumber 'KB2549864' +``` + +Checks if the Microsoft Update 'KB2549864' is installed and returns true or false. + +## PARAMETERS + +### -KbNumber + +KBNumber of the update. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: True +Position: 1 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### None + +### You cannot pipe objects to this function. +## OUTPUTS + +### System.Boolean + +### Returns $true if the update is installed, otherwise returns $false. +## NOTES +An active ADT session is NOT required to use this function. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/Test-ADTMSUpdates](https://psappdeploytoolkit.com/docs/reference/functions/Test-ADTMSUpdates) diff --git a/versioned_docs/version-4.1.x/reference/functions/Test-ADTMicrophoneInUse.mdx b/versioned_docs/version-4.1.x/reference/functions/Test-ADTMicrophoneInUse.mdx new file mode 100644 index 0000000..e5b891e --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Test-ADTMicrophoneInUse.mdx @@ -0,0 +1,59 @@ +--- +id: Test-ADTMicrophoneInUse +title: Test-ADTMicrophoneInUse +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Tests whether the device's microphone is in use. + +## SYNTAX + +```powershell +Test-ADTMicrophoneInUse [] +``` + +## DESCRIPTION + +Tests whether someone is using the microphone on their device. +This could be within Teams, Zoom, a game, or any other app that uses a microphone. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +Test-ADTMicrophoneInUse +``` + +Checks if the microphone is in use and returns true or false. + +## PARAMETERS + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### None + +### You cannot pipe objects to this function. +## OUTPUTS + +### System.Boolean + +### Returns $true if the microphone is in use, otherwise returns $false. +## NOTES +An active ADT session is NOT required to use this function. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/Test-ADTMicrophoneInUse](https://psappdeploytoolkit.com/docs/reference/functions/Test-ADTMicrophoneInUse) diff --git a/versioned_docs/version-4.1.x/reference/functions/Test-ADTModuleInitialized.mdx b/versioned_docs/version-4.1.x/reference/functions/Test-ADTModuleInitialized.mdx new file mode 100644 index 0000000..8ed140d --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Test-ADTModuleInitialized.mdx @@ -0,0 +1,54 @@ +--- +id: Test-ADTModuleInitialized +title: Test-ADTModuleInitialized +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Checks if the ADT (PSAppDeployToolkit) module is initialized. + +## SYNTAX + +```powershell +Test-ADTModuleInitialized +``` + +## DESCRIPTION + +This function checks if the ADT (PSAppDeployToolkit) module is initialized by retrieving the module data and returning the initialization status. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +Test-ADTModuleInitialized +``` + +Checks if the ADT module is initialized and returns true or false. + +## PARAMETERS + +## INPUTS + +### None + +### You cannot pipe objects to this function. +## OUTPUTS + +### System.Boolean + +### Returns $true if the ADT module is initialized, otherwise $false. +## NOTES +An active ADT session is NOT required to use this function. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/Test-ADTModuleInitialized](https://psappdeploytoolkit.com/docs/reference/functions/Test-ADTModuleInitialized) diff --git a/versioned_docs/version-4.1.x/reference/functions/Test-ADTMutexAvailability.mdx b/versioned_docs/version-4.1.x/reference/functions/Test-ADTMutexAvailability.mdx new file mode 100644 index 0000000..a499561 --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Test-ADTMutexAvailability.mdx @@ -0,0 +1,105 @@ +--- +id: Test-ADTMutexAvailability +title: Test-ADTMutexAvailability +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Wait, up to a timeout value, to check if current thread is able to acquire an exclusive lock on a system mutex. + +## SYNTAX + +```powershell +Test-ADTMutexAvailability [-MutexName] [[-MutexWaitTime] ] [] +``` + +## DESCRIPTION + +A mutex can be used to serialize applications and prevent multiple instances from being opened at the same time. + +Wait, up to a timeout (default is 1 millisecond), for the mutex to become available for an exclusive lock. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +Test-ADTMutexAvailability -MutexName 'Global\_MSIExecute' -MutexWaitTime 00:00:05 +``` + +### EXAMPLE 2 + +```powershell +Test-ADTMutexAvailability -MutexName 'Global\_MSIExecute' -MutexWaitTime (New-TimeSpan -Minutes 5) +``` + +### EXAMPLE 3 + +```powershell +Test-ADTMutexAvailability -MutexName 'Global\_MSIExecute' -MutexWaitTime (New-TimeSpan -Seconds 60) +``` + +## PARAMETERS + +### -MutexName + +The name of the system mutex. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: True +Position: 1 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -MutexWaitTime + +The number of milliseconds the current thread should wait to acquire an exclusive lock of a named mutex. + +A wait time of -1 milliseconds means to wait indefinitely. +A wait time of zero does not acquire an exclusive lock but instead tests the state of the wait handle and returns immediately. + +```yaml +Type: TimeSpan +Parameter Sets: (All) +Aliases: + +Required: False +Position: 2 +Default value: [System.TimeSpan]::FromMilliseconds(1) +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### None. You cannot pipe objects to this function. + +## OUTPUTS + +### System.Boolean. Returns $true if the current thread acquires an exclusive lock on the named mutex, $false otherwise. + +## NOTES +An active ADT session is NOT required to use this function. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[http://msdn.microsoft.com/en-us/library/aa372909(VS.85).asp](http://msdn.microsoft.com/en-us/library/aa372909(VS.85).asp) + +[https://psappdeploytoolkit.com/docs/reference/functions/Test-ADTMutexAvailability](https://psappdeploytoolkit.com/docs/reference/functions/Test-ADTMutexAvailability) diff --git a/versioned_docs/version-4.1.x/reference/functions/Test-ADTNetworkConnection.mdx b/versioned_docs/version-4.1.x/reference/functions/Test-ADTNetworkConnection.mdx new file mode 100644 index 0000000..99b9ceb --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Test-ADTNetworkConnection.mdx @@ -0,0 +1,77 @@ +--- +id: Test-ADTNetworkConnection +title: Test-ADTNetworkConnection +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Tests for an active local network connection; ethernet/Wi-Fi by default but can test for a number of other connection types. + +## SYNTAX + +```powershell +Test-ADTNetworkConnection [[-InterfaceType] ] [] +``` + +## DESCRIPTION + +Tests for an active local network connection via Get-NetAdapter; ethernet/Wi-Fi by default but can test for a number of other connection types. +This function checks if any of the nominated interface types is in the 'Up' status. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +Test-ADTNetworkConnection +``` + +Checks if there is an active wired network connection and returns true or false. + +## PARAMETERS + +### -InterfaceType + +Specifies one or more interface types to test. +Defaults to `Ethernet` and `Wireless80211` (Wi-Fi). + +```yaml +Type: NetworkInterfaceType[] +Parameter Sets: (All) +Aliases: +Accepted values: Unknown, Ethernet, TokenRing, Fddi, BasicIsdn, PrimaryIsdn, Ppp, Loopback, Ethernet3Megabit, Slip, Atm, GenericModem, FastEthernetT, Isdn, FastEthernetFx, Wireless80211, AsymmetricDsl, RateAdaptDsl, SymmetricDsl, VeryHighSpeedDsl, IPOverAtm, GigabitEthernet, Tunnel, MultiRateSymmetricDsl, HighPerformanceSerialBus, Wman, Wwanpp, Wwanpp2 + +Required: False +Position: 1 +Default value: ([System.Net.NetworkInformation.NetworkInterfaceType]::Ethernet, [System.Net.NetworkInformation.NetworkInterfaceType]::Wireless80211) +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### None + +### You cannot pipe objects to this function. +## OUTPUTS + +### System.Boolean + +### Returns $true if a wired network connection is detected, otherwise returns $false. +## NOTES +An active ADT session is NOT required to use this function. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/Test-ADTNetworkConnection](https://psappdeploytoolkit.com/docs/reference/functions/Test-ADTNetworkConnection) diff --git a/versioned_docs/version-4.1.x/reference/functions/Test-ADTOobeCompleted.mdx b/versioned_docs/version-4.1.x/reference/functions/Test-ADTOobeCompleted.mdx new file mode 100644 index 0000000..57e062d --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Test-ADTOobeCompleted.mdx @@ -0,0 +1,58 @@ +--- +id: Test-ADTOobeCompleted +title: Test-ADTOobeCompleted +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Checks if the device's Out-of-Box Experience (OOBE) has completed or not. + +## SYNTAX + +```powershell +Test-ADTOobeCompleted [] +``` + +## DESCRIPTION + +This function checks if the current device has completed the Out-of-Box Experience (OOBE). + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +Test-ADTOobeCompleted +``` + +Checks if the device has completed the OOBE or not and returns true or false. + +## PARAMETERS + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### None + +### You cannot pipe objects to this function. +## OUTPUTS + +### System.Boolean + +### Returns $true if the device has proceeded past the OOBE, otherwise $false. +## NOTES +An active ADT session is NOT required to use this function. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/Test-ADTOobeCompleted](https://psappdeploytoolkit.com/docs/reference/functions/Test-ADTOobeCompleted) diff --git a/versioned_docs/version-4.1.x/reference/functions/Test-ADTPowerPoint.mdx b/versioned_docs/version-4.1.x/reference/functions/Test-ADTPowerPoint.mdx new file mode 100644 index 0000000..ebdd3fc --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Test-ADTPowerPoint.mdx @@ -0,0 +1,65 @@ +--- +id: Test-ADTPowerPoint +title: Test-ADTPowerPoint +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Tests whether PowerPoint is running in either fullscreen slideshow mode or presentation mode. + +## SYNTAX + +```powershell +Test-ADTPowerPoint [] +``` + +## DESCRIPTION + +Tests whether someone is presenting using PowerPoint in either fullscreen slideshow mode or presentation mode. +This function checks if the PowerPoint process has a window with a title that begins with "PowerPoint Slide Show" or "PowerPoint-" for non-English language systems. +There is a possibility of a false positive if the PowerPoint filename starts with "PowerPoint Slide Show". +If the previous detection method does not detect PowerPoint in fullscreen mode, it checks if PowerPoint is in Presentation Mode (only works on Windows Vista or higher). + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +Test-ADTPowerPoint +``` + +Checks if PowerPoint is running in either fullscreen slideshow mode or presentation mode and returns true or false. + +## PARAMETERS + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### None + +### You cannot pipe objects to this function. +## OUTPUTS + +### System.Boolean + +### Returns $true if PowerPoint is running in either fullscreen slideshow mode or presentation mode, otherwise returns $false. +## NOTES +An active ADT session is NOT required to use this function. + +This function can only execute detection logic if the process is in interactive mode. + +There is a possibility of a false positive if the PowerPoint filename starts with "PowerPoint Slide Show". + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/Test-ADTPowerPoint](https://psappdeploytoolkit.com/docs/reference/functions/Test-ADTPowerPoint) diff --git a/versioned_docs/version-4.1.x/reference/functions/Test-ADTRegistryValue.mdx b/versioned_docs/version-4.1.x/reference/functions/Test-ADTRegistryValue.mdx new file mode 100644 index 0000000..b34b608 --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Test-ADTRegistryValue.mdx @@ -0,0 +1,129 @@ +--- +id: Test-ADTRegistryValue +title: Test-ADTRegistryValue +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Test if a registry value exists. + +## SYNTAX + +```powershell +Test-ADTRegistryValue [-Key] [-Name] [[-SID] ] [-Wow6432Node] + [] +``` + +## DESCRIPTION + +Checks a registry key path to see if it has a value with a given name. +Can correctly handle cases where a value simply has an empty or null value. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +Test-ADTRegistryValue -Key 'HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager' -Name 'PendingFileRenameOperations' +``` + +Checks if the registry value 'PendingFileRenameOperations' exists under the specified key. + +## PARAMETERS + +### -Key + +Path of the registry key. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: True +Position: 1 +Default value: None +Accept pipeline input: True (ByPropertyName, ByValue) +Accept wildcard characters: False +``` + +### -Name + +Specify the name of the value to check the existence of. + +```yaml +Type: Object +Parameter Sets: (All) +Aliases: + +Required: True +Position: 2 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SID + +The security identifier (SID) for a user. +Specifying this parameter will convert a HKEY_CURRENT_USER registry key to the HKEY_USERS\$SID format. + +Specify this parameter from the Invoke-ADTAllUsersRegistryAction function to read/edit HKCU registry settings for all users on the system. + +```yaml +Type: SecurityIdentifier +Parameter Sets: (All) +Aliases: + +Required: False +Position: 3 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Wow6432Node + +Specify this switch to check the 32-bit registry (Wow6432Node) on 64-bit systems. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### System.String + +### Accepts a string value for the registry key path. +## OUTPUTS + +### System.Boolean + +### Returns $true if the registry value exists, $false if it does not. +## NOTES +An active ADT session is NOT required to use this function. + +To test if a registry key exists, use the Test-Path function like so: Test-Path -LiteralPath $Key -PathType 'Container' + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/Test-ADTRegistryValue](https://psappdeploytoolkit.com/docs/reference/functions/Test-ADTRegistryValue) diff --git a/versioned_docs/version-4.1.x/reference/functions/Test-ADTServiceExists.mdx b/versioned_docs/version-4.1.x/reference/functions/Test-ADTServiceExists.mdx new file mode 100644 index 0000000..becc462 --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Test-ADTServiceExists.mdx @@ -0,0 +1,119 @@ +--- +id: Test-ADTServiceExists +title: Test-ADTServiceExists +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Check to see if a service exists. + +## SYNTAX + +```powershell +Test-ADTServiceExists [-Name] [-UseCIM] [-PassThru] [] +``` + +## DESCRIPTION + +Check to see if a service exists. +The UseCIM switch can be used in conjunction with PassThru to return WMI objects for PSADT v3.x compatibility, however, this method fails in Windows Sandbox. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +Test-ADTServiceExists -Name 'wuauserv' +``` + +Checks if the service 'wuauserv' exists. + +### EXAMPLE 2 + +```powershell +Test-ADTServiceExists -Name testservice -UseCIM -PassThru | Invoke-CimMethod -MethodName Delete +``` + +Checks if a service exists and then deletes it by using the -PassThru parameter. + +## PARAMETERS + +### -Name + +Specify the name of the service. + +Note: Service name can be found by executing "Get-Service | Format-Table -AutoSize -Wrap" or by using the properties screen of a service in services.msc. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: True +Position: 1 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -UseCIM + +Use CIM/WMI to check for the service. +This is useful for compatibility with PSADT v3.x. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: UseWMI + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PassThru + +Return the WMI service object. +To see all the properties use: Test-ADTServiceExists -Name 'spooler' -PassThru | Get-Member + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### None + +### You cannot pipe objects to this function. +## OUTPUTS + +### System.Boolean + +### Returns $true if the service exists, otherwise returns $false. +## NOTES +An active ADT session is NOT required to use this function. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/Test-ADTServiceExists](https://psappdeploytoolkit.com/docs/reference/functions/Test-ADTServiceExists) diff --git a/versioned_docs/version-4.1.x/reference/functions/Test-ADTSessionActive.mdx b/versioned_docs/version-4.1.x/reference/functions/Test-ADTSessionActive.mdx new file mode 100644 index 0000000..c01db3e --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Test-ADTSessionActive.mdx @@ -0,0 +1,54 @@ +--- +id: Test-ADTSessionActive +title: Test-ADTSessionActive +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Checks if there is an active ADT session. + +## SYNTAX + +```powershell +Test-ADTSessionActive +``` + +## DESCRIPTION + +This function checks if there is an active ADT (App Deploy Toolkit) session by retrieving the module data and returning the count of active sessions. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +Test-ADTSessionActive +``` + +Checks if there is an active ADT session and returns true or false. + +## PARAMETERS + +## INPUTS + +### None + +### You cannot pipe objects to this function. +## OUTPUTS + +### System.Boolean + +### Returns $true if there is at least one active session, otherwise $false. +## NOTES +An active ADT session is NOT required to use this function. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/Test-ADTSessionActive](https://psappdeploytoolkit.com/docs/reference/functions/Test-ADTSessionActive) diff --git a/versioned_docs/version-4.1.x/reference/functions/Test-ADTUserIsBusy.mdx b/versioned_docs/version-4.1.x/reference/functions/Test-ADTUserIsBusy.mdx new file mode 100644 index 0000000..6f1a1ae --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Test-ADTUserIsBusy.mdx @@ -0,0 +1,58 @@ +--- +id: Test-ADTUserIsBusy +title: Test-ADTUserIsBusy +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Tests whether the device's microphone is in use, the user has manually turned on presentation mode, or PowerPoint is running in either fullscreen slideshow mode or presentation mode. + +## SYNTAX + +```powershell +Test-ADTUserIsBusy [] +``` + +## DESCRIPTION + +Tests whether the device's microphone is in use, the user has manually turned on presentation mode, or PowerPoint is running in either fullscreen slideshow mode or presentation mode. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +Test-ADTUserIsBusy +``` + +Tests whether the device's microphone is in use, the user has manually turned on presentation mode, or PowerPoint is running in either fullscreen slideshow mode or presentation mode, and returns true or false. + +## PARAMETERS + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### None + +### You cannot pipe objects to this function. +## OUTPUTS + +### System.Boolean + +### Returns $true if the device's microphone is in use, the user has manually turned on presentation mode, or PowerPoint is running in either fullscreen slideshow mode or presentation mode, otherwise $false. +## NOTES +An active ADT session is NOT required to use this function. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/Test-ADTUserIsBusy](https://psappdeploytoolkit.com/docs/reference/functions/Test-ADTUserIsBusy) diff --git a/versioned_docs/version-4.1.x/reference/functions/Unblock-ADTAppExecution.mdx b/versioned_docs/version-4.1.x/reference/functions/Unblock-ADTAppExecution.mdx new file mode 100644 index 0000000..3c40b89 --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Unblock-ADTAppExecution.mdx @@ -0,0 +1,112 @@ +--- +id: Unblock-ADTAppExecution +title: Unblock-ADTAppExecution +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Unblocks the execution of applications performed by the Block-ADTAppExecution function. + +## SYNTAX + +```powershell +Unblock-ADTAppExecution [[-Tasks] ] [-WhatIf] [-Confirm] [] +``` + +## DESCRIPTION + +This function is called by the Close-ADTSession function. +It undoes the actions performed by Block-ADTAppExecution, allowing previously blocked applications to execute. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +Unblock-ADTAppExecution +``` + +Unblocks the execution of applications that were previously blocked by Block-ADTAppExecution. + +## PARAMETERS + +### -Tasks + +Specify the scheduled tasks to unblock. + +```yaml +Type: CimInstance[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: 1 +Default value: All scheduled tasks wildcard matching [PSAppDeployToolkit_*_BlockedApps]. +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf + +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm + +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### None + +### You cannot pipe objects to this function. +## OUTPUTS + +### None + +### This function does not generate any output. +## NOTES +An active ADT session is NOT required to use this function. + +It is used when the -BlockExecution parameter is specified with the Show-ADTInstallationWelcome function to undo the actions performed by Block-ADTAppExecution. + +This function supports the -WhatIf and -Confirm parameters for testing changes before applying them. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/Unblock-ADTAppExecution](https://psappdeploytoolkit.com/docs/reference/functions/Unblock-ADTAppExecution) diff --git a/versioned_docs/version-4.1.x/reference/functions/Uninstall-ADTApplication.mdx b/versioned_docs/version-4.1.x/reference/functions/Uninstall-ADTApplication.mdx new file mode 100644 index 0000000..543e45b --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Uninstall-ADTApplication.mdx @@ -0,0 +1,471 @@ +--- +id: Uninstall-ADTApplication +title: Uninstall-ADTApplication +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Removes one or more applications specified by name, filter script, or InstalledApplication object from Get-ADTApplication. + +## SYNTAX + +### InstalledApplication + +```powershell +Uninstall-ADTApplication -InstalledApplication [-ForceUninstallString] + [-ArgumentList ] [-AdditionalArgumentList ] [-SecureArgumentList] + [-LoggingOptions ] [-LogFileName ] [-WaitForChildProcesses] [-KillChildProcessesWithParent] + [-SuccessExitCodes ] [-RebootExitCodes ] [-IgnoreExitCodes ] + [-ExitOnProcessFailure] [-PassThru] [-WhatIf] [-Confirm] [] +``` + +### Search + +```powershell +Uninstall-ADTApplication [-Name ] [-NameMatch ] [-ProductCode ] + [-ApplicationType ] [-IncludeUpdatesAndHotfixes] [[-FilterScript] ] + [-ForceUninstallString] [-ArgumentList ] [-AdditionalArgumentList ] [-SecureArgumentList] + [-LoggingOptions ] [-LogFileName ] [-WaitForChildProcesses] [-KillChildProcessesWithParent] + [-SuccessExitCodes ] [-RebootExitCodes ] [-IgnoreExitCodes ] + [-ExitOnProcessFailure] [-PassThru] [-WhatIf] [-Confirm] [] +``` + +## DESCRIPTION + +Removes one or more applications specified by name, filter script, or InstalledApplication object from Get-ADTApplication. + +Enumerates the registry for installed applications via Get-ADTApplication, matching the specified application name and uninstalls that application using its uninstall string, with the ability to specify additional uninstall parameters also. + +The application will be uninstalled using its QuietUninstallString where possible. +If it doesn't exist, is null, is invalid, or `-ForceUninstallString` is specified, the UninstallString will be used. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +Uninstall-ADTApplication -Name 'Acrobat' -ApplicationType 'MSI' -FilterScript { $_.Publisher -match 'Adobe' } +``` + +Removes all MSI applications that contain the name 'Acrobat' in the DisplayName and 'Adobe' in the Publisher name. + +### EXAMPLE 2 + +```powershell +Uninstall-ADTApplication -Name 'Java' -FilterScript {$_.Publisher -eq 'Oracle Corporation' -and $_.Is64BitApplication -eq $true -and $_.DisplayVersion -notlike '8.*'} +``` + +Removes all MSI applications that contain the name 'Java' in the DisplayName, with Publisher as 'Oracle Corporation', are 64-bit, and not version 8.x. + +### EXAMPLE 3 + +```powershell +Uninstall-ADTApplication -FilterScript {$_.DisplayName -match '^Vim\s'} -Verbose -ApplicationType EXE -ArgumentList '/S' +``` + +Remove all EXE applications starting with the name 'Vim' followed by a space, using the '/S' parameter. + +## PARAMETERS + +### -InstalledApplication + +Specifies the [PSADT.Types.InstalledApplication] object to remove. +This parameter is typically used when piping Get-ADTApplication to this function. + +```yaml +Type: InstalledApplication[] +Parameter Sets: InstalledApplication +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Name + +The name of the application to retrieve information for. +Performs a contains match on the application display name by default. + +```yaml +Type: String[] +Parameter Sets: Search +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -NameMatch + +Specifies the type of match to perform on the application name. +Valid values are 'Contains', 'Exact', 'Wildcard', and 'Regex'. +The default value is 'Contains'. + +```yaml +Type: String +Parameter Sets: Search +Aliases: + +Required: False +Position: Named +Default value: Contains +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ProductCode + +The product code of the application to retrieve information for. + +```yaml +Type: Guid[] +Parameter Sets: Search +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ApplicationType + +Specifies the type of application to remove. +Valid values are 'All', 'MSI', and 'EXE'. +The default value is 'All'. + +```yaml +Type: String +Parameter Sets: Search +Aliases: + +Required: False +Position: Named +Default value: All +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -IncludeUpdatesAndHotfixes + +Include matches against updates and hotfixes in results. + +```yaml +Type: SwitchParameter +Parameter Sets: Search +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -FilterScript + +A script used to filter the results as they're processed. + +```yaml +Type: ScriptBlock +Parameter Sets: Search +Aliases: + +Required: False +Position: 1 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ForceUninstallString + +Forcibly uses the UninstallString instead of QuietUninstallString. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ArgumentList + +Overrides the default MSI parameters specified in the config.psd1 file, or the parameters found in QuietUninstallString/UninstallString for EXE applications. + +```yaml +Type: String[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -AdditionalArgumentList + +Adds to the default parameters specified in the config.psd1 file, or the parameters found in QuietUninstallString/UninstallString for EXE applications. + +```yaml +Type: String[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SecureArgumentList + +Hides all parameters passed to the executable from the Toolkit log file. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -LoggingOptions + +Overrides the default MSI logging options specified in the config.psd1 file. +Default options are: "/L*v". + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: [System.Management.Automation.Language.NullString]::Value +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -LogFileName + +Overrides the default log file name for MSI applications. +The default log file name is generated from the MSI file name. +If LogFileName does not end in .log, it will be automatically appended. + +For uninstallations, by default the product code is resolved to the DisplayName and version of the application. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: [System.Management.Automation.Language.NullString]::Value +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WaitForChildProcesses + +Specifies whether the started process should be considered finished only when any child processes it spawns have finished also. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -KillChildProcessesWithParent + +Specifies whether any child processes started by the provided executable should be closed when the provided executable closes. +This is handy for application installs that open web browsers and other programs that cannot be suppressed. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SuccessExitCodes + +List of exit codes to be considered successful. +Defaults to values set during ADTSession initialization, otherwise: 0 + +```yaml +Type: Int32[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -RebootExitCodes + +List of exit codes to indicate a reboot is required. +Defaults to values set during ADTSession initialization, otherwise: 1641, 3010 + +```yaml +Type: Int32[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -IgnoreExitCodes + +List the exit codes to ignore or * to ignore all exit codes. +Where possible, please use `-SuccessExitCodes` and/or `-RebootExitCodes` instead. + +```yaml +Type: String[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: True +``` + +### -ExitOnProcessFailure + +Automatically closes the active deployment session via Close-ADTSession in the event the process exits with a non-success or non-ignored exit code. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PassThru + +Returns a PSADT.Types.ProcessResult object, providing the ExitCode, StdOut, and StdErr output from the uninstallation. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf + +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm + +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### PSADT.Types.InstalledApplication + +### This function can receive one or more InstalledApplication objects for uninstallation. +## OUTPUTS + +### PSADT.Types.ProcessResult + +### Returns an object with the results of the installation if -PassThru is specified. +### - ExitCode +### - StdOut +### - StdErr +## NOTES +An active ADT session is NOT required to use this function. + +More reading on how to create filterscripts https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/where-object?view=powershell-5.1#description + +This function supports the -WhatIf and -Confirm parameters for testing changes before applying them. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/Uninstall-ADTApplication](https://psappdeploytoolkit.com/docs/reference/functions/Uninstall-ADTApplication) diff --git a/versioned_docs/version-4.1.x/reference/functions/Unregister-ADTDll.mdx b/versioned_docs/version-4.1.x/reference/functions/Unregister-ADTDll.mdx new file mode 100644 index 0000000..96d04fe --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Unregister-ADTDll.mdx @@ -0,0 +1,110 @@ +--- +id: Unregister-ADTDll +title: Unregister-ADTDll +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Unregister a DLL file. + +## SYNTAX + +```powershell +Unregister-ADTDll [-FilePath] [-WhatIf] [-Confirm] [] +``` + +## DESCRIPTION + +Unregister a DLL file using regsvr32.exe. +This function takes the path to the DLL file and attempts to unregister it using the regsvr32.exe utility. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +Unregister-ADTDll -FilePath "C:\Test\DcTLSFileToDMSComp.dll" +``` + +Unregisters the specified DLL file. + +## PARAMETERS + +### -FilePath + +Path to the DLL file. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: True +Position: 1 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf + +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm + +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### None + +### You cannot pipe objects to this function. +## OUTPUTS + +### None + +### This function does not return objects. +## NOTES +An active ADT session is NOT required to use this function. + +This function supports the -WhatIf and -Confirm parameters for testing changes before applying them. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/Unregister-ADTDll](https://psappdeploytoolkit.com/docs/reference/functions/Unregister-ADTDll) diff --git a/versioned_docs/version-4.1.x/reference/functions/Update-ADTDesktop.mdx b/versioned_docs/version-4.1.x/reference/functions/Update-ADTDesktop.mdx new file mode 100644 index 0000000..a0b5ac9 --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Update-ADTDesktop.mdx @@ -0,0 +1,59 @@ +--- +id: Update-ADTDesktop +title: Update-ADTDesktop +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Refresh the Windows Explorer Shell, which causes the desktop icons and the environment variables to be reloaded. + +## SYNTAX + +```powershell +Update-ADTDesktop [] +``` + +## DESCRIPTION + +This function refreshes the Windows Explorer Shell, causing the desktop icons and environment variables to be reloaded. +This can be useful after making changes that affect the desktop or environment variables, ensuring that the changes are reflected immediately. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +Update-ADTDesktop +``` + +Refreshes the Windows Explorer Shell, reloading the desktop icons and environment variables. + +## PARAMETERS + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### None + +### You cannot pipe objects to this function. +## OUTPUTS + +### None + +### This function does not return any objects. +## NOTES +An active ADT session is NOT required to use this function. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/Update-ADTDesktop](https://psappdeploytoolkit.com/docs/reference/functions/Update-ADTDesktop) diff --git a/versioned_docs/version-4.1.x/reference/functions/Update-ADTEnvironmentPsProvider.mdx b/versioned_docs/version-4.1.x/reference/functions/Update-ADTEnvironmentPsProvider.mdx new file mode 100644 index 0000000..d6f96bf --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Update-ADTEnvironmentPsProvider.mdx @@ -0,0 +1,60 @@ +--- +id: Update-ADTEnvironmentPsProvider +title: Update-ADTEnvironmentPsProvider +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Updates the environment variables for the current PowerShell session with any environment variable changes that may have occurred during script execution. + +## SYNTAX + +```powershell +Update-ADTEnvironmentPsProvider [] +``` + +## DESCRIPTION + +Environment variable changes that take place during script execution are not visible to the current PowerShell session. + +Use this function to refresh the current PowerShell session with all environment variable settings. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +Update-ADTEnvironmentPsProvider +``` + +Refreshes the current PowerShell session with all environment variable settings. + +## PARAMETERS + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### None + +### You cannot pipe objects to this function. +## OUTPUTS + +### None + +### This function does not return any objects. +## NOTES +An active ADT session is NOT required to use this function. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/Update-ADTEnvironmentPsProvider](https://psappdeploytoolkit.com/docs/reference/functions/Update-ADTEnvironmentPsProvider) diff --git a/versioned_docs/version-4.1.x/reference/functions/Update-ADTGroupPolicy.mdx b/versioned_docs/version-4.1.x/reference/functions/Update-ADTGroupPolicy.mdx new file mode 100644 index 0000000..8a2c0ca --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Update-ADTGroupPolicy.mdx @@ -0,0 +1,59 @@ +--- +id: Update-ADTGroupPolicy +title: Update-ADTGroupPolicy +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Performs a gpupdate command to refresh Group Policies on the local machine. + +## SYNTAX + +```powershell +Update-ADTGroupPolicy [] +``` + +## DESCRIPTION + +This function performs a gpupdate command to refresh Group Policies on the local machine. +It updates both Computer and User policies by forcing a refresh using the gpupdate.exe utility. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +Update-ADTGroupPolicy +``` + +Performs a gpupdate command to refresh Group Policies on the local machine. + +## PARAMETERS + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### None + +### You cannot pipe objects to this function. +## OUTPUTS + +### None + +### This function does not return any objects. +## NOTES +An active ADT session is NOT required to use this function. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/Update-ADTGroupPolicy](https://psappdeploytoolkit.com/docs/reference/functions/Update-ADTGroupPolicy) diff --git a/versioned_docs/version-4.1.x/reference/functions/Write-ADTLogEntry.mdx b/versioned_docs/version-4.1.x/reference/functions/Write-ADTLogEntry.mdx new file mode 100644 index 0000000..6ee6974 --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/Write-ADTLogEntry.mdx @@ -0,0 +1,234 @@ +--- +id: Write-ADTLogEntry +title: Write-ADTLogEntry +hide_title: false +hide_table_of_contents: false +--- + +## SYNOPSIS + +Write messages to a log file in CMTrace.exe compatible format or Legacy text file format. + +## SYNTAX + +```powershell +Write-ADTLogEntry [-Message] [[-Severity] ] [[-Source] ] + [[-ScriptSection] ] [[-LogStyle] ] [[-LogFileDirectory] ] [[-LogFileName] ] + [[-HostLogStreamType] ] [-PassThru] [-DebugMessage] [] +``` + +## DESCRIPTION + +Write messages to a log file in CMTrace.exe compatible format or Legacy text file format and optionally display in the console. +This function supports different severity levels and can be used to log debug messages if required. + +## EXAMPLES + +### EXAMPLE 1 + +```powershell +Write-ADTLogEntry -Message "Installing patch MS15-031" -Source 'Add-Patch' +``` + +Writes a log entry indicating that patch MS15-031 is being installed. + +### EXAMPLE 2 + +```powershell +Write-ADTLogEntry -Message "Script is running on Windows 11" -Source 'Test-ValidOS' +``` + +Writes a log entry indicating that the script is running on Windows 11. + +## PARAMETERS + +### -Message + +The message to write to the log file or output to the console. + +```yaml +Type: String[] +Parameter Sets: (All) +Aliases: + +Required: True +Position: 1 +Default value: None +Accept pipeline input: True (ByPropertyName, ByValue) +Accept wildcard characters: False +``` + +### -Severity + +Defines message type. +When writing to console or CMTrace.exe log format, it allows highlighting of message type. + +```yaml +Type: LogSeverity +Parameter Sets: (All) +Aliases: +Accepted values: Success, Info, Warning, Error + +Required: False +Position: 2 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Source + +The source of the message being logged. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: False +Position: 3 +Default value: [System.Management.Automation.Language.NullString]::Value +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ScriptSection + +The heading for the portion of the script that is being executed. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: False +Position: 4 +Default value: [System.Management.Automation.Language.NullString]::Value +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -LogStyle + +Choose whether to write a CMTrace.exe compatible log file or a Legacy text log file. + +```yaml +Type: LogStyle +Parameter Sets: (All) +Aliases: LogType +Accepted values: Legacy, CMTrace + +Required: False +Position: 5 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -LogFileDirectory + +Set the directory where the log file will be saved. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: False +Position: 6 +Default value: [System.Management.Automation.Language.NullString]::Value +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -LogFileName + +Set the name of the log file. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: False +Position: 7 +Default value: [System.Management.Automation.Language.NullString]::Value +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -HostLogStreamType + +Controls how the log entry is written to the console window. + +```yaml +Type: HostLogStreamType +Parameter Sets: (All) +Aliases: +Accepted values: None, Host, Console, Verbose + +Required: False +Position: 8 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PassThru + +Return the message that was passed to the function. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DebugMessage + +Specifies that the message is a debug message. +Debug messages only get logged if -LogDebugMessage is set to $true. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters + +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### System.String + +### The message to write to the log file or output to the console. +## OUTPUTS + +### PSAppDeployToolkit.Logging.LogEntry[] + +### This function returns the provided output if -PassThru is specified. +## NOTES +An active ADT session is NOT required to use this function. + +Tags: psadt
+Website: https://psappdeploytoolkit.com
+Copyright: (C) 2026 PSAppDeployToolkit Team (Sean Lillis, Dan Cunningham, Muhammad Mashwani, Mitch Richters, Dan Gough).
+License: https://opensource.org/license/lgpl-3-0 + +## RELATED LINKS + +[https://psappdeploytoolkit.com/docs/reference/functions/Write-ADTLogEntry](https://psappdeploytoolkit.com/docs/reference/functions/Write-ADTLogEntry) diff --git a/versioned_docs/version-4.1.x/reference/functions/docusaurus.sidebar.js b/versioned_docs/version-4.1.x/reference/functions/docusaurus.sidebar.js new file mode 100644 index 0000000..4816d90 --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/functions/docusaurus.sidebar.js @@ -0,0 +1,146 @@ +/** + * Import this file in your Docusaurus `sidebars.js` file. + * + * Auto-generated by Alt3.Docusaurus.Powershell 1.0.37. + * + * Copyright (c) 2019-present, ALT3 B.V. + * + * Licensed under the MIT license. + */ + +module.exports = [ + 'commands/Add-ADTEdgeExtension', + 'commands/Add-ADTModuleCallback', + 'commands/Block-ADTAppExecution', + 'commands/Clear-ADTModuleCallback', + 'commands/Close-ADTInstallationProgress', + 'commands/Close-ADTSession', + 'commands/Complete-ADTFunction', + 'commands/Convert-ADTRegistryPath', + 'commands/Convert-ADTValuesFromRemainingArguments', + 'commands/Convert-ADTValueType', + 'commands/ConvertTo-ADTNTAccountOrSID', + 'commands/Copy-ADTContentToCache', + 'commands/Copy-ADTFile', + 'commands/Copy-ADTFileToUserProfiles', + 'commands/Disable-ADTTerminalServerInstallMode', + 'commands/Dismount-ADTWimFile', + 'commands/Enable-ADTTerminalServerInstallMode', + 'commands/Export-ADTEnvironmentTableToSessionState', + 'commands/Get-ADTApplication', + 'commands/Get-ADTBoundParametersAndDefaultValues', + 'commands/Get-ADTCommandTable', + 'commands/Get-ADTConfig', + 'commands/Get-ADTDeferHistory', + 'commands/Get-ADTEnvironmentTable', + 'commands/Get-ADTEnvironmentVariable', + 'commands/Get-ADTExecutableInfo', + 'commands/Get-ADTFileVersion', + 'commands/Get-ADTFreeDiskSpace', + 'commands/Get-ADTIniSection', + 'commands/Get-ADTIniValue', + 'commands/Get-ADTLoggedOnUser', + 'commands/Get-ADTModuleCallback', + 'commands/Get-ADTMsiExitCodeMessage', + 'commands/Get-ADTMsiTableProperty', + 'commands/Get-ADTObjectProperty', + 'commands/Get-ADTOperatingSystemInfo', + 'commands/Get-ADTPEFileArchitecture', + 'commands/Get-ADTPendingReboot', + 'commands/Get-ADTPowerShellProcessPath', + 'commands/Get-ADTPresentationSettingsEnabledUsers', + 'commands/Get-ADTRegistryKey', + 'commands/Get-ADTRunningProcesses', + 'commands/Get-ADTServiceStartMode', + 'commands/Get-ADTSession', + 'commands/Get-ADTShortcut', + 'commands/Get-ADTStringTable', + 'commands/Get-ADTUserNotificationState', + 'commands/Get-ADTUserProfiles', + 'commands/Get-ADTWindowTitle', + 'commands/Initialize-ADTFunction', + 'commands/Initialize-ADTModule', + 'commands/Install-ADTMSUpdates', + 'commands/Install-ADTSCCMSoftwareUpdates', + 'commands/Invoke-ADTAllUsersRegistryAction', + 'commands/Invoke-ADTCommandWithRetries', + 'commands/Invoke-ADTFunctionErrorHandler', + 'commands/Invoke-ADTObjectMethod', + 'commands/Invoke-ADTRegSvr32', + 'commands/Invoke-ADTSCCMTask', + 'commands/Mount-ADTWimFile', + 'commands/New-ADTErrorRecord', + 'commands/New-ADTFolder', + 'commands/New-ADTLogFileName', + 'commands/New-ADTMsiTransform', + 'commands/New-ADTShortcut', + 'commands/New-ADTTemplate', + 'commands/New-ADTValidateScriptErrorRecord', + 'commands/New-ADTZipFile', + 'commands/Open-ADTSession', + 'commands/Out-ADTPowerShellEncodedCommand', + 'commands/Register-ADTDll', + 'commands/Remove-ADTContentFromCache', + 'commands/Remove-ADTDesktopShortcut', + 'commands/Remove-ADTEdgeExtension', + 'commands/Remove-ADTEnvironmentVariable', + 'commands/Remove-ADTFile', + 'commands/Remove-ADTFileFromUserProfiles', + 'commands/Remove-ADTFolder', + 'commands/Remove-ADTHashtableNullOrEmptyValues', + 'commands/Remove-ADTIniSection', + 'commands/Remove-ADTIniValue', + 'commands/Remove-ADTInvalidFileNameChars', + 'commands/Remove-ADTModuleCallback', + 'commands/Remove-ADTRegistryKey', + 'commands/Reset-ADTDeferHistory', + 'commands/Resolve-ADTErrorRecord', + 'commands/Send-ADTKeys', + 'commands/Set-ADTActiveSetup', + 'commands/Set-ADTDeferHistory', + 'commands/Set-ADTEnvironmentVariable', + 'commands/Set-ADTIniSection', + 'commands/Set-ADTIniValue', + 'commands/Set-ADTItemPermission', + 'commands/Set-ADTMsiProperty', + 'commands/Set-ADTPowerShellCulture', + 'commands/Set-ADTRegistryKey', + 'commands/Set-ADTServiceStartMode', + 'commands/Set-ADTShortcut', + 'commands/Show-ADTBalloonTip', + 'commands/Show-ADTDialogBox', + 'commands/Show-ADTHelpConsole', + 'commands/Show-ADTInstallationProgress', + 'commands/Show-ADTInstallationPrompt', + 'commands/Show-ADTInstallationRestartPrompt', + 'commands/Show-ADTInstallationWelcome', + 'commands/Start-ADTMsiProcess', + 'commands/Start-ADTMsiProcessAsUser', + 'commands/Start-ADTMspProcess', + 'commands/Start-ADTMspProcessAsUser', + 'commands/Start-ADTProcess', + 'commands/Start-ADTProcessAsUser', + 'commands/Start-ADTServiceAndDependencies', + 'commands/Stop-ADTServiceAndDependencies', + 'commands/Test-ADTBattery', + 'commands/Test-ADTCallerIsAdmin', + 'commands/Test-ADTEspActive', + 'commands/Test-ADTMicrophoneInUse', + 'commands/Test-ADTModuleInitialized', + 'commands/Test-ADTMSUpdates', + 'commands/Test-ADTMutexAvailability', + 'commands/Test-ADTNetworkConnection', + 'commands/Test-ADTOobeCompleted', + 'commands/Test-ADTPowerPoint', + 'commands/Test-ADTRegistryValue', + 'commands/Test-ADTServiceExists', + 'commands/Test-ADTSessionActive', + 'commands/Test-ADTUserIsBusy', + 'commands/Unblock-ADTAppExecution', + 'commands/Uninstall-ADTApplication', + 'commands/Unregister-ADTDll', + 'commands/Update-ADTDesktop', + 'commands/Update-ADTEnvironmentPsProvider', + 'commands/Update-ADTGroupPolicy', + 'commands/Write-ADTLogEntry' +]; diff --git a/versioned_docs/version-4.1.x/reference/language-strings.mdx b/versioned_docs/version-4.1.x/reference/language-strings.mdx new file mode 100644 index 0000000..f3dc593 --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/language-strings.mdx @@ -0,0 +1,96 @@ +--- +sidebar_position: 4 +sidebar_label: 'Language Strings' +title: 'Language Strings' +description: 'PSAppDeployToolkit exposes all of the text used in the UI.' +slug: /reference/language-strings +tags: + - Language Strings + - Reference +--- + +# Language Strings + +Each setting in the config.psd1 is exposed through the `Get-ADTConfig` function, allowing you to retrieve text used by the UI. + +# Settings + +## General Strings + +## Close Prompts + +| 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. | + +## Progress Messages + +| 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. | + +## Disk Space + +| Setting | Description | +|:--------------------|:--------------------------------------------| +| `DiskSpace.Message` | Message displayed when checking disk space. | + +## Deployment Types + +| Setting | Description | +|:---------------------------|:------------------------------------| +| `DeploymentType.Install` | Text for install deployment type. | +| `DeploymentType.Repair` | Text for repair deployment type. | +| `DeploymentType.Uninstall` | Text for uninstall deployment type. | + +## Welcome Prompts + +| 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. | diff --git a/versioned_docs/version-4.1.x/reference/module-structure.mdx b/versioned_docs/version-4.1.x/reference/module-structure.mdx new file mode 100644 index 0000000..3a48d2f --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/module-structure.mdx @@ -0,0 +1,51 @@ +--- +sidebar_position: 1 +title: 'Module Structure' +description: 'The file / folder structure of the PSADT module explained.' +slug: /reference/module-structure +tags: + - Usage + - Archive + - Refrerence +--- + +# Deployment Structure + +## PSADT Core Module Files + +The PSADT core module files are located in the `PSAppDeployToolkit/` folder. This folder contains all the necessary files for the PSADT module to function correctly. You should not modify any files in this folder, as they are essential for the proper operation of the PSADT module. + +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 + +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. | diff --git a/versioned_docs/version-4.1.x/reference/text-formatting.mdx b/versioned_docs/version-4.1.x/reference/text-formatting.mdx new file mode 100644 index 0000000..5abc756 --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/text-formatting.mdx @@ -0,0 +1,208 @@ +--- +sidebar_position: 10 +sidebar_label: 'Text Formatting' +title: 'Text Formatting' +description: 'Learn how to use rich text formatting in PSAppDeployToolkit dialogs' +slug: /reference/text-formatting +tags: + - Text Formatting + - UI Customization + - Reference +--- + +# Text Formatting + +PSAppDeployToolkit v4.1 supports rich text formatting in dialog messages, allowing you to create more visually appealing and informative user interfaces. This feature works with the Fluent dialog style and supports nested formatting for complex text styling. + +The text formatting system allows you to apply various styles to text displayed in dialogs using simple markup tags. These tags can be: +- Used individually for simple formatting +- Combined for cumulative effects + +## Supported Formatting Tags + +### Basic Formatting + +| Tag | Description | Example | +|-----|-------------|---------| +| `[bold]...[/bold]` | Makes text bold | `[bold]Important text[/bold]` | +| `[italic]...[/italic]` | Makes text italic | `[italic]Emphasized text[/italic]` | +| `[accent]...[/accent]` | Applies accent color and bold | `[accent]Highlighted text[/accent]` | +| `[url]...[/url]` | Creates a simple clickable hyperlink | `[url]https://psappdeploytoolkit.com[/url]` | +| `[url=...]Link Description[/url]` | Creates a clickable hyperlink with a link description instead of the URL | `[url=https://psappdeploytoolkit.com]PSAppDeployToolkit Homepage[/url]` | + +The formatting system automatically adapts to the user's theme: +- Accent colors adjust for optimal contrast +- Hyperlinks use theme-appropriate colors +- Bold and italic formatting remain consistent + +### Nested Formatting + +The formatting system supports nesting tags for combined effects: + +```text +[bold]This is bold [accent]and this is bold with accent color[/accent][/bold] + +[italic]Italic text with [bold]bold emphasis[/bold] inside[/italic] + +[bold][accent][italic]All three formats combined![/italic][/accent][/bold] +``` + +### Accent Color Configuration + +The accent color used by `[accent]` tags can be configured in your deployment: + +```powershell +# In Config\config.psd1 +@{ + UI = @{ + FluentAccentColor = 0xFF0078D4 # Blue accent + } +} +``` + +## Usage in Dialogs + +### Configuration Strings + +Text formatting can be used in your `Strings\strings.psd1` configuration: + +```powershell +@{ + Fluent = @{ + DialogMessage = @{ + Install = "[accent]Please wait[/accent] while we install this application. This process will take approximately [italic]5-10 minutes[/italic]." + Uninstall = "[accent]Warning:[/accent] All application data will be [italic]permanently removed[/italic]." + } + } +} +``` +### Custom Messages + +You can use formatting tags in custom messages passed to dialogs: + +```powershell +Show-ADTInstallationPrompt -Message "[bold]Installation Notice[/bold] + +[accent]Important:[/accent] Please save your work before continuing. + +For help, visit [url]https://support.company.com[/url]" -ButtonText "OK" +``` + +## Best Practices + +### 1. Use Formatting Sparingly + +While formatting enhances readability, overuse can make text difficult to read: + +❌ **Bad:** +```text +[bold][italic][accent]Everything[/accent][/italic][/bold] is [bold]formatted[/bold] [italic]differently[/italic]! +``` + +✅ **Good:** +```text +[bold]Important:[/bold] Please [accent]save your work[/accent] before continuing. +``` + +### 2. Maintain Consistency + +Use formatting consistently throughout your deployment: + +- **[bold]** for headings and important labels +- **[accent]** for critical information or warnings +- **[italic]** for supplementary information or examples +- **[url]** for support links and resources + +### 3. Consider Accessibility + +- Ensure sufficient contrast between accent colors and backgrounds +- Don't rely solely on formatting to convey critical information +- Test your formatted text in both light and dark themes + +### 4. Close Tags Properly + +Always close tags in the reverse order they were opened: + +❌ **Incorrect:** +```text +[bold][italic]Text[/bold][/italic] +``` + +✅ **Correct:** +```text +[bold][italic]Text[/italic][/bold] +``` + +## URL Formatting Examples + +### Simple URL Format + +Use the simple format when you want to display the actual URL: + +```text +Need help? Visit [url]https://support.company.com[/url] +Email us at [url]support@company.com[/url] +``` + +### Descriptive URL Format + +Use the descriptive format when you want to display custom text instead of the URL: + +```text +For help, visit our [url=https://support.company.com]Support Portal[/url] +Download the latest version from [url=https://github.com/PSAppDeployToolkit/PSAppDeployToolkit/releases]GitHub Releases[/url] +Contact [url=mailto:admin@company.com]IT Support[/url] for assistance +``` + +### Mixed URL Formats + +You can combine both formats in the same text: + +```text +[bold]Resources Available:[/bold] + +• Documentation: [url=https://psappdeploytoolkit.com/docs]Official Documentation[/url] +• Community Support: [url]https://github.com/PSAppDeployToolkit/PSAppDeployToolkit/discussions[/url] +• Report Issues: [url=https://github.com/PSAppDeployToolkit/PSAppDeployToolkit/issues]Submit a Bug Report[/url] +``` + +## Complex Formatting Examples + +### Corporate Deployment Message + +```text +[bold]Software Deployment Notice[/bold] + +[accent]Action Required:[/accent] Microsoft Office 365 Installation + +Your computer has been selected for the [bold]Microsoft Office 365[/bold] upgrade. +This installation will: + +• Replace [italic]Office 2016[/italic] with [bold][accent]Office 365[/accent][/bold] +• Migrate all your settings and preferences +• Install the latest security updates + +[accent]Important Notes:[/accent] +• The installation takes approximately [bold]20-30 minutes[/bold] +• Your computer will [italic]restart automatically[/italic] when complete +• All Office applications must be closed + +For more information, visit our [url]https://intranet.company.com/office365[/url] + +[italic]Thank you for your cooperation.[/italic] +``` + +### Security Update Notification + +```text +[bold][accent]SECURITY UPDATE REQUIRED[/accent][/bold] + +A [accent]critical security vulnerability[/accent] has been identified in your current software version. + +This update addresses: +• [accent]CVE-2023-26369[/accent] - Critical vulnerability +• Performance improvements +• Stability enhancements + +Learn more: [url]https://adobe.com/security[/url] +``` 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 new file mode 100644 index 0000000..a75ec7b --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/v4-function-mapping.mdx @@ -0,0 +1,103 @@ +--- +sidebar_position: 6 +title: 'v4 Function Mapping' +description: 'Reference list of v3 Functions and how they are mapped to the new v4 functions.' +slug: /reference/v4-function-mapping +tags: + - v4 Upgrade + - Functions + - Reference +--- + +## Mapping + +The following table lists the v3 functions and their compatibility with v4. If a compatibility wrapper exists, the corresponding v4 function is shown. If there is no compatibility wrapper, "NO" is listed. + +| 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) | +| [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) | +| [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) | diff --git a/versioned_docs/version-4.1.x/reference/variables.mdx b/versioned_docs/version-4.1.x/reference/variables.mdx new file mode 100644 index 0000000..a0c8051 --- /dev/null +++ b/versioned_docs/version-4.1.x/reference/variables.mdx @@ -0,0 +1,200 @@ +--- +sidebar_position: 2 +sidebar_label: 'Variables' +title: 'Variables' +description: 'Variables available for use within PSAppDeployToolkit.' +slug: /reference/variables +tags: + - Variables + - Reference +--- + +# Variables + +When you open an ADTSession (automatically handled in Invoke-AppDeployToolkit.ps1), several useful variables are created. These include hardware information, system and user paths, and Active Directory domain details, among others. + +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 + +| 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. 32-Bit/64-Bit) | +| `$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`) | diff --git a/versioned_docs/version-4.1.x/usage/_category_.json b/versioned_docs/version-4.1.x/usage/_category_.json new file mode 100644 index 0000000..497980e --- /dev/null +++ b/versioned_docs/version-4.1.x/usage/_category_.json @@ -0,0 +1,4 @@ +{ + "label": "Usage", + "position": 4 +} diff --git a/versioned_docs/version-4.1.x/usage/adding-ui-elements.mdx b/versioned_docs/version-4.1.x/usage/adding-ui-elements.mdx new file mode 100644 index 0000000..40ada40 --- /dev/null +++ b/versioned_docs/version-4.1.x/usage/adding-ui-elements.mdx @@ -0,0 +1,97 @@ +--- +sidebar_position: 2 +title: 'Adding UI Elements' +description: 'How to add UI elements to a deployment script.' +slug: /usage/adding-ui-elements +tags: + - Usage + - User Interface +--- + +# Adding User Interface Elements + +The user interface consists of several components described below. It can be branded with a custom logo (Fluent UI) or a banner (Classic UI). + +All UI components include customizable message text in `strings.psd1`, which has been localized into 25 languages. + +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 +``` + +### Installation Progress + +The installation progress message displays an indeterminate progress ring to indicate an installation is in progress and display status messages to the end user. This is invoked using the [Show-ADTInstallationProgress](../reference/functions/Show-ADTInstallationProgress.mdx) Function. + +![Installation Progress (Light Mode)](../images/psadt-inprogress_light.png) + +![Installation Progress (Dark Mode)](../images/psadt-inprogress_dark.png) + +The progress message can be updated dynamically to show the installation stage or display custom messages, using the [Show-ADTInstallationProgress](../reference/functions/Show-ADTInstallationProgress.mdx) function. + +![Dynamic Progress Updating (Light Mode)](../images/psadt-customprogress_light.png) + +![Dynamic Progress Updating (Dark Mode)](../images/psadt-customprogress_dark.png) + +### Installation Welcome Prompt + +The application welcome prompt can be used to display applications that need to be closed, an option to defer and a countdown to closing applications automatically. Use the [Show-ADTInstallationWelcome](../reference/functions/Show-ADTInstallationWelcome.mdx) function to display the prompts shown below. + +Welcome Prompt with the ability to defer a number of times: + +![Installation Welcome With Defer (Light Mode)](../images/psadt-welcome_light.png) + +![Installation Welcome With Defer (Dark Mode)](../images/psadt-welcome_dark.png) + +Welcome Prompt with the ability to close open programs: + +![Installation Welcome With Close (Light Mode)](../images/psadt-closeapps_light.png) + +![Installation Welcome With Close (Dark Mode)](../images/psadt-closeapps_dark.png) + +### Block Application Execution + +If the block execution option is enabled (see [Show-ADTInstallationWelcome](../reference/functions/Show-ADTInstallationWelcome.mdx)), the user will be prompted that they cannot launch the specified application(s) while the installation is in progress. The application will be unblocked again once the installation has completed. + +![Block Execution (Light Mode)](../images/psadt-blockexecution_light.png) + +![Block Execution (Dark Mode)](../images/psadt-blockexecution_dark.png) + +### Custom Installation Prompt + +A custom prompt with PSAppDeployToolkit branding can be displayed using [Show-ADTInstallationPrompt](../reference/functions/Show-ADTInstallationPrompt.mdx). The title and text can be customized, and up to 3 buttons can be included. + +![3 Buttons being used in a custom message box (Light Mode)](../images/psadt-3buttonmsgbox_light.png) + +![3 Buttons being used in a custom message box (Dark Mode)](../images/psadt-3buttonmsgbox_dark.png) + +Additionally, the prompt can be displayed asynchronously, e.g. to display a message at the end of the installation but allow the installation to return the exit code to the parent process without waiting for the user to respond to the message. + +![Async custom message box (Light Mode)](../images/psadt-custommsg_light.png) + +![Async custom message box (Dark Mode)](../images/psadt-custommsg_dark.png) + +### Installation Restart Prompt + +A restart prompt can be displayed with a countdown to automatic restart using the [Show-ADTInstallationRestartPrompt](../reference/functions/Show-ADTInstallationRestartPrompt.mdx). Since the restart prompt is executed in a separate PowerShell session, the PSAppDeployToolkit will still return the appropriate exit code to the parent process. + +![Installation Restart Prompt (Light Mode)](../images/psadt-restarttimer_light.png) + +![Installation Restart Prompt (Dark Mode)](../images/psadt-restarttimer_dark.png) + +### Custom Dialog box + +A generic dialog box to display custom messages to the user without the PSAppDeployToolkit branding using the function [Show-ADTDialogBox](../reference/functions/Show-ADTDialogBox.mdx). This can be customized with different system icons and buttons. + +![Custom Dialog (Light Mode)](../images/psadt-custommsg_light.png) + +![Custom Dialog (Dark Mode)](../images/psadt-custommsg_dark.png) + +### Toolkit Help Console + +The PowerShell App Deployment Toolkit Help Console can be invoked by running the `Show-ADTHelpConsole` command. + +![PowerShell App Deployment Toolkit Help Console](../images/psadt-helpconsole.png) diff --git a/versioned_docs/version-4.1.x/usage/admx-templates.mdx b/versioned_docs/version-4.1.x/usage/admx-templates.mdx new file mode 100644 index 0000000..01e442e --- /dev/null +++ b/versioned_docs/version-4.1.x/usage/admx-templates.mdx @@ -0,0 +1,78 @@ +--- +sidebar_position: 1 +title: 'ADMX Templates' +description: 'How to customize deployments using admx templates' +slug: /usage/admx/admx-templates +tags: + - Usage + - Customizing + - Group Policy + - ADMX Template +--- + +# Group Policy ADMX Templates + +Another way to customize your deployments is with the supplied ADMX templates. + +This is a great way to change, update, or enforce settings across an orginization. + +## Config + +The Group Policy settings will take precedence over local configs and built-in defaults. + +See [Config Settings](../reference/config-settings.mdx) for additional information on what settings are configurable. + +## ADMX Template Files + +The ADMX Template files are located in the `ADMX` folder of either the Module, or the Deployment Template + +### Module Folder + +The `ADMX` folder is located in the root of the module folder: + +![ADMX folder in the Module](../images/psadt-admx-files-module.png) + +### Deployment Template Folder + +The `ADMX` folder is located in the `PSAppDeployToolkit` folder of a deployment template: + +![ADMX folder in a Deployment Template](../images/psadt-admx-files-deployment-template.png) + +### Files + +The `ADMX` folder contains both the `.admx` and `.adml` files. Use these files to import into either your Central Store or Intune + +| Folder | File | Purpose | +|:------------------------|:------------------------|:----------------------------------------| +| **ADMX/** | | | +| | PSAppDeployToolkit.admx | Language neutal policy settings file | +| **en-US/** | | | +| | PSAppDeployToolkit.adml | en-US language policy descriptions file | + +![ADMX Files](../images/psadt-admx-files.png) + +## Group Policy Management Editor + +After importing the files into your central store, you can view the settings under: +``` +Computer Configuration +└───Policies + └───Administrative Templates: Policy definitions + └───PSAppDeployToolkit + ├───Assets + ├───MSI + ├───Toolkit + └───UI +``` + +![ADMX Files](../images/psadt-admx-gpme.png) + +## Registry + +When the Policies apply, the policies can be found in the Registry here: + +``` +HKEY_LOCAL_MACHINE\SOFTWARE\Policies\PSAppDeployToolkit +``` + +![Registry Policy Location](../images/psadt-admx-registry.png) diff --git a/versioned_docs/version-4.1.x/usage/customizing-deployments.mdx b/versioned_docs/version-4.1.x/usage/customizing-deployments.mdx new file mode 100644 index 0000000..d75a5b2 --- /dev/null +++ b/versioned_docs/version-4.1.x/usage/customizing-deployments.mdx @@ -0,0 +1,62 @@ +--- +sidebar_position: 3 +title: 'Customizing Deployments' +description: 'How to customize the look and behavior of a deployment.' +slug: /usage/customizing-deployments +tags: + - Usage + - Customizing +--- + +# Customizing Deployments + +Aside from customizing the `Invoke-AppDeployToolkit.ps1` script, no configuration is required by default. However, these components are configurable: + +### Config + +Use config.psd1 to configure items such as: + +- MSI parameters +- Log settings + +See [Config Settings](../reference/config-settings.mdx) for further information. + +It is recommended to edit file located in the Config folder of the deployment template, rather than the copy located inside of the module itself. + +#### Logging + +The PSAppDeployToolkit generates extensive logging for all toolkit and MSI operations. + +The default log folder for the PSAppDeployToolkit and MSI log files can be specified in config.psd1. The default folder is `C:\Windows\Logs\Software`. + +The PSAppDeployToolkit log file is named after the application with \_PSAppDeployToolkit appended to the end, e.g. + +- `Oracle_JavaRuntime_1.7.0.17_EN_01_PSAppDeployToolkit.log` + +All MSI actions are logged and the log file is named according to the MSI file used on the command line, with the action appended to the log file name. For uninstallation, the MSI product code is resolved to the MSI application name and version to keep the same log file format, e.g. + +- `Oracle_JavaRuntimeEnvironmentx86_1.7.0.17_EN_01_Install.log` +- `Oracle_JavaRuntimeEnvironmentx86_1.7.0.17_EN_01_Repair.log` +- `Oracle_JavaRuntimeEnvironmentx86_1.7.0.17_EN_01_Patch.log` +- `Oracle_JavaRuntimeEnvironmentx86_1.7.0.17_EN_01_Uninstall.log` + +Enable `CompressLogs` in `config.psd1` to collect log files in a temporary folder and zip them at the end of the installation or uninstallation. + +One of the options in config.psd1 is **CompressLogs**. Enabling this option will create a temporary logging folder where you can save all of the log files you want to include in the single ZIP file that will be created from this folder. When set to True, the following happens: + +- Both toolkit and MSI logs are temporally placed in a temp folder, the path of which is set in `$adtSession.LogTempFolder` and defaults to `$envTemp\$installName`. +- At the end of the install / uninstall, the logs are compressed into a new zip file which is placed in the LogFolder location in the config file, and the temp folder is deleted. +- The Zip file name indicates whether it is an Install / Uninstall and has the timestamp in the filename so previous logs do not get overwritten. +- If your package creates other log files, you can send them to the temporary logging folder at `$adtSession.LogTempFolder`. + +### Strings + +Configure the default UI messages. The Strings folder contains the English version of strings.psd1 in the root, with other languages in their respective subfolders. + +See [Language Strings](../reference/language-strings.mdx) for further information. + +### Assets + +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. 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 new file mode 100644 index 0000000..524ffe5 --- /dev/null +++ b/versioned_docs/version-4.1.x/usage/how-to-deploy.mdx @@ -0,0 +1,91 @@ +--- +sidebar_position: 1 +title: 'How to Deploy' +description: 'How to deploy the toolkit using the command line / ConfigMgr / Intune.' +slug: /usage/how-to-deploy +tags: + - Usage + - How to Deploy +--- + +# How to Deploy + +There are two ways to launch the PSAppDeployToolkit for deployment of applications. + +- 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. + +:::note +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. +::: + +:::warning +- If you want to deploy an installer interactively, you can include ServiceUI.exe in your package and use that to trigger your installer. +- However, this is a security risk since any file dialogs or hyperlinks can be abused by the user to gain access as local system. +::: + +### Available parameters + +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. | + +In addition, Invoke-AppDeployToolkit.exe supports the following parameters: + +| Parameter | Values | Description | +| --------- | ------ | ----------- | +| `/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. | + +### Examples + +Deploy an application for installation in interactive mode: +```powershell +Invoke-AppDeployToolkit.exe +``` +or: +```powershell +Invoke-AppDeployToolkit.exe -DeploymentType Install -DeployMode Interactive +``` +
+Deploy an application in silent mode with 3010 reboot 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 +``` +
+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/versioned_docs/version-4.1.x/usage/installing-applications.mdx b/versioned_docs/version-4.1.x/usage/installing-applications.mdx new file mode 100644 index 0000000..7fcc381 --- /dev/null +++ b/versioned_docs/version-4.1.x/usage/installing-applications.mdx @@ -0,0 +1,95 @@ +--- +sidebar_position: 4 +title: 'Installing Applications' +description: 'Guidance for installing applications with PSAppDeployToolkit.' +slug: /usage/installing applications +tags: + - Usage +--- + +# Installing Applications + +## Start-ADTProcess +The `Start-ADTProcess` function can be used to execute a typical setup.exe installer. It provides a number of features over the standard `Start-Process` command, and like all PSAppDeployToolkit functions, provides standard logging. + +### Parameters +Full parameter descriptions can be found in the [Start-ADTProcess](../reference/functions/Start-ADTProcess.mdx) documentation, but here are some of the most commonly used parameters: + +| Parameter | Description | +| ------------- | --------------- | +| -FilePath | Path to the file to be executed. If the file is located directly in the **Files** directory, only the filename needs to be specified. | +| -ArgumentList | Arguments to be passed to the executable. | +| -SecureArgumentList | Hide ArgumentList from the log file. | +| -WorkingDirectory | The working directory used for executing the process. Defaults to the directory of the file being executed. | +| -WindowStyle | Style of the window of the process executed. Options: Normal, Hidden, Maximized, Minimized. | +| -CreateNoWindow | Used with console apps, stop a new window being created and allows capture of the standard output streams. | +| -WaitForMsiExec | Wait until Windows Installer is free before starting the process. | +| -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. | +| -UseShellExecute | Useful for opening a file or URL and letting the Windows shell figure out which application to open it with. | +| -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. | +| -NoTerminateOnTimeout | Specifies that the process should be left running if the timeout is reached. | +| -SuccessExitCodes | List of exit codes to be considered successful. | +| -RebootExitCodes | List of exit codes to indicate a reboot is required. | +| -IgnoreExitCodes | List the exit codes to ignore or * to ignore all exit codes. | +| -PassThru | Returns an object with ExitCode, StdOut, and StdErr output from the process. | + +### Example Usage + +```powershell +Start-ADTProcess -FilePath 'setup.exe' -ArgumentList '/S' +``` + +## Start-ADTProcessAsUser +The `Start-ADTProcessAsUser` function is used to run a process in the context of the currently logged-in user. This should not typically be used to run installers, as it's best practice to create user-context deployments for those with user-context detection rules. However, there are some scenarios where this comes in handy: + +- Some 'Machine wide' installers actually set up a HKLM Run key in the registry to run a user-context installer for every user that logs in. You would normally then need the user to log off and on again to complete the installation. Using this function, you can immediately complete the installation for the logged-in user from the system account. +- When you want to replace a user-context installation with a machine-wide installation, you may want to run the uninstaller in user context to remove the previous version before installing. +- Some applications require a configuration or licensing tool to be run in user context before the application can be used. + +### Parameters +This function is actually a wrapper around `Start-ADTProcess`, which also accepts a `-Username` parameter on top of the options listed above, therefore the parameters available are almost identical. +Full parameter descriptions can be found in the [Start-ADTProcessAsUser](../reference/functions/Start-ADTProcessAsUser.mdx) documentation, but here are some of the most commonly used ones that are only available when starting processes as a user: + +| Parameter | Description | +| ------------- | --------------- | +| -UseLinkedAdminToken | Run the process with the user's admin token if available. | +| -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. | + +### Example Usage + +```powershell +Start-ADTProcess -FilePath '%LOCALAPPDATA%\Programs\SomeApp\Uninstall.exe' -ArgumentList '/S' -ExpandEnvironmentVariables +``` + +## Start-ADTMsiProcess +For installing / uninstalling / repairing MSI files, use the `Start-ADTMsiProcess` function. + +### Parameters +Again this wraps `Start-ADTProcess` and provides a lot of the same parameters, but also includes some additional parameters specific to MSI installations. +Full parameter descriptions can be found in the [Start-ADTMsiProcess](../reference/functions/Start-ADTMsiProcess.mdx) documentation, but here are some of the most commonly used parameters specific to this function: + +| Parameter | Description | +| ------------- | --------------- | +| -Action | The action to perform on the MSI file. Options: Install, Uninstall, Repair, Patch. Defaults to Install. | +| -FilePath | Path to the MSI file to be executed. If the file is located directly in the **Files** directory, only the filename needs to be specified. | +| -ProductCode | The product code of installed MSI file; only valid for Repair/Uninstall operations. | +| -InstalledApplication | Allows you to perform MSI operations by piping output from the [Get-InstalledApplication](../reference/functions/Get-ADTApplication.mdx) function. | +| -ArgumentList | Arguments to be passed to the MSI file. Note that this **replaces** the default MSI parameters defined in the config (e.g. `/qn REBOOT=ReallySuppress`) | +| -AdditionalArgumentList | Additional arguments to be appended to the default MSI parameters defined in the config. This is what you will typically use when setting MSI properties. | +| -Transforms | Names of the MST transform files to be applied to the MSI. MST files should be located in the same directory as the MSI file. | +| -Patches | Names of the MSP patch files to be applied to the MSI. MSP files should be located in the same directory as the MSI file. | +| -RepairMode | Specify `Reinstall` (default) to reinstall by adding `REINSTALL=ALL REINSTALLMODE=omus` to the standard InstallParams, or `Repair` to repair via `msiexec.exe /p` (which can trigger unsupressable reboots). | +| -RepairFromSource | Adds `REINSTALLMODE=vomus` to the command line to force the cached MSI to be replaced with the source MSI file. | +| -SkipMSIAlreadyInstalledCheck | Attempt to install if already installed, or uninstall if not detected. | + +### Example Usage + +```powershell +Start-ADTMsiProcess -Action 'Install' -FilePath 'SomeApp.msi' -Transforms 'SomeApp.mst' -AdditionalArgumentList 'SERIAL=12345' -SecureArgumentList +``` diff --git a/versioned_sidebars/version-4.0.0-sidebars.json b/versioned_sidebars/version-4.0.x-sidebars.json similarity index 100% rename from versioned_sidebars/version-4.0.0-sidebars.json rename to versioned_sidebars/version-4.0.x-sidebars.json diff --git a/versioned_sidebars/version-4.1.x-sidebars.json b/versioned_sidebars/version-4.1.x-sidebars.json new file mode 100644 index 0000000..498e22a --- /dev/null +++ b/versioned_sidebars/version-4.1.x-sidebars.json @@ -0,0 +1,87 @@ +{ + "documentation": [ + "introduction", + { + "type": "category", + "label": "Getting Started", + "link": { + "type": "generated-index" + }, + "collapsed": false, + "items": [ + "getting-started/licensing", + "getting-started/requirements", + "getting-started/download", + "getting-started/creating-a-new-deployment", + "getting-started/release-notes", + "getting-started/upgrade-guidance-4x-to-v41", + "getting-started/upgrade-guidance-v3x-to-v41", + "getting-started/faq" + ] + }, + { + "type": "category", + "label": "Deployment Concepts", + "link": { + "type": "generated-index" + }, + "collapsed": false, + "items": [ + "deployment-concepts/deployment-structure", + "deployment-concepts/invoke-appdeploytoolkit", + "deployment-concepts/zero-config-deployment" + ] + }, + { + "type": "category", + "label": "Usage", + "link": { + "type": "generated-index" + }, + "collapsed": false, + "items": [ + "usage/how-to-deploy", + "usage/adding-ui-elements", + "usage/customizing-deployments", + "usage/installing-applications", + "usage/admx-templates" + ] + }, + { + "type": "category", + "label": "Examples", + "link": { + "type": "generated-index" + }, + "collapsed": false, + "items": [ + "examples/admxtemplate-LogPath" + ] + } + ], + "reference": [ + "reference", + "reference/adtsession-object", + "reference/variables", + "reference/module-structure", + "reference/config-settings", + "reference/language-strings", + "reference/text-formatting", + "reference/exit-codes", + "reference/v4-function-mapping", + { + "type": "category", + "label": "Functions", + "link": { + "type": "generated-index" + }, + "collapsed": false, + "items": [ + { + "type": "autogenerated", + "dirName": "reference/functions" + } + ] + } + ] +} diff --git a/versions.json b/versions.json index 7fbe89d..ac21370 100644 --- a/versions.json +++ b/versions.json @@ -1,4 +1,5 @@ [ - "4.0.0", + "4.1.x", + "4.0.x", "3.10.2" ]