Repository navigation
Find-PSResource is not listing all modules in repository (i.e. wildcard) #520
Description
Prerequisites
- Write a descriptive title.
- Make sure you are able to repro it on the latest released version
- Search the existing issues.
Steps to reproduce
I'm trying to list available modules in a Azure Artifacts repository (connected trough v2) but the Find-PSResource requires the name parameter (and wildcard is not supported in ADOFeed).
Could this possibly be related to the #352, which seams to have been resolved in 3.0.11-beta?
Also guessing that this issue #302 should be taken in to consideration.
- Register repository
Register-PSResourceRepository -Name 'MyRepo' -URL 'https://pkgs.dev.azure.com/<organization>/<project>/_packaging/<feedname>/nuget/v2' -Trusted - Try to list available modules in the repository
Find-PSResource -Repository MyRepoFind-PSResource: Name parameter must be provided.
Find-PSResource -Name '*' -Repository MyRepoFind-PSResource: -Name '*' is not supported for Find-PSResource so all Name entries will be discarded.
Find-PSResource -Name 'P*' -Repository MyRepoFind-PSResource: Searching through ADOFeed with wildcard in Name is not supported, so PSStenaNew repository will be skipped.
Expected behavior
I would expect the same behavior as the old Find-Module (i.e. list the available modules)Actual behavior
Find-PSResource -Repository MyRepo
**Find-PSResource: Name parameter must be provided.**
```powershell
Find-PSResource -Name '*' -Repository MyRepoFind-PSResource: -Name '*' is not supported for Find-PSResource so all Name entries will be discarded.
Find-PSResource -Name 'P*' -Repository MyRepoFind-PSResource: Searching through ADOFeed with wildcard in Name is not supported, so PSStenaNew repository will be skipped.
### Error details
```console
Get-Error -Newest 3
ErrorIndex: 0
Exception :
Type : System.ArgumentException
Message : Searching through ADOFeed with wildcard in Name is not supported, so PSStenaNew repository will be skipped.
HResult : -2147024809
TargetObject : Microsoft.PowerShell.PowerShellGet.Cmdlets.FindHelper
CategoryInfo : InvalidArgument: (Microsoft.PowerShel….Cmdlets.FindHelper:FindHelper) [Find-PSResource], ArgumentException
FullyQualifiedErrorId : CannotSearchADOFeedWithWildcardName,Microsoft.PowerShell.PowerShellGet.Cmdlets.FindPSResource
InvocationInfo :
MyCommand : Find-PSResource
ScriptLineNumber : 1
OffsetInLine : 1
HistoryId : 3
Line : Find-PSResource -Name 'P*' -Repository PSStenaNew
PositionMessage : At line:1 char:1
+ Find-PSResource -Name 'P*' -Repository PSStenaNew
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
InvocationName : Find-PSResource
CommandOrigin : Internal
ScriptStackTrace : at <ScriptBlock>, <No file>: line 1
PipelineIterationInfo :
ErrorIndex: 1
Exception :
Type : System.Management.Automation.PSInvalidOperationException
ErrorRecord :
Exception :
Type : System.Management.Automation.ParentContainsErrorRecordException
Message : -Name '*' is not supported for Find-PSResource so all Name entries will be discarded.
HResult : -2146233087
CategoryInfo : InvalidOperation: (:) [], ParentContainsErrorRecordException
FullyQualifiedErrorId : InvalidOperation
Message : -Name '*' is not supported for Find-PSResource so all Name entries will be discarded.
HResult : -2146233079
TargetObject : Microsoft.PowerShell.PowerShellGet.Cmdlets.FindPSResource
CategoryInfo : InvalidArgument: (Microsoft.PowerShel…lets.FindPSResource:FindPSResource) [Find-PSResource], PSInvalidOperationException
FullyQualifiedErrorId : NameEqualsWildcardIsNotSupported,Microsoft.PowerShell.PowerShellGet.Cmdlets.FindPSResource
InvocationInfo :
MyCommand : Find-PSResource
ScriptLineNumber : 1
OffsetInLine : 1
HistoryId : 2
Line : Find-PSResource -Name '*' -Repository PSStenaNew
PositionMessage : At line:1 char:1
+ Find-PSResource -Name '*' -Repository PSStenaNew
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
InvocationName : Find-PSResource
CommandOrigin : Internal
ScriptStackTrace : at <ScriptBlock>, <No file>: line 1
PipelineIterationInfo :
ErrorIndex: 2
Exception :
Type : System.Management.Automation.PSInvalidOperationException
ErrorRecord :
Exception :
Type : System.Management.Automation.ParentContainsErrorRecordException
Message : Name parameter must be provided.
HResult : -2146233087
CategoryInfo : InvalidOperation: (:) [], ParentContainsErrorRecordException
FullyQualifiedErrorId : InvalidOperation
TargetSite :
Name : ThrowTerminatingError
DeclaringType : System.Management.Automation.MshCommandRuntime, System.Management.Automation, Version=7.2.0.9, Culture=neutral, PublicKeyToken=31bf3856ad364e35
MemberType : Method
Module : System.Management.Automation.dll
Message : Name parameter must be provided.
Source : System.Management.Automation
HResult : -2146233079
StackTrace :
at System.Management.Automation.MshCommandRuntime.ThrowTerminatingError(ErrorRecord errorRecord) in System.Management.Automation.dll:token 0x6002d2b+0x6
TargetObject : Microsoft.PowerShell.PowerShellGet.Cmdlets.FindPSResource
CategoryInfo : InvalidOperation: (Microsoft.PowerShel…lets.FindPSResource:FindPSResource) [Find-PSResource], PSInvalidOperationException
FullyQualifiedErrorId : NameParameterNotProvided,Microsoft.PowerShell.PowerShellGet.Cmdlets.FindPSResource
InvocationInfo :
MyCommand : Find-PSResource
ScriptLineNumber : 1
OffsetInLine : 1
HistoryId : 1
Line : Find-PSResource -Repository PSStenaNew
PositionMessage : At line:1 char:1
+ Find-PSResource -Repository PSStenaNew
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
InvocationName : Find-PSResource
CommandOrigin : Internal
ScriptStackTrace : at <ScriptBlock>, <No file>: line 1
Environment data
Get-Module PowerShellGet; $PSVersionTable
ModuleType Version PreRelease Name ExportedCommands
---------- ------- ---------- ---- ----------------
Binary 3.0.11 beta PowerShellGet {Find-PSResource, Get-InstalledPSResource, Get-PSResourceRepository, Install-PSResource…}
Key : PSVersion
Value : 7.2.0-preview.9
Name : PSVersion
Key : PSEdition
Value : Core
Name : PSEdition
Key : GitCommitId
Value : 7.2.0-preview.9
Name : GitCommitId
Key : OS
Value : Microsoft Windows 10.0.19043
Name : OS
Key : Platform
Value : Win32NT
Name : Platform
Key : PSCompatibleVersions
Value : {1.0, 2.0, 3.0, 4.0…}
Name : PSCompatibleVersions
Key : PSRemotingProtocolVersion
Value : 2.3
Name : PSRemotingProtocolVersion
Key : SerializationVersion
Value : 1.1.0.1
Name : SerializationVersion
Key : WSManStackVersion
Value : 3.0
Name : WSManStackVersionVisuals
No response
Activity
StevenBucher98 commentedon Oct 21, 2021
Thanks Lukas Altinell (@LukasAltinell), we recently fixed the wildcard support for
Find-PSResourceand will be included in the next prerelease.In regards to the ADOFeed scenario, this current feature is not supported currently with ADOFeed because their server APIs do not allow us to pull all the modules.
LukasAltinell commentedon Oct 23, 2021
Steven Bucher (@StevenBucher98) great, looking forward to trying it out! :)
That's to bad about the list all... but I understand your hands are tied!
kilasuit commentedon Jul 28, 2023
Looking into this in testing the differences between
Find-PSResourceandPowerShellGet\Find-Modulethe current implementation doesn't match general user expectation for lazily effective use of cmdlets.PowerShellGet\Find-Moduleallowed for no Name parameter to be provided, (lazy via parameter binding but intentionally so) which by default will return all modules in all of the registered repositories.This is ideally how Find-PSResource should function going forward but should also allow for in the middle wildcards just like how Find-Module or Get-Module
So as as lazily efficient and error prone to speeling mistaks user, it would be great to see the functionality be the same as how Find-Module works going forward