Expand docs

This commit is contained in:
Chris Titus
2026-01-14 17:20:41 -06:00
parent a31c9cb235
commit 61a80e270d
5 changed files with 1355 additions and 64 deletions

View File

@@ -1,23 +1,35 @@
---
title: Developer Reference
weight: 3
---
> [!NOTE]
> This section contains technical documentation for developers. For end-user documentation, see the [User Guide](../userguide/).
## Architecture
- [Architecture & Design](architecture/) - Code structure, data flow, and how Winutil works internally
## Tweaks
### Essential Tweaks
- [Create Restore Point](https://github.com/ChrisTitusTech/winutil/blob/main/docs/content/dev/tweaks/Essential-Tweaks/RestorePoint.md)
- [Debloat Edge](https://github.com/ChrisTitusTech/winutil/blob/main/docs/content/dev/tweaks/Essential-Tweaks/EdgeDebloat.md)
- [Delete Temporary Files](https://github.com/ChrisTitusTech/winutil/blob/main/docs/content/dev/tweaks/Essential-Tweaks/DeleteTempFiles.md)
- [Disable Activity History](https://github.com/ChrisTitusTech/winutil/blob/main/docs/content/dev/tweaks/Essential-Tweaks/Activity.md)
- [Disable ConsumerFeatures](https://github.com/ChrisTitusTech/winutil/blob/main/docs/content/dev/tweaks/Essential-Tweaks/ConsumerFeatures.md)
- [Disable GameDVR](https://github.com/ChrisTitusTech/winutil/blob/main/docs/content/dev/tweaks/Essential-Tweaks/GameDVR.md)
- [Disable Hibernation](https://github.com/ChrisTitusTech/winutil/blob/main/docs/content/dev/tweaks/Essential-Tweaks/Hibernation.md)
- [Disable Location Tracking](https://github.com/ChrisTitusTech/winutil/blob/main/docs/content/dev/tweaks/Essential-Tweaks/Location.md)
- [Disable Powershell 7 Telemetry](https://github.com/ChrisTitusTech/winutil/blob/main/docs/content/dev/tweaks/Essential-Tweaks/Powershell7Tele.md)
- [Disable Storage Sense](https://github.com/ChrisTitusTech/winutil/blob/main/docs/content/dev/tweaks/Essential-Tweaks/Storage.md)
- [Disable Telemetry](https://github.com/ChrisTitusTech/winutil/blob/main/docs/content/dev/tweaks/Essential-Tweaks/Telemetry.md)
- [Enable End Task With Right Click](https://github.com/ChrisTitusTech/winutil/blob/main/docs/content/dev/tweaks/Essential-Tweaks/EndTaskOnTaskbar.md)
- [Prefer IPv4 over IPv6](https://github.com/ChrisTitusTech/winutil/blob/main/docs/content/dev/tweaks/Essential-Tweaks/IPv46.md)
- [Run Disk Cleanup](https://github.com/ChrisTitusTech/winutil/blob/main/docs/content/dev/tweaks/Essential-Tweaks/DiskCleanup.md)
- [Set Hibernation as default (good for laptops)](https://github.com/ChrisTitusTech/winutil/blob/main/docs/content/dev/tweaks/Essential-Tweaks/LaptopHibernation.md)
- [Set Services to Manual](https://github.com/ChrisTitusTech/winutil/blob/main/docs/content/dev/tweaks/Essential-Tweaks/Services.md)
- [Create Restore Point](tweaks/essential-tweaks/restorepoint/)
- [Debloat Edge](tweaks/essential-tweaks/edgedebloat/)
- [Delete Temporary Files](tweaks/essential-tweaks/deletetempfiles/)
- [Disable Activity History](tweaks/essential-tweaks/activity/)
- [Disable ConsumerFeatures](tweaks/essential-tweaks/consumerfeatures/)
- [Disable GameDVR](tweaks/essential-tweaks/gamedvr/)
- [Disable Hibernation](tweaks/essential-tweaks/hibernation/)
- [Disable Location Tracking](tweaks/essential-tweaks/location/)
- [Disable Powershell 7 Telemetry](tweaks/essential-tweaks/powershell7tele/)
- [Disable Storage Sense](tweaks/essential-tweaks/storage/)
- [Disable Telemetry](tweaks/essential-tweaks/telemetry/)
- [Enable End Task With Right Click](tweaks/essential-tweaks/endtaskontaskbar/)
- [Prefer IPv4 over IPv6](tweaks/essential-tweaks/ipv46/)
- [Run Disk Cleanup](tweaks/essential-tweaks/diskcleanup/)
- [Set Hibernation as default (good for laptops)](tweaks/essential-tweaks/laptophibernation/)
- [Set Services to Manual](tweaks/essential-tweaks/services/)
### Advanced Tweaks (CAUTION)
@@ -39,57 +51,57 @@
### Customize Preferences
- [Bing Search in Start Menu](https://github.com/ChrisTitusTech/winutil/blob/main/docs/content/dev/tweaks/Customize-Preferences/BingSearch.md)
- [Center Taskbar Items](https://github.com/ChrisTitusTech/winutil/blob/main/docs/content/dev/tweaks/Customize-Preferences/TaskbarAlignment.md)
- [Dark Theme for Windows](https://github.com/ChrisTitusTech/winutil/blob/main/docs/content/dev/tweaks/Customize-Preferences/DarkMode.md)
- [Detailed BSoD](https://github.com/ChrisTitusTech/winutil/blob/main/docs/content/dev/tweaks/Customize-Preferences/DetailedBSoD.md)
- [Mouse Acceleration](https://github.com/ChrisTitusTech/winutil/blob/main/docs/content/dev/tweaks/Customize-Preferences/MouseAcceleration.md)
- [NumLock on Startup](https://github.com/ChrisTitusTech/winutil/blob/main/docs/content/dev/tweaks/Customize-Preferences/NumLock.md)
- [Search Button in Taskbar](https://github.com/ChrisTitusTech/winutil/blob/main/docs/content/dev/tweaks/Customize-Preferences/TaskbarSearch.md)
- [Show File Extensions](https://github.com/ChrisTitusTech/winutil/blob/main/docs/content/dev/tweaks/Customize-Preferences/ShowExt.md)
- [Show Hidden Files](https://github.com/ChrisTitusTech/winutil/blob/main/docs/content/dev/tweaks/Customize-Preferences/HiddenFiles.md)
- [Snap Assist Flyout](https://github.com/ChrisTitusTech/winutil/blob/main/docs/content/dev/tweaks/Customize-Preferences/SnapFlyout.md)
- [Snap Assist Suggestion](https://github.com/ChrisTitusTech/winutil/blob/main/docs/content/dev/tweaks/Customize-Preferences/SnapSuggestion.md)
- [Snap Window](https://github.com/ChrisTitusTech/winutil/blob/main/docs/content/dev/tweaks/Customize-Preferences/SnapWindow.md)
- [Sticky Keys](https://github.com/ChrisTitusTech/winutil/blob/main/docs/content/dev/tweaks/Customize-Preferences/StickyKeys.md)
- [Task View Button in Taskbar](https://github.com/ChrisTitusTech/winutil/blob/main/docs/content/dev/tweaks/Customize-Preferences/TaskView.md)
- [Verbose Messages During Logon](https://github.com/ChrisTitusTech/winutil/blob/main/docs/content/dev/tweaks/Customize-Preferences/VerboseLogon.md)
- [Widgets Button in Taskbar](https://github.com/ChrisTitusTech/winutil/blob/main/docs/content/dev/tweaks/Customize-Preferences/TaskbarWidgets.md)
- [Bing Search in Start Menu](tweaks/customize-preferences/bingsearch/)
- [Center Taskbar Items](tweaks/customize-preferences/taskbaralignment/)
- [Dark Theme for Windows](tweaks/customize-preferences/darkmode/)
- [Detailed BSoD](tweaks/customize-preferences/detailedbsod/)
- [Mouse Acceleration](tweaks/customize-preferences/mouseacceleration/)
- [NumLock on Startup](tweaks/customize-preferences/numlock/)
- [Search Button in Taskbar](tweaks/customize-preferences/taskbarsearch/)
- [Show File Extensions](tweaks/customize-preferences/showext/)
- [Show Hidden Files](tweaks/customize-preferences/hiddenfiles/)
- [Snap Assist Flyout](tweaks/customize-preferences/snapflyout/)
- [Snap Assist Suggestion](tweaks/customize-preferences/snapsuggestion/)
- [Snap Window](tweaks/customize-preferences/snapwindow/)
- [Sticky Keys](tweaks/customize-preferences/stickykeys/)
- [Task View Button in Taskbar](tweaks/customize-preferences/taskview/)
- [Verbose Messages During Logon](tweaks/customize-preferences/verboselogon/)
- [Widgets Button in Taskbar](tweaks/customize-preferences/taskbarwidgets/)
### Performance Plans
- [Add and Remove Ultimate Performance Profile](https://github.com/ChrisTitusTech/winutil/blob/main/docs/content/dev/tweaks/Performance-Plans/Profile.md)
- [Add and Remove Ultimate Performance Profile](tweaks/performance-plans/profile/)
## Features
### Fixes
- [Remove Adobe Creative Cloud](https://github.com/ChrisTitusTech/winutil/blob/main/docs/content/dev/features/Fixes/RunAdobeCCCleanerTool.md)
- [Reset Network](https://github.com/ChrisTitusTech/winutil/blob/main/docs/content/dev/features/Fixes/Network.md)
- [Reset Windows Update](https://github.com/ChrisTitusTech/winutil/blob/main/docs/content/dev/features/Fixes/Update.md)
- [Set Up Autologin](https://github.com/ChrisTitusTech/winutil/blob/main/docs/content/dev/features/Fixes/Autologin.md)
- [System Corruption Scan](https://github.com/ChrisTitusTech/winutil/blob/main/docs/content/dev/features/Fixes/CorruptionScan.md)
- [WinGet Reinstall](https://github.com/ChrisTitusTech/winutil/blob/main/docs/content/dev/features/Fixes/Winget.md)
- [Remove Adobe Creative Cloud](features/fixes/runadobecccl cleanertool/)
- [Reset Network](features/fixes/network/)
- [Reset Windows Update](features/fixes/update/)
- [Set Up Autologin](features/fixes/autologin/)
- [System Corruption Scan](features/fixes/corruptionscan/)
- [WinGet Reinstall](features/fixes/winget/)
### Legacy Windows Panels
- [Control Panel](https://github.com/ChrisTitusTech/winutil/blob/main/docs/content/dev/features/Legacy-Windows-Panels/control.md)
- [Network Connections](https://github.com/ChrisTitusTech/winutil/blob/main/docs/content/dev/features/Legacy-Windows-Panels/network.md)
- [Power Panel](https://github.com/ChrisTitusTech/winutil/blob/main/docs/content/dev/features/Legacy-Windows-Panels/power.md)
- [Printer Settings](https://github.com/ChrisTitusTech/winutil/blob/main/docs/content/dev/features/Legacy-Windows-Panels/printer.md)
- [Region](https://github.com/ChrisTitusTech/winutil/blob/main/docs/content/dev/features/Legacy-Windows-Panels/region.md)
- [Sound Settings](https://github.com/ChrisTitusTech/winutil/blob/main/docs/content/dev/features/Legacy-Windows-Panels/sound.md)
- [System Properties](https://github.com/ChrisTitusTech/winutil/blob/main/docs/content/dev/features/Legacy-Windows-Panels/system.md)
- [User Accounts](https://github.com/ChrisTitusTech/winutil/blob/main/docs/content/dev/features/Legacy-Windows-Panels/user.md)
- [Control Panel](features/legacy-windows-panels/control/)
- [Network Connections](features/legacy-windows-panels/network/)
- [Power Panel](features/legacy-windows-panels/power/)
- [Printer Settings](features/legacy-windows-panels/printer/)
- [Region](features/legacy-windows-panels/region/)
- [Sound Settings](features/legacy-windows-panels/sound/)
- [System Properties](features/legacy-windows-panels/system/)
- [User Accounts](features/legacy-windows-panels/user/)
### Features
- [All .Net Framework (2,3,4)](https://github.com/ChrisTitusTech/winutil/blob/main/docs/content/dev/features/Features/dotnet.md)
- [Disable Legacy F8 Boot Recovery](https://github.com/ChrisTitusTech/winutil/blob/main/docs/content/dev/features/Features/DisableLegacyRecovery.md)
- [Enable Legacy F8 Boot Recovery](https://github.com/ChrisTitusTech/winutil/blob/main/docs/content/dev/features/Features/EnableLegacyRecovery.md)
- [Enable Daily Registry Backup Task 12.30am](https://github.com/ChrisTitusTech/winutil/blob/main/docs/content/dev/features/Features/RegBackup.md)
- [HyperV Virtualization](https://github.com/ChrisTitusTech/winutil/blob/main/docs/content/dev/features/Features/hyperv.md)
- [Legacy Media (WMP, DirectPlay)](https://github.com/ChrisTitusTech/winutil/blob/main/docs/content/dev/features/Features/legacymedia.md)
- [NFS - Network File System](https://github.com/ChrisTitusTech/winutil/blob/main/docs/content/dev/features/Features/nfs.md)
- [Windows Sandbox](https://github.com/ChrisTitusTech/winutil/blob/main/docs/content/dev/features/Features/Sandbox.md)
- [Windows Subsystem for Linux](https://github.com/ChrisTitusTech/winutil/blob/main/docs/content/dev/features/Features/wsl.md)
- [All .Net Framework (2,3,4)](features/features/dotnet/)
- [Disable Legacy F8 Boot Recovery](features/features/disablelegacyrecovery/)
- [Enable Legacy F8 Boot Recovery](features/features/enablelegacyrecovery/)
- [Enable Daily Registry Backup Task 12.30am](features/features/regbackup/)
- [HyperV Virtualization](features/features/hyperv/)
- [Legacy Media (WMP, DirectPlay)](features/features/legacymedia/)
- [NFS - Network File System](features/features/nfs/)
- [Windows Sandbox](features/features/sandbox/)
- [Windows Subsystem for Linux](features/features/wsl/)

View File

@@ -0,0 +1,550 @@
---
title: Architecture & Design
weight: 1
toc: true
---
## Overview
Winutil is a PowerShell-based Windows utility with a WPF (Windows Presentation Foundation) GUI. This document explains the architecture, code structure, and how different components work together.
## High-Level Architecture
```
┌─────────────────────────────────────────────────────┐
│ Winutil GUI │
│ (WPF XAML Interface) │
└──────────────────┬──────────────────────────────────┘
┌─────────┴─────────┐
│ │
┌────────▼──────┐ ┌───────▼────────┐
│ Public APIs │ │ Private APIs │
│ (User-facing)│ │ (Internal) │
└───────┬───────┘ └───────┬────────┘
│ │
└────────┬──────────┘
┌────────────▼────────────┐
│ Configuration Files │
│ (JSON definitions) │
└────────────┬────────────┘
┌────────────▼────────────┐
│ External Tools │
│ (WinGet, Chocolatey) │
└─────────────────────────┘
```
## Project Structure
### Directory Layout
```
winutil/
├── Compile.ps1 # Build script that combines all files
├── winutil.ps1 # Compiled output (generated)
├── scripts/
│ ├── main.ps1 # Entry point and GUI initialization
│ └── start.ps1 # Startup logic
├── functions/
│ ├── private/ # Internal helper functions
│ │ ├── Get-WinUtilVariables.ps1
│ │ ├── Install-WinUtilWinget.ps1
│ │ └── ...
│ ├── public/ # User-facing functions
│ │ ├── Initialize-WPFUI.ps1
│ │ └── ...
│ └── microwin/ # MicroWin specific functions
│ ├── Invoke-Microwin.ps1
│ └── ...
├── config/ # JSON configuration files
│ ├── applications.json # Application definitions
│ ├── tweaks.json # Tweak definitions
│ ├── feature.json # Windows feature definitions
│ └── preset.json # Preset configurations
├── xaml/
│ └── inputXML.xaml # GUI layout definition
└── docs/ # Documentation
```
### Key Components
#### 1. Compile.ps1
**Purpose**: Combines all separate script files into a single `winutil.ps1` for distribution.
**Process**:
1. Reads all function files from `/functions/`
2. Includes configuration JSON files
3. Embeds XAML GUI definition
4. Combines into single script
5. Outputs `winutil.ps1`
**Why**: Makes distribution easier (single file) and improves load time.
#### 2. scripts/main.ps1
**Purpose**: Entry point that initializes the GUI and event system.
**Responsibilities**:
- Load XAML and create WPF window
- Initialize form elements
- Set up event handlers
- Load configurations
- Display the GUI
#### 3. functions/public/
**Purpose**: User-facing functions that implement main features.
**Key Functions**:
- `Initialize-WPFUI.ps1`: Sets up the GUI
- `Invoke-WPFTweak*`: Applies system tweaks
- `Invoke-WPFFeature*`: Enables Windows features
- `Install-WinUtilProgram*`: Installs applications
**Naming Convention**: Functions start with `WPF` or `Winutil` to be loaded into the runspace.
#### 4. functions/private/
**Purpose**: Internal helper functions not directly called by users.
**Key Functions**:
- `Get-WinUtilVariables.ps1`: Retrieves UI element references
- `Install-WinUtilWinget.ps1`: Ensures WinGet is installed
- `Get-WinUtilCheckBoxes.ps1`: Gets checkbox states
- `Invoke-WinUtilCurrentSystem.ps1`: Gets system information
#### 5. config/*.json
**Purpose**: Define available applications, tweaks, and features declaratively.
**Files**:
- `applications.json`: Application definitions with WinGet/Choco IDs
- `tweaks.json`: Registry tweaks and their undo actions
- `feature.json`: Windows features that can be enabled/disabled
- `preset.json`: Predefined tweak combinations
- `dns.json`: DNS provider configurations
#### 6. xaml/inputXML.xaml
**Purpose**: WPF GUI layout and design.
**Structure**:
- TabControl for main tabs (Install, Tweaks, Config, MicroWin)
- Buttons with event handlers
- TextBoxes for input
- CheckBoxes for options
- ListBoxes for selections
## Data Flow
### Application Installation Flow
```
User clicks "Install"
Get-WinUtilCheckBoxes → Retrieves selected apps
For each selected app:
Check if WinGet/Choco installed
Install-WinUtilWinget/Choco (if needed)
Install-WinUtilProgramWinget/Choco → Install app
Update UI with progress
Display completion message
```
### Tweak Application Flow
```
User selects tweaks and clicks "Run Tweaks"
Get-WinUtilCheckBoxes → Get selected tweaks
For each selected tweak:
Load tweak definition from tweaks.json
Invoke-WPFTweak → Apply registry/service changes
Log changes
Store original values (for undo)
Update UI
Display completion
```
### Undo Tweak Flow
```
User selects tweaks and clicks "Undo"
Get-WinUtilCheckBoxes → Get selected tweaks
For each tweak:
Retrieve "OriginalState" from tweak definition
Invoke-WPFUndoTweak → Restore original values
Remove from applied tweaks log
Update UI
```
## Configuration File Format
### applications.json Structure
```json
{
"WPFInstall<AppName>": {
"category": "Browsers",
"choco": "googlechrome",
"content": "Google Chrome",
"description": "Google Chrome browser",
"link": "https://chrome.google.com",
"winget": "Google.Chrome"
}
}
```
**Fields**:
- `category`: Which section in the Install tab
- `content`: Display name in GUI
- `description`: Tooltip/description text
- `winget`: WinGet package ID
- `choco`: Chocolatey package name
- `link`: Official website
### tweaks.json Structure
```json
{
"WPFTweaksTelemetry": {
"Content": "Disable Telemetry",
"Description": "Disables Microsoft Telemetry",
"category": "Essential Tweaks",
"panel": "1",
"Order": "a003_",
"registry": [
{
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Windows\\DataCollection",
"Name": "AllowTelemetry",
"Type": "DWord",
"Value": "0",
"OriginalValue": "1"
}
],
"ScheduledTask": [
{
"Name": "Microsoft\\Windows\\Autochk\\Proxy",
"State": "Disabled",
"OriginalState": "Enabled"
}
]
}
}
```
**Fields**:
- `Content`: Display name
- `Description`: What it does
- `category`: Essential/Advanced/Customize
- `registry`: Registry changes to make
- `ScheduledTask`: Scheduled tasks to modify
- `service`: Services to change
- `OriginalValue/State`: For undo functionality
## PowerShell Runspace
Winutil uses PowerShell runspaces for the GUI to remain responsive:
```powershell
# Create runspace
$sync.runspace = [runspacefactory]::CreateRunspace()
$sync.runspace.Open()
$sync.runspace.SessionStateProxy.SetVariable("sync", $sync)
# Run code in background
$powershell = [powershell]::Create().AddScript($scriptblock)
$powershell.Runspace = $sync.runspace
$handle = $powershell.BeginInvoke()
```
**Why**: Prevents UI freezing during long-running operations.
## WPF Event Handling
Events are wired up via XAML element names:
```powershell
# Get all named elements
$sync.keys | ForEach-Object {
if($sync.$_.GetType().Name -eq "Button") {
$sync.$_.Add_Click({
$button = $sync.$($args[0].Name)
& "Invoke-$($args[0].Name)"
})
}
}
```
**Convention**: Button named `WPFInstallButton` calls function `Invoke-WPFInstallButton`.
## Package Manager Integration
### WinGet Integration
```powershell
# Check if installed
if (!(Get-Command winget -ErrorAction SilentlyContinue)) {
Install-WinUtilWinget
}
# Install package
winget install --id $app.winget --silent --accept-source-agreements
```
### Chocolatey Integration
```powershell
# Check if installed
if (!(Get-Command choco -ErrorAction SilentlyContinue)) {
Install-WinUtilChoco
}
# Install package
choco install $app.choco -y
```
## MicroWin Architecture
MicroWin operates in phases:
1. **Mount ISO**: Extract Windows image
2. **Modify Image**: Remove components, apply tweaks
3. **Inject Drivers**: Add custom drivers (optional)
4. **Create Unattend**: Generate automated install configuration
5. **Rebuild ISO**: Package modified image into new ISO
**Key Files**:
- `Invoke-Microwin.ps1`: Main orchestration
- `Microwin-RemovePackages.ps1`: Remove Windows packages
- `Microwin-RemoveFeatures.ps1`: Disable features
- `Microwin-NewUnattend.ps1`: Create unattend.xml
## Error Handling
Winutil uses PowerShell error handling:
```powershell
try {
# Attempt operation
Invoke-SomeOperation
}
catch {
Write-Host "Error: $_" -ForegroundColor Red
# Log error
Add-Content -Path $logfile -Value "ERROR: $_"
}
```
**Logging**: Errors and operations are logged for debugging.
## Configuration Loading
At startup, Winutil loads all configurations:
```powershell
# Load JSON configs
$sync.configs = @{}
$sync.configs.applications = Get-Content "config/applications.json" | ConvertFrom-Json
$sync.configs.tweaks = Get-Content "config/tweaks.json" | ConvertFrom-Json
$sync.configs.features = Get-Content "config/feature.json" | ConvertFrom-Json
```
**Sync Hash**: `$sync` hashtable shares state across runspaces.
## UI Update Pattern
UI updates must happen on the UI thread:
```powershell
$sync.form.Dispatcher.Invoke([action]{
$sync.WPFStatusLabel.Content = "Installing..."
}, "Normal")
```
**Why**: WPF requires UI updates on the main thread.
## Adding New Features
### Adding a New Application
1. Edit `config/applications.json`:
```json
{
"WPFInstallNewApp": {
"category": "Utilities",
"content": "New App",
"description": "Description of new app",
"winget": "Publisher.AppName",
"choco": "appname"
}
}
```
2. Recompile: `.\Compile.ps1`
3. The app appears automatically in Install tab
### Adding a New Tweak
1. Edit `config/tweaks.json`:
```json
{
"WPFTweaksNewTweak": {
"Content": "New Tweak",
"Description": "What it does",
"category": "Essential Tweaks",
"registry": [
{
"Path": "HKLM:\\Path\\To\\Key",
"Name": "ValueName",
"Type": "DWord",
"Value": "1",
"OriginalValue": "0"
}
]
}
}
```
2. Recompile: `.\Compile.ps1`
3. Tweak appears in Tweaks tab
### Adding a New Function
1. Create file in `functions/public/` or `functions/private/`:
```powershell
# functions/public/Invoke-WPFNewFeature.ps1
function Invoke-WPFNewFeature {
<#
.SYNOPSIS
Does something new
#>
# Implementation
}
```
2. File naming must include "WPF" or "Winutil" to load
3. Recompile: `.\Compile.ps1`
## Testing
### Manual Testing
```powershell
# Compile and run with -run flag
.\Compile.ps1 -run
```
### Automated Tests
Tests are in `/pester/`:
- `configs.Tests.ps1`: Validates JSON configurations
- `functions.Tests.ps1`: Tests PowerShell functions
Run tests:
```powershell
Invoke-Pester
```
## Build Process
### Development Build
```powershell
.\Compile.ps1
```
Outputs `winutil.ps1` in the root directory.
### Production Release
1. Tag release in Git
2. GitHub Actions builds and uploads `winutil.ps1`
3. Release appears on GitHub Releases
4. Users download via `irm christitus.com/win`
## Dependencies
**Required**:
- PowerShell 5.1+
- .NET Framework 4.5+
- Windows 10 1809+
**Optional (auto-installed)**:
- WinGet (Windows Package Manager)
- Chocolatey
- oscdimg.exe (for MicroWin)
## Performance Considerations
**Optimization Strategies**:
- Lazy-load configurations (only when needed)
- Use runspaces for long operations
- Cache expensive lookups
- Minimize registry reads/writes
- Batch operations when possible
## Security Considerations
**Safety Measures**:
- All operations logged
- Registry backups for undo
- No credential storage
- Open source (auditable)
- Digitally signed (future)
## Contributing Guidelines
**Code Standards**:
- Use proper PowerShell cmdlet naming (Verb-Noun)
- Include comment-based help
- Follow existing code style
- Test thoroughly before PR
- Document significant changes
**File Naming**:
- Public functions: `Invoke-WPF*.ps1` or `Invoke-Winutil*.ps1`
- Private functions: `Get-WinUtil*.ps1` or verb-WinUtil*.ps1`
- Must include "WPF" or "Winutil" to load
## Future Architecture Plans
**Roadmap Considerations**:
- Plugin system for community extensions
- Config import/export
- Cloud sync for configurations
- Enhanced logging dashboard
- Modular compilation (choose features)
## Related Documentation
- [Contributing Guide](../../contributing/) - How to contribute code
- [User Guide](../../userguide/) - End-user documentation
- [FAQ](../../faq/) - Common questions
## Additional Resources
- **GitHub Repository**: [ChrisTitusTech/winutil](https://github.com/ChrisTitusTech/winutil)
- **PowerShell Docs**: [Microsoft Docs](https://docs.microsoft.com/powershell/)
- **WPF Guide**: [WPF Documentation](https://docs.microsoft.com/dotnet/desktop/wpf/)
---
**Last Updated**: January 2026
**Maintainers**: Chris Titus Tech and contributors

View File

@@ -1,10 +1,301 @@
---
title: FAQ's
toc: false
title: Frequently Asked Questions
toc: true
---
## How do I uninstall Winutil?
* You do not have to uninstall Winutil. As it is a script you run from Powershell it only loads into your RAM. This means as soon as you close Winutil it will be deleted off your system.
## General Questions
## I applied a tweak and now something doesn't work, what do I do?
* If you applied a tweak and it breaks something, you can always revert the tweak by selecting the tweak and clicking "Undo Selected Tweaks".
### How do I uninstall Winutil?
You do not have to uninstall Winutil. As it is a script you run from PowerShell, it only loads into your RAM. This means as soon as you close Winutil, it will be cleared from your system. Winutil doesn't install itself permanently on your computer.
### Is Winutil safe to use?
Yes, Winutil is open source and the code is publicly available on GitHub. Thousands of users run it daily. However, like any system modification tool, you should:
- Run it as Administrator (required)
- Create a restore point before major changes
- Understand what tweaks you're applying
- Download only from official sources
### Do I need to keep running Winutil?
No. Once you've applied tweaks or installed applications, you can close Winutil. Changes persist after closing. You only need to run Winutil again when you want to make additional changes or undo tweaks.
### Does Winutil require internet access?
- **For downloading**: Yes, installing applications requires internet
- **For tweaks**: No, most tweaks work offline
- **Initial run**: Yes, to download the latest script
### How often is Winutil updated?
Winutil is actively maintained with frequent updates. New features, bug fixes, and application additions are released regularly. The script auto-downloads the latest version each time you run it.
## Installation & Running
### How do I run Winutil?
1. Open PowerShell as Administrator
2. Run: `irm "https://christitus.com/win" | iex`
3. Wait for the GUI to appear
### Why do I need Administrator rights?
Winutil makes system-level changes (registry edits, service modifications, software installation) that require elevated permissions. Without admin rights, most features won't work.
### The script won't download. What do I do?
Try these solutions in order:
1. **Use the direct GitHub link**:
```powershell
irm https://github.com/ChrisTitusTech/Winutil/releases/latest/download/Winutil.ps1 | iex
```
2. **Force TLS 1.2** (for older Windows):
```powershell
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
irm "https://christitus.com/win" | iex
```
3. **Change DNS** to Cloudflare (1.1.1.1) or Google (8.8.8.8)
4. **Use a VPN** if GitHub is blocked in your region
### I get an "Execution Policy" error. How do I fix it?
Run this command first to allow script execution:
```powershell
Set-ExecutionPolicy Unrestricted -Scope Process -Force
irm "https://christitus.com/win" | iex
```
This only affects the current PowerShell session and is safe.
## Tweaks & Modifications
### I applied a tweak and now something doesn't work. What do I do?
If you applied a tweak and it breaks something, you can revert it:
1. Open Winutil again
2. Go to the **Tweaks** tab
3. Select the same tweak you applied
4. Click **"Undo Selected Tweaks"**
5. The system will revert to the previous state
Alternatively, use System Restore if you created a restore point.
### Which tweaks are safe to apply?
**Safe for everyone (Essential Tweaks)**:
- Disable Telemetry
- Disable Activity History
- Disable Location Tracking
- Delete Temporary Files
- Run Disk Cleanup
- Create Restore Point
**Caution needed (Advanced Tweaks)**:
- Remove Microsoft Store
- Disable Windows Defender
- Remove all bloatware
- Disable system services
Start with Essential Tweaks. Only use Advanced Tweaks if you understand the implications.
### Will tweaks survive Windows Updates?
Most tweaks persist through updates, but some may be reset by major Windows updates (feature updates). You may need to reapply certain tweaks after major updates.
### Can I create my own tweak presets?
Currently, Winutil uses predefined presets (Desktop, Laptop, Minimal, Standard). Custom presets aren't directly supported in the GUI, but you can script your preferred configuration.
### What's the difference between Essential and Advanced tweaks?
- **Essential Tweaks**: Safe for most users, improve performance/privacy with minimal risk
- **Advanced Tweaks**: More aggressive changes that may break functionality or compatibility. Use with caution.
## Application Installation
### How does Winutil install applications?
Winutil uses Windows Package Manager (WinGet) and Chocolatey to automate installations. It downloads applications from official sources and installs them silently without bloatware.
### Can I install multiple applications at once?
Yes! Check the boxes for all applications you want, then click "Install Selected". They'll install sequentially.
### WinGet isn't working. How do I fix it?
1. Go to the **Config** tab
2. Find **Fixes** section
3. Click **"WinGet Reinstall"**
4. Wait for completion
5. Try installing applications again
### Do installed applications have bloatware or bundled software?
No. WinGet and Chocolatey install clean versions of applications without bundled offers, toolbars, or bloatware.
### Can I uninstall applications through Winutil?
Winutil focuses on installation. To uninstall:
- Use Windows Settings > Apps > Installed Apps
- Or use the application's built-in uninstaller
### Will installed apps auto-update?
Applications with built-in update mechanisms will auto-update. You can also update them via WinGet/Chocolatey commands or through Winutil's "Upgrade Selected" feature.
## MicroWin
### What is MicroWin?
MicroWin is a feature that creates custom Windows installation ISOs with bloatware removed, optimizations applied, and unnecessary components stripped out before installation.
### Is MicroWin legal?
Modifying Windows ISOs is a gray area legally. Use MicroWin for personal/educational purposes. You still need a valid Windows license to use the resulting installation.
### Can I install Windows updates on MicroWin?
Yes, Windows Update works normally on MicroWin installations. Some removed components may be restored by updates.
### How much smaller is a MicroWin ISO?
Depends on what you remove. Typically:
- Standard Windows 11: ~5.5 GB ISO, ~20-25 GB installed
- MicroWin (aggressive): ~3.5 GB ISO, ~10-15 GB installed
### Will all software work on MicroWin?
Most desktop applications work fine. Microsoft Store apps won't work if you removed the Store. Some features may be missing if you removed their dependencies.
## Updates & Maintenance
### Should I disable Windows Updates?
Generally, **no**. Security updates are important. However, you might:
- Use "Security Updates Only" to avoid feature updates
- Pause updates temporarily for stability
- Disable only during critical work periods
### How do I re-enable updates after disabling them?
1. Open Winutil
2. Go to **Updates** tab
3. Click **"Enable Updates"**
4. Updates will resume normally
### What's the difference between "Security Updates Only" and "Disable Updates"?
- **Security Updates Only**: Installs critical security patches, blocks feature updates (major versions)
- **Disable Updates**: Blocks ALL updates including security (not recommended)
## Troubleshooting
### Winutil won't open after running the command
Possible causes:
1. **Antivirus blocking**: Add PowerShell exception
2. **Not run as Admin**: Restart PowerShell as Administrator
3. **Corrupted download**: Close PowerShell, reopen, try again
4. **Windows Defender**: Allow the script
### My antivirus flags Winutil as malicious
This is a false positive. Winutil makes system changes that antivirus programs may flag. The code is open source and audited. Add an exception if needed.
### An application failed to install
Troubleshooting steps:
1. Check your internet connection
2. Try installing just that one application
3. Review error messages in the output panel
4. Check if antivirus is blocking
5. Try the WinGet Reinstall fix
### Network tweaks broke my internet connection
1. Open Winutil
2. Go to **Config** > **Fixes**
3. Click **"Reset Network"**
4. Restart your computer
5. Connection should be restored
### I can't access certain Windows features after applying tweaks
Undo the tweaks that might have affected those features:
1. Reopen Winutil
2. Select the tweaks you applied
3. Click "Undo Selected Tweaks"
If that doesn't work, use System Restore to revert to a previous state.
## Advanced Topics
### Can I run Winutil on Windows Server?
Yes, Winutil works on Windows Server editions, though some features may not be applicable or may behave differently.
### Does Winutil work with Windows LTSC?
Yes, Winutil works with Windows 10/11 LTSC editions. Some applications may not be available depending on your configuration.
### Can I use Winutil in a corporate/enterprise environment?
Yes, but check your organization's policies first. Some tweaks may conflict with group policies or corporate requirements.
### How do I automate Winutil for multiple PCs?
See the [Automation Guide](userguide/automation/) for details on:
- Configuration files
- PowerShell parameters
- Batch deployment
- Silent installation
### Can I contribute to Winutil?
Yes! Contributions are welcome:
- Report bugs on GitHub Issues
- Submit pull requests for fixes/features
- Improve documentation
- Help others in Discord
See the [Contributing Guide](contributing/) for details.
## Privacy & Security
### Does Winutil collect any data?
No, Winutil itself doesn't collect or transmit any user data. It's a local PowerShell script.
### What telemetry does the Disable Telemetry tweak block?
It disables:
- Windows diagnostic data collection
- Activity history tracking
- Feedback requests
- Usage statistics
- Error reporting (optional)
### Is it safe to disable Windows Defender?
**Generally not recommended**. Only disable Defender if:
- You have alternative antivirus installed
- You understand the security risks
- You're in a controlled/isolated environment
### Will removing Microsoft Store affect security updates?
No, Windows security updates are independent of the Microsoft Store.
## Performance
### Will Winutil make my PC faster?
Tweaks can improve performance by:
- Reducing background processes
- Disabling unnecessary services
- Cleaning temporary files
- Optimizing startup programs
Results vary based on your system and which tweaks you apply.
### What's the best preset for gaming?
Use the **Desktop** preset, then additionally apply:
- Disable GameDVR
- Ultimate Performance power plan
- Disable fullscreen optimizations (Advanced)
- Set display for performance (Advanced)
### How much RAM does Winutil use?
Winutil itself uses ~50-100MB while running. Once closed, it's removed from memory.
## Error Messages
### "Access Denied" errors
- Ensure PowerShell is running as Administrator
- Check if antivirus is blocking changes
- Verify you have ownership of files/registry keys
### "File not found" errors during MicroWin
- Verify source ISO isn't corrupted
- Ensure sufficient disk space (20GB+)
- Check ISO is an official Windows ISO
### WinGet configuration prompt won't go away
Type `Y` and press Enter in the PowerShell window. This only happens on first use and configures WinGet for your system.
## Still Need Help?
Can't find your answer? Try these resources:
- **[Known Issues](knownissues/)** - Check if it's a known problem
- **[User Guide](userguide/)** - Comprehensive documentation
- **[Discord Community](https://discord.gg/RUbZUZyByQ)** - Get help from other users
- **[GitHub Issues](https://github.com/ChrisTitusTech/winutil/issues)** - Report bugs
- **[YouTube Tutorial](https://www.youtube.com/watch?v=6UQZ5oQg8XA)** - Video walkthrough
---
**Last Updated**: January 2026
**Found this helpful?** Consider starring the project on [GitHub](https://github.com/ChrisTitusTech/winutil)!

View File

@@ -1,2 +1,167 @@
Welcome to the official User Guide for **Winutil**, your all-in-one Windows toolkit.
This document will walk you through installation, configuration, and usage of Winutils powerful features.
---
title: User Guide
weight: 2
---
Welcome to the official User Guide for **Winutil**, your all-in-one Windows toolkit!
## What is Winutil?
Winutil (Chris Titus Tech's Windows Utility) is a comprehensive PowerShell-based tool that helps you:
- **Install Applications**: Quickly install popular software without manual downloads
- **Apply Tweaks**: Optimize Windows for performance, privacy, and usability
- **Fix Issues**: Troubleshoot common Windows problems with one-click fixes
- **Manage Updates**: Control how and when Windows updates install
- **Create MicroWin**: Build custom, lightweight Windows installation ISOs
- **Access Tools**: Quick access to Windows panels and utilities
## Who Should Use Winutil?
Winutil is designed for:
- **Home Users**: Wanting to optimize their personal PCs
- **Power Users**: Needing fine-grained control over Windows
- **IT Professionals**: Managing multiple systems efficiently
- **Gamers**: Optimizing systems for gaming performance
- **Privacy-Conscious Users**: Reducing telemetry and data collection
- **Developers**: Setting up clean development environments
## Getting Started
New to Winutil? Start here:
1. **[Getting Started Guide](getting-started/)** - Installation and first steps
2. **[Application Store](store/)** - Learn to install software easily
3. **[Tweaks Guide](tweaks/)** - Optimize your system
4. **[Features & Fixes](features/)** - Troubleshoot common issues
## Main Features
### 🚀 Application Installation
Browse and install hundreds of popular applications with a single click. No more hunting for download links or dealing with installer bloat.
**[Read the Store Guide →](store/)**
### ⚙️ System Tweaks
Apply optimizations for performance, privacy, and usability. Choose from preset configurations or customize individual tweaks.
**[Read the Tweaks Guide →](tweaks/)**
### 🛠️ Config & Fixes
Quick fixes for common Windows problems:
- Reset network settings
- Fix Windows Update issues
- Repair system files
- Access legacy Windows panels
**[Read the Features Guide →](features/)**
### 🪟 MicroWin
Create custom Windows installation ISOs with bloatware removed, optimizations pre-applied, and unnecessary components stripped out.
**[Read the MicroWin Guide →](microwin/)**
### 🔄 Update Management
Take control of Windows Updates with options to:
- Enable/disable updates
- Security updates only
- Pause updates
- Manage driver updates
**[Read the Updates Guide →](updates/)**
### 🤖 Automation
Automate Winutil configurations for:
- Multiple PC setups
- Enterprise deployments
- Consistent configurations
- Scripted installations
**[Read the Automation Guide →](automation/)**
## Quick Links
| I want to... | Go to... |
|--------------|----------|
| Install Winutil for the first time | [Getting Started](getting-started/) |
| Install applications quickly | [Application Store](store/) |
| Speed up my computer | [Tweaks Guide](tweaks/) |
| Fix Windows Update problems | [Features - Fixes](features/) |
| Create a lightweight Windows ISO | [MicroWin](microwin/) |
| Automate setup for multiple PCs | [Automation](automation/) |
| Understand what tweaks do | [Tweaks Guide](tweaks/) |
## Safety and Best Practices
Before using Winutil:
**Always**:
- Run PowerShell as Administrator
- Create a system restore point before major changes
- Understand what tweaks do before applying them
- Start with Essential Tweaks before Advanced ones
- Keep backups of important data
**Never**:
- Apply all tweaks without understanding them
- Skip creating restore points
- Use on production systems without testing
- Disable security features unnecessarily
## System Requirements
- **Operating System**: Windows 10 (1809+) or Windows 11
- **PowerShell**: Version 5.1 or later (included in Windows)
- **Permissions**: Administrator access required
- **Internet**: Required for downloading apps and updates
- **.NET Framework**: 4.5+ (usually pre-installed)
## Getting Help
Need assistance?
- **📖 Documentation**: You're reading it! Use the navigation menu
- **❓ FAQ**: Check [Frequently Asked Questions](../faq/)
- **🐛 Known Issues**: Review [Known Issues](../knownissues/)
- **💬 Discord**: Join the [community Discord](https://discord.gg/RUbZUZyByQ)
- **🐙 GitHub**: Report bugs on [GitHub Issues](https://github.com/ChrisTitusTech/winutil/issues)
- **📺 YouTube**: Watch [video tutorials](https://www.youtube.com/watch?v=6UQZ5oQg8XA)
## Contributing
Want to help improve Winutil?
- **Report Bugs**: Submit issues on GitHub
- **Suggest Features**: Open feature requests
- **Contribute Code**: Submit pull requests
- **Improve Docs**: Help expand this documentation
- **Share Knowledge**: Help others in Discord
**[Read Contributing Guide →](../contributing/)**
## What's in This Guide?
This User Guide covers everything you need to know:
1. **[Getting Started](getting-started/)** - Installation, first run, basic usage
2. **[Application Store](store/)** - Installing software, using presets
3. **[Tweaks](tweaks/)** - System optimizations and customizations
4. **[Features & Fixes](features/)** - Troubleshooting tools and utilities
5. **[MicroWin](microwin/)** - Creating custom Windows ISOs
6. **[Updates](updates/)** - Managing Windows Update behavior
7. **[Automation](automation/)** - Scripting and batch deployments
## Video Tutorial
Watch the complete Winutil overview:
{{< youtube id=6UQZ5oQg8XA loading=lazy >}}
Ready to get started? Head to the **[Getting Started Guide](getting-started/)** now!

View File

@@ -0,0 +1,273 @@
---
title: Getting Started with Winutil
weight: 1
---
## Welcome to Winutil!
Winutil is a powerful Windows utility that helps you optimize, customize, and maintain your Windows system. This guide will walk you through everything you need to get started.
## System Requirements
Before running Winutil, ensure your system meets these requirements:
- **Operating System**: Windows 10 (version 1809 or later) or Windows 11
- **PowerShell**: Version 5.1 or later (included by default in Windows 10/11)
- **Administrator Access**: Required for system-level changes
- **Internet Connection**: Required for downloading applications and updates
- **.NET Framework**: Version 4.5 or later (usually pre-installed)
## Installation
Winutil doesn't require traditional installation. It runs directly from PowerShell as a script.
### Step 1: Open PowerShell as Administrator
There are several ways to open PowerShell with admin rights:
**Method 1: Start Menu (Recommended)**
1. Right-click on the Windows Start button
2. Select "Windows PowerShell (Admin)" on Windows 10
3. Or select "Terminal (Admin)" on Windows 11
**Method 2: Search Method**
1. Press the `Windows` key
2. Type "PowerShell" or "Terminal"
3. Press `Ctrl + Shift + Enter` to launch as administrator
4. Or right-click and select "Run as administrator"
**Method 3: Run Dialog**
1. Press `Windows + R`
2. Type `powershell`
3. Press `Ctrl + Shift + Enter`
### Step 2: Run the Launch Command
Once PowerShell is open with administrator privileges, run one of these commands:
**Stable Release (Recommended for most users)**
```powershell
irm "https://christitus.com/win" | iex
```
**Development Branch (For testing latest features)**
```powershell
irm "https://christitus.com/windev" | iex
```
> [!NOTE]
> The `irm` command downloads the script, and `iex` executes it. This is safe when downloading from the official source.
### Step 3: Wait for Winutil to Load
The first time you run Winutil, it may take a few moments to:
- Download the latest version
- Initialize the interface
- Load all features and settings
## First Time Setup
### Configure WinGet (If Prompted)
On your first run, you may be prompted to configure WinGet (Windows Package Manager). This is normal.
1. When prompted, type `Y` and press Enter
2. Accept the terms and conditions
3. This only needs to be done once
### Understanding the Interface
Winutil opens with a clean, tabbed interface:
**Main Tabs**:
- **Install**: Browse and install applications
- **Tweaks**: Apply system optimizations and customizations
- **Config**: Access system tools and utilities
- **Updates**: Manage Windows updates
- **MicroWin**: Create custom, lightweight Windows ISOs
## Your First Actions
Here are some recommended first steps for new users:
### 1. Create a Restore Point
Before making any changes, create a system restore point:
1. Go to the **Tweaks** tab
2. Find "Create Restore Point" under Essential Tweaks
3. Check the box and click "Run Tweaks"
This allows you to undo changes if needed.
### 2. Install Essential Applications
1. Navigate to the **Install** tab
2. Browse categories or use the search bar
3. Check applications you want to install
4. Click "Install Selected" at the bottom
### 3. Apply Basic Tweaks
For a better Windows experience without risks:
1. Go to the **Tweaks** tab
2. Select the **"Desktop" preset** for a balanced configuration
3. Review the selected tweaks
4. Click "Run Tweaks"
## Common Tasks
### Installing Applications
**Single Application**:
1. Open **Install** tab
2. Search for the application name
3. Check the box next to it
4. Click "Install Selected"
**Multiple Applications**:
1. Check multiple application boxes
2. All checked apps will install in sequence
3. Progress is shown in the bottom panel
### Applying Tweaks
**Essential Tweaks** (Safe for all users):
1. Go to **Tweaks** tab
2. Select from Essential Tweaks section
3. Click "Run Tweaks"
**Advanced Tweaks** (Use with caution):
1. Only modify if you understand the implications
2. Always create a restore point first
3. Review documentation for each tweak
**Undoing Tweaks**:
1. Select the same tweaks you applied
2. Click "Undo Selected Tweaks"
3. System will revert to previous state
### Using Quick Fixes
For common Windows issues:
1. Go to **Config** tab
2. Navigate to **Fixes** section
3. Select the appropriate fix:
- **Reset Network**: Fixes network connectivity issues
- **Reset Windows Update**: Resolves update problems
- **System Corruption Scan**: Repairs corrupted system files
- **WinGet Reinstall**: Fixes package manager issues
### Changing DNS Servers
For improved privacy and speed:
1. Go to **Config** or **Tweaks** tab
2. Find the DNS section
3. Select a provider:
- **Cloudflare**: Fast and privacy-focused
- **Google**: Reliable and widely used
- **Quad9**: Security-focused with malware blocking
- **AdGuard**: Blocks ads and trackers
4. Click Apply
## Understanding Presets
Winutil offers several preset configurations:
- **Minimal**: Minimal changes, keeps most Windows features
- **Standard**: Good middle-ground for most users
## Safety Tips
**DO**:
- Create restore points before major changes
- Read tweak descriptions before applying
- Start with Essential Tweaks
- Keep Windows up to date
- Back up important data
**DON'T**:
- Apply all tweaks at once without understanding them
- Skip creating restore points
- Use Advanced Tweaks without research
- Disable security features unless necessary
- Run on production systems without testing
## Troubleshooting First Run
### Script Won't Download
**If the download fails**:
1. Try the direct GitHub link:
```powershell
irm https://github.com/ChrisTitusTech/Winutil/releases/latest/download/Winutil.ps1 | iex
```
2. Force TLS 1.2 (for older Windows versions):
```powershell
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
irm "https://christitus.com/win" | iex
```
### Execution Policy Error
If you get an execution policy error:
```powershell
Set-ExecutionPolicy Unrestricted -Scope Process -Force
irm "https://christitus.com/win" | iex
```
### Download Blocked (India/Certain Regions)
If GitHub is blocked in your region:
1. Use a VPN service
2. Change DNS to Cloudflare (1.1.1.1) or Google (8.8.8.8)
3. Try again
### Interface Doesn't Appear
If Winutil downloads but doesn't open:
1. Check if antivirus is blocking it
2. Ensure you ran PowerShell as administrator
3. Try closing and reopening PowerShell
4. Check Windows Defender exclusions
## Next Steps
Now that you're set up, explore these guides:
- [Application Installation Guide](../store/) - Learn about installing software
- [Tweaks Guide](../tweaks/) - Understand system optimizations
- [MicroWin Guide](../microwin/) - Create custom Windows ISOs
- [FAQ](../../faq/) - Common questions and answers
## Getting Help
If you need assistance:
- **Documentation**: Browse this documentation site
- **Known Issues**: Check the [Known Issues](../../knownissues/) page
- **Discord**: Join the [community Discord server](https://discord.gg/RUbZUZyByQ)
- **GitHub Issues**: Report bugs on [GitHub](https://github.com/ChrisTitusTech/winutil/issues)
- **YouTube**: Watch [video tutorials](https://www.youtube.com/watch?v=6UQZ5oQg8XA)
## Quick Reference Card
| Task | Location | Action |
|------|----------|--------|
| Install Apps | Install Tab | Check boxes → Install Selected |
| Apply Tweaks | Tweaks Tab | Select tweaks → Run Tweaks |
| Undo Tweaks | Tweaks Tab | Select tweaks → Undo Selected Tweaks |
| Create Restore Point | Tweaks Tab | Essential Tweaks section |
| Fix Network | Config Tab | Fixes → Reset Network |
| Change DNS | Tweaks Tab | DNS section |
| Open Control Panel | Config Tab | Legacy Windows Panels |
Happy optimizing! 🚀