ブログ

Information&Blog

友だち追加

PowerShell「スクリーンリーダー検出」警告の解決ガイド
更新日:

Visual Studio Code や Windows Terminal を開いたとき、PowerShell に次のような警告メッセージが表示されて驚いたことはありませんか?

警告: PowerShell により、スクリーン リーダーを使用している可能性があること、および互換性のために PSReadLine が無効になっている可能性が検出されました。

このメッセージは、PowerShellが一部のシステム設定をもとに「スクリーンリーダーが有効」と判断し、それに伴い PSReadLine モジュールを無効化したことを示しています。

「スクリーンリーダーなんて使ってないのに、なぜ?」と感じた方も多いでしょう。本記事ではこの現象の 原因・影響・対処法(恒久的&一時的) を、初心者にもわかりやすく解説します。

⚙️ 警告の正体:PSReadLineが無効化される理由とは?

この警告が表示されると、PSReadLine という非常に便利な機能が一時的に無効になります。

PSReadLineとは:

  • コマンド入力時の色分け(シンタックスハイライト)
  • コマンド履歴の検索
  • インテリセンス(補完機能)
  • 複数行の編集操作

など、PowerShellを使いやすくするモジュールです。これが無効になると、PowerShellの体験は一気に「ただの黒い画面」になってしまいます。

原因は、多くの場合、Windows のアクセシビリティ設定が誤って「スクリーンリーダー使用中」になっていること。具体的には、レジストリの以下のキーが 1 になっているためです:

HKEY_CURRENT_USER\Control Panel\Accessibility\Blind Access\On

解決策1:レジストリ編集による根本修正(最も推奨)

最も直接的で確実な方法は、このレジストリ値を 0 に戻すことです。

手順:

  1. Windows の検索バーに「regedit」と入力して「レジストリ エディター」を開く
  2. 上部のバーに以下を入力して Enter
    Computer\HKEY_CURRENT_USER\Control Panel\Accessibility\Blind Access

  3. On という名前の値をダブルクリック
  4. 値のデータを「0」に変更して OK
  5. レジストリエディターを閉じ、Windows を再起動

✅ 再起動後、PowerShell を開いて警告が消えていれば成功です。

PowerShellから直接変更する方法(レジストリエディタ不要)

Set-ItemProperty -Path 'HKCU:\Control Panel\Accessibility\Blind Access' -Name On -Value 0

キーが存在しない場合は、以下を使って作成&設定:

New-Item -Path 'HKCU:\Control Panel\Accessibility\Blind Access' -Force |
Set-ItemProperty -Name 'On' -Value 0

💡 変更後は再起動を忘れずに!

🧰 解決策2:PowerShellスクリプトによる代替修正

レジストリに直接触れられない場合(社内ポリシーなど)は、以下の PowerShell スクリプトを使うのがおすすめです。

スクリプト概要:

  • 現在の「スクリーンリーダー状態」をチェック
  • アクティブなら非アクティブに設定
  • Windows APIを使用

実行方法:

  1. 以下コードをコピーして、FixScreenReaderFlag.ps1 などの名前で保存
  2. PowerShell を開いてスクリプトを実行
# 実行コマンド
.\FixScreenReaderFlag.ps1

⚠ 実行ポリシーエラーが出る場合は次のコマンドで許可:

Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

この方法も 一度実行すればOK。再起動不要な場合もあります。

🛠️ 解決策3:PSReadLine の手動インポート(一時しのぎ)

恒久的な修正ができない時は、一時的にモジュールを手動で読み込むことも可能です。

Import-Module PSReadLine

これは現在のセッションだけで有効な方法で、PowerShellを再起動すると無効に戻るので注意。

補足:プロファイルスクリプトに記述して自動化も可能

notepad $PROFILE

にてファイルを開き、以下を追記:

Import-Module PSReadLine

ただしこれは根本解決ではなく、警告が一瞬表示されることがあります。

🔍 トラブルが続く場合の確認ポイント

以下のコマンドで PSReadLine が正しくインストールされているかを確認できます:

Get-Module PSReadLine -ListAvailable

もし壊れていた場合、再インストールで解決することがあります:

Install-Module PSReadLine -Force

まとめ:警告は無視せず、正しく対応を!

解決策

恒久性

再起動

難易度

レジストリ編集

必要

△(中級向け)

スクリプト実行

不要または任意

〇(簡単)

手動インポート

不要

◎(簡単)

📌 推奨対応

  • 一般ユーザー:レジストリ編集が最も推奨(恒久的&確実)
  • 制限ある環境:PowerShellスクリプトが安全かつ簡単
  • 検証用/一時的:手動インポートで即座に機能回復

結論

「スクリーンリーダー検出」のPowerShell警告は、実際には アクセシビリティ設定の誤検出 という軽微な問題に起因するものです。しかし、PSReadLineの無効化による操作性の低下は無視できません。

本記事で紹介した対処法を試すことで、警告を解消し、快適なPowerShell環境を取り戻せます。特に、レジストリの修正かスクリプトの実行を選べば、ほとんどの環境で問題を解決できます。

検索ボックスへキーワードを入力してください

ホームページの作成、更新、SEOに関する
お問い合わせ・お見積もり依頼は、
電話もしくはフォームでも受け付けております。

0120-781-437

受付時間 平日 9:00~18:00

メールでのお問い合わせはこちら