PSAppDeployToolkit 3.8.4

Version 3.8.4 [26/01/2021]
Releases

  • 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.
1 Like

Hi Luki,

Thanks for the update. I’ve been playing with it and stumbled across an issue with Show-InstallationRestartPrompt. It appears to be in the section where you’re parsing the parameters into a string; this was If/ElseIf/Else but was changed to a Switch function. It appears that the Switch function is correctly identifying the object type but for some reason it’s not passing the object to the case, so the Key and Value properties wind up null.

For example, using “-CountdownSeconds 300 -CountdownNoHideSeconds 300” causes $installRestartPromptParameters to have a value of "- - ", which causes the new PS instance to exit silently with no prompt.

Hope this helps. Sorry I can’t figure out why it’s not passing the object.

Hello,

we are aware of this issue. It will be fixed in the release. We plan to release it this month.
If you cannot wait, the fix is here: Fix a bug in Show-InstallationRestartPrompt by dianneman · Pull Request #609 · PSAppDeployToolkit/PSAppDeployToolkit (github.com)

1 Like

Why does the stupid Kimist or whatever it’s called hide my powersehll questions. I posted it over a week ago? What a lame forum.