我正在尝试通过userdata在AWS EC2实例上自动安装用于PowerShell(Az)的Azure模块,以便可以在启动实例时执行Azure命令。但是,我收到此错误:
PackageManagement \ Install-Package:无法转换值在“ 2.0.0-preview”中键入“ System.Version”。错误:“输入字符串原为格式不正确。“
其他已报告此问题的人已通过升级PowerShellGet并删除了旧版本来解决此问题。我正在用这段代码来做到这一点:
Install-PackageProvider -Name NuGet -RequiredVersion 2.8.5.201 -Force -Confirm:$false
Install-Module -Name PowerShellGet -Repository PSGallery -Force -Confirm:$false
Remove-Item -Path "C:\Program Files\WindowsPowerShell\Modules\PowerShellGet\1.0.0.1" -Force -Recurse
但是,当我运行命令之后安装模块时:
Install-Module -Name Az -AllowClobber -Force -Confirm:$false -Scope AllUsers
我仍然遇到相同的错误。
如何解决此问题而不必关闭并重新打开外壳?所有这些都需要作为同一脚本的一部分运行。
您使用了Remove-Item
,但是该命令只是删除了模块文件。 PS会话中仍然存在导入的模块。因此,您可以尝试使用Remove-Module
删除它,然后使用Import-Module
导入正确的一个。但是,这不是建议的方法,您可以尝试以下两种方法:
您可以只使用Update-Module -Name PowerShellGet -Force
直接更新您现有的模块。
另一种方法是卸载旧模块,然后安装新版本。