Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
67 changes: 32 additions & 35 deletions powershell-gallery/docs-conceptual/powershellget/overview.md
Original file line number Diff line number Diff line change
@@ -1,64 +1,60 @@
---
description: This article explains the purpose and history of PowerShellGet.
ms.date: 01/26/2026
ms.date: 05/20/2026
ms.topic: overview
title: Package management for PowerShell
---
# Package management for PowerShell

Microsoft provides three package management tools for PowerShell:

- The **Microsoft.PowerShell.PSResourceGet** module - shipped originally in PowerShell 7.4.0
- The **PowerShellGet** and **PackageManagement** modules - shipped originally in Windows PowerShell
- The Microsoft.PowerShell.PSResourceGet module - shipped originally in PowerShell 7.4.0
- The PowerShellGet and PackageManagement modules - shipped originally in Windows PowerShell
5.0
- The **NuGet** module used by the Package Manager Console of Visual Studio
- The NuGet module used by the Package Manager Console of Visual Studio

This documentation covers the **PowerShellGet**, **PackageManagement**, and
**Microsoft.PowerShell.PSResourceGet** modules. These modules contain cmdlets for discovering,
This documentation covers the PowerShellGet, PackageManagement, and
Microsoft.PowerShell.PSResourceGet modules. These modules contain cmdlets for discovering,
installing, updating, and publishing PowerShell packages from the [PowerShell Gallery][04]. These
packages can contain artifacts such as Modules, DSC Resources, and Scripts. The
**Microsoft.PowerShell.PSResourceGet** module replaces the **PowerShellGet** and
**PackageManagement** modules.
Microsoft.PowerShell.PSResourceGet module replaces the PowerShellGet and PackageManagement modules.

> [!NOTE]
> The **NuGet** module contains cmdlets for discovering and installing packages from the NuGet
> Gallery for use with Visual Studio projects. For information about the **NuGet** module, see the
> The NuGet module contains cmdlets for discovering and installing packages from the NuGet Gallery
> for use with Visual Studio projects. For information about the NuGet module, see the
> [NuGet module][01] reference in the Visual Studio documentation.

Supported versions:

