web-dev-qa-db-ja.com

Windows 10検索が機能しない-SearchUI.exeがない

Windows 10の検索機能にアクセスしようとすると(タスクバーのバーをクリックするか、スタートメニューに入力し始めます)、何も起こりません。検索「ウィンドウ」はポップアップしません。

私は自分で調査し、この問題を引き起こす可能性のあるいくつかのポイントを見つけました:

  • 私は SpyBot Anti-Beacon を使用して、Windows(およびCortana)がBingおよびテレメトリWebサイトにアクセスできないようにしました。そのプログラムによって行われたすべての変更を取り消してコンピュータを再起動しても、変更は表示されません。
  • 一部のグループポリシーは、CortanaおよびWindows Searchに影響するgpedit.mscを介して変更されました。これらのポリシーをデフォルト値(「未構成」)にリセットして再起動した後、変更は目立ちません。
  • C:\Windows\SystemAppsのCortanaのディレクトリは存在しません。これは、SearchUI.exeという名前のファイルがそのフォルダーに含まれている必要があるため、存在しないことも意味します。タスクマネージャーには、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を実行して利用可能なすべての更新プログラムをインストールした後でも、問題は解決しません。

検索機能を本来の状態に戻す方法はありますか?

OS:Windows 10 Pro x64(ビルド14393.187)

8
mezzodrinker

このWebサイト から入手できるMicrosoftのMedia Creation ToolからダウンロードできるWindows 10セットアップを実行して、検索機能を復元することができました。 このRedditの投稿 でも言及されているように、システムの復元ポイントを作成する前に何か問題が発生した場合に備えて、そのセットアップを実行します処理する。申し訳ありませんが安全です。

システムを復元するために行った手順は次のとおりです。

  1. Media Creation Tool をダウンロードして実行します。
  2. 「別のPCのインストールメディアを作成する」を選択し、「次へ」ボタンを押します。
  3. [このPCの推奨オプションを使用する]チェックボックスをオンにして(まだオンになっていない場合)、[次へ]ボタンを押します。
  4. 「ISOファイル」を選択し、「次へ」ボタンを押します。
  5. ISOファイルを保存するパスを入力して確認します。
  6. ダウンロードが完了するまで待ちます。完了したら、ダウンロード場所に移動します。
  7. ISOファイルを右クリックして[マウント]を押し​​ます。 Windowsエクスプローラーは、他のファイルの中でsetup.exeを含むマウントされたドライブに切り替える必要があります。
  8. setup.exeを実行します。
  9. 続行する前に、利用可能なすべてのWindows Updateをダウンロードしてインストールするかどうかを決定します。私は自分で更新することに決めました。これも推奨オプションとしてマークされています。 「次へ」を押します。
  10. セットアップでどのファイルを保持するかを尋ねられたら、ファイルとインストールされたアプリケーションを保持するオプションを選択します。
  11. セットアップが完了するまで待ちます。コンピュータは、プロセス中に少なくとも1回再起動されます。
  12. (オプション)インストールしたくないプレインストールアプリケーションをアンインストールします。
1
mezzodrinker

マイクロソフトは、Powershellスクリプトを介してWindows検索をリセットするソリューションと、「Windows検索のリセット」の下にある一連の手順 here を提供しました。手順と、Powershellスクリプト「ResetWindowsSearchBox.ps1」の内容を以下に含めます。

Windows 10 May 2019 Update以降のアップデートがインストールされている場合は、Windows PowerShellを使用してWindows Searchをリセットします。これを行うには、次の手順に従います。

このスクリプトを実行するには、管理者権限が必要です。

  1. [ダウンロード]ボタンをクリックして、 ResetWindowsSearchBox.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。 PCを再起動]¹

組織がスクリプトを実行する機能を無効にしている場合は、管理者にお問い合わせください。

thisこの修正は再起動するまで有効にならなかったため、手順10を追加しました。

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
4
Mr.Z