Обновите powershell до последней версии - PullRequest
1 голос
/ 04 марта 2020

У меня две разные ревизии powershell на разных машинах. Локальный имеет следующий:

Major  Minor  Build  Revision
-----  -----  -----  --------
5      1      17763  1007  

И у машины vm есть следующий:

Major  Minor  Build  Revision
-----  -----  -----  --------
5      1      17763  771

Как вы можете видеть, он имеет те же значения Major Minor Build, кроме Пересмотр значений. Я не уверен, что причиной сбоя команды является:

    Register-PSRepository -Name $RepoKeyName -SourceLocation $RepoKeyValue -PublishLocation $RepoKeyValue -InstallationPolicy Trusted -Verbose

Приведенный выше фрагмент отлично работает на локальном компьютере, но не на компьютере vm, и на компьютере vm происходит сбой со следующей ошибкой:

parameter 'SourceLocation' is an invalid Web Uri. Please ensure that it meets the Web Uri requirements.

И именно поэтому я хочу обновить PowerShell на компьютере VM до последней версии ревизии. Как это сделать?

1 Ответ

0 голосов
/ 04 марта 2020

Вы никогда не сможете обновить Windows PowerShell установки по требованию (за исключением случаев, когда в прошлом вы переходили на новую major версию); редакции поставляются как часть Windows обновлений.

Для сравнения: PowerShell [Core] 6 + версии могут быть обновляется по требованию - однако начиная с v7.0 PowerShell [Core] не поставляется с Windows и требует ручной установки.

Однако вы можете обновить PowerShellGet модуль , в котором определена команда Register-PSRepository.

В то время как обычно вы просто запускаете Update-Module PowerShellGet, при первом переключении с в комплекте * 1027 требуется другой подход * PowerShellGet модуль до последней версии из PowerShell Gallery :

  • Открытие сеанса с повышенными правами (Запуск от имени администратора).

  • Выполните следующее (добавьте -Verbose для получения подробной информации):

    Install-Module PowerShellGet -Force
    

-Force предназначен для включения установки хотя модуль с таким именем уже установлен; вы все равно можете увидеть сообщение о загрузке поставщика пакетов NuGet.

После этого первоначального переключения на версию, установленную в галерее, вы сможете использовать
Update-Module PowerShellGet для будущих версий.


Вы можете использовать командлет Get-Command, чтобы обнаружить модуль происхождения данной команды; например:

PS> (Get-Command Register-PSRepository).Module

ModuleType Version    PreRelease Name                                ExportedCommands
---------- -------    ---------- ----                                ----------------
Script     2.1.4                 PowerShellGet                       {Find-Command, Find-DscResource, Find-Module, Find-RoleCapability…}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...