# How to Customize Windows Search with Win11Debloat: A Complete Guide

> Customize Windows Search on Win11 using the Win11Debloat PowerShell framework. Effortlessly manage settings through GUI & CLI for a personalized search experience. Get the complete guide now.

- Repository: [Jeffrey/Win11Debloat](https://github.com/Raphire/Win11Debloat)
- Tags: how-to-guide
- Published: 2026-03-10

---

**Win11Debloat provides a declarative, PowerShell-driven framework that lets you toggle Windows Search settings via JSON-defined features and registry imports, enabling customization through both a GUI and command-line interfaces.**

The open-source **Win11Debloat** repository by Raphire streamlines Windows 11 customization by automating registry modifications that would otherwise require manual configuration. This guide explains how to customize Windows Search with Win11Debloat using its modular architecture of JSON feature definitions, registry payload files, and PowerShell execution engines.

## Architecture Overview: JSON, Registry, and PowerShell

According to the Raphire/Win11Debloat source code, the application implements a data-driven, three-layer architecture for modifying Windows Search behavior without direct registry editing.

### 1. Feature Definitions in [`Config/Features.json`](https://github.com/Raphire/Win11Debloat/blob/main/Config/Features.json)

The [`Config/Features.json`](https://github.com/Raphire/Win11Debloat/blob/main/Config/Features.json) file acts as the single source of truth for all togglable search options. Each entry specifies a display name, description, target registry file, and logical group.

As defined in the source configuration, the Search group contains four primary features:

```json
{
  "name": "Show Search Box",
  "description": "Show the search box on the taskbar",
  "registryFile": "Show_Search_Box.reg",
  "group": "Search"
}

```

The JSON structure defines these specific search customizations:

- **Show Search Box** — maps to `Show_Search_Box.reg`
- **Hide Search Taskbar** — maps to `Hide_Search_Taskbar.reg`
- **Disable Search History** — maps to `Disable_Search_History.reg`
- **Disable Search Highlights** — maps to `Disable_Search_Highlights.reg`

### 2. Registry Payloads in the `Regfiles/` Directory

The actual Windows behavior modifications reside in standard `.reg` files within the `Regfiles/` directory. As implemented in Raphire/Win11Debloat, these files target specific Windows Search registry keys:

- **`Show_Search_Box.reg`** sets `SearchboxTaskbarMode` to `2` (visible search box)
- **`Hide_Search_Taskbar.reg`** sets `SearchboxTaskbarMode` to `0` (hidden taskbar search)
- **`Disable_Search_History.reg`** disables `IsDeviceSearchHistoryEnabled`
- **`Disable_Search_Highlights.reg`** disables `IsDynamicSearchBoxEnabled` to remove dynamic branded content

### 3. PowerShell Execution Engine

Two critical PowerShell components handle the application of registry changes:

**`Scripts/Features/ImportRegistryFile.ps1`** contains the core `ImportRegistryFile` function that validates file existence and executes `reg import` operations. This function supports both standard user mode and Sysprep mode for default user profile customization.

**`Scripts/GUI/Show-AppSelectionWindow.ps1`** generates the graphical checklist interface by parsing [`Features.json`](https://github.com/Raphire/Win11Debloat/blob/main/Features.json). When users confirm selections, this script invokes `ImportRegistryFile` with the corresponding registry file paths from the `Regfiles/` directory.

## Methods to Customize Windows Search

### Using the GUI Interface

Launch the main entry script to access the visual feature selector:

```powershell
.\Win11Debloat.ps1

```

In the application window, expand the **Search** group and select your desired options. Clicking **Apply** triggers the underlying PowerShell engine to import the appropriate `.reg` files.

### Command-Line Registry Imports

For automation or remote deployment, import registry files directly using the helper function:

```powershell

# Load the registry import function

. .\Scripts\Features\ImportRegistryFile.ps1

# Show the search box on the taskbar

ImportRegistryFile -message "Enabling Search Box" -path "Show_Search_Box.reg"

# Disable search history tracking

ImportRegistryFile -message "Disabling Search History" -path "Disable_Search_History.reg"

```

### Applying Changes During Sysprep

To configure Windows Search for new user profiles in a deployment image, use Sysprep mode. In `Win11Debloat.ps1`, setting the Sysprep parameter ensures registry changes apply to the default user profile hive:

```powershell

# Enable Sysprep mode for default user configuration

$script:Params = @{ Sysprep = $true }

# Apply search box visibility and disable highlights for new users

ImportRegistryFile -message "Configure Search for Sysprep" -path "Show_Search_Box.reg"
ImportRegistryFile -message "Remove Search Highlights" -path "Disable_Search_Highlights.reg"

```

## Extending Search Customization

The modular architecture supports adding new search tweaks without modifying core PowerShell code.

1. Create a new `.reg` file in `Regfiles/` (e.g., `Show_Search_Icon_Only.reg`) with your desired registry modifications
2. Append an entry to [`Config/Features.json`](https://github.com/Raphire/Win11Debloat/blob/main/Config/Features.json):

```json
{
  "name": "Show Search Icon Only",
  "description": "Displays only the search icon without text box",
  "registryFile": "Show_Search_Icon_Only.reg",
  "group": "Search"
}

```

3. Run `Win11Debloat.ps1` again—the new option appears automatically in the Search group according to the dynamic UI generation logic in `Show-AppSelectionWindow.ps1`.

## Summary

- **Declarative configuration** in [`Config/Features.json`](https://github.com/Raphire/Win11Debloat/blob/main/Config/Features.json) defines all available Windows Search customization options
- **Registry payload files** in `Regfiles/` contain the actual Windows registry modifications for search behavior
- The **`ImportRegistryFile`** function in `Scripts/Features/ImportRegistryFile.ps1` handles safe registry import operations for both user and Sysprep contexts
- Customizations can be applied via **GUI**, **command line**, or **deployment scripts** without manual registry editing
- The architecture supports **extensibility** by simply adding new `.reg` files and corresponding JSON entries

## Frequently Asked Questions

### What registry keys does Win11Debloat modify for Windows Search?

According to the Raphire/Win11Debloat source code, the utility modifies `SearchboxTaskbarMode` to control taskbar visibility (setting values `0` for hidden or `2` for visible box), `IsDeviceSearchHistoryEnabled` to toggle local search history storage, and `IsDynamicSearchBoxEnabled` to disable dynamic search highlights. These specific key modifications are implemented through `Regfiles/Show_Search_Box.reg`, `Disable_Search_History.reg`, and `Disable_Search_Highlights.reg` respectively.

### Can I customize Windows Search without using the GUI?

Yes. As implemented in `Scripts/Features/ImportRegistryFile.ps1`, you can dot-source the PowerShell function and call `ImportRegistryFile` directly with the `-path` parameter pointing to any `.reg` file in the `Regfiles/` directory. This method bypasses the GUI entirely and supports full automation via command-line scripts or remote management tools.

### How do I apply search customizations to a Windows image during Sysprep?

Win11Debloat supports Sysprep mode through the `$script:Params` hash table. When the `Sysprep` key is set to `$true`, the `ImportRegistryFile` function imports registry changes into the default user profile hive rather than the current user session. This ensures that all new accounts created on the deployed image inherit the configured Windows Search settings, such as disabled highlights or specific taskbar visibility modes.

### Is it safe to add my own search tweaks to Win11Debloat?

Yes, the architecture is specifically designed for safe extensibility. Adding custom search options requires only creating a valid `.reg` file in `Regfiles/` and adding a corresponding feature entry to [`Config/Features.json`](https://github.com/Raphire/Win11Debloat/blob/main/Config/Features.json) with the `registryFile` and `group` properties properly set. The UI generation logic in `Scripts/GUI/Show-AppSelectionWindow.ps1` dynamically builds the interface from this JSON data, requiring no modifications to the PowerShell source code itself.