安装模块:命令“Install-Module”不被识别为 cmdlet 的名称。

51

我尝试在PowerShell中使用Install-Module Azure安装Azure时出现了以下错误:

PS C:\Windows\system32> Install-Module Azure
Install-Module : The term 'Install-Module' is not recognized as the name of a cmdlet, function, script file, 
or operable program. Check the spelling of the name, or if a path was included, verify that the path is corre
ct and try again.
At line:1 char:1
+ Install-Module Azure
+ ~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (Install-Module:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

为什么PS无法识别基本的Install模块?没有它,我甚至无法安装Azure。我该怎么办?

12个回答

26

这似乎是一个很酷的解决方法,但不幸的是它有同样的问题 - 你需要先安装 Powershell 3+ 和 Dotnet 4.5... 然后才能给你提供 "install-module" 命令。 - Hicsy
6
链接已经失效。 - cdonner
2
修复了损坏的链接。 - Venkatesh Muniyandi

24

由于您使用的是较低版本的PS:

您可以在本地文件夹中先下载该模块。

然后,在该文件夹下会有一个.psm1文件,用于此模块。

您只需执行以下操作:

import-Module "文件路径.psm1"

这里是下载Azure模块的链接: Azure Powershell

这样就可以完成您的工作。


“将模块下载到本地文件夹”是什么意思?我可以从互联网上下载吗? - Martin Erlic
@santafebound:当然可以从互联网下载该模块。我认为它已经在Github上了。 - Ranadip Dutta
1
@santafebound:我已经修改了答案并给出了Github链接以下载该模块.. :) - Ranadip Dutta
谢谢。我现在会看一下! - Martin Erlic
下面@venkatesh-muniyandi提供了一个永久的解决方案。 - gs_za
显示剩余4条评论

16

你应该安装最新版本的 PowerShell,然后使用这个命令 Install-Module Azure 安装 Azure 模块。因为从 Powershell 5.0 开始,你可以使用 cmdlet 来执行 Install-Module、Save-Module

PS > $psversiontable
Name                           Value
----                           -----
PSVersion                      5.1.14393.576
PSEdition                      Desktop
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
BuildVersion                   10.0.14393.576
CLRVersion                     4.0.30319.42000
WSManStackVersion              3.0
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1

有关安装Azure PowerShell 的更多信息,请参阅链接


2
这可能不是所有情况下的问题。我有PSVersion 5.1.18362.145,但Install-Module仍然无法被识别为命令、函数、脚本文件或可操作程序的名称。 - Jason

8
我有Windows 10,PowerShell 5.1已经安装。由于某种原因,x86版本可以使用"Install-Module"命令,而另一个版本则无法使用。
请在开始菜单中搜索"powershell",找到以"(x86)"结尾的条目:

Windows 10 Start Menu searching for PowerShell

这是我在两个不同版本之间的体验:

PowerShell x86 vs x64 running Install-Module cmdlet comparison


3

我花了好几天的时间来解决这个问题,直到我找到了一个简单的解决方案。我只是从另一台装有可用Powershell 5.1的Win10机器上复制了以下目录:

  • C:\Program Files\WindowsPowerShell\Modules\PackageManagement
  • C:\Program Files\WindowsPowerShell\Modules\PowerShellGet

将它们复制到有问题的机器的相同目录下,不要更改权限或任何东西,然后直接运行命令Install-Module,问题就解决了。我希望这可以帮助一些备受折磨的灵魂。


1

以管理员身份运行以下命令,使用 Powershell 安装 NuGet

[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12

Install-PackageProvider -Name NuGet

0

如果您正在尝试安装一个在名为 PowerShell Gallery 的 PS 内容中央存储库中列出的模块,您需要安装 PowerShellGet。然后该命令将可用。我目前使用的是 PS 4.0。安装 PowerShellGet 对我很有帮助。

来源

通过最新的 PowerShellGet 模块,您可以:

  • 使用 Find-Module 和 Find-Script 在 Gallery 中搜索项目
  • 使用 Save-Module 和 Save-Script 将项目保存到您的系统中
  • 使用 Install-Module 和 Install-Script 在 Gallery 中安装项目
  • 使用 Publish-Module 和 Publish-Script 将项目上传到 Gallery
  • 使用 Register-PSRepository 添加自己的自定义存储库

另一篇入门级 PS Gallery 文章。


0

0

0

我没有NuGet包提供程序,您可以检查运行Get-PackageProvider

PS C:\WINDOWS\system32> Get-PackageProvider 

Name                     Version          DynamicOptions                                                                                                                 
----                     -------          --------------                                                                                                                 
msi                      3.0.0.0          AdditionalArguments                                                                                                            
msu                      3.0.0.0                                                                                                                                         
NuGet  <NOW INSTALLED>   2.8.5.208        Destination, ...                             

解决方案是通过运行以下命令进行安装:

Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force

如果出现以下错误,您可以从另一台PC复制/粘贴NuGet文件夹(需要管理员权限):C:\Program Files\PackageManagement\ProviderAssemblies\NuGet:

WARNING: Unable to download from URI 'https://onegetcdn.azureedge.net/providers/Microsoft.PackageManagement.NuGetProvider-2.8.5.208.dll' to ''.
WARNING: Failed to bootstrap provider 'https://onegetcdn.azureedge.net/providers/nuget-2.8.5.208.package.swidtag'.
WARNING: Failed to bootstrap provider 'nuget'.
WARNING: The specified PackageManagement provider 'NuGet' is not available.
PackageManagement\Install-PackageProvider : Unable to download from URI 
'https://onegetcdn.azureedge.net/providers/Microsoft.PackageManagement.NuGetProvider-2.8.5.208.dll' to ''.
At C:\Program Files\WindowsPowerShell\Modules\PowerShellGet\PSModule.psm1:6463 char:21
+             $null = PackageManagement\Install-PackageProvider -Name $script:NuGe ...

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接