- Current releases
- **Microsoft.PowerShell.PSResourceGet** 1.1.1 - a standalone module that doesn't depend on the
**PowerShellGet** or **PackageManagement** modules
- **PowerShellGet** 2.2.5 with **PackageManagement** 1.4.8.1
- Microsoft.PowerShell.PSResourceGet 1.2.0 - a standalone module that doesn't depend on the
PowerShellGet or PackageManagement modules
- PowerShellGet 2.2.5 with PackageManagement 1.4.8.1
- Preview releases
- **Microsoft.PowerShell.PSResourceGet** 1.2.0-preview5 - adds many new features. For more
- Microsoft.PowerShell.PSResourceGet 1.3.0-preview1 - adds many new features. For more
information, see [What's new in PSResourceGet][06] in the GitHub repository.

## Version history
For best results, use the latest version of the Microsoft.PowerShell.PSResourceGet module.

For best results, use the latest version of the **Microsoft.PowerShell.PSResourceGet** module.
> [!IMPORTANT]
> The 1.0.0.1 version of PowerShellGet that ships in Windows PowerShell 5.1 is no longer supported.
> To be supported, you must update to the latest version. For more information, see
> [Install a package manager for PowerShell][05].

- **Microsoft.PowerShell.PSResourceGet** v1.2.0-preview5 - shipped in **PowerShell 7.6-preview.6**
- **Microsoft.PowerShell.PSResourceGet** v1.1.1 - shipped in **PowerShell 7.6-preview.4**
- **Microsoft.PowerShell.PSResourceGet** v1.1.0 - shipped in **PowerShell 7.5.0**
- **Microsoft.PowerShell.PSResourceGet** 1.0.6 - released to the PowerShell Gallery on 10-Oct-2024
- **Microsoft.PowerShell.PSResourceGet** 1.0.5 - shipped in **PowerShell 7.5-preview.3**
- **Microsoft.PowerShell.PSResourceGet** 1.0.4.1 - shipped in **PowerShell 7.4.2**
- **Microsoft.PowerShell.PSResourceGet** 1.0.2 - released to the PowerShell Gallery on 06-Feb-2024
- **PowerShell 7.4.0** ships with **Microsoft.PowerShell.PSResourceGet** 1.0.1, **PowerShellGet**
2.2.5, and **PackageManagement** 1.4.8.1
- **PowerShell 7.0.4**, **PowerShell 7.1.1**, and higher shipped with **PowerShellGet** 2.2.5 and
**PackageManagement** 1.4.7.
- **PowerShell 7.0.0** shipped with **PowerShellGet** 2.2.3 and **PackageManagement** 1.4.6.
- **PowerShell 6.0.0** shipped with **PowerShellGet** 1.6.0 and **PackageManagement** 1.1.7.
- **Windows PowerShell 5.1** comes with version 1.0.0.1 of **PowerShellGet** and
**PackageManagement** preinstalled.
## Enhanced support for the Microsoft Artifact Registry

> [!IMPORTANT]
> The 1.0.0.1 version of PowerShellGet has limited features and must be updated to work properly
> with the PowerShell Gallery. To be supported, you must update to the latest version. For more
> information, see [Install a package manager for PowerShell][05].
Support for the Microsoft Artifact Registry was added in Microsoft.PowerShell.PSResourceGet v1.1.0.
Beginning with Microsoft.PowerShell.PSResourceGet v1.3.0-preview1, the Microsoft Artifact Registry
is a default repository alongside the PSGallery repository. Use the following command to register
the Microsoft Artifact Registry repository with the default settings:

```powershell
Register-PSResourceRepository -MicrosoftArtifactRegistry
```

By default, the Microsoft Artifact Registry repository is registered as a Trusted repository with a
higher priority than the PSGallery repository. For more information, see
[Register-PSResourceRepository][07].

## See also

Expand All @@ -73,3 +69,4 @@ For best results, use the latest version of the **Microsoft.PowerShell.PSResourc
[04]: https://www.powershellgallery.com
[05]: install-powershellget.md
[06]: psresourceget-release-notes.md
[07]: xref:Microsoft.PowerShell.PSResourceGet.Register-PSResourceRepository
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
description: This article contains release notes for the PSResourceGet module.
ms.date: 03/12/2026
ms.date: 05/20/2026
ms.topic: release-notes
title: What's new in PSResourceGet
---
Expand All @@ -13,6 +13,7 @@ complete list of changes, see the [CHANGELOG][01] in the GitHub repository.

## Release history

- v1.3.0-preview1 - Preview release - released to the PowerShell Gallery only
- v1.2.0 - Current release - released to the PowerShell Gallery only
- v1.2.0-rc3 - Preview release - shipped in PowerShell 7.6.0-rc1
- v1.2.0-rc2 - Preview release - released to the PowerShell Gallery only
Expand Down Expand Up @@ -41,6 +42,22 @@ complete list of changes, see the [CHANGELOG][01] in the GitHub repository.

## Release notes

### 1.3.0-preview1 - 2026-05-19

New Features

- Add `MAR` as default registered repository
- Add concurrent (parallel) execution for `Install-PSResource` workflows
- Add DSC V3 resource for PSResourceGet

Bug fixes and improvements

- Bump `Azure.Identity` from `1.17.1` to `1.17.2`
- Bump `Azure.Identity` from `1.14.2` to `1.17.1` and remove deprecated
**DefaultAzureCredentialOptions** from constructor
- Fixed the logic to differentiate between Windows PowerShell and PowerShell
- Improved `Update-PSResource` to include local-copy prerelease string when deciding what to update

### 1.2.0 - 2026-03-11

Initial GA release of PSResourceGet v1.2.0 to the PowerShell Gallery. This release includes all
Expand Down
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
---
description: This article lists the repositories that have been tested with PowerShellGet v3 and how to configure them.
ms.date: 12/10/2025
ms.date: 05/20/2026
ms.topic: reference
title: Supported repository configurations
---

# PSResourceGet supported repositories

The **Microsoft.PowerShell.PSResourceGet** module works with NuGet package repositories and local
file stores. In general, the cmdlets should work with any artifact repository that supports the
NuGet protocol. However, not all NuGet repositories support all the features of PSResourceGet.
The Microsoft.PowerShell.PSResourceGet module works with NuGet package repositories and local file
stores. In general, the cmdlets should work with any artifact repository that supports the NuGet
protocol. However, not all NuGet repositories support all the features of PSResourceGet.

The following repositories have been tested with PSResourceGet.

Expand All @@ -24,6 +24,31 @@ information, see [Creating and publishing an item][01].

The PowerShell Gallery supports all the features of PSResourceGet.

## Microsoft Artifact Registry (MAR)

MAR is a public registry for housing Microsoft's official artifacts, such as container images. MAR
enhances security by ensuring only Microsoft can publish official packages, eliminating risks like
name squatting. It also improves software supply chain integrity by offering greater transparency
and control over artifact provenance.

Support for the Microsoft Artifact Registry was added in Microsoft.PowerShell.PSResourceGet v1.1.0.
Beginning with Microsoft.PowerShell.PSResourceGet v1.3.0-preview1, the Microsoft Artifact Registry
is a default repository alongside the PSGallery repository. Use the following command to register
the Microsoft Artifact Registry repository with the default settings:

```powershell
Register-PSResourceRepository -MicrosoftArtifactRegistry
```

By default, the Microsoft Artifact Registry repository is registered as a Trusted repository with a
higher priority than the PSGallery repository. For more information, see
[Register-PSResourceRepository][20].

### MAR limitations

The MAR repository has the same limitations as ACR repositories. The MAR is read-only and doesn't
support publishing packages.

## NuGet.org

NuGet.org is a public host of NuGet packages used by millions of .NET and .NET Core developers every
Expand Down Expand Up @@ -192,29 +217,6 @@ ACR repositories:
- Find by DSC resource name
- `Find-PSResource -DscResourceName ResourceName -Repository ACRDemoRepo`

## Microsoft Artifact Registry (MAR)

MAR is a public registry for housing Microsoft's official artifacts, such as container images. MAR
enhances security by ensuring only Microsoft can publish official packages, eliminating risks like
name squatting. It also improves software supply chain integrity by offering greater transparency
and control over artifact provenance.

Use the following commands to register MAR repository as a PSResource repository.

```powershell
$mcrUrl = 'https://mcr.microsoft.com'
Register-PSResourceRepository -Name MAR -Uri $mcrUrl -ApiVersion ContainerRegistry
```

After you register the repository, you can use it like any other ACR-based repository.

Support for MAR was added in **Microsoft.PowerShell.PSResourceGet** v1.1.1.

### MAR limitations

The MAR repository has the same limitations as ACR repositories. The MAR is read-only and doesn't
support publishing packages.

## GitHub Packages

GitHub Packages is a software package hosting service that allows you to host your software packages
Expand Down Expand Up @@ -515,3 +517,4 @@ Publish-PSResource @publishPSResourceSplat
[17]: https://jfrog.com/artifactory/
[18]: https://jfrog.com/help/r/how-to-generate-an-access-token-video/artifactory-creating-access-tokens-in-artifactory
[19]: https://www.myget.org/
[20]: xref:Microsoft.PowerShell.PSResourceGet.Register-PSResourceRepository
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
---
external help file: Microsoft.PowerShell.PSResourceGet.dll-Help.xml
Module Name: Microsoft.PowerShell.PSResourceGet
ms.custom: 1.2.0-p5
ms.date: 12/10/2025
online version: https://learn.microsoft.com/powershell/module/microsoft.powershell.psresourceget/compress-psresource?view=powershellget-3.x&WT.mc_id=ps-gethelp
schema: 2.0.0
Expand All @@ -15,7 +14,7 @@ Compresses a specified folder containing module or script resources into a `.nup
## SYNTAX

```
Compress-PSResource [-Path] <String> [-DestinationPath] <String> [-PassThru]
Compress-PSResource [-Path] <string> [-DestinationPath] <string> [-PassThru]
[-SkipModuleManifestValidate] [-WhatIf] [-Confirm] [<CommonParameters>]
```

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
---
external help file: Microsoft.PowerShell.PSResourceGet.dll-Help.xml
Module Name: Microsoft.PowerShell.PSResourceGet
ms.custom: 1.2.0-p5
ms.date: 12/10/2025
online version: https://learn.microsoft.com/powershell/module/microsoft.powershell.psresourceget/find-psresource?view=powershellget-3.x&WT.mc_id=ps-gethelp
schema: 2.0.0
Expand All @@ -18,23 +17,23 @@ properties.
### NameParameterSet (Default)

```
Find-PSResource [[-Name] <String[]>] [-Type <ResourceType>] [-Version <String>] [-Prerelease]
[-Tag <String[]>] [-Repository <String[]>] [-Credential <PSCredential>] [-IncludeDependencies]
Find-PSResource [[-Name] <string[]>] [-Type <ResourceType>] [-Version <string>] [-Prerelease]
[-Tag <string[]>] [-Repository <string[]>] [-Credential <pscredential>] [-IncludeDependencies]
[<CommonParameters>]
```

### CommandNameParameterSet

```
Find-PSResource [-Prerelease] -CommandName <String[]> [-Repository <String[]>]
[-Credential <PSCredential>] [<CommonParameters>]
Find-PSResource -CommandName <string[]> [-Prerelease] [-Repository <string[]>]
[-Credential <pscredential>] [<CommonParameters>]
```

### DscResourceNameParameterSet

```
Find-PSResource [-Prerelease] -DscResourceName <String[]> [-Repository <String[]>]
[-Credential <PSCredential>] [<CommonParameters>]
Find-PSResource -DscResourceName <string[]> [-Prerelease] [-Repository <string[]>]
[-Credential <pscredential>] [<CommonParameters>]
```

## DESCRIPTION
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
---
external help file: Microsoft.PowerShell.PSResourceGet.dll-Help.xml
Module Name: Microsoft.PowerShell.PSResourceGet
ms.custom: 1.2.0-p5
ms.date: 12/10/2025
online version: https://learn.microsoft.com/powershell/module/microsoft.powershell.psresourceget/get-installedpsresource?view=powershellget-3.x&WT.mc_id=ps-gethelp
schema: 2.0.0
Expand All @@ -15,7 +14,7 @@ Returns modules and scripts installed on the machine via **PowerShellGet**.
## SYNTAX

```
Get-InstalledPSResource [[-Name] <String[]>] [-Version <String>] [-Path <String>]
Get-InstalledPSResource [[-Name] <string[]>] [-Version <string>] [-Path <string>]
[-Scope <ScopeType>] [<CommonParameters>]
```

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
---
external help file: Microsoft.PowerShell.PSResourceGet.dll-Help.xml
Module Name: Microsoft.PowerShell.PSResourceGet
ms.custom: 1.2.0-p5
ms.date: 03/18/2026
online version: https://learn.microsoft.com/powershell/module/microsoft.powershell.psresourceget/get-psresourcerepository?view=powershellget-3.x&WT.mc_id=ps-gethelp
schema: 2.0.0
Expand All @@ -15,7 +14,7 @@ Finds and returns registered repository information.
## SYNTAX

```
Get-PSResourceRepository [[-Name] <String[]>] [<CommonParameters>]
Get-PSResourceRepository [[-Name] <string[]>] [<CommonParameters>]
```

## DESCRIPTION
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
---
external help file: Microsoft.PowerShell.PSResourceGet.dll-Help.xml
Module Name: Microsoft.PowerShell.PSResourceGet
ms.custom: 1.2.0-p5
ms.date: 12/10/2025
online version: https://learn.microsoft.com/powershell/module/microsoft.powershell.psresourceget/get-psscriptfileinfo?view=powershellget-3.x&WT.mc_id=ps-gethelp
schema: 2.0.0
Expand All @@ -15,7 +14,7 @@ Returns the metadata for a script.
## SYNTAX

```
Get-PSScriptFileInfo [-Path] <String> [<CommonParameters>]
Get-PSScriptFileInfo [-Path] <string> [<CommonParameters>]
```

## DESCRIPTION
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
---
external help file: Microsoft.PowerShell.PSResourceGet.dll-help.xml
Module Name: Microsoft.PowerShell.PSResourceGet
ms.custom: 1.2.0-p5
ms.date: 12/10/2025
online version: https://learn.microsoft.com/powershell/module/microsoft.powershell.psresourceget/import-psgetrepository?view=powershellget-3.x&WT.mc_id=ps-gethelp
schema: 2.0.0
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
---
external help file: Microsoft.PowerShell.PSResourceGet.dll-Help.xml
Module Name: Microsoft.PowerShell.PSResourceGet
ms.custom: 1.2.0-p5
ms.date: 12/10/2025
online version: https://learn.microsoft.com/powershell/module/microsoft.powershell.psresourceget/install-psresource?view=powershellget-3.x&WT.mc_id=ps-gethelp
schema: 2.0.0
Expand All @@ -17,37 +16,35 @@ Installs resources from a registered repository.
### NameParameterSet (Default)

```
Install-PSResource [-Name] <String[]> [-Version <String>] [-Prerelease] [-Repository <String[]>]
[-Credential <PSCredential>] [-Scope <ScopeType>] [-TemporaryPath <String>] [-TrustRepository]
Install-PSResource [-Name] <string[]> [-Version <string>] [-Prerelease] [-Repository <string[]>]
[-Credential <pscredential>] [-Scope <ScopeType>] [-TemporaryPath <string>] [-TrustRepository]
[-Reinstall] [-Quiet] [-AcceptLicense] [-NoClobber] [-SkipDependencyCheck] [-AuthenticodeCheck]
[-PassThru] [-WhatIf] [-Confirm] [<CommonParameters>]
```

### InputObjectParameterSet

```
Install-PSResource [-Repository <String[]>] [-Credential <PSCredential>] [-Scope <ScopeType>]
[-TemporaryPath <String>] [-TrustRepository] [-Reinstall] [-Quiet] [-AcceptLicense] [-NoClobber]
[-SkipDependencyCheck] [-AuthenticodeCheck] [-PassThru] [-InputObject] <PSResourceInfo[]> [-WhatIf]
[-Confirm] [<CommonParameters>]
Install-PSResource [-InputObject] <PSResourceInfo[]> [-Repository <string[]>]
[-Credential <pscredential>] [-Scope <ScopeType>] [-TemporaryPath <string>] [-TrustRepository]
[-Reinstall] [-Quiet] [-AcceptLicense] [-NoClobber] [-SkipDependencyCheck] [-AuthenticodeCheck]
[-PassThru] [-WhatIf] [-Confirm] [<CommonParameters>]
```

### RequiredResourceFileParameterSet

```
Install-PSResource [-Credential <PSCredential>] [-Scope <ScopeType>] [-TemporaryPath <String>]
[-TrustRepository] [-Reinstall] [-Quiet] [-AcceptLicense] [-NoClobber] [-SkipDependencyCheck]
[-AuthenticodeCheck] [-PassThru] -RequiredResourceFile <String> [-WhatIf] [-Confirm]
[<CommonParameters>]
Install-PSResource -RequiredResourceFile <string> [-Credential <pscredential>] [-Scope <ScopeType>]
[-TemporaryPath <string>] [-TrustRepository] [-Reinstall] [-Quiet] [-AcceptLicense] [-NoClobber]
[-SkipDependencyCheck] [-AuthenticodeCheck] [-PassThru] [-WhatIf] [-Confirm] [<CommonParameters>]
```

### RequiredResourceParameterSet

```
Install-PSResource [-Credential <PSCredential>] [-Scope <ScopeType>] [-TemporaryPath <String>]
[-TrustRepository] [-Reinstall] [-Quiet] [-AcceptLicense] [-NoClobber] [-SkipDependencyCheck]
[-AuthenticodeCheck] [-PassThru] -RequiredResource <Object> [-WhatIf] [-Confirm]
[<CommonParameters>]
Install-PSResource -RequiredResource <Object> [-Credential <pscredential>] [-Scope <ScopeType>]
[-TemporaryPath <string>] [-TrustRepository] [-Reinstall] [-Quiet] [-AcceptLicense] [-NoClobber]
[-SkipDependencyCheck] [-AuthenticodeCheck] [-PassThru] [-WhatIf] [-Confirm] [<CommonParameters>]
```

## DESCRIPTION
Expand Down
Loading
Loading