Skip to content
Choose a tag to compare

Version 3.8.4 [26/01/2021]

  • Fixed Boolean parameters not being passed to Execute-Process
  • Changed Show-InstallationWelcome:
    • Buttons are now wider
    • Listbox is also wider so it is aligned with buttons
    • Countdown is now bigger and in bold
    • Appname is now in bold to be more visible
    • Function now internally closes processes by name not by ID
    • Fixed the hidden abort button not working on toolkit timeout
    • Performance improvements
  • Changed Show-InstallationPrompt:
    • Fixed the hidden abort button not working on toolkit timeout
    • Buttons are now identical in size and position to the ones in Show-InstallationWelcome
    • Increased the gap between the banner and the text when the message is too short
    • The function now doesn't call Close-InstallationProgress when running in async mode
  • Changed Show-InstallationRestartPrompt:
    • Reworked the window to look consistent with Show-InstallationWelcome
  • Changed Show-InstallationProgress:
    • Reworked the window to look consistent with Show-InstallationWelcome
    • Function now logs when it is being bypassed due to Deploy Mode
  • Changed Set-ActiveSetup:
    • Fixed an issue where the function was adding executed active setup registry key when -ExecuteForCurrentUser $false was specified
    • Function now checks the Active Setup registry key to evaluate whether to execute the StubPath based on the IsInstalled property
  • Fixed typo in Stop-ServiceAndDependencies saying "start" instead of "stop"
  • Fixed the toolkit checking task scheduler services twice
  • Fixed the toolkit not creating $app variables if they are not created in Deploy-Application.ps1
  • Reworked Close-InstallationProgress so it waits a couple of seconds in case the window is not opened yet
    • This fixes an issue where the Show-InstallationProgress dialog would not get closed on slower machines where Close-InstallationProgress was called right after Show-InstallationProgress
    • Function now gets bypassed in Silent Deploy Mode
  • Changed Execute-ProcessAsUser:
    • The function now escapes invalid xml characters prior to using them in a xml file
  • Fixed signatures for a couple of functions inside AppDeployToolkitMain.cs based on official documentation - No breaking changes
  • Performance improvements across the toolkit
  • Fixed a bug in Set-ItemPermission where SID translation did not work correctly
  • Changed Show-BalloonTip:
    • Function Show-BalloonTip now logs when it is being bypassed
    • Added parameter -NoWait for asynchronous execution
    • The icon tooltip now contains Title - Text
  • Fixed an issue where $envLogonServer would start with backslashes
  • Fixed an issue where some global variable did not get cleared on exit
    • This caused an issue if you ran multiple toolkits in the same powershell session. It would use the same log file for all toolkits.
    • This only occured if you used the .ps1 files directly. Deploy-Application.exe opens a new session each time.
  • Added function Set-Shortcut that allows you to change existing shortcuts
  • Added function Get-Shortcut to retrieve information from a shortcut
  • Changed New-Shortcut:
    • BREAKING CHANGE: IconIndex parameter is now an Integer. It was previously incorrectly specified as a String.
    • Reworked the way this function sets shortcut to run as admin
    • Added additional checks for the input Path in order to provide better log messages and better handling of relative paths
    • Improved function help text
  • Changed the way Execute-MSI handles paths for Transforms and Patches:
    • The only accepted separator is now a semi-colon. Commas can be a part of the paths now.
    • Double quotes are removed from the paths before the entire string is wrapped in double quotes.
  • Encoding of the files has been changed back to UTF8 with BOM, back from UTF8 without BOM:
    • We chose to go with UTF8 without BOM because it is the encoding for Powershell v6+ and because it is one of the most popular encodings in the world.
      However this caused issues on Windows Powershell for clients that use a different language from English. Due to Microsoft's chaotic coding decisions, Powershell uses the BOM as a verification that the code is written with non-English characters.
      In their own words:"It's not possible to force PowerShell to use a specific input encoding. PowerShell 5.1 and below, running on Windows with the locale set to en-US, defaults to Windows-1252 encoding when there's no BOM.
      Other locale settings may use a different encoding. To ensure interoperability, it's best to save scripts in a Unicode format with a BOM."
    • Just like changing to UTF8 without BOM, this will not affect the size of the files or their functionality. BOM or Byte Order Mark is just one special character, placed at the start of the files.
      If you do not use the toolkit on machines with a different language, then this will have no effect on you or your clients. It will however help everyone else display the text in their language correctly.
