Jump to content

Recommended Posts

Posted

If you currently use batch or VBScript wrapper scripts to deploy applications in MDT, SCCM or at computer startup, this looks like a much better alternative.

 

Website / Download

 

What is the PowerShell App Deployment Toolkit?

The PowerShell App Deployment Toolkit provides a set of functions to perform common application deployment tasks and to interact with the user during a deployment. It simplifies the complex scripting challenges of deploying applications in the enterprise, provides a consistent deployment experience and improves installation success rates.

 

The PowerShell App Deployment Toolkit can be used to replace your WiseScript, VBScript and Batch wrapper scripts with one versatile, re-usable and extensible tool.

 

What are the main features of the PowerShell App Deployment Toolkit?

 

  • Easy To Use - Any PowerShell beginner can use the template and the functions provided with the Toolkit to perform application deployments.
  • Consistent - Provides a consistent look and feel for all application deployments, regardless of complexity.
  • Powerful - Provides a set of functions to perform common deployment tasks, such as installing or uninstalling multiple applications, prompting users to close apps, setting registry keys, copying files, etc.
  • User Interface - Provides user interaction through customizable user interface dialogs boxes, progress dialogs and balloon tip notifications.
  • Localized - The UI is localized in several languages and more can easily be added using the XML configuration file.
  • Integration - Integrates well with SCCM 2007/2012; provides installation and uninstallation deployment types with options on how to handle exit codes, such as supressing reboots or returning a fast retry code.
  • Updatable - The logic engine and functions are separated from per-application scripts, so that you can update the toolkit when a new version is released and maintain backwards compatibility with your deployment scripts.
  • Extensible - The Toolkit can be easily extended to add custom scripts and functions.
  • Helpful - The Toolkit provides detailed logging of all actions performed and even includes a graphical console to browse the help documentation for the Toolkit functions.

 

What functionality does the PowerShell App Deployment Toolkit provide?

 

User Interface

 

  • An interface to prompt the user to close specific 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 the toolkit 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 SCCM task sequence or session 0).
  • The UI is localized in several languages and more can easily be added using the XML configuration file.

Functions/Logic

 

  • Provides extensive logging of both the Toolkit functions and any MSI installation / uninstallation.
  • Provides the ability to execute any type of setup (MSI or EXEs) and handle the return codes.
  • Mass remove MSI applications with a partial match (e.g. remove all versions of all MSI applications which match "Office")
  • Perform SCCM actions such as Machine and User Policy Refresh, Inventory Update and Software Update
  • Supports installation of applications on Citrix XenApp/Remote Desktop Session Host Servers
  • 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
  • Test network connectivity
  • Test power connectivity
  • Check whether a PowerPoint slideshow is running

Integration with SCCM

 

  • Handles SCCM exit codes, including time sensitive dialogs supporting SCCM's Fast Retry feature - providing more accurate SCCM Reporting (no more Failed due to timeout errors).
  • Ability to prevent reboot codes (3010) from being passed back to SCCM, which would cause a reboot prompt.
  • Supports the CM12 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 CM12 application dependency chain.
  • Compared to compiled deployment packages, e.g. WiseScript, the Toolkit utilises the SCCM cache correctly and SCCM Distribution Point bandwidth more efficiently by using loose files.

 

TE8JVWe89fo_.png

 

vZK3hulG0jm_.png

 

bbuXLf2gKNSm.png

  • Thanks 1
  • 2 weeks later...
  • 9 months later...
Posted

v3.6.0 is out with a huge number of changes.

 

Download: https://psappdeploytoolkit.codeplex.com/releases/view/612445

 

