安装模块:术语 'Install-Module' 未被识别为 cmdlet 的名称
Install-Module : The term 'Install-Module' is not recognized as the name of a cmdlet
我试图在 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,然后使用此命令 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, refer to the link。
由于您使用的是低版本PS:
在您的情况下,您可以先将模块下载到本地文件夹中。
然后,该模块的文件夹下将有一个 .psm1 文件。
你刚刚
import-Module "Path of the file.psm1"
这里是 link 下载 Azure 模块:
Azure Powershell
这会完成你的工作。
如果您尝试安装中央存储库中列出的名为 PowerShell Gallery 的 PS 内容模块,则需要安装 PowerShellGet。然后该命令将可用。我目前正在使用 PS 4.0。安装 PowerShellGet 对我有用。
使用最新的 PowerShellGet 模块,您可以:
- 使用 Find-Module 和 Find-Script
在图库中搜索项目
- 使用 Save-Module 和 Save-Script
将图库中的项目保存到您的系统
- 使用 Install-Module 和 Install-Script
从库中安装项目
- 使用 Publish-Module 和 Publish-Script
将项目上传到图库
- 使用 Register-PSRepository
添加您自己的自定义存储库
修复此错误的另一个基于 GUI 的选项是从 Microsoft 网站下载 PackageManagement PowerShell Modules (msi installer) 并安装模块。
安装后您将不会收到“'Install-Module' 未被识别为 cmdlet 的名称”错误。
其实我解决这个问题的方法要简单得多,因为我已经有最新版本的PowerShell,但仍然无法识别Install-Module
命令。为我修复 "issue" 的只是手动输入命令,因为最初我尝试从网站复制代码片段,显然在复制和粘贴时格式存在一些问题,所以当我手动输入命令时它安装了模块没问题。
我没有 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
如果失败并出现以下错误,您可以 copy/paste 来自另一台 PC 的 NuGet 文件夹(需要管理员):
C:\程序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 ...
我有 Windows 10 并且已经安装了 PowerShell 5.1。无论出于何种原因,x86 版本可以找到 "Install-Module",但其他版本不能。
在“开始”菜单中搜索 "powershell",找到以“(x86)”结尾的条目:
以下是我在两个不同版本之间的体验:
我认为 是正确的,但我没有足够的街头信誉来发表评论。一旦我更新了 nuget 和 powershellget,我就可以使用 Install-Module。
Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force
Install-PackageProvider -Name Powershellget -Force
有趣的是get-packageprovider返回的版本号在更新后并没有改变。
运行 以下命令以管理员身份使用 Powershell 安装 NuGet
:
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
Install-PackageProvider -Name NuGet
我 运行 我无法 运行 install-module
使用较旧的服务器,因为 PowerShell 版本是 4.0。您可以使用 PowerShell 命令行检查 PowerShell 版本
ps>HOST .
https://gallery.technet.microsoft.com/office/PowerShell-Install-Module-388e47a1
使用此 link 下载必要的更新。检查看看你的
Windows 版本需要更新。
我花了几天时间试图解决这个问题,直到找到一个简单的解决方案。我只是从另一台运行 Powershell 5.1 安装的 Win10 机器复制以下目录:
- C:\程序Files\WindowsPowerShell\Modules\PackageManagement
- C:\程序Files\WindowsPowerShell\Modules\PowerShellGet
到问题机器中的相同目录,不要更改权限或任何东西,只需 运行 命令 Install-Module 即可解决问题。我希望这可以帮助一些受折磨的灵魂。
我试图在 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,然后使用此命令 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, refer to the link。
由于您使用的是低版本PS:
在您的情况下,您可以先将模块下载到本地文件夹中。
然后,该模块的文件夹下将有一个 .psm1 文件。
你刚刚
import-Module "Path of the file.psm1"
这里是 link 下载 Azure 模块: Azure Powershell
这会完成你的工作。
如果您尝试安装中央存储库中列出的名为 PowerShell Gallery 的 PS 内容模块,则需要安装 PowerShellGet。然后该命令将可用。我目前正在使用 PS 4.0。安装 PowerShellGet 对我有用。
使用最新的 PowerShellGet 模块,您可以:
- 使用 Find-Module 和 Find-Script 在图库中搜索项目
- 使用 Save-Module 和 Save-Script 将图库中的项目保存到您的系统
- 使用 Install-Module 和 Install-Script 从库中安装项目
- 使用 Publish-Module 和 Publish-Script 将项目上传到图库
- 使用 Register-PSRepository 添加您自己的自定义存储库
修复此错误的另一个基于 GUI 的选项是从 Microsoft 网站下载 PackageManagement PowerShell Modules (msi installer) 并安装模块。
安装后您将不会收到“'Install-Module' 未被识别为 cmdlet 的名称”错误。
其实我解决这个问题的方法要简单得多,因为我已经有最新版本的PowerShell,但仍然无法识别Install-Module
命令。为我修复 "issue" 的只是手动输入命令,因为最初我尝试从网站复制代码片段,显然在复制和粘贴时格式存在一些问题,所以当我手动输入命令时它安装了模块没问题。
我没有 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
如果失败并出现以下错误,您可以 copy/paste 来自另一台 PC 的 NuGet 文件夹(需要管理员): C:\程序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 ...
我有 Windows 10 并且已经安装了 PowerShell 5.1。无论出于何种原因,x86 版本可以找到 "Install-Module",但其他版本不能。
在“开始”菜单中搜索 "powershell",找到以“(x86)”结尾的条目:
以下是我在两个不同版本之间的体验:
我认为
Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force
Install-PackageProvider -Name Powershellget -Force
有趣的是get-packageprovider返回的版本号在更新后并没有改变。
运行 以下命令以管理员身份使用 Powershell 安装 NuGet
:
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
Install-PackageProvider -Name NuGet
我 运行 我无法 运行 install-module
使用较旧的服务器,因为 PowerShell 版本是 4.0。您可以使用 PowerShell 命令行检查 PowerShell 版本
ps>HOST .
https://gallery.technet.microsoft.com/office/PowerShell-Install-Module-388e47a1
使用此 link 下载必要的更新。检查看看你的 Windows 版本需要更新。
我花了几天时间试图解决这个问题,直到找到一个简单的解决方案。我只是从另一台运行 Powershell 5.1 安装的 Win10 机器复制以下目录:
- C:\程序Files\WindowsPowerShell\Modules\PackageManagement
- C:\程序Files\WindowsPowerShell\Modules\PowerShellGet
到问题机器中的相同目录,不要更改权限或任何东西,只需 运行 命令 Install-Module 即可解决问题。我希望这可以帮助一些受折磨的灵魂。