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
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
---
description: This article describes how PSResourceGet integrates with the Azure Artifacts Credential Provider with ADO feeds.
ms.date: 12/10/2025
ms.topic: reference
title: Use the Azure Artifacts Credential Provider with Azure Artifacts feeds
---

# Use the Azure Artifacts Credential Provider with Azure Artifacts feeds

PSResourceGet v1.2.0-preview5 adds support for using the Azure Artifacts Credential Provider with
Azure Artifacts feeds.

The `Register-PSResourceRepository` and `Set-PSResourceRepository` cmdlets have a new dynamic
parameter `-CredentialProvider` that allows you to configure the **CredentialProvider** property of
a **PSResourceRepository**. This dynamic parameter only works with repositories that aren't
**ContainerRegistry** repositories or the **PSGallery** repository.

PSResourceGet automatically sets the value **CredentialProvider** to `AzArtifacts` when the URI
contains `pkgs.dev.azure.com` or `pkgs.visualstudio.com`. This check is done when registering a new
repository or when PSResourceGet reads the registered repositories.

The Credential Provider can be bypassed by setting the `-CredentialProvider` parameter to `None`.

## How it works

PSResourceGet looks for the credential provider any time network credentials are set in the
following priority order:

1. Credentials passed in via **Credential** parameter.
1. Credentials retrieved via the Azure Artifacts Credential Provider.
1. Credentials retrieved from SecretManagement.

If the **CredentialProvider** property of a repository is set to `AzArtifacts`, PSResourceGet
attempts to find the Credential Provider file on the machine in the following order:

1. Checking the environment variable `NUGET_PLUGIN_PATHS`
1. Checking the default locations: `$env:USERPROFILE\.nuget\plugins`
1. Checking the location where Visual Studio is installed:
`common7\IDE\CommonExtensions\Microsoft\NuGet`

For more information about the discovery process, see _Convention-based discovery_ section of
[NuGet cross platform plugins][01].

After locating the Credential Provider, PSResourceGet uses one of the following commands to call the
provider:

- `CredentialProvider.Microsoft.exe -Uri <uri> -NonInteractive -IsRetry -F Json`
- `dotnet CredentialProvider.Microsoft.dll -Uri <uri> -NonInteractive -IsRetry -F Json`

`CredentialProvider.Microsoft.exe` is used on Windows machines, while `dotnet` works on all supported
platforms.

## Dependencies

For this feature to work, the Azure Artifacts Credential Provider must be installed on the machine.
The provider might already be available if you have Visual Studio or the .NET SDK installed. For
more information about installing the Azure Artifacts Credential Provider, see the [README][02] file
in the GitHub repository for the Azure Artifacts Credential Provider.

<!-- link references -->
[01]: /nuget/reference/extensibility/nuget-cross-platform-plugins#convention-based-discovery
[02]: https://github.com/microsoft/artifacts-credprovider/blob/master/README.md
13 changes: 6 additions & 7 deletions powershell-gallery/docs-conceptual/powershellget/overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,16 +32,14 @@ Supported versions:
**PowerShellGet** or **PackageManagement** modules
- **PowerShellGet** 2.2.5 with **PackageManagement** 1.4.8.1
- Preview releases
- **Microsoft.PowerShell.PSResourceGet** 1.1.0-rc2 - adds `Compress-PSResource` to create `.nupkg`
files, the ability to publish `.nupkg` files, and support configuration Group Policy.
- **PowerShellGet** 3.0.23-beta23 - a compatibility module that contains proxy cmdlets that call
the new cmdlets in **Microsoft.PowerShell.PSResourceGet**. The proxy cmdlets allow you to
continue to use the old cmdlet names in your scripts while you transition to the new cmdlets.
- **Microsoft.PowerShell.PSResourceGet** 1.2.0-preview5 - 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.