What's New

  • Added function Set-ActiveSetup to allow creation/deletion of Active Setup entries (thanks to Denis St-Pierre, Todd MacNaught for code)
  • Added function Execute-ProcessAsUser to support running processes as the current logged on user to provide interaction in the system context. Note: if the user is not a local admin the process launched in user context will not inherit admin rights.
  • Added -PromptToSave parameter to Show-InstallationWelcome to prompt to save working documents when the users selects to close running applications
  • Added -TopMost parameter to Show-InstallationWelcome to allow the ability for the user to move the welcome screen to the background
  • Added variable to determine if running in terminal server session
  • Added functions to handle Windows services: Test-ServiceExists, Stop-ServiceAndDependencies, Start-ServiceAndDependencies, Get-ServiceStartMode, Set-ServiceStartMode
  • Added check to test whether or not the Windows Task Scheduler service is in a healthy state and fix any issues if possible.
  • Added ability in Deploy-Application.exe to read if Admin rights required from XML file and then automatically prompt to elevate on Vista or higher
  • Added -ExcludeDefaultUser parameter to Get-UserProfiles to allow exclusion of the Default User profile
  • Added IsLocalAdmin property to results from Get-LoggedOnUser function to determine if the user account is in the local Administrators security group
  • Added -AddParameters parameter to Execute-MSI to allow augmenting of parameters instead of replacing them
  • Added -ReturnEmptyKeyIfExists parameter to Get-RegistryKey to allow returning empty registry keys if they exist
  • Added -LoggingOptions parameter to Execute-MSI to allow overriding the default logging options specified in the config file
  • Added validation for -Path parameter in Execute-MSI function
  • Fixed issue where Show-InstallationRestartPrompt and Show-InstallationPrompt with -NoWait parameter didn't work
  • Added default action of Install to Execute-MSI
  • Added ability to specify multiple transforms and patches in Execute-MSI using a comma separated list
  • Added ability in XML configuration to override the detected language with a statically defined language for installation UI elements
  • Fixed issue in Show-InstallationProgress where -BottomRight parameter would cause prompt to be placed off screen where DPI is > 100%
  • Fixed issue with error being thrown when reading the DPI scale from the registry if the property doesn't exist
  • Fixed issue with Show-InstallationWelcome failing if "notes" specified with -CloseApps parameter when Notes application not installed
  • Fixed issue in Execute-MSI where LogName parameter did not work correctly
  • Fixed issue with Show-InstallationWelcome where deferrals would be ignored if CloseAppsCountdown parameter is specified
  • Fixed issue in Copy-File where operation would fail if destination folder was not created before operation when using wildcards in -Path parameter
  • Fixed issue in Unblock-AppExecution on some systems where process failed to unblock if only one process was initially blocked
  • Fixed issue with Deploy-Application.exe not executing on systems where only .NET 4 or higher installed by adding Deploy-Application.exe.config file
  • Fixed issue with Deploy-Application.exe by using -Command parameter instead of -File to avoid bug in PowerShell 2.0 where incorrect exit code might be returned if -File parameter used
  • Fixed a number of issues with the Office 2013 example script
  • Fixed issue whereby pressing enter would default to a hidden Abort button on Show-installationWelcome and Show-Installation Prompt
  • Fixed aesthetic issue whereby use of DeferDays or DeferDeadline without DeferTimes would show a deferal count of 1 remaining
  • Fixed issue in Get-InstalledApplication to properly detect applications when -Exact parameter used
  • Fixed issue in Get-UniversalDate where function would fail for some valid date formats under some culture settings
  • Fixed issue in Write-Log where it was not possible to change logfile name and directory after the first time these paths were set
  • Fixed issue with Deploy-Application.ps1 where variable expansion wouldn't work in Show-InstallationPrompt example
  • Fixed issue with Install-SCCMSoftwareUpdates not working on all clients
  • Fixed issue where modal dialog windows were not properly disposed
  • Improved path validation in Deploy-Application.exe, rewrote utility in C#
  • Improved defining default values for script variables not defined
  • Improved path validation in Execute-Process
  • Improved path validation in Execute-MSI
  • Improved working directory validation in Execute-MSI
  • Improved error message when toolkit launched without admin permissions
  • Improved detection of when invoking script is the Help script to avoid false positives
  • Improved Deploy-Application.ps1 to use Write-Error instead of Write-Output when toolkit fails to dot source
  • Improved Get-ScheduledTask to retrieve all scheduled task details, remove spaces and colons from property names, allow retrieval of details for a specific task name, and remove lines with column headers from results
  • Improved compilation of custom C# code by using -IgnoreWarnings switch with Add-Type cmdlet so that toolkit does not fail to run because of a warning
  • Improved Write-Log to log following for CMTrace log type: thread id, file name of source script
  • Improved environment variable population when running in system context
  • Improved Write-Log to log PID and log source for CMTrace log type
  • Improved Remove-RegistryKey to check if a key exists before trying to delete it and log a warning if key does not exist
  • Changed default Exit Codes for internal Toolkit functions. The range of 60000 is used for internal, and 70000 should be used for custom extensions
  • Changed toolkit to remove unused variables which did not exist and were being read from XML file
  • Changed Register-DLL/Unregister-DLL function to combine them into one function called Invoke-RegisterOrUnregisterDLL. Created Aliases for new function name to maintain backwards compatibility.
  • Changed Notes process termination using NSD to only run if Notes processes are running
  • Updated documentation
  • Added Polish translations
  • Updated German translations
  • Updated Italian translations

  • Thanks 1

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now



×
×
  • Create New...