Home

Awesome

PSScriptAnalyzer

<img src="logo.png" width="180">

Build Status Join the chat at https://gitter.im/PowerShell/PSScriptAnalyzer

Table of Contents

<!-- toc --> <!-- tocstop -->

Introduction

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:

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:

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.

To install PSScriptAnalyzer from source code:

Requirements

Steps

To confirm installation: run Get-ScriptAnalyzerRule in the PowerShell console to obtain the built-in rules.

Tests

Pester-based ScriptAnalyzer Tests are located in path/to/PSScriptAnalyzer/Tests folder.

./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:

  1. Open a new bug report, feature request or just ask a question by opening a new issue.
  2. Participate in the discussions of issues, pull requests and test fixes or new features.
  3. Submit your own fixes or features as a pull request but please discuss it beforehand in an issue.
  4. Submit test cases.

Back to ToC

Creating a Release

Import-Module .\Utils\ReleaseMaker.psm1
New-Release

Back to ToC

Code of Conduct

Please see our Code of Conduct before participating in this project.

Back to ToC

Security Policy

For any security issues, please see our Security Policy.

Back to ToC