Quantcast
Channel: PowerShell App Deployment Toolkit
Viewing all 2341 articles
Browse latest View live

New Post: Balloon notification tray icon hangs around

$
0
0
Firstly, thanks for the great toolkit - I can't believe I've only just discovered it!

I've been testing it out today to deploy a JRE update to ~650 workstations in my environment and I've found one minor problem, at least on Windows 8.1 - the tray icon used to show balloon notifications seems to hang around until you mouseover it. I've fixed this in my AppDeployToolkitMain.ps1 by adding to the Exit-Script function, just before the Exit call:
    # Dispose of any previous balloon tip notifications
    If ($notifyIcon -ne $null) {
        Start-Sleep -seconds 10
        Try {
            $NotifyIcon.Dispose()
        }
        Catch {}
    }
I didn't notice anyone else complaining about this, so perhaps it's specific to my environment, but thought it worth mentioning anyway. Thanks!

New Post: test whether app is in use, else just update it.

$
0
0
If you only want to allow deferral when there are apps to close than use that.

If you want to show a different message first you could either edit the main toolkit directly or just check for those running processes and show the custom message before calling Show-InstallationPrompt

New Post: Can't open installation package

$
0
0
I see that you are using the installation .exe

I use the .msi and ,cab file from %userprofile%\appdata\locallow\Sun\Java
It will be present in this location when you start the installer.

I use these lines to cleanup and install:
Remove-MSIApplications "Java(TM) 6 Update"
Remove-MSIApplications "Java 7 Update"
Execute-MSI -Action Install -Path "jre1.7.0_71.msi" -Parameters "/QN JU=0 JAVAUPDATE=0 RebootYesNo=No IEXPLORER=1"

New Post: Powershell Application Detection

$
0
0
Here is a detection method for version 14.1.200.13

$osarch = (gwmi win32_operatingsystem).osarchitecture
if ($osarch -eq "64-bit") {
$ReceiverVersion = (Get-ItemProperty -Path 'HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\CitrixOnlinePluginPackWeb' -ErrorAction SilentlyContinue).DisplayVersion
if ($ReceiverVersion -eq '14.1.200.13') {
    Write-Host 'Installed'
    }
} else {
$ReceiverVersion = (Get-ItemProperty -Path 'HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\CitrixOnlinePluginPackWeb' -ErrorAction SilentlyContinue).DisplayVersion
if ($ReceiverVersion -eq '14.1.200.13') {
    Write-Host 'Installed'
    }
}

New Post: Deployment Script: Citrix Receiver 14.1.0.0 (4.1)

$
0
0
Here is a detection method for version 14.1.200.13

$osarch = (gwmi win32_operatingsystem).osarchitecture
if ($osarch -eq "64-bit") {
$ReceiverVersion = (Get-ItemProperty -Path 'HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\CitrixOnlinePluginPackWeb' -ErrorAction SilentlyContinue).DisplayVersion
if ($ReceiverVersion -eq '14.1.200.13') {
    Write-Host 'Installed'
    }
} else {
$ReceiverVersion = (Get-ItemProperty -Path 'HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\CitrixOnlinePluginPackWeb' -ErrorAction SilentlyContinue).DisplayVersion
if ($ReceiverVersion -eq '14.1.200.13') {
    Write-Host 'Installed'
    }
}

New Post: iTunes self-healing(I think?) after install

$
0
0
I think I've found the solution to this. Add the iTunes64Setup.exe file to your "Files" folder, delete iTunes64.msi, and replace
Execute-MSI -Action Install -Path "iTunes64.msi"
with
Execute-Process -FilePath "iTunes64Setup.exe" -Arguments "/quiet /norestart" -WaitForMsiExec
Note that you do still need to use Execute-MSI to install Apple Application Support, etc., despite those files being present within the iTunes64Setup.exe package. They aren't installed when the bootstrap installer is run with the /quiet switch for whatever reason.

Also, you probably don't want to remove QuickTime in your Remove-MSIApplications entry as it is no longer included with iTunes. In fact, I don't think it's necessary to remove any of the previous versions of the supporting applications as the MSI installers for the new versions will take care of that.

New Post: Show-InstallationWelcome DPI aware?

