2016-03-05 61 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

相關問題