Packages with compatible PowerShell Editions or Operating Systems
Starting with version 5.1, PowerShell is available in different editions which denote varying feature sets and platform compatibilities.
Searching by PowerShell Edition
The two editions of PowerShell are:
- Desktop Edition: Built on .NET Framework and provides compatibility with scripts and modules targeting versions of PowerShell running on full footprint editions of Windows such as Server Core and Windows Desktop.
- Core Edition: Built on .NET Core and provides compatibility with scripts and modules targeting versions of PowerShell running on reduced footprint editions of Windows such as Nano Server and Windows IoT.
PowerShell Gallery allows you to filter packages compatible for specific PowerShell Editions
If a package has compatible PSEditions specified, they are listed as part of 'PowerShell Editions' in the package display page and also in packages results. You can also search for compatible packages using PowerShell.
Search for packages in the gallery UI that work on PowerShell 6 and higher
Use Tags:"PSEdition_Desktop" and Tags:"PSEdition_Core" to filters the packages on PowerShell Gallery.
Use Tags:"PSEdition_Core" to search items compatible with PowerShell Core Edition
Use Tags:"PSEdition_Desktop" to search items compatible with PowerShell Desktop Edition
Search for packages to find compatible editions using PowerShell
You can specify tags to filter for the PowerShell edition and OS. You use the Find-Package
cmdlet
specifying the -Tag
parameter to specify the edition (and OS) you are targeting. Like this:
# Find modules compatible with PowerShell Core:
Find-Module -Tag PSEdition_Core
# Find modules compatible with PowerShell on Linux:
Find-Module -Tag PSEdition_Core, Linux
Searching by Operating System
Since PowerShell is available for Windows, Linux, and MacOS, packages in the Gallery may be designed for any combination of these operating systems. In the gallery UI use the following searches tags to find packages tagged by operating system:
- Tags: "Windows"
- Tags: "Linux"
- Tags: "MacOS"
You can specify these tags on Find-Module
(and other cmdlets in the PowerShellGet module), like
this:
# Find Modules compatible with Windows
Find-Module -Tag Linux
Searching for Multiple Compatibilities
You can look for a package that has multiple compatibilities by using the syntax:
Tags: "Compatibility1" "Compatibility2"
For example, if you are looking for a package that runs on both Windows and Linux machines, use the search tags:
Tags: "PSEdition_Core" "Windows" "Linux"
To search using PowerShell, you can use the Find-Module
(and the other cmdlets in the
PowerShellGet module), like this:
# Find scripts compatible with PowerShell, Windows, and Linux
Find-Script -Tag PSEdition_Core,Linux,Windows
# Find modules compatible with PowerShell and MacOS
Find-Module -Tag PSEdition_Core,MacOS
More details on authoring and finding the packages with compatible PowerShell Editions
PowerShell Gallery