Advertisement
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 = "Apple"
- $appName = "iTunes"
- $appVersion = "11.3.0.54"
- $appArch = ""
- $appLang = "EN"
- $appRevision = "01"
- $appScriptVersion = "1.0.0"
- $appScriptDate = "07/16/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 "iTunes,iTunesHelper,iPodService,AppleMobileDeviceHelper,AppleMobileDeviceService,BtTunesPlugIn" -AllowDefer -DeferTimes 3
- # Show Progress Message (with the default message)
- Show-InstallationProgress
- # Remove any previous versions of iTunes and the pre-requisites
- Remove-MSIApplications "Apple Application Support"
- Remove-MSIApplications "Apple Mobile Device Support"
- Remove-MSIApplications "Apple Software Update"
- Remove-MSIApplications "Bonjour"
- Remove-MSIApplications "iTunes"
- #*===============================================
- #* INSTALLATION
- $installPhase = "Installation"
- #*===============================================
- # Perform installation tasks here
- # Install the pre-requisites
- Execute-MSI -Action Install -Path "$dirFiles\AppleApplicationSupport.msi"
- Execute-MSI -Action Install -Path "$dirFiles\AppleMobileDeviceSupport64.msi"
- Execute-MSI -Action Install -Path "$dirFiles\AppleSoftwareUpdate.msi"
- Execute-MSI -Action Install -Path "$dirFiles\Bonjour64.msi"
- Execute-MSI -Action Install -Path "$dirFiles\iTunes64.msi" -Parameters "DESKTOP_SHORTCUTS=0 /QN /NORESTART"
- #*===============================================
- #* POST-INSTALLATION
- $installPhase = "Post-Installation"
- #*===============================================
- # Perform post-installation tasks here
- Remove-RegistryKey -Key "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" -Name "iTunesHelper"
- 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 "iTunes,iTunesHelper,iPodService,AppleMobileDeviceHelper,AppleMobileDeviceService,BtTunesPlugIn" -AllowDefer -DeferTimes 3
- # Show Progress Message (with a message to indicate the application is being uninstalled)
- Show-InstallationProgress -StatusMessage "Uninstalling Application $installTitle. Please Wait..."
- Execute-MSI -Action Uninstall -Path "{21ECABC3-40B2-42DF-8E21-ACF3A4D0D95A}"
- Execute-MSI -Action Uninstall -Path "{6AF2AC2A-3532-43FD-9F4D-BDC9C0D724C7}"
- Execute-MSI -Action Uninstall -Path "{789A5B64-9DD9-4BA5-915A-F0FC0A1B7BFE}"
- Execute-MSI -Action Uninstall -Path "{6E3610B2-430D-4EB0-81E3-2B57E8B9DE8D}"
- Execute-MSI -Action Uninstall -Path "{33E28B58-7BA0-47B7-AA01-9225ABA2B8A9}"
- #*===============================================
- #* 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
- #*===============================================
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement