PSScriptAnalyzer
Pester
PSScriptAnalyzer | Pester | |
---|---|---|
15 | 24 | |
1,781 | 3,015 | |
1.0% | 0.3% | |
7.4 | 7.3 | |
7 days ago | 6 days ago | |
C# | PowerShell | |
MIT License | GNU General Public License v3.0 or later |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
PSScriptAnalyzer
-
Using PSScriptAnalyzer to check PowerShell version compatibility - Building custom compat profiles
I am looking to build a custom profile for a ws2019 with ps 7.2 + to use to check my scripts, i have tried using the compat collector https://github.com/PowerShell/PSScriptAnalyzer/tree/development/PSCompatibilityCollector and running the build.ps1 script there but I do not see an output for my commands and the script text doesn't provide much clarify to me at least.
-
What open source tools do you use to check the security of your PowerShell scripts?
PSScriptAnalyze is a static code analysis tool that checks PowerShell scripts for best practices and potential security issues. It is available on GitHub and can be installed as a module in PowerShell. https://github.com/PowerShell/PSScriptAnalyzer
-
PSScriptAnalyzer
PSScriptAnalyzer is a static code checker for PowerShell modules and scripts. Runs a set of rules that test the quality of PowerShell code against best practice, then warns about potential code defects and suggests potential solutions. xXxLinuxUserxXx likes this linter "to get unified codestyle in the scripts."
-
I made a Dell Command Script for Intune, thought others may find it helpful.
Not a windows admin and more like a programmer but i would suggest to use some linter (https://github.com/PowerShell/PSScriptAnalyzer) to get unified codestyle in the scripts :)
-
Azure Guest Invitation
It’s best practice to keep $null on the left side of comparisons https://github.com/PowerShell/PSScriptAnalyzer/blob/development/RuleDocumentation/PossibleIncorrectComparisonWithNull.md
- Dangerous and Insecure PowerShell Code in the Enterprise
-
Smarter autocomplete
This one is a real problem. When I reference a type which is defined in another file in a class, I get an error in my vscode. the class works but the PSScriptAnalyzer doesn't know that the type is imported. I found this github issue which is about supressing the issue, I tried that and couldnt get it to work but I'd rather that it just recognized the type from the other file https://github.com/PowerShell/PSScriptAnalyzer/issues/1041
-
Who uses Visual Studio Code for PowerShell Scripting?
I would definer not autoformat on save with bugs such was this still outstanding: https://github.com/PowerShell/PSScriptAnalyzer/issues/1580
-
help with add-newuser profile names
That's some sloppy code. Wmic is deprecated. You shouldn't put unencrypted passwords in scripts. You shouldn't use write-host anymore. $null goes in front, etc. Try using https://github.com/PowerShell/PSScriptAnalyzer to ensure decent code. Also write code in vscode. Also read https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.localaccounts/new-localuser?view=powershell-5.1
-
Module workflow in VS Code?
I discovered the Invoke-Build build system, PSScriptAnalyzer for linting, and Pester for testing/mocking. I wrote a GitLab CI/CD pipeline that takes advantage of all of this to push releases to our company's PSRepo. I also discovered the Plaster template system for scaffolding new projects, and created a custom company template for standardizing our repo structures.
Pester
-
PyPyInstaller Powershell Module Initial Code Push
Pester is what's used for most Powershell testing. While it has some pretty amazing features, it does have issues with .NET class method mocking and sometimes scope can be weird. Here's a simple example:
-
Dev Stuff Distracting Me From Article Writing
This is the fun that is Powershell mocking, or at least the form that someone completely new to Powershell would write. One thing I must say is that Pester's mocking capabilities are quite easy to work with. It reminded me of pytest mock patching, only well, simpler. Most of the time spent fighting tests was due to the nuances of pipeline flow. For example, you can see that your mocked method was called X many times through something like this:
-
Windows 11 malware adds excludes to windows defender scan
The folder blocked all users from reading the files so if you open up the files it looks empty, even tho you have show hidden files turned on. You can't delete it since it says that you need access from TrustedInstaller. This is cleaver by the hacker since trusted installer is actually the name of a windows feature. HOW-EVER by using the command line I found out that the folder contains framework like these two. https://github.com/d1pakda5/PowerShell-for-Pentesters https://github.com/pester/Pester
-
I have to learn PowerShell in 2 weeks. is that possible?
I'm really surprised that nobody in this thread has mentioned Pester. PowerShell has its own automated unit testing framework that is incredibly versatile. You do need to know PowerShell in order to really make it shine, but if there are some simple tests that your class requires such as "make sure this value conforms to this regex value", Pester is pretty easy to pick up and utilize.
-
Sys admin interview coming up, help your loyal helpdesk pupil to not let his dreams be dreams
Once you start building code/scripts that are used consistently, consider adding Pester testing to your work. Most sysadmin managers may not get it, but if you're talking to dev managers, they'll absolutely get the importance of unit testing and why it's a good tool to have. Again, down the road. Learn the basics first.
-
Thoughts on authoring cmdlets
Finally, the Pester testing framework, which ships with Powershell, is a great way to ensure your code actually does what it's meant to do.
- Git repo best practices for Powershell.
- Looking for public powershell projects to learn best practices and as a reference
- Testing Solutions
-
Test your PowerShell code with Pester
Pester GH page
What are some alternatives?
vscode-powershell - Provides PowerShell language and debugging support for Visual Studio Code
bicep - Bicep is a declarative language for describing and deploying Azure resources
PSReadLine - A bash inspired readline implementation for PowerShell
arm-ttk - Azure Resource Manager Template Toolkit
nvim-lsp-installer - Further development has moved to https://github.com/williamboman/mason.nvim!
Plaster - Plaster is a template-based file and project generator written in PowerShell.
ImportExcel - PowerShell module to import/export Excel spreadsheets, without Excel
Invoke-Build - Build Automation in PowerShell
jtbl - CLI tool to convert JSON and JSON Lines to terminal, CSV, HTTP, and markdown tables
PowerShellPracticeAndStyle - The Unofficial PowerShell Best Practices and Style Guide
libxo - The libxo library allows an application to generate text, XML, JSON, and HTML output using a common set of function calls. The application decides at run time which output style should be produced.
aws-tools-for-powershell - The AWS Tools for PowerShell lets developers and administrators manage their AWS services from the PowerShell scripting environment.