2016-03-05 463 views
5

我在关注Get Started with the PowerShell Gallery,其中声明PowerShellGet模块存在于Windows 10(我正在使用 - build 14721)中。为了证实,我运行的PowerShell V5:Install-PackageProvider不被识别为cmdlet,函数,脚本文件或可操作程序的名称

>$PSVersionTable 

Name       Value 
----       ----- 
PSVersion      5.0.14271.1000 
PSCompatibleVersions   {1.0, 2.0, 3.0, 4.0...} 
BuildVersion     10.0.14271.1000 
CLRVersion      4.0.30319.42000 
WSManStackVersion    3.0 
PSRemotingProtocolVersion  2.3 
SerializationVersion   1.1.0.1 

Get Started with the PowerShell Gallery状态:

PowerShellGet还需要的NuGet提供商与PowerShell的画廊工作。如果NuGet提供程序不在以下某个位置,将提示您首次使用PowerShellGet时自动安装NuGet提供程序: •$ env:ProgramFiles \ PackageManagement \ ProviderAssemblies
•$ env:LOCALAPPDATA \ PackageManagement \ ProviderAssemblies

我没有在这些地点任何东西:

>ls $env:LOCALAPPDATA\PackageManagement\ProviderAssemblies  
>ls $env:ProgramFiles\PackageManagement\ProviderAssemblies 
ls : Cannot find path 'C:\Program Files\PackageManagement\ProviderAssemblies' because it does not exist. 
At line:1 char:1 
+ ls $env:ProgramFiles\PackageManagement\ProviderAssemblies 
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    + CategoryInfo   : ObjectNotFound: (C:\Program File...viderAssemblies:String) [Get-ChildItem], ItemNotFoundException 
    + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.GetChildItemCommand 

Get Started with the PowerShell Gallery则指出:

或者,您可以运行Install-PackageProvider -Name NuGet -Force来自动下载和安装NuGet提供程序。

如果我尝试:

>Install-PackageProvider -Name NuGet -Force 
Install-PackageProvider : The term 'Install-PackageProvider' is not recognized as the name of a cmdlet, function, script file, or operable program. 
correct and try again. 
At line:1 char:1 
+ Install-PackageProvider -Name NuGet -Force 
+ ~~~~~~~~~~~~~~~~~~~~~~~ 
    + CategoryInfo   : ObjectNotFound: (Install-PackageProvider:String) [], CommandNotFoundException 
    + FullyQualifiedErrorId : CommandNotFoundException 

我很困惑。我有PowerShell v5,但它似乎没有应有的所有功能,即PowerShellGet。

有人可以解释为什么吗?

+0

您是否以管理员身份运行Powershell控制台?默认情况下,我相信PS控制台或ISE作为受限用户运行。尝试从开始菜单中右键单击Powershell,然后选择以管理员身份运行。 – user4317867

+0

刚刚试过运行“Install-PackageProvider -Name NuGet -Force”作为管理员,结果相同:( – jamiet

+0

您的PS控制台标题是否显示'Administrator:'?另外,您是否检查过https://technet.microsoft.com/zh-cn/ us/library/mt676543.aspx,并尝试使用'Get-PackageProvider -ListAvailable',当我在Win 7上尝试PS v5时,出现错误,指示ListAvailable不是公认的参数。 – user4317867

回答

1

此错误意味着PowerShell无法找到Install-PackageProvider所属的模块。 Install-PackageProvider是PackageManagement模块的成员。为了验证这一点,运行Get-模块

Get-Module -ListAvailable -Name PackageManagement 

如果出现了错误,你需要确保你有PackageManagement文件夹中的文件夹中的$ ENV的:PSModulePath。以下是查看PackageManagement文件夹的每个文件夹的快速方法。

$env:psmodulepath.Split(';') | foreach {gci $_ -filter '*packagemanagement*'} 

如果没有回来,你甚至不具备PackageManagement模块文件夹中任何地方它可以自动导入由PowerShell的。

如果是这样的话,我建议重新安装PowerShell v5 RTM

+1

感谢亚当,已升级到Windows 10生成13279,并得到相同的症状。已经访问过您的链接(https://www.microsoft.com/en-us/download/details.aspx?id=50395),并且(毫不奇怪)没有选择可以下载Windows 10的WMF5.0。现在我彻底难倒了。 – jamiet

+0

oh和 Get-PackageProvider -ListAvailable Get-PackageProvider:找不到与参数名称'ListAvailable'匹配的参数。 – jamiet

+0

您可能必须使用添加/删除程序和功能来删除PowerShell或WMF5.0,因为它将是一个OS捆绑组件。 – user4317867

相关问题