使用userdata

时间:2019-12-04 11:11:35

标签: azure powershell amazon-ec2 module user-data

我试图通过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

我仍然遇到相同的错误。

如何解决此问题而不必关闭并重新打开外壳?所有这些都需要作为同一脚本的一部分运行。

1 个答案:

答案 0 :(得分:0)

您使用了Remove-Item,但是该命令只是删除了模块文件。 PS会话中仍然存在导入的模块。因此,您可以尝试使用Remove-Module删除它,然后使用Import-Module导入正确的一个。但是,这不是建议的方法,您可以尝试以下两种方法:

  1. 您可以仅使用Update-Module -Name PowerShellGet -Force直接更新现有模块。

  2. 另一种方法是卸载旧模块,然后安装新版本。