Office 2013 appdeploy script - simple fix?


I’ve been working on a script that’s already been developed which installed Office 2013 and removes all previous versions of office. I’m working with the example script that came with the PS AppDeploy toolkit, I’ve also tried using a tweaked version of this script found here: (I’m using this exact script and the example script included with App-Deploy both produce the issue)

The script works fine… Except, when it is in the Pre-Installation phase where it removes office using the offscrub.vbs at the end of that I see a popup that says “Microsoft office has been successfully uninstalled.” with an OK button. This causes the script to stop until OK is hit. But with looking through this script I don’t see how that’s getting called. So I’m here looking for some help from someone who has used that example script or the modified one referenced in the above link. Both produce the same unwanted result! I’m guessing it’s something that the try/catch function might be calling out. Just not sure… Appreciate any help!

Also just to mention. I’ve tried running this in silent/noninteractive modes and all modes produce the same popup after office is uninstalled. Would love to make it go away! Thank you!

It looks like you need to modify the lines in the OffScrub15msi script or any Offscrub script to:
TextStream.Writeline “<Display Level=”"" & sDisplayLevel & “”" CompletionNotice="“Yes”" SuppressModal="“Yes”" NoCancel=""" & sNoCancel & “”" AcceptEula="“Yes”" />"


The uninstall scripts from Microsoft default to “yes” which cause a problem with a touchless uninstall

This is how I call my office 2010 uninstall.

Execute-Process -FilePath “CScript.Exe” -Arguments “”$dirSupportFiles\OffScrub10.vbs" STANDARD,PROPLUS,PROOFKIT /S /Q /NoCancel" -WindowStyle Hidden -IgnoreExitCodes “1,2,3”

Hi everyone,

Not sure if I am posting in the right forum but can someone here provide some info as to how to successfully install O365-2016 via the deployment toolkit? I have tried numerous ways but keep getting the “Installation Failed” balloon from the taskbar. Here is the script I am using. Not sure if I’m missing something but any help will be appreciated.

