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
に戻すことです。
手順:
- Windows の検索バーに「
regedit
」と入力して「レジストリ エディター」を開く - 上部のバーに以下を入力して Enter
Computer\HKEY_CURRENT_USER\Control Panel\Accessibility\Blind Access
On
という名前の値をダブルクリック- 値のデータを「
0
」に変更して OK - レジストリエディターを閉じ、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を使用
実行方法:
- 以下コードをコピーして、
FixScreenReaderFlag.ps1
などの名前で保存 - 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環境を取り戻せます。特に、レジストリの修正かスクリプトの実行を選べば、ほとんどの環境で問題を解決できます。
検索ボックスへキーワードを入力してください