How to Reset Windows Search in Windows 10
Search Windows and the web from the taskbar to find help, apps, files, settings—you name it. You can also get quick answers from the web—like weather, stock prices, currency conversion, and much more—and get to websites faster by using links in the preview pane.
Windows Search is a desktop search platform that has instant search capabilities for most common file and data types such as email, contacts, calendar appointments, documents, photos, multimedia, and other formats that can be extended by third party developers. These capabilities enable users to find, manage, and organize the increasing amount of data common in home and enterprise environments.
If Windows Search is unresponsive and not working, you can try resetting Windows Search to fix problems with it.
See also:
- Windows Search | Microsoft Docs
- Search for anything, anywhere in Windows 10 | Microsoft Support
- Fix problems in Windows Search | Microsoft Docs
This tutorial will show you how to reset Windows Search in Windows 10.
Resetting Windows Search does not affect your files. However, it may temporarily affect the relevance of search results.
You must be signed in as an administrator to reset Windows Search.
Here's How:
1 Download the ResetWindowsSearchBox.ps1 file from Microsoft at the link below. (see screenshot below)
Reset Windows Search PowerShell script | Microsoft Download Center
Download
(contents of ResetWindowsSearchBox.ps1 file for reference)
Code:# Copyright © 2019, Microsoft Corporation. All rights reserved. function T-R { [CmdletBinding()] Param( [String] $n ) $o = Get-Item -LiteralPath $n -ErrorAction SilentlyContinue return ($o -ne $null) } function R-R { [CmdletBinding()] Param( [String] $l ) $m = T-R $l if ($m) { Remove-Item -Path $l -Recurse -ErrorAction SilentlyContinue } } function S-D { R-R "HKLM:\SOFTWARE\Microsoft\Cortana\Testability" R-R "HKLM:\SOFTWARE\Microsoft\Search\Testability" } function K-P { [CmdletBinding()] Param( [String] $g ) $h = Get-Process $g -ErrorAction SilentlyContinue $i = $(get-date).AddSeconds(2) $k = $(get-date) while ((($i - $k) -gt 0) -and $h) { $k = $(get-date) $h = Get-Process $g -ErrorAction SilentlyContinue if ($h) { $h.CloseMainWindow() | Out-Null Stop-Process -Id $h.Id -Force } $h = Get-Process $g -ErrorAction SilentlyContinue } } function D-FF { [CmdletBinding()] Param( [string[]] $e ) foreach ($f in $e) { if (Test-Path -Path $f) { Remove-Item -Recurse -Force $f -ErrorAction SilentlyContinue } } } function D-W { $d = @("$Env:localappdata\Packages\Microsoft.Cortana_8wekyb3d8bbwe\AC\AppCache", "$Env:localappdata\Packages\Microsoft.Cortana_8wekyb3d8bbwe\AC\INetCache", "$Env:localappdata\Packages\Microsoft.Cortana_8wekyb3d8bbwe\AC\INetCookies", "$Env:localappdata\Packages\Microsoft.Cortana_8wekyb3d8bbwe\AC\INetHistory", "$Env:localappdata\Packages\Microsoft.Windows.Cortana_cw5n1h2txyewy\AC\AppCache", "$Env:localappdata\Packages\Microsoft.Windows.Cortana_cw5n1h2txyewy\AC\INetCache", "$Env:localappdata\Packages\Microsoft.Windows.Cortana_cw5n1h2txyewy\AC\INetCookies", "$Env:localappdata\Packages\Microsoft.Windows.Cortana_cw5n1h2txyewy\AC\INetHistory", "$Env:localappdata\Packages\Microsoft.Search_8wekyb3d8bbwe\AC\AppCache", "$Env:localappdata\Packages\Microsoft.Search_8wekyb3d8bbwe\AC\INetCache", "$Env:localappdata\Packages\Microsoft.Search_8wekyb3d8bbwe\AC\INetCookies", "$Env:localappdata\Packages\Microsoft.Search_8wekyb3d8bbwe\AC\INetHistory", "$Env:localappdata\Packages\Microsoft.Windows.Search_cw5n1h2txyewy\AC\AppCache", "$Env:localappdata\Packages\Microsoft.Windows.Search_cw5n1h2txyewy\AC\INetCache", "$Env:localappdata\Packages\Microsoft.Windows.Search_cw5n1h2txyewy\AC\INetCookies", "$Env:localappdata\Packages\Microsoft.Windows.Search_cw5n1h2txyewy\AC\INetHistory") D-FF $d } function R-L { [CmdletBinding()] Param( [String] $c ) K-P $c 2>&1 | out-null D-W # 2>&1 | out-null K-P $c 2>&1 | out-null Start-Sleep -s 5 } function D-E { Write-Host "Press any key to continue..." $Host.UI.RawUI.ReadKey("NoEcho,IncludeKeyUp") > $null } Write-Output "Verifying that the script is running elevated" if (-Not ([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] 'Administrator')) { if ([int](Get-CimInstance -Class Win32_OperatingSystem | Select-Object -ExpandProperty BuildNumber) -ge 6000) { $Cx = "-File `"" + $MyInvocation.MyCommand.Path + "`" " + $MyInvocation.UnboundArguments Start-Process -FilePath PowerShell.exe -Verb Runas -ArgumentList "-noexit",$Cx Exit } } $a = "searchui" $b = "$Env:localappdata\Packages\Microsoft.Windows.Search_cw5n1h2txyewy" if (Test-Path -Path $b) { $a = "searchapp" } Write-Output "Resetting Windows Search Box" S-D 2>&1 | out-null R-L $a Write-Output "Done..." D-E
2 Save the ResetWindowsSearchBox.ps1 file to your desktop.
3 Unblock the ResetWindowsSearchBox.ps1 file. (see screenshot below)
4 Open an elevated Windows PowerShell or elevated command prompt.
5 Type the command below into the elevated Windows PowerShell or elevated command prompt, and press Enter. (see screenshots below)
PowerShell -ExecutionPolicy Unrestricted -File "<Full path of ResetWindowsSearchBox.ps1 file>"
Substitute <Full path of ResetWindowsSearchBox.ps1 file> in the command above with the actual full path of the ResetWindowsSearchBox.ps1 file (ex: "C:\Users\Brink\Desktop\ResetWindowsSearchBox.ps1").
For example:PowerShell -ExecutionPolicy Unrestricted -File "C:\Users\Brink\Desktop\ResetWindowsSearchBox.ps1"
6 When the script is Done, you can close the elevated Windows PowerShell or elevated command prompt window.
That's it,
Shawn Brink
Related Tutorials
- How to Use Indexer Diagnostics App for Windows Search Indexer Issues in Windows 10
- How to Enable or Disable Search Indexing in Windows
- How to Reset and Rebuild Search Index in Windows 10
- How to Turn On or Off Enhanced Mode for Search Indexer in Windows 10
- How to Hide or Show Search Box or Search Icon on Taskbar in Windows 10