This script performs the installation or uninstallation of an application(s).
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 into 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.
.PARAMETER DeploymentType
The type of deployment to perform. Default is: Install.
Specifies whether the installation should be run in Interactive, Silent, or NonInteractive mode. Default is: Interactive. Options: Interactive = Shows dialogs, Silent = No dialogs, NonInteractive = Very silent, i.e. no blocking apps. NonInteractive mode is automatically set if it is detected that the process is not user interactive.
.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 for Remote Destkop Session Hosts/Citrix servers.
.PARAMETER DisableLogging
Disables logging to file for the script. Default is: $false.
powershell.exe -Command “& { & ‘.\Deploy-Application.ps1’ -DeployMode ‘Silent’; Exit $LastExitCode }”
powershell.exe -Command “& { & ‘.\Deploy-Application.ps1’ -AllowRebootPassThru; Exit $LastExitCode }”
powershell.exe -Command “& { & ‘.\Deploy-Application.ps1’ -DeploymentType ‘Uninstall’; Exit $LastExitCode }”
Deploy-Application.exe -DeploymentType “Install” -DeployMode “Silent”
Toolkit Exit Code Ranges:
60000 - 68999: Reserved for built-in exit codes in Deploy-Application.ps1, Deploy-Application.exe, and AppDeployToolkitMain.ps1
69000 - 69999: Recommended for user customized exit codes in Deploy-Application.ps1
70000 - 79999: Recommended for user customized exit codes in AppDeployToolkitExtensions.ps1
Param (
[string]$DeploymentType = ‘Install’,
[string]$DeployMode = ‘Interactive’,
[switch]$AllowRebootPassThru = $false,
[switch]$TerminalServerMode = $false,
[switch]$DisableLogging = $false

Try {
## Set the script execution policy for this process
Try { Set-ExecutionPolicy -ExecutionPolicy ‘ByPass’ -Scope ‘Process’ -Force -ErrorAction ‘Stop’ } Catch {}

## Variables: Application
[string]$appVendor = 'Microsoft'
[string]$appName = 'Office 2016'
[string]$appVersion = '16.0.6001.1068'
[string]$appArch = 'x86'
[string]$appLang = 'EN'
[string]$appRevision = '01'
[string]$appScriptVersion = '1.0.0'
[string]$appScriptDate = '04/06/2016'
[string]$appScriptAuthor = 'IT'
## Variables: Install Titles (Only set here to override defaults set by the toolkit)
[string]$installName = ''
[string]$installTitle = ''

##* Do not modify section below
#region DoNotModify

## Variables: Exit Code
[int32]$mainExitCode = 0

## Variables: Script
[string]$deployAppScriptFriendlyName = 'Deploy Application'
[version]$deployAppScriptVersion = [version]'3.6.8'
[string]$deployAppScriptDate = '02/06/2016'
[hashtable]$deployAppScriptParameters = $psBoundParameters

## Variables: Environment
If (Test-Path -LiteralPath 'variable:HostInvocation') { $InvocationInfo = $HostInvocation } Else { $InvocationInfo = $MyInvocation }
[string]$scriptDirectory = Split-Path -Path $InvocationInfo.MyCommand.Definition -Parent

## Dot source the required App Deploy Toolkit Functions
Try {
	[string]$moduleAppDeployToolkitMain = "$scriptDirectory\AppDeployToolkit\AppDeployToolkitMain.ps1"
	If (-not (Test-Path -LiteralPath $moduleAppDeployToolkitMain -PathType 'Leaf')) { Throw "Module does not exist at the specified location [$moduleAppDeployToolkitMain]." }
	If ($DisableLogging) { . $moduleAppDeployToolkitMain -DisableLogging } Else { . $moduleAppDeployToolkitMain }
Catch {
	If ($mainExitCode -eq 0){ [int32]$mainExitCode = 60008 }
	Write-Error -Message "Module [$moduleAppDeployToolkitMain] failed to load: <code>n$($_.Exception.Message)</code>n `n$($_.InvocationInfo.PositionMessage)" -ErrorAction 'Continue'
	## Exit the script, returning the exit code to SCCM
	If (Test-Path -LiteralPath 'variable:HostInvocation') { $script:ExitCode = $mainExitCode; Exit } Else { Exit $mainExitCode }

##* Do not modify section above
If ($deploymentType -ine 'Uninstall') {
	[string]$installPhase = 'Pre-Installation'
	## Show Welcome Message, close Internet Explorer if required, allow up to 3 deferrals, verify there is enough disk space to complete the install, and persist the prompt
	Show-InstallationWelcome -CloseApps 'WINWORD,EXCEL,OUTLOOK,POWERPNT,ONENOTE,MSPUB,NitroPDF' -BlockExecution -AllowDefer -CheckDiskSpace -PersistPrompt -CloseAppsCountdown 60
	## Show Progress Message (with the default message)
	Show-InstallationProgress -StatusMessage “Office 365 Installation in Progress…The Installation may take up to 45 minutes to complete.”
	## &lt;Perform Pre-Installation tasks here&gt;
	[string]$installPhase = 'Installation'

    ## Handle Zero-Config MSI Installations
	If ($useDefaultMsi) {
		[hashtable]$ExecuteDefaultMSISplat =  @{ Action = 'Install'; Path = $defaultMsiFile }; If ($defaultMstFile) { $ExecuteDefaultMSISplat.Add('Transform', $defaultMstFile) }
		Execute-MSI @ExecuteDefaultMSISplat; If ($defaultMspFiles) { $defaultMspFiles | ForEach-Object { Execute-MSI -Action 'Patch' -Path $_ } }
	## &lt;Perform Installation tasks here&gt;
    ##Show-InstallationProgress -StatusMessage "Upgrading to the NEW Office 2016. Please wait while installation completes..." 
    Execute-Process -Path “.\Setup.exe” -Parameters “/configure /configuration.xml”
	[string]$installPhase = 'Post-Installation'
	## &lt;Perform Post-Installation tasks here&gt;
	## Display a message at the end of the install
	If (-not $useDefaultMsi) { Show-InstallationPrompt -Message 'Your Office Upgrade has been Completed. Should you have any questions, please call the Help Desk at (954)627-9353' -ButtonRightText 'OK' -Icon Information -NoWait }
ElseIf ($deploymentType -ieq 'Uninstall')
	[string]$installPhase = 'Pre-Uninstallation'
	## Show Welcome Message, close Internet Explorer with a 60 second countdown before automatically closing
	Show-InstallationWelcome -CloseApps 'iexplore' -CloseAppsCountdown 60
	## Show Progress Message (with the default message)
	## &lt;Perform Pre-Uninstallation tasks here&gt;
	[string]$installPhase = 'Uninstallation'
	## Handle Zero-Config MSI Uninstallations
	If ($useDefaultMsi) {
		[hashtable]$ExecuteDefaultMSISplat =  @{ Action = 'Uninstall'; Path = $defaultMsiFile }; If ($defaultMstFile) { $ExecuteDefaultMSISplat.Add('Transform', $defaultMstFile) }
		Execute-MSI @ExecuteDefaultMSISplat
	# &lt;Perform Uninstallation tasks here&gt;
	[string]$installPhase = 'Post-Uninstallation'
	## &lt;Perform Post-Uninstallation tasks here&gt;


## Call the Exit-Script function to perform final cleanup operations
Exit-Script -ExitCode $mainExitCode

Catch {
[int32]$mainExitCode = 60001
[string]$mainErrorMessage = “$(Resolve-Error)”
Write-Log -Message $mainErrorMessage -Severity 3 -Source $deployAppScriptFriendlyName
Show-DialogBox -Text $mainErrorMessage -Icon ‘Stop’
Exit-Script -ExitCode $mainExitCode