Choose a tag to compare

Version 3.8.3 [01/10/2020]

  • Added function Set-ItemPermission that allows you to easily change permissions on files or folders.
  • Added setting READ permissions to BUITLTIN\Users for toolkit's temporary folder so they can get the popup message.
  • Added -AddParameters for Execute-MSP, that lets you add additional parameters.
  • Added -ExecuteForCurrentUser for Set-ActiveSetup, which allows you to disable executing the StubExePath for the current user.
  • Added -UseShellExecute for Execute-Process:
    • WindowStyle Hidden doesnt usually work without this parameter on. CreateNoWindow will usually not work without this off.
    • This parameter changes the way the application is started. It is similar to entering a path into the Run dialog or into the Windows Explorer. If it is a file not an application, then the Shell will open it in a program assigned for this extension. The Shell does not stand for command shell but for operating system shell. It also changes how Working Directory is used.
    • If this parameter is set to $true there is no output/error stream. Only an exit code. Default value is $false which was also the case before, however you couldnt change it through parameters previously.
    • Expanded description for WindowStyle, CreateNoWindow and WorkingDirectory parameters.
  • Added return value for Execute-Process with -PassThru and -NoWait specified: Returns an object with Id, Handle and ProcessName.
  • Added config paths to the config file for installations where RequireAdmin is False.
  • Added revised documentation which is now included as a PDF.
  • Changed Variables to no longer rely on the system variable PATH for system applications.
  • Changed default -Source value for Write-Log to a more useful value: it will be set to Parent's function name and if not inside a function then the name of the script. If not inside a function or a script, then the value will be set to 'Unknown'.
  • Changed UnBlock-AppExecution and Block-AppExecution so they don't run without admin rights. Instead of throwing an error, they only write and entry to the log.
  • Changed Execute-MSI so when the action is Patch, two variables REINSTALL and REINSTALLMODE are appended to parameters as specified here:
  • Changed timestamp of compressed toolkit logs to 24h format to avoid possible double filenames.
  • Changed Get-ScheduledTask to Get-SchedulerTask to resolve the conflict on Windows 10 and added an alias on Powershell versions where this function does not exist.
  • Changed logging inside Convert-RegistryPath to be disabled by default, to decrease log clutter.
  • Changed registry paths to no longer use registry PSDrives and contain full paths.
  • Changed Show-InstallationPrompt so the window scales with the amount of text entered and removed unused space. If there is no icon specified, the text will scale the entire width too.
  • Changed Show-InstallationRestartPrompt so it restarts the computer in Silent and VerySilent deploy modes.
    • Added NoSilentRestart parameter for the function to retain previous behaviour, which defaults to True.
    • Renames 'Restart Later' to 'Minimize' to make it more clear to the user.
  • Fixed visual bugs in Show-InstallationWelcome.
    • The application name is now always displayed.
    • Fixed uncentered text.
    • Height of the window is now not limited and scales with the text.
    • Removes unused variables.
  • Fixed uses of Execute-Process throughout the toolkit with the -PassThru parameter since -PassThru no longer ignores exit codes.
  • Fixed issue with $envOSVersionRevision not being populated on Windows 8 because the "UBR" registry value is only being checked if "$envOSVersionMajor = 10".
  • Fixed an issue where the correct ProgramFiles and CommonProgramFiles paths were not populated if the Toolkit was launched from a 32-bit process on a 64-bit OS.
  • Fixed Powershell 2.0 issues with GetHostEntry and GetFolderPath.
  • Fixed the issue with config file being read incorrectly and showing incorrect charaters in the UI.
  • Fixed Get-UserProfiles so it ignores "defaultuser0" account.
  • Fixed a rare issue in Execute-ProcessAsUser causing an error, because of a negative index for SubString.
    • Improved logging in the function.
    • CMD will now be started silently without a popup just like powershell.
Choose a tag to compare

Version 3.8.2 [08/05/2020]

Security Notice

  • Fixed security issue that could allow elevation of privilege related to the toolkit temp file path [Reserved CVE-2020-10962]
    • The script temp file path was set to a location that was writeable by a standard user. This is set in the configuration XML.
    • This security risk only affects deployments that use the Show-InstallationWelcome function with the parameter -BlockExecution or the internal function Block-AppExecution AND are running with elevated permissions AND can be exploited only while the script is running.
    • To further minimize the risk of an attacker using this to gain additional permissions, it has been moved to a write-protected location.
    • Note: This change will break deployment scripts that run with Standard User rights. While this has been technically possible to do, we are not aware of anyone doing this. As such, we feel this is the safest course of action for the overall PSADT userbase.
    • Additionally, a standalone PowerShell script was created, to identify and remediate the issue on existing PSAppDeployToolkit deployment packages. It can be found here:

