Skip to content
Jesper Nielsen edited this page Mar 16, 2026 · 1 revision

Windows gecko is a desired state configuration tool for Windows 10/11 devices, targeting Windows Autopilot and Microsoft Intune deployments. A single PowerShell script reads a JSON configuration file and applies modular settings - apps, features, registry, services, files, executables, branding, and regional settings.

For a full overview of the project, see the README.

Important

Windows gecko is a desired state configuration tool - not a policy enforcement solution. The purpose is to set sensible defaults and baselines for end users, not to restrict or prevent users from changing settings.

Getting started

Get up and running in four steps.

  1. Download the latest release or clone the repository
  2. Review the provided JSON configuration files, create your own, or use the samples for inspiration
  3. Run the script:
    REM Apply the computer baseline configuration
    powershell.exe -NoLogo -ExecutionPolicy "Bypass" -File ".\gecko.ps1" -configFile ".\configC.json" -Verbose
    
    REM Apply the user baseline configuration
    powershell.exe -NoLogo -ExecutionPolicy "Bypass" -File ".\gecko.ps1" -configFile ".\configU.json" -Verbose

    [!TIP] Run Get-Help .\gecko.ps1 -Full to see all available parameters and examples.

  4. Review the log file for results

For the full parameter reference and usage examples, see the README.

Feature modules

The following modules are available for configuring Windows devices.

Important

Before configuring any feature modules, review the Configuring Core configuration page - it covers the required metadata, run conditions, and install behavior that control how the script operates.

Each feature is implemented as a module, controlled through the JSON configuration file. Modules set to enabled: false or not present are skipped and logged accordingly.

Module Description Status
Configuring Windows Apps Remove Windows In-box Apps and Store Apps Available
Configuring Windows branding Configure OEM information and Registration Available
Configuring Windows Config Configure Windows using WinGet Configuration In development
Configuring Windows Features Enable and/or disable Windows features and optional features Available
Configuring Windows Files Copy file(s) to device from payload package Available
Configuring Windows Groups Add accounts to local groups In review
Configuring Windows Registry Modify Windows registry entries (add, change, and remove) Available
Configuring Windows Run Run local executables and/or download and run executables Available
Configuring Windows Scheduled Tasks Configure/reconfigure Windows Scheduled Tasks In development
Configuring Windows Services Configure/reconfigure Windows Services Available
Configuring Windows TCR Windows Time zone, culture, and regional settings manager Preview

Note

The script executes modules alphabetically by name - this is by design. Module naming follows a deliberate convention to ensure correct sequencing. For example, windowsFiles runs before windowsRun, ensuring files are available before execution.

Have an idea for a new module? Share it via Issues or Discussions.

Requirements

The script has minimal dependencies and is designed to run in restricted environments.

The script is verified with PSScriptAnalyzer and is compatible with PowerShell Constrained Language Mode (CLM).

Tip

The script is tested on Windows 11 24H2 Pro and Enterprise 64-bit and ARM64 but is expected to work on other Windows 10/11 editions.

Note

Windows gecko should be configured to run in either SYSTEM or USER context - not both. Combining contexts in a single configuration is not supported and may cause undesired results.

Quick links

Key resources for getting the most out of Windows gecko.


Page revised: March 15, 2026

Clone this wiki locally