diff --git a/msoffice-removal-tool.ps1 b/msoffice-removal-tool.ps1 index 7594d4f..f96a5c2 100644 --- a/msoffice-removal-tool.ps1 +++ b/msoffice-removal-tool.ps1 @@ -24,10 +24,9 @@ .OUTPUTS Just output on screen .NOTES - Version: 1.0 - Author: aaron.viehl@frankfurt.einsnulleins.de - Creation Date: 2022-02-04 - Purpose/Change: Initial script development + Version: 1.3 + Author: Heko Büroservice GmbH & Co. KG. + Creation Date: 2025-01-28 .EXAMPLE .\msoffice-removal-tool.ps1 -InstallOffice365 -SupressReboot #> @@ -46,7 +45,7 @@ $SaRA_URL = "https://aka.ms/SaRA_CommandLineVersionFiles" $SaRA_ZIP = "$env:TEMP\SaRA.zip" $SaRA_DIR = "$env:TEMP\SaRA" $SaRA_EXE = "$SaRA_DIR\SaRAcmd.exe" -$Office365Setup_URL = "https://github.com/Admonstrator/msoffice-removal-tool/raw/main/office365-installer" +$Office365Setup_URL = "https://git.heko-technik.de/mkrieger/msoffice-removal-tool/raw/branch/main/office365-installer" #-----------------------------------------------------------[Functions]------------------------------------------------------------ Function Invoke-OfficeUninstall { if (-Not (Test-Path "$SaRA_DIR")) { @@ -109,7 +108,7 @@ Function Stop-OfficeProcess { } Function Invoke-SaRA { - $SaRAProcess = Start-Process -FilePath "$SaRA_EXE" -ArgumentList "-S OfficeScrubScenario -AcceptEula" -Wait -PassThru -NoNewWindow + $SaRAProcess = Start-Process -FilePath "$SaRA_EXE" -ArgumentList "-S OfficeScrubScenario -AcceptEula -CloseOffice -OfficeVersion All" -Wait -PassThru -NoNewWindow switch ($SaRAProcess.ExitCode) { 0 { Write-Host "Uninstall successful!" @@ -138,6 +137,14 @@ Function Invoke-SaRA { } Function Invoke-SetupOffice365($Office365ConfigFile) { + if ($Office365ConfigFile -eq "$Office365Setup_URL/purge.xml") { + Write-Host "Downloading Office365 Installer ..." + Start-BitsTransfer -Source "$Office365Setup_URL/setup.exe" -Destination "$SaRA_DIR\setup.exe" + Start-BitsTransfer -Source "$Office365ConfigFile" -Destination "$SaRA_DIR\purge.xml" + Write-Host "Executing Office365 Setup ..." + $OfficeSetup = Start-Process -FilePath "$SaRA_DIR\setup.exe" -ArgumentList "/configure $SaRA_DIR\purge.xml" -Wait -PassThru -NoNewWindow + } + if ($InstallOffice365) { Write-Host "Downloading Office365 Installer ..." Start-BitsTransfer -Source "$Office365Setup_URL/setup.exe" -Destination "$SaRA_DIR\setup.exe" @@ -167,22 +174,24 @@ Function Invoke-RebootInSeconds($Seconds) { } Function Set-CurrentStage($StageValue) { - if (-not (Test-Path "HKLM:\Software\OEM\101\M365\Install")) { - New-Item -Path "HKLM:\Software\OEM\101\M365\Install" -Force | Out-Null + if (-not (Test-Path "HKLM:\Software\OEM\Heko-Bueroservice-GmbH\M365\Install")) { + New-Item -Path "HKLM:\Software\OEM\Heko-Bueroservice-GmbH\M365\Install" -Force | Out-Null } - New-ItemProperty -Path "HKLM:\Software\OEM\101\M365\Install" -Name "CurrentStage" -Value $StageValue -PropertyType String -Force | Out-Null + New-ItemProperty -Path "HKLM:\Software\OEM\Heko-Bueroservice-GmbH\M365\Install" -Name "CurrentStage" -Value $StageValue -PropertyType String -Force | Out-Null } Function Invoke-Intro { - Write-Host " ___ ___ ___ _____ _____ _____ " - Write-Host "|_ | | |_ | | __| __| |" - Write-Host " _| |_| | |_| |_ | __| __| | | |" - Write-Host "|_____|___|_____| |__| |__| |_|_|_|" - Write-Host "" - Write-Host "Microsoft Office Removal Tool" - Write-Host "by Aaron Viehl (101 Frankfurt)" - Write-Host "einsnulleins.de" - Write-Host "" +Write-Host " _ _ _ ______ _ _ _ " +Write-Host "| | | | | | | ___ (_) (_) (_) " +Write-Host "| |_| | ___| | _____ | |_/ /_ _ _ __ ___ ___ ___ _ ____ ___ ___ ___ " +Write-Host "| _ |/ _ \ |/ / _ \ | ___ \ | | | '__/ _ \/ __|/ _ \ '__\ \ / / |/ __/ _ \" +Write-Host "| | | | __/ < (_) | | |_/ / |_| | | | (_) \__ \ __/ | \ V /| | (_| __/" +Write-Host "\_| |_/\___|_|\_\___/ \____/ \__,_|_| \___/|___/\___|_| \_/ |_|\___\___|" +Write-Host "" +Write-Host "Microsoft Office Removal Tool" +Write-Host "by Max Krieger" +Write-Host "heko-bs.de" +Write-Host "" } #-----------------------------------------------------------[Execution]------------------------------------------------------------ @@ -197,10 +206,11 @@ if (-Not $Force) { } } +Invoke-Intro # Check if there is a stage to resume if (-not ($RunAgain)) { - if (Test-Path "HKLM:\Software\OEM\101\M365\Install") { - $CurrentStageValue = (Get-ItemProperty "HKLM:\Software\OEM\101\M365\Install").CurrentStage + if (Test-Path "HKLM:\Software\OEM\Heko-Bueroservice-GmbH\M365\Install") { + $CurrentStageValue = (Get-ItemProperty "HKLM:\Software\OEM\Heko-Bueroservice-GmbH\M365\Install").CurrentStage Switch ($CurrentStageValue) { 1 { Write-Host "Resuming Stage 1: Uninstalling Office ..." diff --git a/office365-installer/install.xml b/office365-installer/install.xml index 4fd2a7b..c193cc9 100644 --- a/office365-installer/install.xml +++ b/office365-installer/install.xml @@ -1,30 +1,19 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/office365-installer/setup.exe b/office365-installer/setup.exe index fdb53ae..9468de7 100644 Binary files a/office365-installer/setup.exe and b/office365-installer/setup.exe differ diff --git a/office365-installer/upgrade.xml b/office365-installer/upgrade.xml index eff23d4..c193cc9 100644 --- a/office365-installer/upgrade.xml +++ b/office365-installer/upgrade.xml @@ -1,28 +1,19 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/readme.md b/readme.md index b825b5b..8042cc7 100644 --- a/readme.md +++ b/readme.md @@ -1,14 +1,17 @@ # Microsoft Office Removal Tool ```plain - ___ ___ ___ _____ _____ _____ -|_ | | |_ | | __| __| | - _| |_| | |_| |_ | __| __| | | | -|_____|___|_____| |__| |__| |_|_|_| + _ _ _ ______ _ _ _ +| | | | | | | ___ (_) (_) (_) +| |_| | ___| | _____ | |_/ /_ _ _ __ ___ ___ ___ _ ____ ___ ___ ___ +| _ |/ _ \ |/ / _ \ | ___ \ | | | '__/ _ \/ __|/ _ \ '__\ \ / / |/ __/ _ \ +| | | | __/ < (_) | | |_/ / |_| | | | (_) \__ \ __/ | \ V /| | (_| __/ +\_| |_/\___|_|\_\___/ \____/ \__,_|_| \___/|___/\___|_| \_/ |_|\___\___| + Microsoft Office Removal Tool -by Aaron Viehl (101 Frankfurt) -einsnulleins.de +by Max Krieger +heko-bs.de ``` ## Synopsis @@ -38,7 +41,7 @@ By using `-UseSetupRemoval` the Office365 setup method will be used. ## Stage mechanism -To make sure that the program will only do the necessary parts a _stage mechanism_ is builtin. After every stage a registry value will be written to ``HKLM:\Software\OEM\101\M365\Install\CurrentStage`` +To make sure that the program will only do the necessary parts a _stage mechanism_ is builtin. After every stage a registry value will be written to ``HKLM:\Software\OEM\Heko-Bueroservice-GmbH\M365\Install\CurrentStage`` To overwrite all stages and restart the whole script use ``-RunAgain``. @@ -47,5 +50,5 @@ To overwrite all stages and restart the whole script use ``-RunAgain``. You may use this script without explicit download: ```powershell -iwr https://raw.githubusercontent.com/Admonstrator/msoffice-removal-tool/main/msoffice-removal-tool.ps1 -OutFile msoffice-removal-tool.ps1; powershell -ExecutionPolicy Bypass .\msoffice-removal-tool.ps1 +iwr https://git.heko-technik.de/mkrieger/msoffice-removal-tool/raw/branch/main/msoffice-removal-tool.ps1 -OutFile msoffice-removal-tool.ps1; powershell -ExecutionPolicy Bypass .\msoffice-removal-tool.ps1 ```