Install-Module:术语“Install-Module”未被识别为 cmdlet 的名称

问题描述 投票:0回答:12

我试图在 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 无法识别基本安装模块?没有这个我什至无法安装 Azure。我该怎么办?

powershell azure azure-virtual-machine azure-powershell
12个回答
23
投票

因为你用的是低版本的PS:

你可以做的是先在本地文件夹中下载模块。

然后,该模块的文件夹下会有一个.psm1文件。

你只是

导入模块“文件路径.psm1”

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

这会完成你的工作。


23
投票

修复此错误的另一个基于 GUI 的选项是从 Microsoft 网站下载 PackageManagement PowerShell 模块(msi 安装程序) 并安装模块。

一旦安装,您将不会收到错误

'Install-Module' is not recognized as the name of a cmdlet
.


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 的更多信息,请参阅链接


8
投票

我有 Windows 10 并且已经安装了 PowerShell 5.1。无论出于何种原因,x86 版本都可以工作并且可以找到“Install-Module”,但另一个版本不能。

在“开始”菜单中搜索“powershell”,找到以“(x86)”结尾的条目:

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


1
投票

我花了几天时间试图解决这个问题,直到我得到一个简单的解决方案。我只是从另一台安装了 Powershell 5.1 的 Win10 机器复制以下目录:

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

到问题机器中的相同目录,不要更改权限或任何东西,只需运行命令 Install-Module 即可解决问题。我希望这可以帮助一些受折磨的灵魂。


0
投票

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

来源

使用最新的 PowerShellGet 模块,您可以:

  • 使用 Find-Module 和 Find-Script 在图库中搜索项目
  • 使用保存模块和保存脚本将图库中的项目保存到您的系统
  • 使用安装模块和安装脚本从图库中安装项目
  • 使用 Publish-Module 和 Publish-Script 将项目上传到画廊
  • 使用 Register-PSRepository 添加您自己的自定义存储库

PS Gallery 入门的另一篇很棒的文章。


0
投票

我没有NuGet Package Provider,你可以检查运行

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 ...

0
投票

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

NuGet

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

Install-PackageProvider -Name NuGet

0
投票

我运行的是旧服务器,我无法运行

install-module
因为 PowerShell 版本是 4.0。您可以使用 PowerShell 命令行检查 PowerShell 版本

ps>HOST . 

https://gallery.technet.microsoft.com/office/PowerShell-Install-Module-388e47a1

使用此链接下载必要的更新。检查看看你的 Windows 版本需要更新。


0
投票

我认为 Jeremy Thompson 发布的答案 是正确的,但我没有足够的街头信誉来发表评论。一旦我更新了 nuget 和 powershellget,我就可以使用 Install-Module 了。

Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force 
Install-PackageProvider -Name Powershellget -Force

有趣的是get-packageprovider返回的版本号在更新后并没有改变


0
投票

我的解决方法是使用 PowerShell 7 而不是 5(Windows 终端)。

获取最新的 Powershell 7.* 版本,现在是跨平台的 https://github.com/PowerShell/PowerShell


-1
投票

其实我对这个问题的解决方案要简单得多,因为我已经有了最新版本的PowerShell,但仍然无法识别

Install-Module
命令。对我来说解决“问题”的只是手动输入命令,因为最初我尝试从网站复制代码片段,显然在复制和粘贴时格式存在一些问题,所以当我手动输入命令时它安装了模块而没有任何问题。

© www.soinside.com 2019 - 2024. All rights reserved.