diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml
new file mode 100644
index 0000000..63fd0fe
--- /dev/null
+++ b/.github/FUNDING.yml
@@ -0,0 +1,4 @@
+github: admonstrator
+ko_fi: admon
+buy_me_a_coffee: admon
+custom: https://paypal.me/aaronviehl
diff --git a/.github/workflows/update-badges.yml b/.github/workflows/update-badges.yml
new file mode 100644
index 0000000..64145d2
--- /dev/null
+++ b/.github/workflows/update-badges.yml
@@ -0,0 +1,110 @@
+name: Update Repository Badges
+
+on:
+ workflow_dispatch: # Manually triggered
+ schedule:
+ - cron: '0 0 * * 0' # Run weekly on Sunday at midnight
+
+jobs:
+ update-badges:
+ runs-on: ubuntu-latest
+
+ steps:
+ - name: Checkout repository
+ uses: actions/checkout@v4
+ with:
+ token: ${{ secrets.GITHUB_TOKEN }}
+
+ - name: Fetch repository statistics
+ id: stats
+ run: |
+ # Get repository data
+ response=$(curl -s -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \
+ "https://api.github.com/repos/Admonstrator/msoffice-removal-tool")
+
+ stars=$(echo "$response" | jq -r '.stargazers_count')
+ forks=$(echo "$response" | jq -r '.forks_count')
+
+ # Get latest release
+ release_response=$(curl -s -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \
+ "https://api.github.com/repos/Admonstrator/msoffice-removal-tool/releases/latest")
+
+ latest_release=$(echo "$release_response" | jq -r '.tag_name // "N/A"')
+
+ echo "stars=$stars" >> $GITHUB_OUTPUT
+ echo "forks=$forks" >> $GITHUB_OUTPUT
+ echo "release=$latest_release" >> $GITHUB_OUTPUT
+
+ echo "â
Fetched stats: $stars stars, $forks forks, release $latest_release"
+
+ - name: Generate README from template
+ run: |
+ # Helper function to create color based on count
+ get_color() {
+ local count=$1
+ if [ "$count" -ge 300 ]; then echo "brightgreen"
+ elif [ "$count" -ge 100 ]; then echo "green"
+ elif [ "$count" -ge 50 ]; then echo "yellowgreen"
+ elif [ "$count" -ge 10 ]; then echo "yellow"
+ else echo "orange"
+ fi
+ }
+
+ stars="${{ steps.stats.outputs.stars }}"
+ forks="${{ steps.stats.outputs.forks }}"
+ release="${{ steps.stats.outputs.release }}"
+ stars_color=$(get_color $stars)
+
+ # Get current date
+ update_date=$(date '+%Y-%m-%d')
+
+ # Copy template and replace badge URLs with static badges
+ cp readme.template.md readme.md
+
+ # Replace dynamic GitHub badges with static shields.io badges
+ sed -i "s|https://img.shields.io/github/v/release/Admonstrator/msoffice-removal-tool?style=for-the-badge&logo=github&color=blue|https://img.shields.io/badge/release-${release}-blue?style=for-the-badge\&logo=github|g" readme.md
+ sed -i "s|https://img.shields.io/github/stars/Admonstrator/msoffice-removal-tool?style=for-the-badge|https://img.shields.io/badge/stars-${stars}-${stars_color}?style=for-the-badge\&logo=github|g" readme.md
+
+ # Add last updated badge
+ echo "" >> readme.md
+ echo "
" >> readme.md
+ echo "" >> readme.md
+ echo "_Last updated: ${update_date}_" >> readme.md
+ echo "" >> readme.md
+ echo "
" >> readme.md
+
+ echo "â
README generated with static badges successfully"
+
+ - name: Check for changes
+ id: check_changes
+ run: |
+ if git diff --quiet readme.md; then
+ echo "changed=false" >> $GITHUB_OUTPUT
+ else
+ echo "changed=true" >> $GITHUB_OUTPUT
+ fi
+
+ - name: Commit and push changes
+ if: steps.check_changes.outputs.changed == 'true'
+ run: |
+ git config --local user.email "github-actions[bot]@users.noreply.github.com"
+ git config --local user.name "github-actions[bot]"
+ git add readme.md
+ git commit -m "đ¤ Update repository badges [automated]"
+ git push
+
+ - name: Create summary
+ run: |
+ echo "## đ Badge Update Summary" >> $GITHUB_STEP_SUMMARY
+ echo "" >> $GITHUB_STEP_SUMMARY
+ echo "### Repository Statistics" >> $GITHUB_STEP_SUMMARY
+ echo "- â Stars: ${{ steps.stats.outputs.stars }}" >> $GITHUB_STEP_SUMMARY
+ echo "- đ´ Forks: ${{ steps.stats.outputs.forks }}" >> $GITHUB_STEP_SUMMARY
+ echo "- đĻ Latest Release: ${{ steps.stats.outputs.release }}" >> $GITHUB_STEP_SUMMARY
+ echo "" >> $GITHUB_STEP_SUMMARY
+
+ if [ "${{ steps.check_changes.outputs.changed }}" == "true" ]; then
+ echo "â
**readme.md was updated with new badge values**" >> $GITHUB_STEP_SUMMARY
+ else
+ echo "âšī¸ **No changes detected - badges are up to date**" >> $GITHUB_STEP_SUMMARY
+ fi
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..ea84fb8
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2024 Aaron Viehl
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/readme.md b/readme.md
index 0a4c8e9..2ab9bbc 100644
--- a/readme.md
+++ b/readme.md
@@ -1,53 +1,205 @@
-# Microsoft Office Removal Tool
+
-```plain
- __ _ _ _ ___ _
-/ _(_)_ __ __ _| | ___| |_ ___ _ __ / __\_ _ ___| |_ ___ _ __ _ _
-\ \| | '_ \ / _` | |/ _ \ __/ _ \| '_ \ / _\/ _` |/ __| __/ _ \| '__| | | |
-_\ \ | | | | (_| | | __/ || (_) | | | | / / | (_| | (__| || (_) | | | |_| |
-\__/_|_| |_|\__, |_|\___|\__\___/|_| |_| \/ \__,_|\___|\__\___/|_| \__, |
- |___/ |___/
+## Microsoft Office Removal Tool
-Microsoft Office Removal Tool
-by Aaron Viehl (Singleton Factory GmbH)
-singleton-factory.de
-```
+**Remove Office installations with ease!**
-## Synopsis
+[](https://github.com/Admonstrator/msoffice-removal-tool/releases/latest) [](LICENSE) [](https://github.com/Admonstrator/msoffice-removal-tool/stargazers)
-This script downloads the current Office uninstaller from Microsoft and tries to remove all Office installations on this computer.
+---
-If you wish it tries to install the newest Office365 build as well.
+## đ Support the Project
-You can choose between 2 methods of uninstalling:\
-Default method will use the [Microsoft Support and Recovery Assistant (SaRA)](https://docs.microsoft.com/en-us/office365/troubleshoot/administration/sara-command-line-version) for uninstalling.\
-By using `-UseSetupRemoval` the Office365 setup method will be used.
+If you find this tool helpful, consider supporting its development:
-## Parameter
+[](https://github.com/sponsors/admonstrator) [](https://buymeacoffee.com/admon) [](https://ko-fi.com/admon) [](https://paypal.me/aaronviehl)
-| Parameter | Usage |
-|------------------------|-------------------------------------------------------------------------|
-| -InstallOffice365 | The script will try to install the newest Office365 build after removal |
-| -SuppressReboot | No reboot will be executed after script is done |
-| -UseSetupRemoval | Will use the official Office365 setup instead of SaRA |
-| -RunAgain | Will skip the stage mechanism - whole script will run again |
-| -Force | Non-interactive - No user interaction required |
-| -SecondsToReboot [int] | Seconds until the computer will reboot |
+
-## Example
+---
- ``.\msoffice-removal-tool.ps1 -InstallOffice365 -SuppressReboot -Force``
+## đ About
-## Stage mechanism
+This script downloads the current Office uninstaller from Microsoft and automatically removes all Office installations on your computer.
-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\Singleton-Factory-GmbH\M365\Install\CurrentStage``
+The script features two removal methods and can optionally install the newest Office 365 build after removal.
-To overwrite all stages and restart the whole script use ``-RunAgain``.
+Created by [Aaron Viehl](https://github.com/Admonstrator) for the community.
-## Usage
+> â ī¸ **Disclaimer** â This is an independent project, not officially affiliated with Microsoft
-You may use this script without explicit download:
+---
+
+## ⨠Features
+
+- đ **Automatic Removal** â Removes all Office installations from your computer
+- đ **Flexible Methods** â Choose between SaRA or Office365 setup removal
+- đĻ **Optional Installation** â Install Office365 after removal if desired
+- đĄī¸ **Safe Processing** â Built-in stage mechanism to track progress
+- ⥠**Flexible Options** â Multiple parameters for customized removal
+- đ **Automatic Reboot** â Optional automatic reboot after completion
+
+---
+
+## đ Requirements
+
+| Requirement | Details |
+|-------------|---------|
+| **OS** | Windows (Windows 10 or later recommended) |
+| **PowerShell** | PowerShell 5.0 or later |
+| **Permissions** | Administrator privileges required |
+| **Internet** | Required for downloading Office uninstaller |
+
+---
+
+## đ Quick Start
+
+Run the script without cloning the repository:
```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
```
+
+---
+
+## đī¸ Parameters
+
+The `msoffice-removal-tool.ps1` script supports the following parameters:
+
+| Parameter | Description |
+|-----------|-------------|
+| `-InstallOffice365` | The script will try to install the newest Office365 build after removal |
+| `-SuppressReboot` | No reboot will be executed after script is done |
+| `-UseSetupRemoval` | Will use the official Office365 setup instead of SaRA for uninstalling |
+| `-RunAgain` | Will skip the stage mechanism - whole script will run again |
+| `-Force` | Non-interactive mode - No user interaction required |
+| `-SecondsToReboot [int]` | Seconds until the computer will reboot (default: 120) |
+
+---
+
+## đ Usage Examples
+
+### Standard Removal
+
+Remove Office with the default SaRA method:
+
+```powershell
+.\msoffice-removal-tool.ps1
+```
+
+### Removal with Reinstallation
+
+Remove Office and install the latest Office365 build:
+
+```powershell
+.\msoffice-removal-tool.ps1 -InstallOffice365
+```
+
+### Force Removal Without Reboot
+
+Skip all prompts and prevent automatic reboot:
+
+```powershell
+.\msoffice-removal-tool.ps1 -Force -SuppressReboot
+```
+
+### Using Office Setup Removal
+
+Use the Office365 setup method instead of SaRA:
+
+```powershell
+.\msoffice-removal-tool.ps1 -UseSetupRemoval -Force
+```
+
+### Complete Unattended Removal with Reinstallation
+
+For fully unattended operation with reinstallation:
+
+```powershell
+.\msoffice-removal-tool.ps1 -InstallOffice365 -Force -SecondsToReboot 60
+```
+
+### Restarting the Entire Process
+
+To skip the stage mechanism and run the entire script again:
+
+```powershell
+.\msoffice-removal-tool.ps1 -RunAgain -Force
+```
+
+---
+
+## đ Key Features Explained
+
+### đ¯ Stage Mechanism
+
+The script uses a built-in stage mechanism to ensure it only performs necessary steps and doesn't repeat work unnecessarily.
+
+After every stage, a registry value is written to:
+```
+HKLM:\Software\OEM\Singleton-Factory-GmbH\M365\Install\CurrentStage
+```
+
+The mechanism is:
+- â
Applied automatically
+- â
Persistent across script restarts
+- â
Can be overridden with `-RunAgain` parameter
+
+### đ§ Removal Methods
+
+**Default Method (SaRA):**
+- Uses the [Microsoft Support and Recovery Assistant](https://docs.microsoft.com/en-us/office365/troubleshoot/administration/sara-command-line-version)
+- Recommended for most users
+- Less intrusive than setup method
+
+**Setup Method:**
+- Uses the official Office365 setup
+- More thorough removal
+- Enabled with `-UseSetupRemoval` parameter
+
+### đĻ Office365 Installation
+
+When using `-InstallOffice365`, the script will:
+- â
Automatically download the latest Office365 build
+- â
Install Office365 after removal completes
+- â
Configure the XML installation files from the `office365-installer/` directory
+
+---
+
+## đĄ Getting Help
+
+Need assistance or have questions?
+
+- đ [Report issues on GitHub](https://github.com/Admonstrator/msoffice-removal-tool/issues) â Bug reports and feature requests
+- đ§ Contact via GitHub â For private inquiries
+
+---
+
+## â ī¸ Disclaimer
+
+This script is provided **as-is** without any warranty. Use it at your own risk.
+
+It may potentially:
+- đĨ Remove important files or configurations
+- đĨ Cause system instability
+- đĨ Require manual recovery steps
+
+**You have been warned!**
+
+Always read the documentation carefully and understand what a script does before running it. Create a system restore point before executing this script.
+
+---
+
+## đ License
+
+This project is licensed under the **MIT License** â see the [LICENSE](LICENSE) file for details.
+
+---
+
+
+
+**Made with â¤ī¸ by [Admonstrator](https://github.com/Admonstrator)**
+
+â If you find this useful, please star the repository!
+
+
diff --git a/readme.template.md b/readme.template.md
new file mode 100644
index 0000000..2ab9bbc
--- /dev/null
+++ b/readme.template.md
@@ -0,0 +1,205 @@
+
+
+## Microsoft Office Removal Tool
+
+**Remove Office installations with ease!**
+
+[](https://github.com/Admonstrator/msoffice-removal-tool/releases/latest) [](LICENSE) [](https://github.com/Admonstrator/msoffice-removal-tool/stargazers)
+
+---
+
+## đ Support the Project
+
+If you find this tool helpful, consider supporting its development:
+
+[](https://github.com/sponsors/admonstrator) [](https://buymeacoffee.com/admon) [](https://ko-fi.com/admon) [](https://paypal.me/aaronviehl)
+
+
+
+---
+
+## đ About
+
+This script downloads the current Office uninstaller from Microsoft and automatically removes all Office installations on your computer.
+
+The script features two removal methods and can optionally install the newest Office 365 build after removal.
+
+Created by [Aaron Viehl](https://github.com/Admonstrator) for the community.
+
+> â ī¸ **Disclaimer** â This is an independent project, not officially affiliated with Microsoft
+
+---
+
+## ⨠Features
+
+- đ **Automatic Removal** â Removes all Office installations from your computer
+- đ **Flexible Methods** â Choose between SaRA or Office365 setup removal
+- đĻ **Optional Installation** â Install Office365 after removal if desired
+- đĄī¸ **Safe Processing** â Built-in stage mechanism to track progress
+- ⥠**Flexible Options** â Multiple parameters for customized removal
+- đ **Automatic Reboot** â Optional automatic reboot after completion
+
+---
+
+## đ Requirements
+
+| Requirement | Details |
+|-------------|---------|
+| **OS** | Windows (Windows 10 or later recommended) |
+| **PowerShell** | PowerShell 5.0 or later |
+| **Permissions** | Administrator privileges required |
+| **Internet** | Required for downloading Office uninstaller |
+
+---
+
+## đ Quick Start
+
+Run the script without cloning the repository:
+
+```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
+```
+
+---
+
+## đī¸ Parameters
+
+The `msoffice-removal-tool.ps1` script supports the following parameters:
+
+| Parameter | Description |
+|-----------|-------------|
+| `-InstallOffice365` | The script will try to install the newest Office365 build after removal |
+| `-SuppressReboot` | No reboot will be executed after script is done |
+| `-UseSetupRemoval` | Will use the official Office365 setup instead of SaRA for uninstalling |
+| `-RunAgain` | Will skip the stage mechanism - whole script will run again |
+| `-Force` | Non-interactive mode - No user interaction required |
+| `-SecondsToReboot [int]` | Seconds until the computer will reboot (default: 120) |
+
+---
+
+## đ Usage Examples
+
+### Standard Removal
+
+Remove Office with the default SaRA method:
+
+```powershell
+.\msoffice-removal-tool.ps1
+```
+
+### Removal with Reinstallation
+
+Remove Office and install the latest Office365 build:
+
+```powershell
+.\msoffice-removal-tool.ps1 -InstallOffice365
+```
+
+### Force Removal Without Reboot
+
+Skip all prompts and prevent automatic reboot:
+
+```powershell
+.\msoffice-removal-tool.ps1 -Force -SuppressReboot
+```
+
+### Using Office Setup Removal
+
+Use the Office365 setup method instead of SaRA:
+
+```powershell
+.\msoffice-removal-tool.ps1 -UseSetupRemoval -Force
+```
+
+### Complete Unattended Removal with Reinstallation
+
+For fully unattended operation with reinstallation:
+
+```powershell
+.\msoffice-removal-tool.ps1 -InstallOffice365 -Force -SecondsToReboot 60
+```
+
+### Restarting the Entire Process
+
+To skip the stage mechanism and run the entire script again:
+
+```powershell
+.\msoffice-removal-tool.ps1 -RunAgain -Force
+```
+
+---
+
+## đ Key Features Explained
+
+### đ¯ Stage Mechanism
+
+The script uses a built-in stage mechanism to ensure it only performs necessary steps and doesn't repeat work unnecessarily.
+
+After every stage, a registry value is written to:
+```
+HKLM:\Software\OEM\Singleton-Factory-GmbH\M365\Install\CurrentStage
+```
+
+The mechanism is:
+- â
Applied automatically
+- â
Persistent across script restarts
+- â
Can be overridden with `-RunAgain` parameter
+
+### đ§ Removal Methods
+
+**Default Method (SaRA):**
+- Uses the [Microsoft Support and Recovery Assistant](https://docs.microsoft.com/en-us/office365/troubleshoot/administration/sara-command-line-version)
+- Recommended for most users
+- Less intrusive than setup method
+
+**Setup Method:**
+- Uses the official Office365 setup
+- More thorough removal
+- Enabled with `-UseSetupRemoval` parameter
+
+### đĻ Office365 Installation
+
+When using `-InstallOffice365`, the script will:
+- â
Automatically download the latest Office365 build
+- â
Install Office365 after removal completes
+- â
Configure the XML installation files from the `office365-installer/` directory
+
+---
+
+## đĄ Getting Help
+
+Need assistance or have questions?
+
+- đ [Report issues on GitHub](https://github.com/Admonstrator/msoffice-removal-tool/issues) â Bug reports and feature requests
+- đ§ Contact via GitHub â For private inquiries
+
+---
+
+## â ī¸ Disclaimer
+
+This script is provided **as-is** without any warranty. Use it at your own risk.
+
+It may potentially:
+- đĨ Remove important files or configurations
+- đĨ Cause system instability
+- đĨ Require manual recovery steps
+
+**You have been warned!**
+
+Always read the documentation carefully and understand what a script does before running it. Create a system restore point before executing this script.
+
+---
+
+## đ License
+
+This project is licensed under the **MIT License** â see the [LICENSE](LICENSE) file for details.
+
+---
+
+
+
+**Made with â¤ī¸ by [Admonstrator](https://github.com/Admonstrator)**
+
+â If you find this useful, please star the repository!
+
+