$
0
0
I'd like to offer a potential solution to this. It doesn't make the app DPI-aware, but it does resolve the issue with text being clipped. Edits are to function Show-WelcomePrompt. All I've done is set the MaximumSize property on the label controls to fix the width but allow the height to vary, then enabled AutoSize for each one.

FIND:
    $labelAppName.Size = $System_Drawing_Size
AFTER, ADD:
    $System_Drawing_Size.Height = 0
    $labelAppName.MaximumSize = $System_Drawing_Size
FIND:
    $labelAppName.AutoSize = $false
REPLACE WITH:
    $labelAppName.AutoSize = $true
FIND:
    $labelDefer.Size = $System_Drawing_Size
AFTER, ADD:
    $System_Drawing_Size.Height = 0
    $labelDefer.MaximumSize = $System_Drawing_Size
FIND:
    $labelDefer.TextAlign = 'MiddleCenter'
AFTER, ADD:
    $labelDefer.AutoSize = $true
FIND:
    $labelCountdown.Size = $System_Drawing_Size
AFTER, ADD
    $System_Drawing_Size.Height = 0
    $labelCountdown.MaximumSize = $System_Drawing_Size
FIND:
    $labelCountdown.TextAlign = 'MiddleCenter'
AFTER, ADD:
    $labelCountdown.AutoSize = $true
Hope this helps someone!

New Post: Show-InstallationWelcome DPI aware?

$
0
0
A similar fix is also required in Show-InstallationPrompt if you're using an icon in the dialog, otherwise this gets cropped.

FIND:
$pictureIcon.Size = $System_Drawing_Size

AFTER, ADD:
$pictureIcon.AutoSize = $true

New Post: Error: App Deploy Toolkit Main requires Administrator rights to function. Please re-run the deployment script as an Administrator.

$
0
0
Sorry for the delay in responding. It is returning false.

New Post: Error: App Deploy Toolkit Main requires Administrator rights to function. Please re-run the deployment script as an Administrator.

$
0
0
Based on your result, if you are truly running as an Admin, then that account is not in the Administrators group. Can you run the below lines of code and tell us what it returns? Below method will check the process's access token to see if it has the Admin SID on it. Any account that is elevated will have this SID on it's access token so this will definitively tell us if you are running with Admin privileges or not.

[System.Security.Principal.WindowsIdentity]$CurrentProcessToken = [System.Security.Principal.WindowsIdentity]::GetCurrent()
[System.Security.Principal.SecurityIdentifier]$BuiltInAdministrators = 'S-1-5-32-544'
[boolean]$IsAdmin = [boolean]($CurrentProcessToken.Groups -contains $BuiltInAdministrators)
Write-Output $IsAdmin

New Post: TSManager.exe being detected erroneously

$
0
0
Thanks for the fix. I found that it would still throw an error on some machines even with ErrorAction set to SilentlyContinue. Therefore, I modified your code a bit to get it working without displaying an error.
Try {
    [__ComObject]$SMSTSEnvironment = New-Object -ComObject Microsoft.SMS.TSEnvironment -ErrorAction 'SilentlyContinue' -ErrorVariable SMSTSEnvironmentErr
}
Catch {
}
If ($SMSTSEnvironmentErr) {
    Write-Log -Message 'Unable to load ComObject [Microsoft.SMS.TSEnvironment]. Therefore, script is not currently running from an SCCM Task Sequence.'
    $runningTaskSequence = $false
}
ElseIf ($null -ne $SMSTSEnvironment) {
    Write-Log -Message 'Successfully loaded ComObject [Microsoft.SMS.TSEnvironment]. Therefore, script is currently running from an SCCM Task Sequence.'
    $runningTaskSequence = $true
}

New Post: MS Office 2013 Upgrade

New Post: TSManager.exe being detected erroneously

$
0
0
Yeah I noticed the same problem last night too - the fix I wrote isn't quite as elegant as yours :). Also - I thought the erroraction had to be set to stop to generate an exception? I'm kind of a powershell noob though.
    Try
        {
        If ($(New-Object -COMObject Microsoft.SMS.TSEnvironment -ErrorAction "Stop") -ne $null)
            {
            Write-Log "Running in SCCM Task Sequence."
            $runningTaskSequence = $true
            $sessionZero = $true
            }
        Else
            {
            Write-Log "Not running in a CM Task Seqeunce."
            }

        }
    Catch [Exception]
        {
        Write-Log "Not running in a CM Task Seqeunce."
        }

