2
votes

Quelle est la différence entre Get-InstalledModule et Get-Module -ListAvailable?

Pour autant que je sache, ils font de même, alors quelle est la raison d'utiliser l'un sur l'autre?

(Désolé, moteur de règles de question SO - je ne sais pas quoi dire d'autre)


0 commentaires

3 Réponses :


1
votes

Get-InstalledModule fait partie de PowerShellGet et répertorie les modules installés à l'aide de l'applet de commande Install-Module , mais Get-Module - ListAvailable affiche les modules de tous les emplacements mentionnés dans l'emplacement $ env: PsModulePath .


1 commentaires

Donc, si je sais que mon module est installé avec Install-Module , alors Get-InstalledModule -Name xyz serait le même que Get-Module -ListAvailable -Name xyz ? Le premier sera-t-il plus rapide que le second?



1
votes

Get-InstalledModule listera les modules installés utilisant Install-Module et qui ne sont pas installés naïvement. Cependant, Get-Module -ListAvailable affiche les modules de tous les emplacements mentionnés dans $ env: emplacement PsModulePath.

Voir ci-dessous Snip pour référence:

*PS C:\Users\xyz> Get-InstalledModule
 `PS C:\Users\xyz> Get-Module -ListAvailable
Directory: C:\Program Files\WindowsPowerShell\Modules

Nom de la version de ModuleType ExportedCommands
---------- ------- ---- ----------------
Script 1.0.1 Microsoft.PowerShell.Operation.V ... {Get-OperationValidation, Invoke-OperationValidation}
Binary 1.0.0.1 PackageManagement {Find-Package, Get-Package, Get-PackageProvider, Get-Pac ... Script 3.4.0 Pester {Décrire, Contexte, Il, Devrait ...}
Script 1.0.0.1 PowerShellGet {Install-Module, Find-Module, Save-Module, Update-Module ... Script 2.0.0 PSReadline {Get-PSReadLineKeyHandler, Set-PSReadLineKeyHandler, Rem ... Répertoire: C: \ Windows \ system32 \ WindowsPowerShell \ v1.0 \ Modules Nom de version de ModuleType ExportedCommands
---------- ------- ---- ----------------
Manifest 1.0.0.0 AppBackgroundTask {Disable-AppBackgroundTaskDiagnosticLog, Enable-AppBackg ... * `


Cependant, si le module n'est pas installé, les deux lèveront la même exception. PS C: \ Users \ Asim> $ Error.Exception.Message [-1] Impossible de trouver le type [Microsoft.PowerShell.Commands.PowerShellGet.Telemetry] .


0 commentaires

2
votes

Veuillez observer:

 C:\> (Get-InstalledModule xyz.ps.core).RepositorySourceLocation
http://devstatic.xyz.com/prdnuget/nuget
 C:\> (Get-Module xyz.ps.core -ListAvailable).RepositorySourceLocation.AbsoluteUri
http://devstatic.xyz.com/prdnuget/nuget
file:///C:/Users/mkharitonov/LocalTestPSRepository

Le module xyz.ps.core a été installé les deux fois en utilisant Install-Module . Seulement une fois qu'il a été installé à partir d'un référentiel local et l'autre fois - à partir d'un référentiel NuGet distant.

Dans les deux cas, le module est installé à l'emplacement du système, c'est-à-dire qu'il est dans PSModulePath code >. Ce qui importe, apparemment, c'est de savoir s'il a été téléchargé depuis un emplacement distant.

J'aimerais que la documentation Microsoft l'explique et fournisse une justification pour cette méthode.


0 commentaires