A powerful, highly targeted, enterprise-grade PowerShell module designed to surgically remove technical debt from CAD/BIM workstations by cleanly uninstalling legacy Autodesk products — and resetting user profile data and licensing when things go sideways.
Published and maintained by Dailen.
Autodesk products often leave behind deeply nested registry keys, orphaned background services, and fragmented shared dependencies. Scorched-earth uninstallation scripts often break global licensing (FlexNet/ODIS) for other software on the machine.
Surgical Autodesk Cleaner takes a different approach:
- Enterprise Remote Dispatch: Dispatch any SAC tool (Cleanup, Purge, Reset) to remote endpoints over WinRM with automated module bootstrapping.
- Resilient Monitoring: Uses
CimSessionandGet-CimInstancefor process-tree tracking, remaining stable across VPN drops or network latency. - Zombie Detection: Identifies hung installers by monitoring CPU/Memory deltas over time, forcibly reaping "zombie" processes that block uninstallation queues.
- Targeted Removal: Uninstalls specific applications for specific years without touching shared services.
- Fail-Safe Mechanism: Verifies vendor and product names against strict patterns to prevent accidental removal of non-Autodesk tools.
- Deep Cleansing: Purges orphaned installation directories using an enterprise-grade
robocopy /MIRengine to bypass PowerShell'sMAX_PATHlimits, and destroys cyclical registry keys using native OS methods (reg.exe) to prevent StackOverflow exceptions. - Reboot Deletion Queue: Automatically queues locked files (like the stubborn Genuine Service DLLs) for deletion on the next system restart using the standard Windows
PendingFileRenameOperationsmechanism. If any files or folders remain locked/in-use at the end of a Master Purge, SAC will prompt to schedule them for a silent post-reboot cleanup task via theRunOnceregistry key, which automatically removes them on the next logon and pops up a status log for user review. - Service Hardening: Aggressively targets and removes background services like
AdskAccessServiceandAGSServicethat often block uninstallation and cause file locks. - Robust Pathing: Automatically detects and utilizes $env:TEMP if C:\temp is unavailable, ensuring deployment reliability on locked-down systems.
- Profile & Licensing Utilities: Resets per-user AppData and Autodesk licensing tokens to resolve post-install issues without a full reinstall.
- Non-Destructive by Default: Roaming profile data is renamed with a timestamped backup suffix rather than deleted, so user customizations can be restored.
- Smart Logging: Dual-channel logging with a dedicated "Attention Items" summary file that surfaces critical failures for easy review.
The surgical cleanup and profile reset tools explicitly target and support the following Autodesk suites and products out-of-the-box:
- Core Design & Draft: AutoCAD, AutoCAD LT, DWG TrueView
- BIM & Infrastructure: Revit, Civil 3D, InfraWorks, Forma Site Design, Advance Steel, SketchUp Import
- Engineering & Simulation: Inventor, Fusion, Alias, Moldflow, Netfabb
- Collaboration & Data Management: Autodesk Docs, Autodesk Construction Cloud (ACC), Vault Professional Client, Vault Basic Client, Vault
- Visual & Reality Capture: 3ds Max, Maya, ReCap, Autodesk Material Library
- Operating System: Windows 10/11 or Windows Server 2016+
- PowerShell Version: 5.1 or 7.0+ (Recommended for TUI)
- Connectivity: WinRM must be enabled on the target for Remote Dispatch features.
Install-Module -Name SurgicalAutodeskCleaner -Scope CurrentUser -Force# Launch the full interactive menu (recommended for manual use)
Start-SAC
# Surgical cleanup via RMM/headless — no prompts
Start-SACCleanup -TargetProducts "AutoCAD", "Revit" -TargetYears 2020, 2021 -Silent
# Reset a user's Autodesk profile data after a bad upgrade
Reset-SACUserProfile -TargetProducts "AutoCAD" -TargetYears 2022
# Wipe licensing tokens to force re-authentication
Reset-SACLicensing -SilentThe interactive entry point. Launches a full-screen TUI main menu that surfaces all SAC tools in one place. Automatically scans the registry and displays detected Autodesk products in the header.
New in v2.7.x: Post-purge interactive prompts to schedule remaining locked files/folders for silent removal on the next reboot via the RunOnce registry key (with automatic log viewing on next user login). Adds DWG TrueView and SketchUp Import to targeted product detection and uninstallation matching. Includes active pending reboot checking, tasks/services teardown on abort, targeted safety-focused Autodesk temp clearing, user profile root cache clearing (ACCDocs, BIM 360), and expanded surgical cleaner support for AutoCAD LT, Navisworks Simulate, Autodesk Docs, Forma Site Design, Fusion, Alias, Vault, Moldflow, Netfabb, and Autodesk Construction Cloud.
New in v2.5: Enhanced service hardening and a reboot deletion queue. Press [T] to target a remote machine. The entire TUI (Registry scans, Cleanup selection, Purge dispatch) will then operate against that remote endpoint over WinRM.
Start-SACMenu options:
| Option | Action |
|---|---|
[1] Surgical Cleanup |
Targeted uninstall by product + year |
[2] Master Purge |
Scorched-earth full system removal |
[3] Reset User Profile |
Rename/clear per-user AppData & registry |
[4] Reset Licensing |
Wipe CLM, token cache & FlexNet stubs |
[5] Pre-Flight Scan |
Simulate cleanup and export CSV report |
[6] Build Cleanup Script |
Build an SAC script to run later |
[7] Restore User Profile |
List and restore SAC backup folders |
[8] View All Products |
List all detected Autodesk software |
[9] Repair ODIS Installer |
Uninstall, clean directory states, download & reinstall ODIS |
[L] View Last Run Logs |
Examine transcripts or attention items logs (Conditional) |
[T] Target Remote Machine |
Switch the session to a remote WinRM target |
Dispatches any command or SAC function to a remote target. It handles connectivity verification, credential prompting, and can automatically install the SAC module on the target if missing.
Invoke-SACRemote -ComputerName "ENG-CAD-04" -Command "Start-SACPurge -Silent" -AutoInstallParameters:
| Parameter | Type | Description |
|---|---|---|
-ComputerName |
string |
The remote hostname or IP address. |
-Command |
string |
The PowerShell command string to execute remotely. |
-Credential |
PSCredential |
Optional credentials. Prompts if omitted for remote targets. |
-AutoInstall |
switch |
If set, checks for the SAC module on the target and installs it via PSGallery if missing. |
The surgical strike engine. Designed for RMM deployment (N-Central, ConnectWise Automate, Intune) or silent background execution. Uninstalls only the specified products and years, leaving shared services and newer installations intact.
# Remove AutoCAD and Civil 3D 2019/2020 silently
Start-SACCleanup -TargetProducts "AutoCAD", "Civil 3D" -TargetYears 2019, 2020 -Silent
# Remove all Revit versions found (default year range 2015-2023)
Start-SACCleanup -TargetProducts "Revit"Parameters:
| Parameter | Type | Description |
|---|---|---|
-TargetProducts |
string[] |
Product name substrings to target. Wildcards are implicit ("AutoCAD" → *AutoCAD*). |
-TargetYears |
int[] |
Release years to target. Defaults to 2015..2023. |
-Silent |
switch |
Bypasses the interactive confirmation prompt. Required for RMM execution. |
-AnyVendor |
switch |
Bypasses the Autodesk vendor failsafe. Use with care. |
-AdditionalVendors |
string[] |
Expands the vendor allowlist (e.g., -AdditionalVendors "MyPluginCorp"). |
The scorched-earth tool. When a machine is completely bricked by a corrupt Autodesk installation, this function hard-kills services, disables all Autodesk scheduled tasks, removes ODIS/Licensing components, purges SQL Server LocalDB instances, and recursively wipes the full Autodesk registry hive using reg.exe (bypasses PowerShell's StackOverflow limitation on deep recursive keys).
⚠️ This is irreversible. Use only when targeted cleanup is not an option.
Start-SACPurge -SilentParameters:
| Parameter | Type | Description |
|---|---|---|
-Silent |
switch |
Bypasses the interactive confirmation prompt. |
-AnyVendor |
switch |
Bypasses the Autodesk vendor failsafe. |
-AdditionalVendors |
string[] |
Expands the vendor allowlist. |
A non-destructive pre-flight tool. Scans the machine for what Start-SACCleanup would remove and exports a detailed CSV to the desktop. No changes are made to the system.
Start-SACScanThe exported CSV includes: Action type, Component type, Target product, Target year, Display name, and the full uninstall string or path.
Resets per-user Autodesk application data to give a user a clean start — without destroying their custom work.
Default behavior:
AppData\Roaming\Autodesk\<Product>\<Year>→ Renamed with a_SAC_BACKUP_<timestamp>suffix (preserves.cuixlayouts, plot styles, templates)AppData\Local\Autodesk\<Product>\<Year>→ Deleted outright (pure cache and crash logs)HKU:\<SID>\Software\Autodesk\<Product>→ Removed (window positions, recent file paths)
# Reset all profiles for AutoCAD 2020 across all users
Reset-SACUserProfile -TargetProducts "AutoCAD" -TargetYears 2020
# Reset for a specific user, delete Roaming instead of renaming
Reset-SACUserProfile -TargetUser "jsmith" -DeleteRoaming -SilentParameters:
| Parameter | Type | Description |
|---|---|---|
-TargetProducts |
string[] |
Products to target. Defaults to all Autodesk products found. |
-TargetYears |
int[] |
Years to target. Defaults to all years found. |
-TargetUser |
string |
Specific username. Defaults to all local profiles. |
-DeleteRoaming |
switch |
Delete Roaming folders instead of renaming. Destroys customizations. |
-SkipRegistry |
switch |
Skip clearing HKCU/HKU Autodesk registry keys. |
-Silent |
switch |
Bypasses the confirmation prompt. |
Wipes all Autodesk licensing tokens and forces a clean re-authentication on next launch. Resolves common issues like "Autodesk keeps asking for activation," "License not found," and stuck multi-seat reservations.
What it clears:
C:\ProgramData\Autodesk\CLM\— Central Licensing Manager dataC:\ProgramData\Autodesk\AdskLicensing\— ODIS licensing service stateC:\Users\*\AppData\Roaming\Autodesk\CLM\— Per-user license token cacheC:\Users\*\AppData\Local\Autodesk\Web Services\— SSO/Autodesk Account JWT tokensC:\ProgramData\FLEXnet\adsk*(optional) — FlexNet seat reservation stubs
The AdskLicensing service is stopped before the wipe and restarted afterward.
# Standard licensing reset
Reset-SACLicensing
# Include FlexNet Autodesk stubs, silent
Reset-SACLicensing -IncludeFlexNet -SilentParameters:
| Parameter | Type | Description |
|---|---|---|
-IncludeFlexNet |
switch |
Also removes adsk* files from C:\ProgramData\FLEXnet\. Off by default since FLEXnet is shared. |
-SkipServiceRestart |
switch |
Do not restart AdskLicensing after the wipe. |
-Silent |
switch |
Bypasses the confirmation prompt. |
Lists, restores, or purges the _SAC_BACKUP_<timestamp> folders created by Reset-SACUserProfile.
# List all backups on the machine
Restore-SACUserProfile
# Restore a specific backup
Restore-SACUserProfile -Restore -BackupPath "C:\Users\jsmith\AppData\Roaming\Autodesk\AutoCAD 2020_SAC_BACKUP_20250509_143000"
# Remove all backups to free disk space
Restore-SACUserProfile -Purge -SilentUninstalls, cleans/renames corrupt directory states, downloads the latest version, and silently reinstalls the Autodesk On-Demand Install Service (ODIS). Resolves installation errors such as "Unable to install - An error occurred while preparing the installation."
What it does:
- Terminates any active ODIS processes (
AdODIS.exe,AdODISService.exe,AdODISInstaller.exe). - Invokes the native uninstaller (
RemoveODIS.exe --mode unattended) if present. - Stops and deletes the
AdODISService. - Renames existing ODIS data folders (appending
_bak_<timestamp>) to prevent corrupt state reuse while preserving old installer logs. - Downloads the latest ODIS installation binary from Autodesk's servers.
- Silent-reinstalls ODIS via
--mode unattendedand verifies successful deployment.
# Standard ODIS repair (interactive prompt)
Repair-SACODIS
# Silent ODIS repair for RMM deployment
Repair-SACODIS -SilentParameters:
| Parameter | Type | Description |
|---|---|---|
-Silent |
switch |
Bypasses the confirmation prompt. |
All functions write dual-channel logs to C:\temp\ (falling back to $env:TEMP if unavailable):
- Transcript log — Standard console output captured via
Start-Transcript - Debug log — Background IO exceptions and verbose details written silently to prevent console noise
- Attention Items — A targeted log of critical failures, viewable directly from the interactive menu
Log directories are timestamped per-run (e.g., ...\AutodeskCleanup_20260510_183022\).
For extensive documentation on enterprise deployment strategies, logging architecture, and error code resolution:
DeepWiki — Surgical Autodesk Cleaner
Copyright (c) 2026 Dailen. All rights reserved.
Licensed under the MIT License. See LICENSE for more details.