New Post: TSManager.exe being detected erroneously

$
0
0
Yes, it has to be set to Stop to generate a terminating exception. Otherwise, it just generates an exception and continues with code execution. There is a bug there which causes it to not honor the 'SilentlyContinue' because that should not generate any error. If you suppress errors with SilentlyContinue, you can still save the error to a variable using -ErrorVariable parameter so that is what I ended up doing.

Updated Wiki: Reviews and Presentations

$
0
0

“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

“This is really an exceptional Toolkit! It's the swiss army knive for software deployment. For every task you possible need to perform, there is a function for it. And you can extend it with your own functions if you like. Even when you're using something like SCCM to deploy your software, the toolkit can have real value as it fills the gabs left by SCCM. Thanks!”

Quint

“Excellent support guys! This toolkit is the best thing around to easily wrap and deploy software to end users and it just keeps on getting better with every release!”

Maarten Pauchet

“The PowerShell App Deployment toolkit rocks! I tried it today and love it.”

Alex Verboon

“Life Saver! PowerShell App Deployment Toolkit allows me 100% flexibility when deploying applications via SCCM. I couldn't do my job without it.”

Duffney

“Amazing work, very useful for a variety of deployment challenges, especially where deployments depend on closing of in-use applications to succeed. Although I am not a PowerShell expert by any means, I've found the PS App Deployment Toolkit to be invaluable for filling some "gaps" in our deployment capacity. We use SCCM 2012 R2 but with the toolkit having the ability to prompt users to close apps and allow deferrals as well as friendly completion dialogs and all the other customisation and extensibility when required is awesome! Thanks to all the people involved for making this happen!”Amazing work, very useful for a variety of deployment challenges, especially where deployments depend on closing of in-use applications to succeed.

ZeJackal

“Excellent Deployment Tool once you get used to it, it's basically all you need for app deployment.”
IoanPopovici

“This is an amazing helpful tool! Thank you so much for your work guys!”
Melampus

“Very useful toolkit for software deployment with a nice set of features.”
Jerre

“Works great for deploying Java by forcing for the shutdown of browsers and java updating system to allow for a smooth, clean install.”
Severud

“The new Send-Keys function is very powerful, I love the addition! It's great that you guys are actively seeking out useful extensions from community members. Although PSADT is intended to be used as an add-on to SCCM, I have found it to be invaluable for our deployment suite, Altiris.”

Souporman

“Our team currently manages approximately 30,000 PCs in our organization along with hundreds of applications. Our current managed application packages are wrapped with Wise script. We had plans to migrate our wrapper scripting to PowerShell. However, we knew that writing our years old standard Wise package wrapper template from scratch in PowerShell was going to be very challenging. App Deployment Toolkit is the exact toolkit we needed. Thanks for the great solution. This will make our migration to PowerShell Application Package Wrapper Standard a whole lot easier.”

husnukaplan

“Great work you guys. I've been in app packaging and deployment for 10 years and this is THE BEST tool i've seen to date. Thank you!“

Cymroz

“Since I have moved to using this toolkit for all my installs I have found adjusting the installations are much quicker and smoother. A lot of times I need to close apps or uninstall old version and the one-off script to accomplish the task at hand is less than perfect. Now I have a template ps1 file to incorporate all the things I have had to do thus far so I never have to reinvent the wheel for things I have already done. The fact that all the ps1 files have the same look and feel is also nice. The logging provided has also allowed me to quickly troubleshoot issues that would have taken much longer in the past. Now all my deployments have logging be default. I can't say enough good things about toolkit.
Thanks Again!”

mniccum

“Everything that I have been looking to do with Application Deployments in SCCM has always been hindered by a couple things. Non-standard scripts to install, needing the user to shut certain programs down and keep them closed - even the program returning a reboot code when I tried to suppress. This toolkit has allowed me to resolve all of these issues. If it weren't for the fact that others have reviewed it - I would have assumed they wrote it with me in mind! This tool will make any Application Deployment much, much better. I wish I could give it more than 5 stars!”

bkubitz

“I now package all my applications using this and have started to go back and repackage my old powershell installations. This toolkit rocks. Thank you!”

jgaswint

Presentations

The PS App Deployment Toolkit has featured in the following industry conferences:

