Install-PackageProvider не распознается как имя командлета, функции, файла сценария или работающей программы.

Я слежу за Приступая к работе с галереей PowerShell, в которой говорится, что модуль PowerShellGet существует в Windows 10 (который я использую - сборка 14721). Чтобы подтвердить, я запускаю PowerShell v5:

>$PSVersionTable

Name                           Value
----                           -----
PSVersion                      5.0.14271.1000
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
BuildVersion                   10.0.14271.1000
CLRVersion                     4.0.30319.42000
WSManStackVersion              3.0
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1

Начало работы с галереей PowerShell гласит:

PowerShellGet также требует, чтобы поставщик NuGet работал с галереей PowerShell. Вам будет предложено установить поставщик NuGet автоматически при первом использовании PowerShellGet, если поставщик NuGet не находится в одном из следующих мест: • $ env: ProgramFiles \ PackageManagement \ ProviderAssemblies
• $ env: LOCALAPPDATA \ PackageManagement \ ProviderAssemblies

В этих местах у меня ничего нет:

>ls $env:LOCALAPPDATA\PackageManagement\ProviderAssemblies    
>ls $env:ProgramFiles\PackageManagement\ProviderAssemblies
ls : Cannot find path 'C:\Program Files\PackageManagement\ProviderAssemblies' because it does not exist.
At line:1 char:1
+ ls $env:ProgramFiles\PackageManagement\ProviderAssemblies
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (C:\Program File...viderAssemblies:String) [Get-ChildItem], ItemNotFoundException
    + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.GetChildItemCommand

В Приступая к работе с галереей PowerShell говорится:

Или вы можете запустить Install-PackageProvider -Name NuGet -Force, чтобы автоматизировать загрузку и установку поставщика NuGet.

Если я попробую это:

