9

When I try to access the Windows 10 search function (either by clicking on the bar in the task bar or starting to type in the start menu), nothing happens; The search "window" does not pop up.

I investigated on my own and found a few points that may cause this issue:

  • I used SpyBot Anti-Beacon to prevent Windows (and Cortana) from accessing Bing and telemetry websites. Even when undoing all changes made by that program and restarting the computer, no changes are visible.
  • Some group policies were modified via gpedit.msc which affect Cortana and the Windows Search. After resetting those policies to the default value ("Not Configured") and restarting, no changes are noticeable.
  • The directory for Cortana in C:\Windows\SystemApps does not exist. This also means that a file named SearchUI.exe does not exist because it should be contained in that folder. The Task Manager neither shows a running process for SearchUI.exe nor for Cortana. When trying to reinstall all factory-set system apps in an elevated PowerShell instance with the command

    Get-AppXPackage | Foreach {Add-AppXPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"
    

    (which was found here) all apps except for Cortana are reinstalled. When executing Get-AppXPackage *cortana*, no package is found or output, but for example Get-AppXPackage *edge* yields a result.

I suppose the critical error is that SearchUI.exe (and, in fact, the whole remaining Cortana directory) is missing from the system. Even after running Windows Update and installing all available updates, the problem persists.

Is there any way I can restore the search feature to how it's supposed to be?

OS: Windows 10 Pro x64 (Build 14393.187)

1
  • 1
    So I found out that Microsoft provides the "MediaCreationTool" which can create .iso images for the installation of Windows 10. According to this Reddit post, that image contains a setup.exe which can reinstall missing files. I'm checking if that fixes the issue. Nov 2, 2016 at 21:01

3 Answers 3

5

Microsoft provided a solution to reset Windows search via a powershell script and a set of steps found here under "Reset Windows Search." I'm including the steps as well as the contents of the powershell script "ResetWindowsSearchBox.ps1" below.

If the Windows 10 May 2019 Update or a later update is installed, use Windows PowerShell to reset Windows Search. To do this, follow these steps.

Note You must have administrator permissions to run this script.

  1. Click the Download button and save ResetWindowsSearchBox.ps1 to a local folder.
  2. Right-click the file that you saved, and select Run with PowerShell.
  3. If you are asked "Do you want to allow this app to make changes to your device?," select Yes.
  4. The PowerShell script resets the Windows Search feature. When the word "Done" appears, close the PowerShell window.
  5. If you receive a "Cannot be loaded because running scripts is disabled on this system" error message, enter the following command on the command line of the PowerShell window, and then press Enter:

    Get-ExecutionPolicy

    Note The current policy appears in the window. For example, you might see Restricted. We recommend that you note this value because you'll have to use it later.

  6. Enter the following command on the command line of the PowerShell window, and then press Enter:

    Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Unrestricted

    Note You'll receive a warning message that explains the security risks of an execution policy change. Press Y, and then press Enter to accept the change. To learn more about PowerShell execution policies, see About Execution Policies.

  7. After the policy change is completed, close the window, and then repeat steps 2–4. However, when the "Done" message appears this time, DON'T close the PowerShell window. Instead, press any key to continue.
  8. Revert to your previous PowerShell execution policy setting. To do this, enter the following command on the command line of the PowerShell window, press the Spacebar, enter the policy value that you noted in step 5, and then press Enter:

    Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy

    For example, if the policy that you noted in step 5 was Restricted, the command would resemble the following:

    Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Restricted

    Note You'll receive a warning message that explains the security risks of an execution policy change. Press Y, and then press Enter to accept the change and revert to your previous policy setting.

  9. Close the PowerShell window.

[10. Restart PC]¹

Note If your organization has disabled the ability to run scripts, contact your administrator for help.

¹ Added step 10 since this fix didn't take effect until I restarted.

ResetWindowsSearchBox.ps1

# 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
5
  • 1
    I understand that the original question has an accepted answer already but it seems that with the new updates, Microsoft has broken the search feature again. Typing into the search does nothing, can't even type into it, and SearchUI.exe isn't running so similar symptoms as OP. I've been digging through online search results and other users' feedback on & off for a solid couple months, finally this is the one that worked YMMV.
    – Mr.Z
    Dec 18, 2019 at 18:36
  • 1
    Sadly, this is not worked for me, Windows 2004. Jan 8, 2020 at 10:07
  • Did not fix Search just was signed out of Cortana and signed into it again ... so will look for other fixes.
    – GWD
    Feb 14, 2020 at 18:52
  • 1
    Unfortunately this also doesn't work for me (2004).
    – Nur
    Jul 20, 2020 at 11:53
  • Though possibly a fine answer at the time, it no longer appears to work with Windows 10 Version 2004. Who moved my cheese?!
    – Deleted
    Jul 29, 2020 at 4:18
4

I managed to restore the search function by running the Windows 10 setup that can be downloaded via Microsoft's Media Creation Tool which can be obtained from this website. As also mentioned in this Reddit post, create a system restore point before you run that setup in case anything goes wrong in the process. Rather safe than sorry.

The steps that I did to restore my system are:

  1. Download and run the Media Creation Tool.
  2. Select "Create installation media for another PC" and press the "Next" button.
  3. Tick the "Use the recommended options for this PC" checkbox (if it's not ticked already) and press the "Next" button.
  4. Select "ISO file" and press the "Next" button.
  5. Provide a path where the ISO file should be saved and confirm.
  6. Wait for the download to finish. Once it's done, go to the download location.
  7. Right-click the ISO file and press "Mount". The Windows Explorer should switch to a mounted drive which contains, among other files, a setup.exe.
  8. Run setup.exe.
  9. Decide whether or not you'd like to download and install all available Windows Updates before you proceed. I for my part decided to update, which is also marked as the recommended option. Press "Next".
  10. If the setup asks you which files to keep, select the option that keeps your files and installed applications.
  11. Wait for the setup to finish. Your computer will be rebooted at least once in the process.
  12. (optional) Uninstall any preinstalled applications that you don't want installed.
5
  • Can you go into detail what you did, exact commands, just downloading the ISO wasn't enough
    – Ramhound
    Nov 2, 2016 at 23:15
  • @Ramhound Is that detailed enough? Nov 3, 2016 at 18:44
  • 1
    You tell me? Does your answer indicate all steps required to solve your problem? If you are quoting something from the link, you should quote that section, and then properly cite it.
    – Ramhound
    Nov 3, 2016 at 18:53
  • Well, I guess so. I only wrote what I did. I have no clue if it works for other people as well. Nov 3, 2016 at 19:23
  • MS gotta be kidding if this is the way to fix that ... beginning to miss Apple OS!
    – GWD
    Feb 14, 2020 at 18:55
0

People (including me) seem get this problem when they are trying to remove Cortana for various reasons. If none of the mentioned solution work and you are thinking of using Window 10 Media Creation Tool to perform in-place upgrade repair, you might want to first give this a try.

  1. Open Command Prompt in Admin mode by going to C:\Windows\System32\cmd.exe. It doesn't matter how you open it.
  2. Then type sfc /scannow and hit Enter.

It take 10-20 minutes depending on your machines, to scan for all corrupt or missing files in Windows. It works every-time I do something stupid and need to fix the system files. Better than downloading 10GB of MediaTool and running similar program in it.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .