Files

94 lines
3.0 KiB
PowerShell

<#
Author: Gabe Kerntke
Date: 03-13-2024
.Synopsis
.Modified
2024-03-13 (GabeK) - Original script created
#>
######################
### Variables ###
######################
$Name = "SaRAcmd"
$FileName = $Name + ".exe"
$EPCacheLocal = "$Env:windir\NCentral\Cache"
$Global:EPCacheLocalLocation = $ENV:EPCacheLocal + '\' + $Name + '\' + $FileName
$InstallParameters = "-S OfficeScrubScenario -AcceptEula -OfficeVersion All"
######################
### Functions ###
######################
#Function checks for 32 or 64 bit processor and then pulls list of applications accordingly
Function Get-Software ($CPU = $ENV:PROCESSOR_ARCHITECTURE) {
If ($CPU -eq 'AMD64') {
$64bit = Get-ItemProperty HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\*
$32bit = Get-ItemProperty HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*
$32bit + $64bit
}
Else { Get-ItemProperty HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\* }
}
Function ExitCode {
If ($ExitCode -eq 0) {
Write-Host "$App_Name or $App_Name2 successfully uninstalled, recommend rebooting."
Start-Sleep 5
Remove-Item "$EPCacheLocal\$Name" -Force -Recurse
Remove-Item "$EPCacheLocal\SaRa.zip" -Force
}
ElseIf ($ExitCode -eq 3010) {
Write-Host "$App_Name or $App_Name2 successfully removed, but requires a reboot to complete."
Start-Sleep 5
Remove-Item "$EPCacheLocal\$Name" -Force -Recurse
Remove-Item "$EPCacheLocal\SaRa.zip" -Force
}
Else {
Write-Host `n
Start-Sleep 5
Write-Host "$App_Name or $App_Name2 failed to uninstall. Exit Code:" + $ExitCode
Remove-Item "$EPCacheLocal\$Name" -Force -Recurse
Remove-Item "$EPCacheLocal\SaRa.zip" -Force
}
}
Function Check {
$App_Name = "Microsoft 365"
$Applist = Get-Software | Where-Object { $_.DisplayName -like "*$App_Name*" }
$App_Name2 = "Microsoft Office"
$Applist2 = Get-Software | Where-Object { $_.DisplayName -like "*$App_Name2*" }
If ($Applist.DisplayName -like "*$App_Name*") {
Write-Host "$App_Name is installed, proceeding with uninstall."
Download
}
ElseIf ($Applist2.DisplayName -like "*$App_Name2*") {
Write-Host "$App_Name2 is installed, proceeding with uninstall."
Download
}
Else {
Write-Host "$App_Name or $App_Name2 is not installed, exiting script."
}
}
Function Download {
Invoke-WebRequest -UseBasicParsing "https://aka.ms/SaRA_EnterpriseVersionFiles" -OutFile "$EPCacheLocal\SaRa.zip"
Extract
}
Function Extract {
Expand-Archive -Path "$EPCacheLocal\SaRa.zip" -DestinationPath "$EPCacheLocal\$Name"
Run
}
Function Run {
$Install = Start-Process $EPCacheLocalLocation -ArgumentList $InstallParameters -Wait -PassThru
$ExitCode = ($Install).ExitCode
ExitCode
}
######################
### Script start ###
######################
Check