PowerShell / PowerShell/vscode-powershell
default settings for PSScriptAnalyzer are different to the CLI
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 1.9k
- Forks
- 547
- PR merge metrics
- No merged PRs in 30d
Description
Prerequisites
- I have written a descriptive issue title.
- I have searched all open and closed issues to ensure it has not already been reported.
- I have read the troubleshooting guide.
- I am sure this issue is with the extension itself and does not reproduce in a standalone PowerShell instance.
- I have verified that I am using the latest version of Visual Studio Code and the PowerShell extension.
- If this is a security issue, I have read the security issue reporting guidance.
Summary
the default PSScriptAnalyzer config in the vscode extension seems to be different to the default config in the CLI
> Invoke-ScriptAnalyzer .\windows\foo.ps1
RuleName Severity ScriptName Line Message
-------- -------- ---------- ---- -------
PSAvoidUsingWriteHost Warning foo.ps1 1 File 'foo.ps1' uses Write-Host. Avoid using Write-Host
because it might not work in all hosts, does not work when
there is no host, and (prior to PS 5.0) cannot be
suppressed, captured, or redirected. Instead, use
Write-Output, Write-Verbose, or Write-Information.
creating a PSScriptAnalyzerSettings.psd1 file and enabling the rule explicitly seems to fix it:
@{
Severity=@('Error','Warning')
IncludeRules=@('PSAvoidUsingWriteHost')
}
but i would rather not have to configure every single rule in order to have consistent behavior in the CLI and vscode
PowerShell Version
Name Value
---- -----
PSVersion 5.1.22621.6345
PSEdition Desktop
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0...}
BuildVersion 10.0.22621.6345
CLRVersion 4.0.30319.42000
WSManStackVersion 3.0
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
Name : Visual Studio Code Host
Version : 2025.4.0
InstanceId : 4b4cb36f-0f98-4c1e-97e0-aaf3f2916128
UI : System.Management.Automation.Internal.Host.InternalHostUserInterface
CurrentCulture : en-AU
CurrentUICulture : en-GB
PrivateData : Microsoft.PowerShell.ConsoleHost+ConsoleColorProxy
DebuggerEnabled : True
IsRunspacePushed : False
Runspace : System.Management.Automation.Runspaces.LocalRunspace
Visual Studio Code Version
1.108.0
94e8ae2b28cb5cc932b86e1070569c4463565c37
x64
Extension Version
ms-vscode.powershell@2025.4.0
Steps to Reproduce
- install PSScriptAnalyzer:
Install-Module -Name PSScriptAnalyzer -Force -scope currentuser - create
foo.ps1with the following content:write-host asdf - run
Invoke-ScriptAnalyzer .\foo.ps1and observe that the error is reported only in the CLI but not in vscode
Visuals
Logs
No response
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by tracing the extension's PSScriptAnalyzer invocation and compare its defaults with the reported Invoke-ScriptAnalyzer .\foo.ps1 result. Reproduce with foo.ps1 containing write-host asdf. Done means the same default diagnostic appears in VS Code without a PSScriptAnalyzerSettings.psd1 file.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- powershell, typescript
- Domain
- devtools
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 52/100