Skip to content

@sintaxasn sintaxasn released this May 8, 2020 · 27 commits to master since this release

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.

Other

  • 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
Assets 3

@sintaxasn sintaxasn released this Mar 29, 2020 · 73 commits to master since this release

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
Assets 3

@sintaxasn sintaxasn released this Sep 23, 2019 · 127 commits to master since this release

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 sayinh 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
Assets 3

@seanlillis seanlillis released this Feb 13, 2018 · 193 commits to master since this release

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
Assets 3

@amotaz amotaz released this Feb 13, 2017 · 243 commits to master since this release

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
Assets 3

@mmashwani mmashwani released this Feb 6, 2016 · 289 commits to master since this release

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
Assets 3

@mmashwani mmashwani released this Sep 22, 2015 · 370 commits to master since this release

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
Assets 3

@mmashwani mmashwani released this Sep 22, 2015 · 372 commits to master since this release

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
Assets 3

@mmashwani mmashwani released this Aug 17, 2015 · 401 commits to master since this release

Lots of important fixes and improvements:

  • Added function New-MsiTransform to allow creation of transform files for MSI databases. Supporting functions: Set-MsiProperty, Invoke-ObjectMethod, Get-ObjectProperty.
  • Added ability in Remove-MSIApplications to exclude software from being uninstalled by matching against specified property/value/match-type pairs
  • Added function Get-PendingReboot to get pending reboot status for the local computer (thanks to user 'That-Annoying-Guy' for the original code)
  • Added function Test-RegistryValue to check for the existence of a registry value, needed to support Get-PendingReboot function
  • Added ability to install MSP files as part of a zero-config MSI install
  • Added ability to Get-MsiTableProperty to apply a list of transform files to an MSI database after opening it. Also added ability to read properties from MSP files. Also added -GetSummaryInformation parameter to allow reading of Summary Information from a Windows Installer database file.
  • Added support for retrieving $MyInvocationInfo when using alternative PowerShell hosts such as with Sapien PowerShell compiled EXEs
  • Added following variables: $currentDateTime, $envLogicalDrives, $envUserCookies, $envUserDesktop, $envUserFavorites, $envUserInternetCache, $envUserInternetHistory, $envUserMyDocuments, $envUserSendTo, $envUserStartMenu, $envUserStartMenuPrograms, $envUserStartUp, $envSystem32Directory
  • Added function New-ZipFile to allow creating zip archives, cleaned up the code for zipping the log folder from the Exit-Script function
  • Fixed issue with Get-WindowTitle which caused the -PromptToSave functionality in Show-InstallationWelcome to fail on Win 7 PowerShell 2.0 machines
  • Fixed issue with Show-WelcomePrompt which caused the -TopMost $false option to not work (also affected Show-InstallationWelcome)
  • Fixed issue introduced in v3.6.3 where Norwegian language code in config XML was changed to NO. Code reverted back to NB as this is the proper code for the Bokmål written language supported by Windows.
  • Fixed issue introduced in v3.6.4 by adding back a double quote to the .vbs file generated by Execute-ProcessAsUser (initial reported issue was caused by bad code in the example which has been fixed)
  • Fixed issue in Refresh-Desktop which caused refreshing the global process environment block to fail
  • Fixed issue in Test-MSUpdates where updates that had been uninstalled were detected as installed by the Office updates dectection method
  • Fixed issue with detecting user's display UI on XP from registry key 'HKCU\Control Panel\International\Locale', and fixed type in one of the other registry paths checked
  • Fixed issue in Set-ActiveSetup so that HKCU active setup registry keys are created when stubpath is executed for currently logged in user so that it does not execute a second time when user logs into account
  • Fixed issue with New-Folder function displaying console output
  • Fixed issue with Get-MsiTableProperty where reading the property table for a second MSI would throw an error unless -Force parameter specified
  • Fixed issue with the zip compressed log files only being accessible to elevated users
  • Fixed issue with Show-InstallationRestartPrompt where the PSADT restart prompt prevented a manual user initiated Windows Shutdown from being executed
  • Fixed issue with Show-InstallationPrompt and Show-InstallationRestartPrompt where the dialog would be displayed in Silent Mode
  • Fixed issue in Get-InstalledApplication where -ErrorAction could prematurely stop function if permissions issue while enumerating registry keys
  • Fixed issue with Invoke-HKCURegistrySettingsForAllUsers where registry profiles would fail to unload
  • Fixed issue where the final (asynchronous) balloon tip would not display
  • Fixed issue with Zero-Config MSI installations not being able to handle MST files
  • Fixed issue with Get-MsiTableProperty where handle to MSI database file was not released by powershell.exe after reading properties
  • Fixed issue with Close-InstallationProgress where $global:ProgressRunspace was not closed
  • Fixed issue where the toolkit would terminate in session zero due to absence of user domain variable
  • Changed 5000 exit code for "InstallationDefer_ExitCode" in config XML to 60012 to be in line with newly defined exit code ranges for the toolkit
  • Changed Deploy-Application.ps1 to allow exiting with custom exit code if failure to parse toolkit
  • Changed registry manipulation functions to use -LiteralPath instead of -Path because * and ? are rare but valid characters for registry names
  • Changed Show-InstallationWelcome and Show-WelcomePrompt to allow display of custom message from XML by using -CustomMessage parameter. Also added -ForceCountdown to allow us to have a countdown timer with the defer option on the welcome screen.
  • Changed variable $envTemp to use recommended method of retrieving temp folder path
  • Improved Exit-Script so that it is possible to manually exit the script with a 3010 or 1641 exit code and trigger an SCCM "Soft Reboot"
  • Improved comments and documentation