Breaking Changes

  • Changed behavior of parameters in Execute-Process. This is a breaking change which may require changes to deployment scripts:
    • Changes to behavior are being made to reduce confusion around the wording of parameters when a custom workflow is required.
    • No changes required if your deployment script does not have custom handling of exceptions / exit codes.
    • ContinueOnError was scoped to ignore non-zero exit codes. It now operates at the function level and will allow continuing if an unknown exception occurs.
    • If Passthru was specified, all non-zero exit codes and exceptions were ignored. Now, both event types cause a Script Failure.
      • To ignore specific exit codes, use the new IgnoreExitCodes parameter, using * to ignore all.
      • To stop the script if the process fails, use the ExitOnProcessFailure parameter.
    • Execute-Process would fail if an exception occurred, even when ContinueOnError was specified. It now ignores exceptions as expected.
    • ContinueOnError now ignores exceptions as expected. To ignore specific exit codes, use the IgnoreExitCodes parameter.


  • Added new parameters to the Execute-MSI function:
    • NoWait. Allows immediately returning to the script once the process has been started, without waiting for it to complete (Default: False).
    • IgnoreExitCodes. Allows ignoring specific or all exit codes returned by the process (Default: None).
    • PriorityClass. Allows changing the process priority immediately after process starts (Default: Normal).
    • ExitOnProcessFailure. Allows setting the script to immediately stop if the process fails and returns the exit code to the caller (e.g. SCCM) (Default: True).
    • RepairFromSource. Allows rewriting local msi cache and repair installation from source
  • Added new parameters to the Execute-Process function:
    • IgnoreExitCodes. now supports ignoring all exit codes returned by the process (Default: None).
    • PriorityClass. Allows changing the process priority immediately after process starts (Default: Normal).
    • ExitOnProcessFailure. Allows setting the script to immediately stop if the process fails and returns the exit code to the caller (e.g. SCCM) (Default: True).
  • Added async reading of standard error stream to Execute-Process
  • Added restoring of PowerShell window title on script exit
  • Changed function Remove-InvalidFileNameChars to only retrieve Invalid Filename Characters once per script execution, instead of once per each function call
  • Improved handling of application install title / name variables
  • Fixed issue where exceptions were bypassed in Execute-Process with PassThru parameter specified.
  • Fixed issue where multiple processes were displayed in the Show-InstallationWelcome dialog when the same process has multiple descriptions.
  • Fixed a number of typos in the documentation.
  • Reverted part of the function Get-InstalledApplication that was causing slowdowns
  • Removed unused variable $processStarted.
  • Added parameter -WorkingDirectory for Execute-ProcessAsUser
  • Fixes for Slovak and Czech translations
Choose a tag to compare

Version 3.8.1 [28/03/2020]

  • Added support for Repair as an action type (e.g. Install, Uninstall, Repair)
  • Added disabling of the close button for the Show-InstallationProgress window
  • Added ability to Execute-ProcessAsUser function to run PowerShell scriptblocks
  • Added ability to retrieve Product Version in Get-FileVersion
  • Added ability to display help for custom functions in the AppDeployToolkitHelp UI
  • Added ability to disable recursion in Remove-Folder
  • Added Remove-InvalidFileNameChars function and implemented across the toolkit
  • Added Powershell window renaming, in case it's visible to the user
  • Added Czech translations
  • Changed -In parameter usage to .Contains as -In parameter not supported in PowerShell 2.0
  • Changed Banner image to use Cascadia Code as primary font
  • Improved documentation
  • Improved Dutch translations
  • Improved logging in Get-InstalledApplication
  • Fixed issue in Set-PinnedApplication where pin action on StartMenu is case sensitive on Windows 10
  • Fixed Set-ActiveSetup purging incorrectly testing registry values
  • Fixed issue with Deploy-Application.exe where it would prompt to download .NET Framework 3.5 on Windows 8 and above
  • Added default -Source parameter value for Write-Log to fix CMTrace not displaying severity
Choose a tag to compare

Version 3.8.0 [09/23/2019]

  • Added ability to change the dialog banner height, with a configurable maximum
  • Added ability to change the dialog banner and icon filename through the configuration file
  • Added support for animated gifs in the dialog banner
  • Added a dynamic dialog banner height with a configurable maximum to the dialogs
  • Added support for flattening folder structure within Copy-File with -Flatten switch
  • Added architecture independence for Zero Touch MSIs where filename ends in x64.msi or x86.msi
  • Added logging to Remove-Folder function so it is also traceable in the log file when successful
  • Changed ProcessObjects parameter in Get-RunningProcesses function to mandatory=$false so Show-InstallationWelcome without CloseApps parameter does not fail
  • Changed encoding of AppDeployToolkitConfig.xml to UTF-8 (was incorrectly UTF16)
  • Fixed an issue where Execute-Process -MsiExecWaitTime used ticks instead of seconds
  • Fixed a number of glitches relating to illegal characters and locale-specific time / date formats
  • Fixed Get-RunningProcessesDynamically .NET error in Show-WelcomePrompt
  • Fixed issue with Write-Log creating bad formatting for CMTrace in non-English cultures
  • Fixed issue with non-standard quote characters in the Execute-MSP function
  • Fixed issue where Show-WelcomePrompt hangs when ForceCloseAppsCountdown is passed to Show-InstallationWelcomePrompt and application(s) listed in CloseApps are not running when timeout is reached
  • Fixed issue where Set-PinnedApplication did not pin to / unpin from taskbar on Windows 10 because Microsoft removed the taskbar verbs
  • Fixed issue where Get-InstalledApplication only supported Basic Latin unicode characters by removing logic which "removes any control characters which might interfere with logging and creating file path names from these variables", as the creation of file name is only used in Execute-MSI function and the logic there already replaces invalid filename characters
  • Fixed issue where Get-LoggedOnUser failed to detect if user is member of the Administrators group, when Administrator group has an orphaned account listed
  • Fixed issue where active setup execution fails when StubExePath contains ps1 file in Set-ActiveSetup function
  • Fixed issue where Show-InstallationPrompt would not show when using Title parameter in combination with NoWait
  • Fixed issue where defertimes would not decrease from 1 to 0 when Show-InstallationWelcome prompt timed out
  • Fixed issue where a .NET Framework error would appear saying the term 'Get-RunningProcessesDynamically' was not recognized
  • Fixed an ActiveSetup purging error
  • Fixed typo in Remove-Folder function
  • Fixed examples in Enable/Disable-TerminalServerInstallMode
  • Fixed detection of wired network connections in Test-NetworkConnection function on Windows 10 workstations
  • Updated the AppDeployToolkit logo to match the website
Choose a tag to compare

Version 3.7.0 [02/13/2018]

  • Added the ability to dynamically re-enumerate running applications while displaying the Show-InstallationWelcome prompt. If the CloseApps processes were not running when the prompt was displayed and are subsequently detected to be running, the prompt will be updated with the apps to close. If the CloseApps processes were running when the prompt was displayed and are subsequently detected not to be running, then the installation will automatically continue if no deferral is available. If the CloseApps processes change (new processes launched or running processes closed), the list box will dynamically update every 2 seconds to reflect the currently running applications.
  • Added ContinueFileCopyOnError parameter to the File-Copy function to continue copying files if an error is encountered.
  • Added error handling to catch errors retrieving/deleting scheduled task in Unblock-AppExecution
  • Added detection of App-V pending tasks to the Get-PendingReboot function
  • Added support for creating a hotkey to the New-Shortcut function
  • Added the parameter type column to the logging function
  • Added the Win32_BaseService class to the Test-ServiceExists function
  • Added environment variables; CurrentUILanguage
  • BREAKING CHANGE, The "Regex" filter in Remove-MSIApplications previously escaped RegEx characters, but now parses a RegEx statement as expected. Added "Contains" filter which emulates RegEx filter from previous version.
  • Re-named "Refresh-Desktop" to "Update-Desktop" and "Refresh-SessionEnvironmentVariables" to "Update-SessionEnvironmentVariables" to conform to approved Cmdlet verbs, an alias preserves backwards compatibility with the previous function names
  • Fixed issue where OS Revision Version is not always retrieved correctly in Windows 10
  • Fixed issue in Copy-File where it was not possible to copy an array of file objects
  • Fixed issue in Set-RegistryKey where registry keys with forward slashes now contains actual forward slash [char]0x002F instead of [char]0x2215
  • Fixed issue in Execute-ProcessAsUser where result from the task scheduler could not be parsed on non-English language systems. Fix applies for Vista and higher
  • Fixed issue in Execute-ProcessAsUser which could delete the task before executing it if used without the Wait switch
  • Fixed issue in Execute-ProcessAsUser to allow parameters ending with a double quote
  • Fixed issue where Test-Powerpoint erroneously returned False on non-English language systems
  • Fixed issue where zero-config MSI would run when Show-InstallationRestartPrompt is called
  • Fixed issue where BalloonTip doesn't launch asynchronously when initiated from Exit-Script
  • Fixed case sensitivity in the shortcut path passed to New-Shortcut
  • Fixed issue in Remove-File where a confirmation dialogue would hang the script if a non-empty folder is encountered when the Recurse switch is not specified
  • Fixed issue with white spaces in scheduled task creation breaking the -BlockExecution parameter
  • Fixed missing information in documentation and fixed encoding issue with AppDeployToolkitConfig.xml
  • Fixed issue where TopMost parameter in Show-DialogBox function could not be set to $false
  • Removed PS v3.0 minimum check for Get-Hotfix cmdlet used in Test-MSUpdates
  • Improved parameter validation on -CheckDiskSpace and -RequiredDiskSpace paramters in Show-InstallationWelcome prompt
  • Improved comments and documentation
