PowerShell/PSScriptAnalyzer is one of the developer-focused repositories TopGit tracks, currently at 2.2k stars, written primarily in C#. Download ScriptAnalyzer from PowerShellGallery
Snapshot summary built from the project's own GitHub metadata — there's no written TopGit review yet. The page will update automatically when a full review is published.
WHY NO REVIEW YET
TopGit writes full reviews for the most-starred, most-requested repositories. This page is a snapshot until then — see the READ ME tab for the original README in full.
PSScriptAnalyzer is a static code checker for PowerShell modules and scripts. PSScriptAnalyzer
checks the quality of PowerShell code by running a set of rules. The rules are based
on PowerShell best practices identified by PowerShell Team and the community. It generates
DiagnosticResults (errors and warnings) to inform users about potential code defects and suggests
possible solutions for improvements.
PSScriptAnalyzer ships with a collection of built-in rules that check various aspects of
PowerShell code such as:
The presence of uninitialized variables
Use of PSCredential type
Use of Invoke-Expression
And many more
Back to ToC
DOCUMENTATION NOTICE
Conceptual user documentation has been moved out of the source code repository and into the
documentation repository so that it can be published on learn.microsoft.com.
The goal of this migration is to have the user documentation on learn.microsoft.com. The source code
repository should only contain documentation for the code base, such as how to build the code or how
to contribute to the code.
User documentation that has been migrated:
Most of the contents of this README can be found in the
PSScriptAnalyzer overview
For cmdlet reference, see
PSScriptAnalyzer
For rules, see
Rules overview
The PowerShellBestPractices.md content has been moved to
PSScriptAnalyzer rules and recommendations
The ScriptRuleDocumentation.md content has been moved to
Creating custom rules
There is one exception - the documentation for the rules and cmdlets will remain in the docs
folder to facilitate build testing and to be archived as part of each release. Only the
documentation for the latest release is published on on learn.microsoft.com.
Installation
To install PSScriptAnalyzer from the PowerShell Gallery, see
Installing PSScriptAnalyzer or simply open PowerShell in a Terminal and run:
Install-Module -Name PSScriptAnalyzer
To install PSScriptAnalyzer from source code:
Requirements
Latest .NET 8.0 SDK
If building for Windows PowerShell versions, then the .NET Framework 4.6.2 targeting pack (also referred to as developer/targeting pack) need to be installed. This is only possible on Windows.
Optional but recommended for development: Visual Studio 2022
Or Visual Studio Code
Pester v6 PowerShell module, available on PowerShell Gallery
PlatyPS PowerShell module, available on PowerShell Gallery
Steps
Obtain the source
Download the latest source code from the
release page OR
Building You can either build using the Visual Studio solution PSScriptAnalyzer.sln or build
using PowerShell specifically for your platform as follows:
The default build is for the currently used version of PowerShell
.\build.ps1
Windows PowerShell version 5.0
.\build.ps1 -PSVersion 5
PowerShell 7
.\build.ps1 -PSVersion 7
Rebuild documentation since it gets built automatically only the first time
.\build.ps1 -Documentation
Build all versions (PowerShell v5 and v7) and documentation
To confirm installation: run Get-ScriptAnalyzerRule in the PowerShell console to obtain the
built-in rules.
Adding/Removing resource strings
For adding/removing resource strings in the *.resx files, it is recommended to use
Visual Studio since it automatically updates the strongly typed *.Designer.cs files. The
Visual Studio 2017 Community Edition is free to use but should you not have/want to use
Visual Studio then you can either manually adapt the *.Designer.cs files or use the
New-StronglyTypedCsFileForResx.ps1 script although the latter is discouraged since it leads to a
bad diff of the *.Designer.cs files.
Tests
Pester-based ScriptAnalyzer Tests are located in path/to/PSScriptAnalyzer/Tests folder.
Ensure Pester of at least version 6.0 is installed
In the root folder of your local repository, run:
./build -Test
To retrieve the results of the run, you can use the tools which are part of the build module (build.psm1)
Import-Module ./build.psm1
Get-TestResults
To retrieve only the errors, you can use the following:
Import-Module ./build.psm1
Get-TestFailures
Back to ToC
Using PSScriptAnalyzer
The documentation in this section can be found in
Using PSScriptAnalyzer.
Contributions are welcome
There are many ways to contribute:
Open a new bug report, feature request or just ask a question by opening a
new issue.
Participate in the discussions of
issues,
pull requests and test fixes or new
features.
Submit your own fixes or features as a pull request but please discuss it beforehand in an issue.
Submit test cases.
Back to ToC
Creating a Release
Update changelog (changelog.md) with the new version number and change set. When updating the
changelog please follow the same pattern as that of previous change sets (otherwise this may break
the next step).
Import the ReleaseMaker module and execute New-Release cmdlet to perform the following actions.
Update module manifest (engine/PSScriptAnalyzer.psd1) with the new version number and change set
Update the version number in Engine/Engine.csproj and Rules/Rules.csproj
How active is development on PowerShell/PSScriptAnalyzer?
The most recent commit recorded on PowerShell/PSScriptAnalyzer was 4 months ago, based on the GitHub push timestamp. The repository has 415 forks — one of the better signals of community interest.
How does PowerShell/PSScriptAnalyzer compare to other Developer Tools projects?
PowerShell/PSScriptAnalyzer is tracked by TopGit in the Developer Tools category, with 2.2k GitHub stars and written in C#. Browse the Developer Tools topic page on TopGit to compare it against similar projects by stars and activity.
How many stars does PowerShell/PSScriptAnalyzer have?
PowerShell/PSScriptAnalyzer has 2.2k GitHub stars — refresh the page for the live number, or check github.com/PowerShell/PSScriptAnalyzer. TopGit mirrors GitHub's count but does not claim minute-by-minute accuracy.
Is PowerShell/PSScriptAnalyzer open source?
Yes — PowerShell/PSScriptAnalyzer ships under the MIT license, which makes its source code freely readable (and, depending on license terms, forkable and reusable). Source: github.com/PowerShell/PSScriptAnalyzer.
What is PowerShell/PSScriptAnalyzer?
PowerShell/PSScriptAnalyzer (PowerShell/PSScriptAnalyzer) is a C# project on GitHub. From the project's own README: Download ScriptAnalyzer from PowerShellGallery
Where do I read more about PowerShell/PSScriptAnalyzer?
This TopGit page is a snapshot — the READ ME tab shows the project's own README content (links stripped, images preserved). The GitHub repository at github.com/PowerShell/PSScriptAnalyzer is the definitive source.
Read full README in the tab above.
Curious whether PSScriptAnalyzer is right for you?
Let ChatGPT, Claude, or Perplexity look into it — click below and see what AI actually says about PSScriptAnalyzer.