We are excited to announce that, as of today, the PowerShell Gallery will accept registration from any users who wish to publish PowerShell modules and share their work with the world.
For the past year, the PowerShell Gallery has been slowly adding content from our closest community contributors, most of whom are Most Valuable Professionals (MVPs) and internal Microsoft contributors. While we were building the basic features of the PowerShell Gallery, we restricted the set of people who could publish new modules, and required an approval step before allowing users to register. This approach provided the PowerShell team with an agile feedback loop to help design and to learn what gallery experience will be optimal for the broader PowerShell community.
To contribute to the gallery you simply have to register your Microsoft Account, examples including accounts in domains like Outlook.com, Hotmail.com or Live.com. Once you have registered, you will be ready to publish your modules to the Gallery.
Note: Registration is not required to download or install modules from the PowerShell Gallery. Registration is only needed if you are publishing to the PowerShell Gallery, or submitting certain types of feedback. You may notice that the banner at
the page still says “Preview”. We are continuing to build out the PowerShell Gallery features at a rapid rate for the next few months, so we are keeping the “Preview” tag.
PowerShell Gallery is the place to share your PowerShell code with the world, but it is not designed to be a test bed, or the place to do development work in. To handle that, the PowerShell team uses GitHub (see https://github.com/powerShell) to
post new and ongoing development, and we publish the validated modules from there to the PowerShell Gallery. We recommend creating your own repo in GitHub to use for a project development site if you do not already have one.
It is important to also follow the guidance on how to publish modules to the PowerShell gallery – please take some time to read them before you start a new contribution. Best practices that we strongly recommend for things you publish the PowerShell Gallery are:
- Only use the Publish-Module cmdlet to publish to the PowerShell Gallery, and not the general-purpose NuGet tools. This is important: these cmdlets will populate the gallery using metadata in your module, and the general-purpose NuGet tools will not.
- Use New-ModuleManifest to create your module, and ensure that your manifest has the proper values, and Test-ModuleManifest to validate it.
- In your module manifest, provide a LicenseURI, HelpInfoURI, & ProjectUri. These are the most valuable fields for people who are interested in your work.
- Before posting your code
- Run an antivirus scanner against what you plan to publish. Any module that fails our anti-virus scan will be unlisted while we contact the owners, and the module will be deleted if we are unable to resolve the issue quickly.
- Scan your module using PSScriptAnalyzer. If there are errors, they must be corrected, as we will begin un-listing modules with errors (not warnings, but errors) until they can be resolved.
The list above are the most important things for working with the PowerShell Gallery. There are additional best practices that have been published that you should be familiar with, as a publisher of PowerShell code:
- For PowerShell generally, you should review the PowerShell Cmdlet Development Guidelines on MSDN, or the community version on GitHub.
- For DSC resources, we have the PowerShell DSC Resource Design and Testing Checklist.
These are designed to help you write high-quality PowerShell code. As always, we’d welcome feedback on the guidelines we have published.
For users downloading modules from the PowerShell Gallery, we want to remind you to review the things you acquire before installing them. To make that process easier, we released with the April WMF 5.0 the Save-Module cmdlet to PowerShellGet.
We currently have over 200 modules in the PowerShell Gallery, which provide a broad range of functionality and value. With today’s announcement, we’re expecting this number to grow rapidly as you (the members of the PowerShell community) start publishing and sharing your PowerShell resources with each other….
Thank you –
The PowerShell Team