我试图通过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
我仍然遇到相同的错误。
如何解决此问题而不必关闭并重新打开外壳?所有这些都需要作为同一脚本的一部分运行。
答案 0 :(得分:0)
您使用了Remove-Item
,但是该命令只是删除了模块文件。 PS会话中仍然存在导入的模块。因此,您可以尝试使用Remove-Module
删除它,然后使用Import-Module
导入正确的一个。但是,这不是建议的方法,您可以尝试以下两种方法:
您可以仅使用Update-Module -Name PowerShellGet -Force
直接更新现有模块。
另一种方法是卸载旧模块,然后安装新版本。