<# .SYNOPSIS This script performs the installation or uninstallation of an application(s). .DESCRIPTION The script is provided as a template to perform an install or uninstall of an application(s). The script either performs an "Install" deployment type or an "Uninstall" deployment type. The install deployment type is broken down in to 3 main sections/phases: Pre-Install, Install, and Post-Install. The script dot-sources the AppDeployToolkitMain.ps1 script which contains the logic and functions required to install or uninstall an application. To access the help section, .EXAMPLE Deploy-Application.ps1 .EXAMPLE Deploy-Application.ps1 -DeploymentMode "Silent" .EXAMPLE Deploy-Application.ps1 -AllowRebootPassThru -AllowDefer .EXAMPLE Deploy-Application.ps1 -Uninstall .PARAMETER DeploymentType The type of deployment to perform. [Default is "Install"] .PARAMETER DeployMode Specifies whether the installation should be run in Interactive, Silent or NonInteractive mode. Interactive = Default mode Silent = No dialogs NonInteractive = Very silent, i.e. no blocking apps. Noninteractive mode is automatically set if an SCCM task sequence or session 0 is detected. .PARAMETER AllowRebootPassThru Allows the 3010 return code (requires restart) to be passed back to the parent process (e.g. SCCM) if detected from an installation. If 3010 is passed back to SCCM a reboot prompt will be triggered. .PARAMETER TerminalServerMode Changes to user install mode and back to user execute mode for installing/uninstalling applications on Remote Destkop Session Host/Citrix servers .NOTES .LINK Http://psappdeploytoolkit.codeplex.com "#> Param ( [ValidateSet("Install","Uninstall")] [string] $DeploymentType = "Install", [ValidateSet("Interactive","Silent","NonInteractive")] [string] $DeployMode = "Interactive", [switch] $AllowRebootPassThru = $false, [switch] $TerminalServerMode = $false ) #*=============================================== #* VARIABLE DECLARATION Try { #*=============================================== #*=============================================== # Variables: Application $appVendor = "Wacom" $appName = "Bamboo Tablet Drivers" $appVersion = "5.3.5-3" $appArch = "x64" $appLang = "EN" $appRevision = "01" $appScriptVersion = "1.0.0" $appScriptDate = "09/22/2014" $appScriptAuthor = "Chris Thomas" #*=============================================== # Variables: Script - Do not modify this section $deployAppScriptFriendlyName = "Deploy Application" $deployAppScriptVersion = [version]"3.1.4" $deployAppScriptDate = "06/10/2014" $deployAppScriptParameters = $psBoundParameters # Variables: Environment $scriptDirectory = Split-Path -Parent $MyInvocation.MyCommand.Definition # Dot source the App Deploy Toolkit Functions ."$scriptDirectory\AppDeployToolkit\AppDeployToolkitMain.ps1" #*=============================================== #* END VARIABLE DECLARATION #*=============================================== #*=============================================== #* PRE-INSTALLATION If ($deploymentType -ne "uninstall") { $installPhase = "Pre-Installation" #*=============================================== # Perform pre-installation tasks here # Prompt the user to close the following applications if they are running: Show-InstallationWelcome -CloseApps "Pen_Tablet,Pen_TabletUser,Pen_TouchUser,WacomHost,WTabletServiceCon" -AllowDefer -DeferTimes 3 # Show Progress Message (with the default message) Show-InstallationProgress #*=============================================== #* INSTALLATION $installPhase = "Installation" #*=============================================== # Perform installation tasks here Execute-Process -FilePath "$dirFiles\setup.exe" -Arguments "/s" #*=============================================== #* POST-INSTALLATION $installPhase = "Post-Installation" #*=============================================== # Perform post-installation tasks here #Remove Facebook Plugins Execute-Process -FilePath "$envProgramFiles\TabletPlugins\fbWTPUninstall.exe" -Arguments "/S" Execute-Process -FilePath "$envProgramFilesX86\TabletPlugins\fbWTPUninstall.exe" -Arguments "/S" If ($DeployMode -ne "Silent") { # Inform the user that the installation has completed Show-InstallationPrompt -Message "$installTitle has completed installation. `n `n If you encounter any issues with this software please enter a ticket or call Help Desk at x4357." -Icon "Information" -ButtonMiddleText "OK" -NoWait } #*=============================================== #* UNINSTALLATION } ElseIf ($deploymentType -eq "uninstall") { $installPhase = "Uninstallation" #*=============================================== # Perform uninstallation tasks here # Prompt the user to close the following applications if they are running: Show-InstallationWelcome -CloseApps "Pen_Tablet,Pen_TabletUser,Pen_TouchUser,WacomHost,WTabletServiceCon" -AllowDefer -DeferTimes 3 # Show Progress Message (with a message to indicate the application is being uninstalled) Show-InstallationProgress -StatusMessage "Uninstalling Application $installTitle. Please Wait..." # Uninstall Wacom Bamboo drivers and software Execute-Process -FilePath "$dirFiles\setup.exe" -Arguments "/uninstall /s" # Remove abandoned folder and files Remove-Folder -Path "$envProgramFiles\Tablet" #*=============================================== #* END SCRIPT BODY } } Catch { $exceptionMessage = "$($_.Exception.Message) `($($_.ScriptStackTrace)`)"; Write-Log "$exceptionMessage"; Show-DialogBox -Text $exceptionMessage -Icon "Stop"; Exit-Script -ExitCode 1 } # Catch any errors in this script Exit-Script -ExitCode 0 # Otherwise call the Exit-Script function to perform final cleanup operations #*===============================================