Windows 10 搜索不起作用-SearchUI.exe 缺失

Windows 10 搜索不起作用-SearchUI.exe 缺失

当我尝试访问 Windows 10 搜索功能(通过单击任务栏中的栏或开始在开始菜单中键入)时,什么都没有发生;搜索“窗口”没有弹出。

我自己调查了一下,发现有几点可能会导致这个问题:

  • 我用了SpyBot 反信标阻止 Windows(和 Cortana)访问 Bing 和遥测网站。即使撤销全部该程序所做的更改并重新启动计算机,则看不到任何变化。
  • 一些组策略被修改,gpedit.msc影响了 Cortana 和 Windows Search。将这些策略重置为默认值(“未配置”)并重新启动后,没有发现任何变化。
  • Cortana 的目录C:\Windows\SystemApps不存在。这也意味着名为的文件SearchUI.exe不存在,因为它应该包含在该文件夹中。任务管理器既不显示 Cortana 的运行进程,SearchUI.exe也不显示 Cortana 的运行进程。尝试使用命令在提升的 PowerShell 实例中重新安装所有出厂设置的系统应用程序时

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

    (发现这里) 重新安装除 Cortana 之外的所有应用程序。执行时Get-AppXPackage *cortana*,未找到任何包或输出,但例如Get-AppXPackage *edge*产生一个结果。

我认为关键错误是SearchUI.exe系统缺少该(事实上,整个剩余的 Cortana 目录都缺失)。即使运行 Windows Update 并安装所有可用更新后,问题仍然存在。

有什么方法可以将搜索功能恢复到原有的状态吗?

操作系统:Windows 10 Pro x64(内部版本 14393.187)

答案1

微软提供了一个通过 powershell 脚本重置 Windows 搜索的解决方案,并找到了一组步骤这里在“重置 Windows Search”下。我将在下面列出步骤以及 powershell 脚本“ResetWindowsSearchBox.ps1”的内容。

如果安装了 Windows 10 2019 年 5 月更新或更高版本,请使用 Windows PowerShell 重置 Windows Search。为此,请按照以下步骤操作。

笔记您必须具有管理员权限才能运行此脚本。

  1. 单击下载按钮并保存重置WindowsSearchBox.ps1到本地文件夹。
  2. 右键单击保存的文件,然后选择“使用 PowerShell 运行”。
  3. 如果有人询问您“您是否允许此应用更改您的设备?”,请选择“是”。
  4. PowerShell 脚本将重置 Windows 搜索功能。当出现“完成”字样时,关闭 PowerShell 窗口。
  5. 如果收到“无法加载,因为此系统上已禁用运行脚本”错误消息,请在 PowerShell 窗口的命令行中输入以下命令,然后按 Enter:

    Get-ExecutionPolicy

    笔记当前策略将显示在窗口中。例如,您可能会看到“受限”。我们建议您记下此值,因为您稍后会用到它。

  6. 在 PowerShell 窗口的命令行中输入以下命令,然后按 Enter:

    Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Unrestricted

    笔记您将收到一条警告消息,说明执行策略更改的安全风险。按 Y,然后按 Enter 接受更改。要了解有关 PowerShell 执行策略的详细信息,请参阅关于执行策略

  7. 策略更改完成后,关闭窗口,然后重复步骤 2-4。但是,当这次出现“完成”消息时,请不要关闭 PowerShell 窗口。而是按任意键继续。
  8. 恢复到以前的 PowerShell 执行策略设置。为此,请在 PowerShell 窗口的命令行中输入以下命令,按空格键,输入您在步骤 5 中记下的策略值,然后按 Enter:

    Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy

    例如,如果您在步骤 5 中记下的策略为“受限”,则命令将类似于以下内容:

    Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Restricted

    笔记您将收到一条警告消息,其中说明执行策略更改的安全风险。按 Y,然后按 Enter 接受更改并恢复到以前的策略设置。

  9. 关闭 PowerShell 窗口。

[10. 重启电脑]¹

笔记如果您的组织已禁用运行脚本的功能,请联系您的管理员寻求帮助。

¹ 添加了步骤 10,因为此修复直到我重新启动后才生效。

重置WindowsSearchBox.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

答案2

我设法通过运行 Windows 10 设置来恢复搜索功能,该设置可以通过 Microsoft 的 Media Creation Tool 下载,该工具可从以下网址获得本网站. 还提到这篇 Reddit 帖子、创建系统还原点运行该设置以防过程中出现任何问题。宁可安全,也不要后悔。

我恢复系统的步骤如下:

  1. 下载并运行媒体创作工具
  2. 选择“为另一台电脑创建安装媒体”,然后按“下一步”按钮。
  3. 勾选“为此电脑使用推荐的选项”复选框(如果尚未勾选)并按“下一步”按钮。
  4. 选择“ISO文件”并按“下一步”按钮。
  5. 提供保存 ISO 文件的路径并确认。
  6. 等待下载完成。下载完成后,前往下载位置。
  7. 右键单击 ISO 文件并按“挂载”。Windows 资源管理器应切换到已挂载的驱动器,其中包含setup.exe.
  8. 跑步setup.exe
  9. 在继续操作之前,请确定是否要下载并安装所有可用的 Windows 更新。我决定更新,这也被标记为推荐选项。按“下一步”。
  10. 如果安装程序询问您保留哪些文件,请选择保留文件和已安装应用程序的选项。
  11. 等待设置完成。在此过程中,您的计算机将至少重新启动一次。
  12. (可选)卸载任何您不想安装的预装应用程序。

答案3

人们(包括我)在出于各种原因尝试删除 Cortana 时似乎都会遇到此问题。如果上述解决方案均不起作用,并且您正在考虑使用 Windows 10 媒体创建工具执行就地升级修复,您可能首先想尝试一下。

  1. 打开管理员中的命令提示符模式,通过执行文件目录:\Windows\System32\cmd.exe。无论你如何打开它都没关系。
  2. 然后输入证监会/扫描并击中进入

扫描 Windows 中所有损坏或丢失的文件需要 10-20 分钟,具体取决于您的机器。每次我做了一些愚蠢的事情并需要修复系统文件时,它都会起作用。比下载 10GB 的 MediaTool 并在其中运行类似程序要好。

相关内容