Choose a tag to compare

Version 3.6.9 [02/12/2017]

  • Added SecureParameters parameter to additional section of Execute-ProcessAsUser
  • Added SecureParameters parameter to Execute-ProcessAsUser
  • Added -RegEx parameter to Get-InstalledApplication and modified the help text for the -Name parameter
  • Added DoNotExpandEnvironmentNames parameter to Get-RegistryKey to enable retrieving of unexpanded REG_EXPAND_SZ values
  • Added expandstring functionality to the MSI_InstallParams, MSI_SilentParams, and MSI_UninstallParams XML properties
  • Added support for Windows 10 to the function Set-PinnedApplication to enable pinning and unpinning to the Start Menu
  • Added IncludeUpdatesAndHotfixes Parameter to Execute-MSI and Remove-MSI functions
  • BREAKING CHANGE, Changed variable envCommonPrograms to envCommonStartMenuPrograms
  • Changed behavior of Remove-Folder function to continue deleting files recursively when an error is encountered when $ContinueOnError is used
  • Changed severity of failure messages created in the Set-PinnedApplication to warning (2) from error (3)
  • Changed .ps1 script files so that they are UTF-8 BOM encoded so that you can digitally sign files on non-unicode language systems
  • Fixed issue in Exit-Script where the system tray icon was not being removed at the end of the script
  • Fixed issue in Remove-MSIApplication which caused the function to fail in the case of multiple filtered or excluded applications
  • Fixed issue in Get-PendingReboot where detection of a pending SCCM reboot would cause a fatal error for some clients
  • Fixed issue in Test-MSUpdates giving preference to the Get-Hotfix cmdlet for detecting updates
  • Fixed issue where variable envOSVersion was inconsistent in Windows 8 and 8.1 workstations
  • Fixed issue in Execute-ProcessAsUser with Powershell script execution
  • Fixed issue in Test-MSUpdate which returned a false positive when searching for an installed update
  • Fixed typo in Get-HardwarePlatform function
  • Fixed issue in Set-RegistryKey where registry keys with forward slashes were treated like backslashes and broken up into subkeys
  • Fixed issue in Remove-RegistryKey function where it failed to delete the (Default) value when specified due to limitation of Remove-ChildItem cmdlet
  • Fixed issue in New-Shortcut to use Rename-Item parameter name that is compatible with PS 2.0
  • Fixed issue in Get-RegistryKey function which caused it to ignore the (Default) value
Choose a tag to compare