>Install-PackageProvider -Name NuGet -Force
Install-PackageProvider : The term 'Install-PackageProvider' is not recognized as the name of a cmdlet, function, script file, or operable program.
correct and try again.
At line:1 char:1
+ Install-PackageProvider -Name NuGet -Force
+ ~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (Install-PackageProvider:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

Я очень запутался. У меня есть PowerShell v5, но, похоже, у меня нет всего, что должно быть там, а именно PowerShellGet.

Может кто-нибудь объяснить почему?


person jamiet    schedule 05.03.2016    source источник
comment
Вы запускаете консоль Powershell от имени администратора? По умолчанию я считаю, что консоль PS или ISE запускается от имени ограниченного пользователя. Попробуйте щелкнуть правой кнопкой мыши Powershell в меню «Пуск» и выбрать «Запуск от имени администратора».   -  person user4317867    schedule 05.03.2016
comment
Просто попробовал запустить Install-PackageProvider -Name NuGet -Force от имени администратора, результат тот же :(   -  person jamiet    schedule 05.03.2016
comment
В заголовке вашей консоли PS указано Administrator:? Кроме того, проверяли ли вы technet.microsoft.com/en-us/library/mt676543 .aspx и попытался использовать Get-PackageProvider -ListAvailable, когда я пытаюсь использовать PS v5 на Win 7, я получаю сообщение об ошибке, указывающее, что ListAvailable не является распознанным параметром.   -  person user4317867    schedule 05.03.2016
comment
Просто перезагружаюсь, чтобы установить обновление. Дам тебе знать.   -  person jamiet    schedule 05.03.2016
comment
›Get-PackageProvider -ListAvailable Get-PackageProvider: не найден параметр, который соответствует имени параметра« ListAvailable ».   -  person jamiet    schedule 05.03.2016
comment
Попробуй без параметра, я получил такое же сообщение.   -  person user4317867    schedule 05.03.2016
comment
›Get-PackageProvider Имя Версия DynamicOptions ---- ------- -------------- msi 10.0.10074.0 {AdditionalArguments} Программы 10.0.10074.0 {IncludeWindowsInstaller, IncludeSystemComponent}   -  person jamiet    schedule 06.03.2016
comment
Я вижу, что модуль nuget загружается, но вообще не экспортирует никаких функций. Так что установщик незаметно для меня сработал. Я использую 5.1   -  person Conrad B    schedule 28.01.2018


Ответы (4)


Когда я сделал Get-Module -ListAvailable -Name PackageManagement, как предложил Адам Бертрам, я обнаружил, что в моей домашней папке была другая версия, которая не соответствовала предыдущей установке Windows, которая была скопирована на новый компьютер:

> Get-Module -ListAvailable -Name PackageManagement


    Directory: C:\Users\<myusername>\Documents\WindowsPowerShell\Modules


ModuleType Version    Name                                ExportedCommands
---------- -------    ----                                ----------------
Script     1.4.7      PackageManagement                   {Find-Package, Get-Package, Get-PackageProvider, Get-Packa...


    Directory: C:\Program Files\WindowsPowerShell\Modules


ModuleType Version    Name                                ExportedCommands
---------- -------    ----                                ----------------
Binary     1.0.0.1    PackageManagement                   {Find-Package, Get-Package, Get-PackageProvider, Get-Packa..

Удаление этой версии или просто принудительное использование системной версии с Import-Module PackageManagement -RequiredVersion 1.0.0.1 позволило мне установить поставщик NuGet.

person Soren Bjornstad    schedule 03.08.2020

Эта ошибка означает, что PowerShell не может найти модуль, частью которого является Install-PackageProvider. Install-PackageProvider является членом модуля PackageManagement. Чтобы убедиться в этом, запустите Get-Module

Get-Module -ListAvailable -Name PackageManagement

Если эта ошибка не исчезнет, ​​вам необходимо убедиться, что у вас есть папка PackageManagement внутри вашего $ env: PSModulePath. Вот быстрый способ просмотреть каждую из папок для папки PackageManagement.

$env:psmodulepath.Split(';') | foreach {gci $_ -filter '*packagemanagement*'}

Если ничего не возвращается, значит, у вас даже нет папки модуля PackageManagement, где ее можно было бы автоматически импортировать с помощью PowerShell.

В этом случае я бы рекомендовал переустановить PowerShell v5 RTM < / а>.

person Adam Bertram    schedule 05.03.2016
comment
Спасибо, Адам, вы обновились до Windows 10, сборка 13279, и у меня те же симптомы. Посетили вашу ссылку (microsoft.com/en-us/download /details.aspx?id=50395) и (что неудивительно) нет возможности загрузить WMF5.0 для Windows 10. Теперь я совершенно озадачен. - person jamiet; 05.03.2016
comment
о, и: ›Get-PackageProvider -ListAvailable Get-PackageProvider: не найден параметр, который соответствует имени параметра« ListAvailable ». - person jamiet; 05.03.2016
comment
Скорее всего, вам придется использовать «Установка и удаление программ и компонентов» для удаления PowerShell или WMF5.0, поскольку это будет входящий в комплект компонент ОС. - person user4317867; 05.03.2016
comment
Да, это немного опасно. Думаю, мне просто нужно будет перейти на последнюю общедоступную версию Win10, я быстро ищу обновления и готов поспорить, что это часть проблемы. - person jamiet; 06.03.2016
comment
У меня такая же проблема. (Get-Module -ListAvailable -Name PackageManagement).ExportedCommands перечисляет только Find-Package Get-Package Get-PackageProvider Get-PackageSource Install-Package Register-PackageSource Set-PackageSource Unregister-PackageSource Uninstall-Package Save-Package - person TNT; 23.08.2016
comment
вы можете найти 5.1 на microsoft.com/en-us/download /details.aspx?id=54616 - person WizxX20; 31.07.2018

"Install-PackageProvider" не был представлен до PowerShell 5.1.

person NitrusCS    schedule 04.10.2019

Мне пришлось открыть папку Directory: C: \ Users ‹myusername› \ Documents \ WindowsPowerShell \ Modules

и переименовать / удалить папку PackageManagement Потом все стало работать лучше.

person user1804469    schedule 22.12.2020