Модуль доступен, но не указан как установленный - PullRequest
0 голосов
/ 07 ноября 2018

Используя PowerShell (версия 5.1.17134.228), обнаружил некоторые неожиданные различия между Get-Module и Get-InstalledModule в том, что некоторые модули, которые я ожидаю вернуть с помощью Get-InstalledModule, не являются.

Как пример:

Get-Module -ListAvailable -Name 'Hyper-V'

Get-InstalledModule -Name 'Hyper-V'

Выход:

PS C:\> Get-Module -ListAvailable -Name 'Hyper-V'


    Directory: C:\WINDOWS\system32\WindowsPowerShell\v1.0\Modules


ModuleType Version    Name      ExportedCommands
---------- -------    ----      ----------------
Binary     2.0.0.0    Hyper-V   {Add-VMAssignableDevice, Add-VMDvdDrive, Add-VMFibreChannelHba, Add-VMGpuPartitionAdapter...}
Binary     1.1        Hyper-V   {Add-VMDvdDrive, Add-VMFibreChannelHba, Add-VMHardDiskDrive, Add-VMMigrationNetwork...}


PS C:\> Get-InstalledModule -Name 'Hyper-V'
PackageManagement\Get-Package : No match was found for the specified search
criteria and module names 'Hyper-V'.
At C:\Program Files\WindowsPowerShell\Modules\PowerShellGet\1.6.5\PSModule.psm1:9125 char:9
+         PackageManagement\Get-Package @PSBoundParameters | Microsoft. ...
+         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (Microsoft.Power...lets.GetPackage:GetPackage) [Get-Package], Exception
    + FullyQualifiedErrorId : NoMatchFound,Microsoft.PowerShell.PackageManagement.Cmdlets.GetPackage

Как видите, команда Get-Module возвращает локальный путь модулей Hyper-V, поэтому она определенно установлена ​​локально, но Get-InstalledModule не может найти модуль.

Это ошибка или я неправильно понял, для чего предназначен Get-InstalledModule

...