PowerShellでレポジトリ powershellgallaery v2が見つかりません、が出力されるのはPowerShellGetが古いせい(TLS1.2問題ではない)

Windows11環境のPowerShellで「Update-Module」を実行してみたところ、エラーになった。

PS C:\> update-module
PackageManagement\Install-Package : リポジトリ 'https://www.powershellgallery.com/api/v2/' が見つかりません。利用できる
すべてのリポジトリを確認するには、Get-PSRepository を使用してください。
発生場所 C:\Program Files\WindowsPowerShell\Modules\PowerShellGet\1.0.0.1\PSModule.psm1:2089 文字:20
+ ...           $sid = PackageManagement\Install-Package @PSBoundParameters
+                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (Microsoft.Power....InstallPackage:InstallPackage) [Install-Package], Ex
   ception
    + FullyQualifiedErrorId : SourceNotFound,Microsoft.PowerShell.PackageManagement.Cmdlets.InstallPackage

PS C:\> Get-PSRepository

Name                      InstallationPolicy   SourceLocation
----                      ------------------   --------------
PSGallery                 Untrusted            https://www.powershellgallery.com/api/v2


PS C:\> $PSVersionTable

Name                           Value
----                           -----
PSVersion                      5.1.22621.2506
PSEdition                      Desktop
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
BuildVersion                   10.0.22621.2506
CLRVersion                     4.0.30319.42000
WSManStackVersion              3.0
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1


PS C:\>

TLS1.2を使用する設定になってるのかどうかについては、なっていそう

PS C:\> [Net.ServicePointManager]::SecurityProtocol
Tls12
PS C:\>

事例を調べるとPowerShell Gallaryが止まっている場合もあるらしく「PowerShell Gallery Status」にお知らせが出てないか確認する、というのもあったが、現状は稼働中。

PowerShellGet,PackageManagementはアップデートされているか、については、PackageManagementについては更新されている模様

PS C:\> Get-Module PowerShellGet,PackageManagement -ListAvailable


    ディレクトリ: C:\Users\ユーザー名\Documents\WindowsPowerShell\Modules


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


    ディレクトリ: C:\Program Files\WindowsPowerShell\Modules


