An interactive, self-contained PowerShell CLI tool for Windows Server 2016+ that finds and safely deletes files across every local drive, mapped network drive, and common web-server cache (IIS, ASP.NET, XAMPP/WAMP/Laragon).
Built for tolerant name matching, full transparency (colorized, replayable session logs), and safe, confirm-before-delete operations — with a menu-driven UI available in 6 languages.
On a Windows Server, "deleting a file" is rarely as simple as it sounds. The same file can quietly survive as a leftover in an IIS or ASP.NET temp cache, inside a XAMPP/WAMP web root, as a hidden copy, as a numbered duplicate ("file (1)"), or as a stale shortcut in Recent Items — so a file you're sure you removed keeps reappearing online or on disk.
ServerCleaner Toolkit was built to make that investigation fast and safe: give it a name (even a partial one, even with different spacing or punctuation), and it searches every drive and every known cache location, shows you exactly what it finds, and only deletes what you explicitly confirm — with a full, readable log of everything it did.
- Menu-driven, numbers-only interface: every screen is a short numbered list, no typing full commands, no PowerShell knowledge required to operate it.
- Auto-detected UI language, switchable at any time between English, Italian, French, German, Spanish, and Portuguese.
- Self-elevating: prompts for UAC and relaunches itself as Administrator automatically, since most cache locations require elevated access.
- Tolerant name matching: ignores case and treats spaces, dashes, underscores, and dots as equivalent; strips Windows auto-generated copy suffixes ("(1)", "- Copy", "copia", "kopie"...); matches partial names.
- Wide-coverage scanning: every fixed and mapped network drive, plus IIS wwwroot & compressed cache, ASP.NET temporary files, Windows Temp, every user profile's Temp folder, and XAMPP/WAMP/Laragon web roots.
- Flags hidden files and symlinks/junctions found among the matches.
- Two logging modes per search: a full transcript of every file observed, or a lighter "matches only" mode — plus an optional maximum log file size.
- Every search gets its own timestamped log file, saved as plain text next to the script; reopening it from the built-in log viewer re-applies colors automatically and paginates long files.
- Delete one match, several, or all of them from a single numbered results list, always with an explicit yes/no confirmation first.
- Resilient scanning: a single inaccessible or vanishing file (very common in a live Temp folder) is logged and skipped, it never aborts the whole scan.
- Two distribution forms: a modular source tree for development, and a single portable
.ps1file with all modules and translations embedded — no external files needed to run it elsewhere.
- Windows Server 2016 or later (Windows 10/11 works too, e.g. for testing)
- Windows PowerShell 5.1+ (built in) — no external modules or internet access needed to run the tool itself
- Administrator rights (the script elevates itself via UAC automatically if not already running elevated)
Clone the whole repo if you want the modular source, or just download ServerCleaner-Portable.ps1 on its own — it has no dependencies.
git clone https://github.com/R0mb0/Server_cleaner_toolkit.git
cd server-cleaner-toolkitpowershell -ExecutionPolicy Bypass -File ".\ServerCleaner-Portable.ps1"(or, from an already open PowerShell prompt, simply .\ServerCleaner-Portable.ps1). On first run it will ask for elevation via UAC if it isn't already running as Administrator.
- Detects the OS UI culture at startup and loads the matching translation (falls back to English); the language can be changed at any time from the main menu.
- Checks for Administrator privileges and relaunches itself elevated via UAC if needed.
- Main menu: change language, search & purge a file, or browse previous logs.
- On "purge": asks for a (partial) filename, then a short numbered wizard — full vs. matches-only logging, an optional log size cap, and whether to skip heavy OS folders (WinSxS, System32, Defender cache). A dedicated log file is opened immediately, before scanning starts.
- Scans, in order: known cache locations (IIS, ASP.NET temp, Windows Temp, every user's Temp folder, XAMPP/WAMP/Laragon), then every fixed and mapped network drive — using an explicit stack-based walk (no recursive function calls, so folder depth is never a limit) with per-item error isolation.
- Name comparison normalizes spacing/punctuation, strips Windows copy-suffixes, and matches when the search term is contained in the candidate's name — not the other way round, to avoid false positives on short, generic filenames.
- Matches are listed and numbered from 1, with a final "delete all" option; every deletion (single or bulk) requires an explicit yes/no confirmation and is written to the log.
- Logs are plain text with no color codes, so they stay readable anywhere; reopening one from the built-in viewer re-applies colors per entry type and pages through long files.
| Code | Language |
|---|---|
it | Italiano |
en | English |
fr | Français |
de | Deutsch |
es | Español |
pt | Português |
- Deletions are permanent — files are removed directly, not sent to the Recycle Bin. Always review the numbered results list carefully before confirming, especially before using "delete all".
- Run your first searches with the "full" logging mode and without excluding system folders, so you can verify the tool's behavior on your specific server before relying on the lighter/faster settings.
- Test on a non-critical path or a non-production server first if you're not yet familiar with the tool.