- “Become the Hero of the Day - Master ConfigMgr 2012 R2 with a Limited Budget and Free Community Tools” sessions at NIC Conference 2013 and System Center Universe 2014 (Kent Agerlund).

- “Microsoft System Center Configuration Manager Community Jewels session at MS TechEd North America 2014 (Jorgen Nilsson, Stefan Schörling) – see video @ 18 mins: http://channel9.msdn.com/Events/TechEd/NorthAmerica/2014/PCIT-B320#fbid=

- “Microsoft System Center Configuration Manager Community Jewels” session at MS TechEd Europe 2014 (Jorgen Nilsson, Stefan Schörling) – see video @ 21 mins:

http://channel9.msdn.com/Events/TechEd/Europe/2014/EM-B308


Updated Wiki: Home

$
0
0

PowerShell App Deployment Toolkit

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.

Scroll down to see sample screen shots of the user interface.

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 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 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 / translate the return codes.
  • Mass remove MSI applications with a partial match (e.g. remove all versions of all MSI applications which match "Office")
  • Check for in-progress MSI installations and wait for MSI Mutex to become available 
  • Send a sequence of keys to an application window
  • 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.

Help Console

  • A graphical console for browsing the help documentation for the toolkit functions.

User Interface Screenshots

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-InstallationProgress” function.

image

The progress message can be dynamically updated to indicate the stage of the installation or to display custom messages to the user, using the “Show-InstallationProgress” function.

image

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-InstallationWelcome” function to display the prompts shown below.

image

Welcome prompt with close programs option and defer option:

image

Welcome prompt with close programs options and countdown to automatic closing of applications:

image

Welcome prompt with just a defer option:

image

Block Application Execution

If the block execution option is enabled (see Show-InstallationWelcome function), 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.

image

Disk Space Requirements

If the CheckDiskSpace parameter is used with the Show-InstallationWelcome function and the disk space requirements are not met, the following prompt will be displayed and the installation will not proceed.

image

Custom Installation Prompt

A custom prompt with the toolkit branding can be used to display messages and interact with the user using the “Show-InstallationPrompt” function. The title and text is customizable and up to 3 customizable buttons can be included on the prompt as well as optional system icons, e.g.

image

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.

image

Installation Restart Prompt

A restart prompt can be displayed with or without a countdown to automatic restart using the “Show-InstallationRestartPrompt”. Since the restart prompt is executed in a separate PowerShell session, the toolkit will still return the appropriate exit code to the parent process.

image

Balloon tip notifications

Balloon tip notifications are displayed in the system tray automatically at the beginning and end of the installation. These can be turned off in the XML configuration.

image

image

image 

Reviews

“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

“This is really an exceptional Toolkit! It's the swiss army knive for software deployment. For every task you possible need to perform, there is a function for it. And you can extend it with your own functions if you like. Even when you're using something like SCCM to deploy your software, the toolkit can have real value as it fills the gabs left by SCCM. Thanks!”

Quint

“Excellent support guys! This toolkit is the best thing around to easily wrap and deploy software to end users and it just keeps on getting better with every release!”

Maarten Pauchet

“The PowerShell App Deployment toolkit rocks! I tried it today and love it.”

Alex Verboon

Presentations

The PS App Deployment Toolkit has featured in the following industry conferences:

- “Become the Hero of the Day - Master ConfigMgr 2012 R2 with a Limited Budget and Free Community Tools” sessions at NIC Conference 2013 and System Center Universe 2014 (Kent Agerlund).

- “Microsoft System Center Configuration Manager Community Jewels session at MS TechEd North America 2014 (Jorgen Nilsson, Stefan Schörling) – see video @ 18 mins: http://channel9.msdn.com/Events/TechEd/NorthAmerica/2014/PCIT-B320#fbid=

- “Microsoft System Center Configuration Manager Community Jewels” session at MS TechEd Europe 2014 (Jorgen Nilsson, Stefan Schörling) – see video @ 21 mins:

http://channel9.msdn.com/Events/TechEd/Europe/2014/EM-B308

More Reviews and Presentations

About the Authors

Updated Wiki: Home

$
0
0

PowerShell App Deployment Toolkit

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.

Scroll down to see sample screen shots of the user interface.

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 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 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 / translate the return codes.
  • Mass remove MSI applications with a partial match (e.g. remove all versions of all MSI applications which match "Office")
  • Check for in-progress MSI installations and wait for MSI Mutex to become available 
  • Send a sequence of keys to an application window
  • 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.