Assets 3

@sintaxasn sintaxasn released this Apr 11, 2015 · 588 commits to master since this release

Lots of improvements and fixes!

  • Added Zero-Config deployment for MSI files. No need to customize anything. Drop your MSI in the Files folder and run the toolkit. Information is pulled from the MSI to do branding, logging, and closing in-use processes.
  • Added -DisableLogging switch to Deploy-Application.ps1 to disable logging to file for the script
  • Added -SoftwareUpdatesScanWaitInSeconds and -WaitForPendingUpdatesTimeout parameters to Install-SCCMSoftwareUpdates
  • Added -WildCard search option to Get-InstalledApplication and Remove-MSIApplications
  • Added -PassThru option to Test-Battery which will return the following properties: IsLaptop, IsUsingACPower, ACPowerLineStatus, BatteryChargeStatus, BatteryLifePercent, BatteryLifeRemaining, BatteryFullLifetime
  • Added following parameters to Remove-MSIApplications to match those in Execute-MSI: -Parameters, -AddParameters, -LoggingOptions, -LogName
  • Added default active username for -UserName parameter in Execute-ProcessAsUser
  • Added -SkipMSIAlreadyInstalledCheck parameter to Execute-MSI function to allow ability to skip the check that determines if an MSI is already installed on the system
  • Added SID property to Get-LoggedOnUser function results
  • Added -LoadLoggedOnUserEnvironmentVariables parameter to Refresh-SessionEnvironmentVariables function to allow loading user environment variables when running in the SYSTEM context
  • Added ability in Set-ActiveSetup to execute active setup entry for currently logged on user when running under the SYSTEM account
  • Added ability to detect Primary UI language of active logged in user when running under the SYSTEM account
  • Added function Get-WindowTitle to add abiility to search for an open window title and return details about the window
  • Added -WindowHandle and -GetAllWindowTitles parameters to Send-Keys function
  • Added ability to detect display scale factor for currently logged on user when running under the SYSTEM account
  • Added -PassThru parameter to Execute-MSI and Remove-MSIApplications to return ExitCode, STDOut, and STDErr output
  • Fixed issue introduced in 3.6 whereby the toolkit timeout would not be triggered resulting in the wrong exit code being passed
  • Fixed issue in Install-MSUpdates where a folder path with a KB number in the folder name would force the regex to only detect that one KB in the folder
  • Fixed issue in Get-ServiceStartMode to avoid error when DelayedAutoStart property does not exist
  • Fixed issue introduced in 3.6.0 where $sessionZero was incorrectly set to $false after being set to the correct value
  • Fixed issue in Test-PowerPoint related to accurately measuring the size of a non-fullscreen window
  • Fixed variable type for -PassThru parameter in functions for manipulating services
  • Fixed issue in Execute-ProcessAsUser which improperly caused script exit
  • Fixed issue in Get-UserProfiles where 'DefaultUserProfile' registry value was mis-typed as 'DefaultUsersProfile'
  • Fixed issue in Show-InstallationWelcome to avoid error if the Description field of a hung process could not be accessed
  • Fixed issue where script would hang when removing deferals (cause: Remove-RegistryKey did not have -Recurse parameter specified)
  • Changed Send-Keys function to use new Get-WindowTitle function when searching for window titles
  • Changed Deploy-Application.exe to exit with exit codes in the newly defined range
  • Improved Install-SCCMSoftwareUpdates to only execute if SCCM 2012 or higher installed because method is not compatible with SCCM 2007 or lower
  • Improved Install-SCCMSoftwareUpdates to check if SCCM client service is installed and running before trying to install updates
  • Improved Invoke-SCCMTask to check if SCCM client service is installed and running before invoking task
  • Improved Invoke-SCCMTask to add a few more SCCM 2012 client compatible schedule ids and to only allow execution of a schedule id compatible with the installed version of the client
  • Improved Block-AppExecution by using the import XML method of creating a scheduled task so that we could configure the task that unblocks applications to execute even if running on batteries
  • Improved Deploy-Application.ps1 by setting exit code to 60008 if AppDeployToolkitMain.ps1 fails to dot source
  • Improved Send-Keys function to be able to detect all open windows (including Explorer windows and all child windows), and also to bring any child window into the foreground
  • Improved -PromptToSave function to allow prompting for all child windows of a single instance application (such as Microsoft Word)
  • Improved the behavior for dialog shown when user tries to execute a blocked app so that no more than one dialog can be shown at a time
  • Improved documentation
Assets 3
You can’t perform that action at this time.