Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <#
- .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 = "Adobe"
- $appName = "Reader"
- $appVersion = "11.0.07"
- $appArch = ""
- $appLang = "EN"
- $appRevision = "01"
- $appScriptVersion = "1.0.0"
- $appScriptDate = "07/15/2014"
- $appScriptAuthor = "Chris Thomas"
- #*===============================================
- # Variables: Script - Do not modify this section
- $deployAppScriptFriendlyName = "Deploy Application"
- $deployAppScriptVersion = [version]"3.1.2"
- $deployAppScriptDate = "04/30/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 "iexplore,AcroRd32,cidaemon" -AllowDefer -DeferTimes 3
- # Show Progress Message (with the default message)
- Show-InstallationProgress
- # Remove any previous versions of Adobe Reader
- Remove-MSIApplications "Adobe Reader"
- #*===============================================
- #* INSTALLATION
- $installPhase = "Installation"
- #*===============================================
- # Perform installation tasks here
- # Install the base MSI and apply a transform
- Execute-MSI -Action Install -Path "$dirFiles\Adobe_Reader_11.0.0_MUI.msi" -Transform "$dirFiles\Adobe_Reader_11.0.0_1033.mst"
- # Install the patch
- Execute-MSI -Action Patch -Path "$dirFiles\Adobe_Reader_11.0.07_MUI.msp"
- #*===============================================
- #* POST-INSTALLATION
- $installPhase = "Post-Installation"
- #*===============================================
- # Perform post-installation tasks here
- # Remove desktop shortcut
- Remove-File -Path "$envPublic\Desktop\Adobe Reader XI.lnk"
- 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 "iexplore,AcroRd32,cidaemon" -AllowDefer -DeferTimes 3
- # Show Progress Message (with a message to indicate the application is being uninstalled)
- Show-InstallationProgress -StatusMessage "Uninstalling Application $installTitle. Please Wait..."
- # Remove this version of Adobe Reader
- Execute-MSI -Action Uninstall -Path "{AC76BA86-7AD7-FFFF-7B44-AB0000000001}"
- #*===============================================
- #* 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
- #*===============================================
Add Comment
Please, Sign In to add comment