В чем разница между Get-InstalledModule и Get-Module -ListAvailable? - PullRequest
1 голос
/ 13 мая 2019

Насколько я могу судить, они делают то же самое, так в чем причина использования одного над другим?

(Извините, ТАК двигатель правил вопроса - понятия не имею, что еще сказать)

Ответы [ 3 ]

1 голос
/ 13 мая 2019

Get-InstalledModule выведет список установленных модулей, использующих Install-Module, которые не установлены изначально. Однако Get-Module -ListAvailable показывает модули из всех мест, упомянутых в расположении $ env: PsModulePath.

См. Ниже Snip для справки:

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

ModuleType Version Name ExportedCommands
---------- ------- ---- ----------------
Скрипт 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 ... Скрипт 3.4.0 Пестер {Опишите, Контекст, Это, Должен ...}
Script 1.0.0.1 PowerShellGet {Install-Module, Find-Module, Save-Module, Update-Module ... Скрипт 2.0.0 PSReadline {Get-PSReadLineKeyHandler, Set-PSReadLineKeyHandler, Rem ... Каталог: C: \ Windows \ system32 \ WindowsPowerShell \ v1.0 \ Modules ModuleType Version Name ExportedCommands
---------- ------- ---- ----------------
Manifest 1.0.0.0 AppBackgroundTask {Disable-AppBackgroundTaskDiagnosticLog, Enable-AppBackg ... * `


Однако, если модуль не установлен, оба будут выдавать одно и то же исключение. PS C:\Users\Asim> $Error.Exception.Message[-1] Unable to find type [Microsoft.PowerShell.Commands.PowerShellGet.Telemetry] .

1 голос
/ 15 мая 2019

Пожалуйста, соблюдайте:

 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

Модуль xyz.ps.core был установлен оба раза с помощью Install-Module. Только один раз он был установлен из локального хранилища, а другой - из удаленного хранилища NuGet.

В обоих случаях модуль устанавливается в системную папку, то есть в PSModulePath. Очевидно, что имеет значение то, была ли она загружена из удаленного места.

Хотелось бы, чтобы документация Microsoft объяснила это и предоставила обоснование использования этого метода.

0 голосов
/ 13 мая 2019

Get-InstalledModule является частью PowerShellGet и выводит список установленных модулей с помощью командлета Install-Module, но Get-Module -ListAvailable показывает модули из всех мест, указанных в $env:PsModulePath месте.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...