When launching PowerShell 7.0.0 on Windows 10, many developers encounter this warning:
Warning: PowerShell detected that you might be using a screen reader
and has disabled PSReadLine for compatibility purposes.
If you want to re-enable it, run 'Import-Module PSReadLine'.
This occurs despite not running any screen reader software, creating unnecessary friction in the development workflow.
The issue stems from PowerShell's accessibility detection mechanism which can be triggered by:
- Certain accessibility-related registry keys being present
- Visual Studio's accessibility hooks
- Third-party software that modifies UI automation settings
Method 1: Create PowerShell Profile
Edit your profile to automatically load PSReadLine:
if ($host.Name -eq 'ConsoleHost') {
Import-Module PSReadLine
}
Method 2: Registry Modification
For advanced users who want to disable the detection entirely:
reg add HKCU\Control Panel\Accessibility /v BlindAccess /t REG_DWORD /d 0 /f
Method 3: Update PSReadLine
Newer versions handle detection better:
Install-Module -Name PSReadLine -Force -AllowClobber
After implementing any solution, verify PSReadLine is active:
Get-Module PSReadLine | Select-Object Version,Path
Should return module information instead of $null.
When launching PowerShell 7 on Windows 10, you might encounter this warning:
Warning: PowerShell detected that you might be using a screen reader
and has disabled PSReadLine for compatibility purposes.
If you want to re-enable it, run 'Import-Module PSReadLine'.
This occurs because PowerShell's auto-detection mechanism has falsely identified your environment as using screen reader accessibility tools.
The detection is based on several system-level checks:
- Presence of UI Automation clients running
- Certain accessibility-related registry keys
- Running processes associated with screen readers
False positives can occur when you have development tools like Visual Studio (2017/2019) installed, as they may interact with accessibility APIs during debugging.
To temporarily re-enable PSReadLine, run:
Import-Module PSReadLine
Option 1: Modify PowerShell Profile
Edit your PowerShell profile to always load PSReadLine:
# For current user
notepad $PROFILE
# Add this line:
Import-Module PSReadLine
Option 2: Disable Screen Reader Detection
Create or modify the PSReadLine configuration:
Set-PSReadLineOption -PredictionSource History
Set-PSReadLineOption -ContinuationPrompt ">> "
Set-PSReadLineOption -BellStyle None
After implementing fixes, check PSReadLine status:
Get-Module PSReadLine
# Should return version information if loaded
For developers who want to inspect the detection logic:
# Check accessibility status
[System.Windows.Forms.SystemInformation]::ScreenReader
# Alternative check
Add-Type -AssemblyName UIAutomationClient
[Windows.Automation.AutomationElement]::RootElement
If you have VS2017/2019 installed, try these additional steps:
# Reset VS accessibility settings
devenv /resetsettings
PSReadLine enhances CLI experience but adds overhead. Benchmark with:
Measure-Command { Import-Module PSReadLine }
PowerShell PSReadLine Auto-Disabling Issue: Fixing False Screen Reader Detection in Win10/PowerShell 7
1 views