ModuleType Version    Name                                ExportedCommands
---------- -------    ----                                ----------------
Binary     1.0.0.1    PackageManagement                   {Find-Package, Get-Package, Get-PackageProvider, Get-Packa...
Script     1.0.0.1    PowerShellGet                       {Install-Module, Find-Module, Save-Module, Update-Module...}


PS C:\>

次に、詳細エラーを見てみる

PS C:\> Update-Module -Verbose
詳細: モジュール 'Mailozaurr' の更新プログラムを確認しています。
詳細: リポジトリの詳細、Name = 'PSGallery'、Location = 'https://www.powershellgallery.com/api/v2'、IsTrusted =
'False'、IsRegistered = 'True'。
詳細: Using the provider 'PowerShellGet' for searching packages.
詳細: 指定されたリソース名を使用しています: 'PSGallery'。
詳細: PackageManagement プロバイダー 'NuGet' のプロバイダー オブジェクトを取得しています。
詳細: 指定された Location は 'https://www.powershellgallery.com/api/v2'、PackageManagementProvider は 'NuGet' です。
詳細: Searching repository 'https://www.powershellgallery.com/api/v2/FindPackagesById()?id='Mailozaurr'' for ''.
詳細: Total package yield:'1' for the specified package 'Mailozaurr'.
詳細: Skipping installed module Mailozaurr 1.0.2.
詳細: モジュール 'PackageManagement' の更新プログラムを確認しています。
PackageManagement\Install-Package : リポジトリ 'https://www.powershellgallery.com/api/v2/' が見つかりません。利用できる
すべてのリポジトリを確認するには、Get-PSRepository を使用してください。
発生場所 C:\Program Files\WindowsPowerShell\Modules\PowerShellGet\1.0.0.1\PSModule.psm1:2089 文字:20
+ ...           $sid = PackageManagement\Install-Package @PSBoundParameters
+                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (Microsoft.Power....InstallPackage:InstallPackage) [Install-Package], Ex
   ception
    + FullyQualifiedErrorId : SourceNotFound,Microsoft.PowerShell.PackageManagement.Cmdlets.InstallPackage

PS C:\> Get-PSRepository

Name                      InstallationPolicy   SourceLocation
----                      ------------------   --------------
PSGallery                 Untrusted            https://www.powershellgallery.com/api/v2


PS C:\> Get-PSRepository|select *


Name                      : PSGallery
SourceLocation            : https://www.powershellgallery.com/api/v2
Trusted                   : False
Registered                : True
InstallationPolicy        : Untrusted
PackageManagementProvider : NuGet
PublishLocation           : https://www.powershellgallery.com/api/v2/package/
ScriptSourceLocation      : https://www.powershellgallery.com/api/v2/items/psscript
ScriptPublishLocation     : https://www.powershellgallery.com/api/v2/package/
ProviderOptions           : {}



PS C:\>

PSGallaeryレポジトリにアクセスしようとした時点でエラーになっていそうな感じである。

PowerShell Gallary上のPowerShellGetとPackageManagementの最新バージョンは何か確認してみると、PowerShellGetの方は最新ではないことが判明

PS C:\> Find-Module -Repository PSGallery -Verbose -Name PowerShellGet
詳細: リポジトリの詳細、Name = 'PSGallery'、Location = 'https://www.powershellgallery.com/api/v2'、IsTrusted =
'False'、IsRegistered = 'True'。
詳細: Using the provider 'PowerShellGet' for searching packages.
詳細: 指定されたリソース名を使用しています: 'PSGallery'。
詳細: PackageManagement プロバイダー 'NuGet' のプロバイダー オブジェクトを取得しています。
詳細: 指定された Location は 'https://www.powershellgallery.com/api/v2'、PackageManagementProvider は 'NuGet' です。
詳細: Searching repository 'https://www.powershellgallery.com/api/v2/FindPackagesById()?id='PowerShellGet'' for ''.
詳細: Total package yield:'1' for the specified package 'PowerShellGet'.

Version    Name                                Repository           Description
-------    ----                                ----------           -----------
2.2.5      PowerShellGet                       PSGallery            PowerShell module with commands for discovering,...


PS C:\> Find-Module -Repository PSGallery -Verbose -Name PackageManagement
詳細: リポジトリの詳細、Name = 'PSGallery'、Location = 'https://www.powershellgallery.com/api/v2'、IsTrusted =
'False'、IsRegistered = 'True'。
詳細: Using the provider 'PowerShellGet' for searching packages.
詳細: 指定されたリソース名を使用しています: 'PSGallery'。
詳細: PackageManagement プロバイダー 'NuGet' のプロバイダー オブジェクトを取得しています。
詳細: 指定された Location は 'https://www.powershellgallery.com/api/v2'、PackageManagementProvider は 'NuGet' です。
詳細: Searching repository 'https://www.powershellgallery.com/api/v2/FindPackagesById()?id='PackageManagement'' for ''.
詳細: Total package yield:'1' for the specified package 'PackageManagement'.

Version    Name                                Repository           Description
-------    ----                                ----------           -----------
1.4.8.1    PackageManagement                   PSGallery            PackageManagement (a.k.a. OneGet) is a new way t...


PS C:\>

最新版のPowerShellGetをインストールする手法については「PowerShellGet と PSResourceGet をインストールする方法」に記載がある「Install-Module PowerShellGet -Force -AllowClobber」を実行した。

PS C:\> Install-Module PowerShellGet -Force -AllowClobber
PS C:\>

(注:上記ログに出ていないが、別表示としてprogress表示があります)

ちなみにallowclobberオプションを付けない場合、下記のようなエラーになった。

PS C:\> Install-Module PowerShellGet -force
PackageManagement\Install-Package : 以下のコマンドは、このシステムで既に使用可能になっています: 'Find-Package,Install-P
ackage,Uninstall-Package'。このモジュール 'PackageManagement' では既存のコマンドが上書きされる可能性があります。このモ
ジュール 'PackageManagement' をインストールする場合は、-AllowClobber パラメーターを使用してください。
発生場所 C:\Program Files\WindowsPowerShell\Modules\PowerShellGet\1.0.0.1\PSModule.psm1:1809 文字:21
+ ...          $null = PackageManagement\Install-Package @PSBoundParameters
+                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (Microsoft.Power....InstallPackage:InstallPackage) [Install-Package]、E
    xception
    + FullyQualifiedErrorId : CommandAlreadyAvailable,Validate-ModuleCommandAlreadyAvailable,Microsoft.PowerShell.Pack
   ageManagement.Cmdlets.InstallPackage

PS C:\>

PowerShellGet更新後は「Update-Module」を実行してもエラーとはならなくなった。

PS C:\> Update-Module
PS C:\>

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください