PowerShell / PowerShell/PSResourceGet

`Get-PSResource` does not search in user context environment variable `PSModulePath`

Offen
#889 1 Kommentar 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Area-Paths feature_request
Vorherrschende Sprache
C#
Sterne
576
Forks
114
Ø Merge
1 T. 2 Std.
Gemergte PRs (30 T.)
7

Beschreibung

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

PackageManagement, PowerShellGetv2 and PowerShellGet 3.0.18-beta (and prior versions) does not search in directorories specified in user context environmental variable PSModulePath when searching for modules. But at least v3 has a -Path parameter.

Reproduce:

  • Install Az.Accounts to %LOCALAPPDATA%\Microsoft\PowerShell\Modules by using Save-PSResource.
  • Make sure said module is not installed any other places specified in $env:PSModulePath.
    • Or rather any other default locations for PowerShell modules I guess.
  • Make sure %LOCALAPPDATA%\Microsoft\PowerShell\Modules is specified in HKCU:\Environment\PSModulePath, and that PowerShell loaded it into $env:PSModulePath at start. Should also be seen in [System.Environment]::GetEnvironmentVariable('PSModulePath','User').
  • Search for installed modules with PowerShellGet\Get-PSResource -Name 'Az.Accounts'. Result: Not found.
  • Add -Scope 'CurrentUser: Nope, still not found.
  • Add -Path ('{0}\Microsoft\PowerShell\Modules' -f $env:LOCALAPPDATA): Found.

Microsoft.PowerShell.Core\Import-Module and Get-Module works as expected.

Expected behavior
PowerShellGet\Get-PSResource should search in all PSModulePath paths, also those specified in user context environmental variable.
Actual behavior
It does not.
Error details

No response

Environment data
PowerShellGet v3.0.18
Windows PowerShell 5.1 x64 on Windows 10 22H2
Visuals

No response

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginne damit, den Fall unter Windows PowerShell 5.1 mit Get-PSResource -Name 'Az.Accounts' und einem PSModulePath-Eintrag im Benutzerkontext zu reproduzieren. Verfolge die Suchimplementierung von Get-PSResource und vergleiche ihre Pfadbehandlung mit den Fällen mit explizitem -Path und -Scope CurrentUser. Erledigt ist die Aufgabe, wenn Ressourcen an PSModulePath-Speicherorten im Benutzerkontext gefunden werden, ohne -Path anzugeben, und eine Regressionstestabdeckung für dieses Szenario vorhanden ist.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
csharp, powershell
Bereich
cli, tooling
Issue-Typ
Bug
Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
38/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.