无法找到模块提供商

时间:2016-05-27 04:13:57

标签: windows powershell powershell-v5.0

我遇到PowerShell问题。它几乎就像没有安装一样;这是奇怪的,因为它是Windows 10并随附它。

没有锁定,我尝试用另一台正在运行的Windows 10机器上的新副本替换以下目录:

  • C:\ Users \用户名\应用程序数据\本地\ PackageManagement
  • C:\ Program Files \ WindowsPowerShell
  • C:\ Program Files(x86)\ WindowsPowerShell
  • C:\ Windows \ System32下\ WindowsPowerShell

我也试过SFC /scannow,但没有发现任何问题。我搜索了几个小时,但却找不到任何有完全相同问题的人。有没有人有任何想法?

系统信息:

PS C:\WINDOWS\system32> [environment]::OSVersion.Version
Major  Minor  Build  Revision
-----  -----  -----  --------
10     0      10586  0
PS C:\WINDOWS\system32> $PSVersionTable.PSVersion
Major  Minor  Build  Revision
-----  -----  -----  --------
5      0      10586  122

错误:

PS C:\WINDOWS\system32> Get-PSRepository
PackageManagement\Get-PackageSource : Unable to find module providers (PowerShellGet).
At C:\Program Files\WindowsPowerShell\Modules\PowerShellGet\1.0.0.1\PSModule.psm1:3544 char:31
+ ... ckageSources = PackageManagement\Get-PackageSource @PSBoundParameters
+                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo          : InvalidArgument:(Microsoft.Power...etPackageSource:GetPackageSource) [Get-PackageSource
   ], Exception
    + FullyQualifiedErrorId : UnknownProviders,Microsoft.PowerShell.PackageManagement.Cmdlets.GetPackageSource
PS C:\WINDOWS\system32> Get-PackageProvider -Name PSModule -ForceBootstrap
Get-PackageProvider : Unable to find package provider 'PSModule'. It may not be imported yet. Try 'Get-PackageProvider
-ListAvailable'.
At line:1 char:1
+ Get-PackageProvider -Name PSModule -ForceBootstrap
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (Microsoft.Power...PackageProvider:GetPackageProvider) [Get-PackageProvi
   der], Exception
    + FullyQualifiedErrorId : UnknownProviderFromActivatedList,Microsoft.PowerShell.PackageManagement.Cmdlets.GetPacka
   geProvider

以下不返回任何内容:

PS C:\WINDOWS\system32> Get-PackageProvider -ListAvailable
PS C:\WINDOWS\system32>

2 个答案:

答案 0 :(得分:1)

如果您的最终目标是使用PowerShell安装软件包或与PowerShell类似的软件包,则需要执行以下操作。

要导入模块,您将执行以下操作:

Import-Module PackageManagement

要安装软件包提供程序,您需要执行以下命令:

Install-PackageProvider -Name Chocolatey -Force

要在软件包提供程序Chocolatey中查找软件包,您将执行以下命令(您可以使用通配符作为名称来获取所有软件包):

Find-Package -Name SomePackageNameHere -ProviderName Chocolatey

最后,要从Chocolatey安装软件包,您将执行以下操作:

Install-Package -Name SomePackageNameHere -ProviderName Chocolatey -Force

我希望这有帮助!

答案 1 :(得分:0)

看起来我解决了这个问题。我使用CMD.exe方法安装了Chocolatey

我以管理员身份运行CMD.exe并运行以下命令:

@powershell -NoProfile -ExecutionPolicy Bypass -Command "iex ((new-object net.webclient).DownloadString('https://chocolatey.org/install.ps1'))" && SET PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin

现在我有一个PS存储库:     PS C:\ WINDOWS \ system32>得到-PSRepository

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

我在安装Chocolatey时猜测了一些东西,修复了任何破损的东西。