Help Console

  • A graphical console for browsing the help documentation for the toolkit functions.

User Interface Screenshots

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-InstallationProgress” function.

image

The progress message can be dynamically updated to indicate the stage of the installation or to display custom messages to the user, using the “Show-InstallationProgress” function.

image

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-InstallationWelcome” function to display the prompts shown below.

image

Welcome prompt with close programs option and defer option:

image

Welcome prompt with close programs options and countdown to automatic closing of applications:

image

Welcome prompt with just a defer option:

image

Block Application Execution

If the block execution option is enabled (see Show-InstallationWelcome function), 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.

image

Disk Space Requirements

If the CheckDiskSpace parameter is used with the Show-InstallationWelcome function and the disk space requirements are not met, the following prompt will be displayed and the installation will not proceed.

image

Custom Installation Prompt

A custom prompt with the toolkit branding can be used to display messages and interact with the user using the “Show-InstallationPrompt” function. The title and text is customizable and up to 3 customizable buttons can be included on the prompt as well as optional system icons, e.g.

image

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.

image

Installation Restart Prompt

A restart prompt can be displayed with or without a countdown to automatic restart using the “Show-InstallationRestartPrompt”. Since the restart prompt is executed in a separate PowerShell session, the toolkit will still return the appropriate exit code to the parent process.

image

Balloon tip notifications

Balloon tip notifications are displayed in the system tray automatically at the beginning and end of the installation. These can be turned off in the XML configuration.

image

image

image 

Reviews

“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

“This is really an exceptional Toolkit! It's the swiss army knive for software deployment. For every task you possible need to perform, there is a function for it. And you can extend it with your own functions if you like. Even when you're using something like SCCM to deploy your software, the toolkit can have real value as it fills the gabs left by SCCM. Thanks!”

Quint

“Excellent support guys! This toolkit is the best thing around to easily wrap and deploy software to end users and it just keeps on getting better with every release!”

Maarten Pauchet

“The PowerShell App Deployment toolkit rocks! I tried it today and love it.”

Alex Verboon

Presentations

The PS App Deployment Toolkit has featured in the following industry conferences:

- “Become the Hero of the Day - Master ConfigMgr 2012 R2 with a Limited Budget and Free Community Tools” sessions at NIC Conference 2013 and System Center Universe 2014 (Kent Agerlund).

- “Microsoft System Center Configuration Manager Community Jewels session at MS TechEd North America 2014 (Jorgen Nilsson, Stefan Schörling) – see video @ 18 mins: http://channel9.msdn.com/Events/TechEd/NorthAmerica/2014/PCIT-B320#fbid=

- “Microsoft System Center Configuration Manager Community Jewels” session at MS TechEd Europe 2014 (Jorgen Nilsson, Stefan Schörling) – see video @ 21 mins:

http://channel9.msdn.com/Events/TechEd/Europe/2014/EM-B308

More Reviews and Presentations

About the Authors

Created Unassigned: Need a better way to locate syntax/Code issues [93]

$
0
0

I'm adding many functions to AppDeployToolkitExtensions.ps1 and I get this message:

```
[03-11-2014 10:57:36] [Pre-Uninstallation] Is a REBOOT needed?...
WARNING: TESTVM02: You cannot call a method on a null-valued expression.
[03-11-2014 10:57:37] [Pre-Uninstallation] Cannot bind argument to parameter 'Text' because it is null. ()
[03-11-2014 10:57:37] [Pre-Uninstallation] Bypassing Dialog Box [Mode: NonInteractive]... Cannot bind argument to parameter 'Text' because it is null. ()
[03-11-2014 10:57:37] [Pre-Uninstallation] CosmosEmServ_v3r1 Uninstallation completed with exit code [1].
```
I suspect this is one of my functions calling Write-Log with a functional equivalent of "Write-Log $null"
But I get no line numbers or a scriptname like I would if this was a regular PS1 script.
In development, I can resort to debugging but in the field, having the line number would be a god-send.
Also, not every packager is a PowerShell wizard.

Is there a way to get this type of info added to the toolkit?

Edited Unassigned: [Deleted] [93]

Source code checked in, #69102090067d9dc652450d1c25b407c6d0d875d6

Viewing all 2341 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>