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:\>