My PowerShell v5.1は、install-module
を使用してほとんどすべてのモジュールをインストールしませんが、手動でインストールしても機能します。
まず、install-module
を実行すると、モジュールをダウンロードしてからエラーをスローし、PSCXモジュールを指定します。
PackageManagement\Install-Package : Package 'Pscx' failed to be installed because: Specified cast is not valid.
At C:\Program Files\WindowsPowerShell\Modules\PowerShellGet\2.0.4\PSModule.psm1:9307 char:21
+ ... $null = PackageManagement\Install-Package @PSBoundParameters
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidResult: (Pscx:String) [Install-Package], Exception
+ FullyQualifiedErrorId : Package '{0}' failed to be installed because: {1},Microsoft.PowerShell.PackageManag
ement.Cmdlets.InstallPackage
私ができることは、モジュールを手動でダウンロードしてimport-module
を使用することです。このコマンドレットを介してモジュールをインストールしようとしているときにエラーがほとんど発生します。この問題に対処するにはどうすればよいですか。
トラブルシューティングのために、Get-PSRepository
は私にこれを与えます:
PS C:\> Get-PSRepository
Name InstallationPolicy SourceLocation
---- ------------------ --------------
PSGallery Trusted https://www.powershellgallery.com/api/v2
GalleryRolling Trusted https://www.poshtestgallery.com/api/v2/
編集:
Save-Module
を使用しようとすると同じエラーが発生しました。
PS C:\> Find-Module -Name 'pscx' | Save-Module -Path "G:\Temp\System Documents\WindowsPowerShell\Modules"
WARNING: Package 'Pscx' failed to be installed because: Specified cast is not valid.
WARNING: Package 'Pscx' failed to install.
PackageManagement\Save-Package : Unable to save the module 'Pscx'.
At C:\Program Files\WindowsPowerShell\Modules\PowerShellGet\2.0.4\PSModule.psm1:11331 char:25
+ ... $null = PackageManagement\Save-Package @PSBoundParameters
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (Microsoft.Power...ets.SavePackage:SavePackage) [Save-Packag
e], Exception
+ FullyQualifiedErrorId : ProviderFailToDownloadFile,Microsoft.PowerShell.PackageManagement.Cmdlets.Save
Package
パッケージをダウンロードしてからWARNING
を表示します。
Find-Module
を単独で使用するとき、結果は次のとおりです。
PS C:\> Find-Module -Name 'pscx'
Version Name Repository Description
------- ---- ---------- -----------
3.3.2 Pscx PSGallery PowerShell Community Extensi...
編集2:
ああ、ダウンロードプロセスバーが消えられた後に、特定のダウンロードフォルダに作成されたファイルがないと言うのを忘れました。それはダウンロードが失敗したことを意味しますか?
編集3:@Sage Pourpre
-Scope CurrentUser
は同じエラーをスローします。PS C:\> Uninstall-Module -Name "PowerShellGet"
とPS C:\> Uninstall-Script -Name "PowerShellGet" -RequiredVersion 2.0.3
はどちらも同じ結果を生成します。
PackageManagement\uninstall-package:指定された検索条件とスクリプト名 'PowerShellGet'の一致は見つかりませんでした。 C:¥Program Files¥WindowsPowershell¥Modules¥PowerShellget¥2.0.4¥PSModule.psm1:12343 char:21
+ CategoryInfo : ObjectNotFound: (Microsoft.Power...ninstallPackage:UninstallPackage) [Uninstal
l-Package], Exception
+ FullyQualifiedErrorId : NoMatchFound,Microsoft.PowerShell.PackageManagement.Cmdlets.UninstallPackage
それから私は利用可能なモジュールをリストしようとしました:
PS C:\> Get-Module -ListAvailable
Directory: G:\Temp\System Documents\WindowsPowerShell\Modules
ModuleType Version Name ExportedCommands
---------- ------- ---- ----------------
Binary 2.7.1.7 ISESteroids {Get-PSSharperData, Add-SteroidsContextMenuComma...
Script 1.2 Use-RawPipeline {Invoke-NativeCommand, Receive-RawPipeline, Get-...
Directory: C:\Program Files\WindowsPowerShell\Modules
ModuleType Version Name ExportedCommands
---------- ------- ---- ----------------
Script 1.0.1 Microsoft.PowerShell.Operation.V... {Get-OperationValidation, Invoke-OperationValida...
Script 1.2.4 PackageManagement {Find-Package, Get-Package, Get-PackageProvider,...
Script 4.5.0 Pester {Describe, Context, It, Should...}
Script 2.0.4 PowerShellGet {Find-Command, Find-DSCResource, Find-Module, Fi...
Script 2.0.3 PowerShellGet {Find-Command, Find-DSCResource, Find-Module, Fi...
Script 1.2 PSReadline {Get-PSReadlineKeyHandler, Set-PSReadlineKeyHand...
Directory: C:\WINDOWS\system32\WindowsPowerShell\v1.0\Modules
ModuleType Version Name ExportedCommands
---------- ------- ---- ----------------
Manifest 1.0.0.0 AppBackgroundTask {Disable-AppBackgroundTaskDiagnosticLog, Enable-...
Manifest 2.0.0.0 AppLocker {Get-AppLockerFileInformation, Get-AppLockerPoli...
Manifest 1.0.0.0 AppvClient {Add-AppvClientConnectionGroup, Add-AppvClientPa...
Manifest 2.0.0.0 Appx {Add-AppxPackage, Get-AppxPackage, Get-AppxPacka...
Script 1.0.0.0 AssignedAccess {Clear-AssignedAccess, Get-AssignedAccess, Set-A...
Manifest 1.0.0.0 BitLocker {Unlock-BitLocker, Suspend-BitLocker, Resume-Bit...
etc...
とGet-InstalledModule
PS C:\> Get-InstalledModule -Name "PowerShellGet" -RequiredVersion 2.0.3
PackageManagement\Get-Package : No match was found for the specified search criteria and module names
'PowerShellGet'.
At C:\Program Files\WindowsPowerShell\Modules\PowerShellGet\2.0.4\PSModule.psm1:9050 char:9
+ PackageManagement\Get-Package @PSBoundParameters | Microsoft. ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (Microsoft.Power...lets.GetPackage:GetPackage) [Get-Package],
Exception
+ FullyQualifiedErrorId : NoMatchFound,Microsoft.PowerShell.PackageManagement.Cmdlets.GetPackage
デフォルトのREPOを使用しているだけであれば、それを指定する理由はありません。
このようにしてみてください...
Find-Module -Name 'pscx' |
Save-Module -Path "$env:USERPROFILE\Documents\WindowsPowerShell\Modules"
Install-Module -Name 'pscx'
_
同じサイトに複数のバージョンのPowerShellを持つことができます。一般的にモジュールのインストールに影響を与えません。