# Cleaner Suite

***

### 1. Introduction

**GregOrigin Cleaner Suite** is a minimalist, portable system utility designed for Windows 11. Unlike traditional "black box" cleaners that use proprietary engines to aggressively scrub the system, GregOrigin Suite acts as a transparent wrapper around native Windows APIs (PowerShell, .NET, and Winget).

#### Key Philosophy

* **Safety First:** We do not touch the Windows Registry for "cleaning."
* **Transparency:** The application is open-source.
* **Native:** Relies on standard Windows commands, ensuring high stability.
* **No Adware:** No upsells, no banners, no background services.

***

### 2. System Requirements

* **OS:** Windows 11 (Recommended) or Windows 10 (21H2+).
* **Permissions:** Local Administrator rights (Required to uninstall programs and clean system temp folders).
* **Dependencies:** None (Uses the pre-installed .NET Framework and PowerShell).

***

### 3. Installation

GregOrigin Suite is a **Portable Application**. It does not require a setup wizard.

#### Method A: Executable (Recommended)

1. Download GregOriginSuite.exe from the [GitHub Releases page](https://www.google.com/url?sa=E\&q=https%3A%2F%2Fgithub.com%2FGregOrigin%2FSuite%2Freleases).
2. Move the file to a folder of your choice (e.g., Desktop or C:\Tools).
3. Right-click and select **Run as Administrator**.

> **⚠️ SmartScreen Warning:**\
> Upon first launch, Windows SmartScreen may flag the app because it is not digitally signed by a corporation.\
> **Fix:** Click **More Info** > **Run Anyway**.\
> This warning will disappear as the community builds reputation for the file.

#### Method B: Winget (Command Line)

If you prefer the terminal:

code Powershelldownloadcontent\_copyexpand\_less

```
    winget install GregOrigin.Suite
  
```

#### Method C: PowerShell Source (Expert)

For maximum transparency, you can run the source code directly:

1. Download GregOriginSuite.ps1.
2. Right-click the file > **Run with PowerShell**.

***

### 4. User Guide

#### Tab 1: Bulk Uninstaller

This tool allows you to remove multiple applications in rapid succession without manually clicking through every wizard.

* **Scanning:** The app queries the Registry (HKLM and HKCU) to find installed software. It loads faster than generic uninstallers because it skips deep file-system heuristics.
* **Bulk Removal:**
  1. Hold CTRL or SHIFT to select multiple applications from the list.
  2. Click **Uninstall Selected**.
* **Silent Mode:**
  * If the app is an **MSI (Windows Installer)**, GregOrigin automatically applies the /qb flag (Quiet Basic) to remove it with a progress bar but no user interaction.
  * If the app is an **EXE**, the standard uninstaller will launch.

#### Tab 2: Safe System Cleaner

This module reclaims disk space by removing temporary cache files. Unlike "Aggressive" cleaners, it **does not** delete browser history, saved passwords, or cookies.

**Targets:**

* **Windows Temp:** C:\Windows\Temp (System logs, update debris).
* **User Temp:** %TEMP% (Application temporary files).
* **Edge/Chrome Cache:** Removes cached images and scripts (Cache\_Data).
* **Recycle Bin:** Empties the bin.

**How to use:**

1. Click **Analyze** to calculate potential space savings.
2. Review the log window.
3. Click **Clean Now** to execute deletion.
   * Note: Locked files (files currently in use by Windows) are automatically skipped to prevent system crashes.

#### Tab 3: Software Updater

This module leverages Microsoft's **Winget** (Windows Package Manager) to detect outdated software.

* **Check Updates:** Queries the official Microsoft repositories for newer versions of your installed apps.
* **Update All:**
  * Clicking this will launch a **Console Window**.
  * This is intentional. We display the console so you can see exactly what Winget is downloading and installing.
  * The process handles the downloading and installation automatically.

***

### 5. Troubleshooting

#### "Windows protected your PC" popup?

This is Microsoft Defender SmartScreen. Because GregOrigin Suite is free and open-source, we do not pay the \~$500 yearly fee for an EV Code, Signing Certificate.

* **Solution:** Click "More Info" -> "Run Anyway".

#### An application failed to uninstall.

* **Cause:** Some older applications have broken UninstallString registry entries or proprietary installers that do not accept automation.
* **Solution:** The suite will attempt to launch the uninstaller. If it fails, you may need to uninstall that specific app via Windows Settings.

#### "Access Denied" errors in the Cleaner log.

* **Cause:** You are trying to delete a file that is currently being used by a running program (e.g., trying to clean Edge Cache while Edge is open).
* **Behavior:** GregOrigin Suite is designed to **fail safely**. It will skip the locked file and move to the next one rather than forcing a deletion that could crash the OS.

***

### 6. Technical Reference & Architecture

#### 6.1. High-Level Architecture

GregOrigin Suite operates as a **Hybrid PowerShell/WPF Application** encapsulated within a lightweight C# .NET Bootstrap executable.

* **Presentation Layer:** Windows Presentation Foundation (WPF) defined via XAML strings.
* **Logic Layer:** Windows PowerShell 5.1 (compatible with PowerShell Core 7+).
* **Execution Layer:** A compiled C# EXE that unwraps the payload into memory/temporary storage and invokes the System.Automation engine.
* **External Integration:** Leverages the Windows Package Manager (winget.exe) via Process invocation for update management.

#### 6.2. Component Breakdown

#### A. The Uninstaller Engine (Registry Parsing)

Unlike older tools that use WMI (Win32\_Product), which is slow and notoriously dangerous, GregOrigin Suite utilizes direct Registry parsing for speed and safety.

**Scanned Hives:**

1. HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\\\* (64-bit System Apps)
2. HKLM\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\\\* (32-bit Legacy Apps)
3. HKCU\Software\Microsoft\Windows\CurrentVersion\Uninstall\\\* (Per-User Apps)

**Filtering Logic:**\
The engine filters results at the query level to exclude:

* Items missing UninstallString.
* Items flagged as SystemComponent (to prevent accidental removal of drivers/OS kernel features).

**Execution Logic:**

* **MSI Installers:** Detected via regex match for msiexec. The arguments are parsed and appended with /qb (Basic UI, No Modal) to allow batch processing.
* **EXE Installers:** Executed via cmd.exe /c to handle complex path variables and environment string expansion.

#### B. The Cleaning Engine (FileSystem Heuristics)

The cleaning module uses standard .NET System.IO classes via PowerShell cmdlets (Get-ChildItem, Remove-Item).

**Safety Constraints:**

* **ErrorAction SilentlyContinue:** Used explicitly on IO operations. If a file is locked by the OS (System.IO.IOException), the loop skips it immediately rather than queuing a retry or crashing the UI.
* **Targeted Scope:**
  * Windows Temp: C:\Windows\Temp
  * User Temp: \[System.Environment]::GetEnvironmentVariable('TEMP')
  * Browser Cache: Hardcoded paths relative to %LOCALAPPDATA%.
  * **DB Exclusion:** The scraper specifically avoids User Data\Default root folders to ensure History (SQLite), Cookies (SQLite), and Login Data (SQLite) are untouched.

#### C. The Update Engine (Winget Interop)

The suite does not maintain an internal database of software versions. It acts as a GUI frontend for winget.

* **Detection:** Runs winget upgrade in a background process with StandardOutputEncoding set to UTF8.
* **Parsing:** The stdout stream is captured and parsed using regex to split the tabular data into objects (Name, CurrentVersion, AvailableVersion).
* **Action:** Triggers winget upgrade --all --include-unknown via a new process window to show user feedback during the download phase.

#### 6.3. The Build System (Compiler Details)

The GregOriginSuite.exe is **not** a traditional Visual Studio compiled binary. It is generated via the BuildConnector.ps1 script included in the source:

1. **Payload Encoding:** The source PowerShell script is Base64 encoded.
2. **C# CodeDom Provider:** The builder utilizes Microsoft.CSharp.CSharpCodeProvider.
3. **Bootstrap Logic:**
   * The C# Main() method decodes the Base64 string at runtime.
   * It writes the script to %TEMP%\GregOriginSuite\_Run.ps1.
   * It invokes powershell.exe with -ExecutionPolicy Bypass -WindowStyle Hidden pointed at the temp file.
   * It executes a finally block to delete the temp file upon application closure.

**Why this matters:** This architecture ensures that the behavioral logic of the EXE offers 1:1 parity with the open-source .ps1 file for auditing purposes.

#### 6.4. Security & Privacy Audit

#### Network Activity

* **Internal Telemetry:** **None.** No analytics, no crash reporting, no "home phone."
* **External Calls:**
  * winget.exe communicates with cdn.winget.microsoft.com (Microsoft's CDN).
  * Clicking the "Visit Website" button utilizes Start-Process, handing the URL to the user's default browser.

#### Permissions

* **Elevation:** The application requires Administrative privileges (Elevated Token).
  * Reason: Required to delete files in C:\Windows\Temp and write to HKLM keys for uninstallation.
* **UAC:** If run without Admin rights, operations will fail silently or throw "Access Denied" errors in the log window.

#### Binaries & Dependencies

* **Dependencies:** Requires .NET Framework 4.5+ (Standard on Windows 10/11).
* **Portable:** No Registry entries are created for the application itself. No uninstaller is needed for GregOrigin Suite.

#### 6.5. Known Technical Limitations

1. **Windows Store Apps (AppX/MSIX):**
   * The Uninstaller currently targets Win32 apps (Registry based). It does not query Get-AppxPackage, meaning pre-installed Store bloatware (Candy Crush, Disney+) does not yet appear in the list.
2. **Chrome/Edge Locks:**
   * Browser cache cleaning is most effective when browsers are closed. If open, the browser locks the files, and the cleaning engine will skip them (reporting 0MB cleaned).
3. **Winget Availability:**
   * Relies on the App Installer package. If the user has manually stripped the Microsoft Store from their OS, the "Updater" tab will return zero results.

***

### 7. Legal & License

**Copyright © 2025** [**Andras Gregori**](https://linktr.ee/agregori) **@** [**GregOrigin LLC**](https://www.gregorigin.com)**.**

Also available at [Itch.io](https://gregorigin.itch.io/cleaner-suite) and [GitHub](https://github.com/gregorik/gregorigin-cleaner-suite).

Licensed under the **MIT License**.

You are free to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies 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 BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY.