- **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
Expand All @@ -60,7 +58,7 @@ For best results, use the latest version of the **Microsoft.PowerShell.PSResourc
> [!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 upgrade
> instructions, see [Update PowerShellGet for Windows PowerShell 5.1][06].
> instructions, see [Update PowerShellGet for Windows PowerShell 5.1][07].

## See also

Expand All @@ -74,4 +72,5 @@ For best results, use the latest version of the **Microsoft.PowerShell.PSResourc
[03]: /powershell/module/powershellget
[04]: https://www.powershellgallery.com
[05]: install-powershellget.md
[06]: update-powershell-51.md
[06]: psresourceget-release-notes.md
[07]: update-powershell-51.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
---
description: This article contains release notes for the PSResourceGet module.
ms.date: 03/21/2025
ms.date: 12/10/2025
ms.topic: release-notes
title: What's new in PSResourceGet?
title: What's new in PSResourceGet
---
# What's new in PSResourceGet?
# What's new in PSResourceGet

This is a summary of changes to the **Microsoft.PowerShell.PSResourceGet** module. For a more
complete list of changes, see the [CHANGELOG][01] in the GitHub repository.
Expand All @@ -13,6 +13,11 @@ complete list of changes, see the [CHANGELOG][01] in the GitHub repository.

## Release history

- v1.2.0-preview5 - Preview release - shipped in PowerShell 7.6.0-preview.6
- v1.2.0-preview4 - Preview release - released to the PowerShell Gallery only
- v1.2.0-preview3 - Preview release - released to the PowerShell Gallery only
- v1.2.0-preview2 - Preview release - released to the PowerShell Gallery only
- v1.2.0-preview1 - Preview release - released to the PowerShell Gallery only
- v1.1.0 - Current release - released to the PowerShell Gallery
- v1.1.0 - shipped in PowerShell 7.5.0 and PowerShell 7.6.0-preview.1
- v1.1.0-rc3 - Preview release - released to the PowerShell Gallery only
Expand All @@ -31,6 +36,54 @@ complete list of changes, see the [CHANGELOG][01] in the GitHub repository.

## Release notes

### 1.2.0-preview5 - 2025-12-05

- Add `Reset-PSResourceRepository` cmdlet to recover from corrupted repository store
- Improve performance of `ContainerRegistry` repositories by caching token
- Fix to ensure `Update-PSResource` doesn't reinstall dependency packages that are already installed
- Fix to retrieve non-anonymous access token when publishing to ACR
- Fix to filter out path separators when passing in package names as a parameter for any cmdlet
- Fix to respect `TrustRepository` parameter when using `-RequiredResource` with
`Install-PSResource`
- Fix bug with 'PSModuleInfo' property deserialization when validating module manifest
- Fix to prevent users from setting ApiVersion to 'Unknown' in `Set-PSResourceRepository` and
`Register-PSResourceRepository`

### 1.2.0-preview4 - 2025-11-04

- Add cmdlet aliases: `gres`, `usres`, and `svres`
- Add warning when AuthenticodeCheck is used on non-Windows platforms
- Fix typos in several files
- Fix MAR fails to parse RequiredVersion for dependencies
- Fix `Get-InstalledPSResource -Path` don't throw if no subdirectories were found
- Fix to handle boolean correctly in RequiredResourceFile for prerelease key
- Fix `Compress-PSResource` to stop ignoring `.gitkeep` and other (hidden) dotfiles
- Fix broken Install-PSResource test with warning condition incorrect
- Fix `Uninstall-PSResource` shouldn't fail silently when resource wasn't found or prerelease
criteria not met
- Fix `Uninstall-PSResource` should delete subdirectories without Access Denied error on OneDrive

### 1.2.0-preview3 - 2025-09-12

- Improve user agent string and PowerShell version discovery
- Update `-ModulePrefix` to be a static parameter
- Fix MCR catalog truncation
- Fix population of `#Requires` fields in `Update-PSScriptFileInfo`
- Fix population of `Includes` metadata for packages from container registry repositories
- Fix for `Find-PSResource` and `Install-PSResource` to allow finding of unlisted packages

### 1.2.0-preview2 - 2025-07-21

- Add integration of the Azure Artifacts Credential Provider for ADO feeds
- Fix for NuGet v3 dependencies
- Fix for temporary installation path failure when installing PSResources on Linux machines

### 1.2.0-preview1 - 2025-06-26

- Add dependency support for PSResources in v3 repositories
- Wildcard attribute added to `-Repository` parameter of `Install-PSResource`
- Improvements in `ContainerRegistry` repositories in listing repository catalog

### v1.1.1 - 2025-03-06

- Retrieve all metadata properties when finding a **PSResource** from a **ContainerRegistry**
Expand Down Expand Up @@ -76,7 +129,7 @@ complete list of changes, see the [CHANGELOG][01] in the GitHub repository.
repository system.
- Added `-Nupkg` parameter to `Publish-PSResource` to publish a `.nupkg` file to a repository.
- Added `-ModulePrefix` parameter for `Publish-PSResource`, which adds a prefix to a module name for
container registry repositories. This is only used for publishing and is not part of metadata.
container registry repositories. This is only used for publishing and isn't part of metadata.
- Improved error messages for Authenticode failures.
- Construct Prerelease string for repositories that don't return the prerelease information.
- Added retry logic when deleting files.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
description: This article lists the repositories that have been tested with PowerShellGet v3 and how to configure them.
ms.date: 05/22/2025
ms.date: 12/10/2025
ms.topic: reference
title: Supported repository configurations
---
Expand Down Expand Up @@ -103,6 +103,9 @@ credentials to search, download, or install packages from an Azure Artifacts pub
artifacts or access private feeds, you must have an account and an API key. For more information
about getting an API key, see [Connect to feed as a PowerShell repository][05].

PSResourceGet v1.2.0-preview5 adds support for the Azure Artifacts Credential Provider. For more
information, see [Use the Azure Artifacts Credential Provider with Azure Artifacts feeds][12].

### Azure Artifacts limitations

The **Microsoft.PowerShell.PSResourceGet** module doesn't support the following scenarios for
Expand Down Expand Up @@ -216,7 +219,7 @@ support publishing packages.

GitHub Packages is a software package hosting service that allows you to host your software packages
privately or publicly and use packages as dependencies in your projects. For more information, see
[Introduction to GitHub Packages][13].
[Introduction to GitHub Packages][14].

The GitHub Packages feed is a NuGet repository that uses the NuGet v3 protocol. The feed URI has the
following format: `https://nuget.pkg.github.com/<namespace>/index.json`. Replace `<namespace>` with
Expand All @@ -235,7 +238,7 @@ The Github Packages service doesn't support NuGet feeds that are scoped to a rep
must be associated with a user account or organization.

You must use credentials for all operations with a GitHub Packages feed. For more information, see
the _Authenticating to GitHub Packages_ section of [Working with the NuGet registry][14].
the _Authenticating to GitHub Packages_ section of [Working with the NuGet registry][15].

### GitHub Packages limitations

Expand All @@ -260,7 +263,7 @@ GitHub Packages repositories:
You can use either the **Credential** or **ApiKey** parameter of the `Publish-PSResource` cmdlet to
publish packages to a GitHub Package feed. You must create a personal access token (PAT) with the
necessary scopes enabled. For more information on scopes and permissions, see
[About permissions for GitHub Packages][12].
[About permissions for GitHub Packages][13].

If you use the **Credential** parameter, the value must be a **PSCredential** object that contains
your username and the PAT. For this example `<personal-access-token>` is the token you created for
Expand Down Expand Up @@ -295,7 +298,7 @@ Publish-PSResource @publishPSResourceSplat

## JFrog Artifactory

[JFrog Artifactory][16] is a hosting service for NuGet repositories. Artifactory feeds use the NuGet
[JFrog Artifactory][17] is a hosting service for NuGet repositories. Artifactory feeds use the NuGet
v3 protocol. The feed URI has the following format:

`https://<jfrog-account>.jfrog.io/artifactory/api/nuget/v3/nuget/index.json`.
Expand All @@ -312,7 +315,7 @@ Register-PSResourceRepository @params
```

You must use credentials for all operations with a JFrog Artifactory feed. For more information, see
[Creating Access Tokens in Artifactory][17].
[Creating Access Tokens in Artifactory][18].

### JFrog Artifactory limitations

Expand Down Expand Up @@ -355,7 +358,7 @@ is your email address associated with your JFrog account.

## MyGet.org

[MyGet.org][18] is a hosting service for NuGet repositories.
[MyGet.org][19] is a hosting service for NuGet repositories.

The **Microsoft.PowerShell.PSResourceGet** module supports MyGet feeds that use the NuGet v3
protocol. The feed URI has the following format:
Expand All @@ -375,7 +378,7 @@ Register-PSResourceRepository @params

MyGet allows you to create public or private feeds. You don't need credentials to search, download,
or install packages from a public MyGet feed. To publish artifacts or access private feeds, you must
have an account and an API key. For more information about, see [MyGet Security][15].
have an account and an API key. For more information about, see [MyGet Security][16].

### MyGet limitations

Expand All @@ -397,7 +400,7 @@ repositories:
You must use the **ApiKey** parameter of the `Publish-PSResource` cmdlet with personal access token
(PAT) to publish packages to a MyGet feed. The value of the **ApiKey** parameter must be a plaintext
PAT from your MyGet account that has read and write permissions. For more information about creating
access tokens, see [MyGet Security][15].
access tokens, see [MyGet Security][16].

For example:

Expand Down Expand Up @@ -504,10 +507,11 @@ Publish-PSResource @publishPSResourceSplat
[09]: /powershell/utility-modules/secretmanagement/overview
[10]: /windows-server/storage/file-server/smb-security
[11]: how-to/use-acr-repository.md
[12]: https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#about-scopes-and-permissions-for-package-registries
[13]: https://docs.github.com/packages/learn-github-packages/introduction-to-github-packages
[14]: https://docs.github.com/packages/working-with-a-github-packages-registry/working-with-the-nuget-registry#authenticating-to-github-packages
[15]: https://docs.myget.org/docs/reference/security
[16]: https://jfrog.com/artifactory/
[17]: https://jfrog.com/help/r/how-to-generate-an-access-token-video/artifactory-creating-access-tokens-in-artifactory
[18]: https://www.myget.org/
[12]: how-to/use-credential-provider-with-azure-artifacts.md
[13]: https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#about-scopes-and-permissions-for-package-registries
[14]: https://docs.github.com/packages/learn-github-packages/introduction-to-github-packages
[15]: https://docs.github.com/packages/working-with-a-github-packages-registry/working-with-the-nuget-registry#authenticating-to-github-packages
[16]: https://docs.myget.org/docs/reference/security
[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/
2 changes: 2 additions & 0 deletions powershell-gallery/docs-conceptual/powershellget/toc.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@ items:
href: how-to/credential-persistence.md
- name: Use ACR repositories with PSResourceGet
href: how-to/use-acr-repository.md
- name: Use the Azure Artifacts Credential Provider with Azure Artifacts feeds
href: how-to/use-credential-provider-with-azure-artifacts.md
- name: PSResourceGet supported repositories
href: supported-repositories.md
- name: PSResourceGet release notes
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ title: about PSResourceGet

## Short description

Describes how to use version 1.1.1 of the
Describes how to use version 1.2.0-preview5 of the
**Microsoft.PowerShell.PSResourceGet** module.

## Long description
Expand Down Expand Up @@ -57,6 +57,7 @@ v3 and their v2 equivalents.
| `Publish-PSResource` | `Publish-Module` |
| `Publish-PSResource` | `Publish-Script` |
| `Register-PSResourceRepository` | `Register-PSRepository` |
| `Reset-PSResourceRepository` | n/a |
| `Save-PSResource` | `Save-Module` |
| `Save-PSResource` | `Save-Script` |
| `Set-PSResourceRepository` | `Set-PSRepository` |
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,11 @@
---
external help file: Microsoft.PowerShell.PSResourceGet.dll-Help.xml
Module Name: Microsoft.PowerShell.PSResourceGet
ms.custom: 1.1.1
ms.date: 10/31/2024
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
---

# Compress-PSResource

## SYNOPSIS
Expand All @@ -27,7 +26,7 @@ file. isolates the pack feature in the `Publish-PSResource` cmdlet. This allows
`.nupkg` file before publishing it to a repository. You can publish the final `.nupkg` file using
the **NupkgPath** parameter of `Publish-PSResource`.

This command was added in v1.1.0-preview2 of **Microsoft.PowerShell.PSResourceGet**.
This command was added in v1.1.0 of **Microsoft.PowerShell.PSResourceGet**.

## EXAMPLES

Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,11 @@
---
external help file: Microsoft.PowerShell.PSResourceGet.dll-Help.xml
Module Name: Microsoft.PowerShell.PSResourceGet
ms.custom: 1.1.1
ms.date: 10/31/2024
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
---

# Find-PSResource

## SYNOPSIS
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,11 @@
---
external help file: Microsoft.PowerShell.PSResourceGet.dll-Help.xml
Module Name: Microsoft.PowerShell.PSResourceGet
ms.custom: 1.1.1
ms.date: 10/31/2024
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
---

# Get-InstalledPSResource

## SYNOPSIS
Expand Down Expand Up @@ -224,6 +223,9 @@ This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable

## NOTES

The module defines `Get-PSResource` as an alias for `Get-InstalledPSResource`.
The module defines the following aliases for `Get-InstalledPSResource`:

- `Get-PSResource`
- `gres`

## RELATED LINKS
Loading
Loading