Version 3.6.8 [02/06/2016]

  • Added environment variables with additions for Pictures, Templates, and Common User locations
  • Added SecureParameters parameter to Execute-MSI and Execute-Process functions
  • Added language translations for Slovak, Hungarian and also updated translations for German
  • Added ParentProcessId property to Get-WindowTitle
  • Fixed issue in Remove-File where deleting of multiple files would stop silently on first error and added LiteralPath parameter
  • Fixed issue in the Uninstall Office 2013 Deploy-Application example where an incorrect variable was referenced to determine if a user session was present for the script execution
  • Fixed issue in Test-MSUpdates where a fatal error occured when no update history is present on the target system
  • Fixed issue in Install-MSUpdates where the full path to the update file was not passed to Execute-Process for installation
  • Fixed issue where Get-InstalledApplication throws an error when attempting to import invalid registry values from the subkeys of the Uninstall key
  • Fixed formatting of window title name when showing the blocked app dialog window or the restart computer window
  • Fixed issue in Test-PowerPoint where detection did not work if there were multiple screens or if presentation was on screen without mouse focus
  • Fixed issue in Get-RegistryKey where reading an empty value or a DWord value of 0 caused function to return $null
  • Fixed issue in Set-DeferHistory where function did now log $deferTimesRemaining and referenced an incorrect variable name instead
  • Fixed issue in Get-HardwarePlatform where function did not detect Microsoft Surface hardware correctly
  • Fixed issue in Remove-MSIApplications to make sure that an invalid ProductCode is not passed to the Execute-MSI function
  • Improved toolkit so that asynchronous executions of the toolkit write to the same log file instead of creating a new one
  • Improved Get-InstalledApplication to verify ProductCode is valid product code before storing value, also added UninstallSubkey property
  • Improved toolkit to allow setting custom $InstallTitle and $InstallName in Deploy-Applicatio
  • Improved temporary logging folder naming convention to include deployment type in the name
  • Improved Office example script by updating Offscrub13.vbs to latest version from Microsoft, fixes issue with completion notice
  • Improved error handling in the Get-InstalledApplication function
  • Improved error handling in the Test-MSUpdates function
  • Improved Execute-MSI so that environment variables created by MSIs are always updated for Windows Explorer
  • Improved Execute-Process function to capture out of range exit codes and return custom 60013 exit code
  • Improved Remove-RegistryKey function to write warning instead of error to log if a property being deleted does not exist
  • Improved Get-PendingReboot function to check if "ROOT\CCM\ClientSDK\CCM_ClientUtilities" WMI class exists before executing method
  • Improved Show-BalloonTip function to suppress balloon notifications if a PowerPoint presentation is in fullscreen slideshow mode or presentation mode
  • Improved comments and documentation
Choose a tag to compare

Fixed critical issue introduced in last release:

  • Fixed Write-Log issue introduced in v3.6.6 that created malformed CMTrace type log files
  • Updated documentation to add section on how to use zero-config MSI install option
Choose a tag to compare

Lots of improvements and bug fixes:

  • Added error handling for Remove-RegistryKey function when used on key with child keys and -Recurse parameter not used to avoid script hanging
  • Added ability in Remove-MSIApplications to filter the list of results returned by Get-InstalledApplication to only those that should be uninstalled
  • Fixed issue with Set-ServiceStartMode where setting the service to Automatic will set it to Automatic (Delayed Start)
  • Fixed issue introduced in v3.6.5 where blocked application dialog did not display for blocked applications
  • Fixed issue with $appRevision being appended to $installName if not defined
  • Fixed issue in Show-InstallationPrompt with $installName being passed instead of $Title for -ReferringApplication parameter when -NoWait option specified
  • Fixed issue in Test-MSUpdates where information about the discovered KBArticle was not being converted to readable text before being logged
  • Fixed issue with detecting UI language by removing faulty detection method for Windows 8
  • Fixed issue in Block-AppExecution by removing illegal characters such as "&" from the arguments string of the XML file before importing it
  • Fixed issue in Get-InstalledApplication where invalid data in the registry could terminate enumeration of the registry
  • Fixed issue with compiling scripts to EXE by removing support for alternative PowerShell hosts from AppDeployToolkitMain.ps1 file
  • Fixed typo in config XML file for Swedish language message for 'ClosePrompt_CountdownMessage'
  • Fixed issue in Show-InstallationWelcome where $notesPath was not defined before it was used
  • Fixed issue in Show-InstallationWelcome where all process names were not enumerated on PS2.0 when trying to close notes processes
  • Changed message update priority, to increase it, from 'Normal' to 'Send' in Show-InstallationProgress (should hopefully address reports that messages do not display on screen on time)
  • Changed Set-Acl and Get-Acl -LiteralPath parameter to -Path in function New-ZipFile as -LiteralPath is not available in PS 2.0
  • Changed $global: variables to $script: variables as these two scopes are the same in the context of the powershell console that executes the script
  • Improved registry functions to throw error if registry hive not specified
  • Improved comments and documentation