如何更新Azure PowerShell?

时间:2016-01-31 03:32:01

标签: azure azure-powershell

我通过图库安装了Azure PowerShell 1.0.3(根据“从图库安装Azure PowerShell”部分中的说明here)。我想更新到最新版本,但我不清楚我需要运行的命令。我尝试了以下方法,但决定询问而不是可能破坏我的安装:

PS C:\Windows\system32> Install-Module AzureRM

You are installing the module(s) from an untrusted repository. If you trust this repository, change its
InstallationPolicy value by running the Set-PSRepository cmdlet.
Are you sure you want to install software from 'https://www.powershellgallery.com/api/v2/'?
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help (default is "N"): y
WARNING: Version '1.0.3' of module 'AzureRM' is already installed at 'C:\Program
Files\WindowsPowerShell\Modules\AzureRM\1.0.3'. To delete version '1.0.3' and install version '1.1.0', run
Install-Module, and add the -Force parameter.

有人可以提供脚本来更新Azure PowerShell吗?

5 个答案:

答案 0 :(得分:12)

您需要运行的命令位于您发布的帮助文本中。使用Install-Module -Force AzureRMSee the -Force tag

一旦您更新了引导程序,请运行Install-AzureRM以安装新程序包。

编辑更新(WMF> 4)PowerShell:

PowerShell有一个Update-Module AzureRM函数,它将执行与Install-Module -Force AzureRM类似的活动。如果您已在本地环境中定义了AzureRM将覆盖的函数,您可能还想在-AllowClobber上使用Install-Module参数。

但是,两者都不会更新您当前的环境,因此在运行Install-AzureRM之前,请检查您是否已加载最新的AzureRM模块。例如,如果要从1.0.1更新到1.0.3:

$ Get-Module AzureRM

ModuleType Version    Name         ExportedCommands
---------- -------    ----         ----------------
Script     1.0.1      AzureRM      {...}

$ Update-Module AzureRM

$ # This will still be old because we haven't imported the newer version.
$ (Get-Module AzureRM).Version.ToString() 
1.0.1

$ Remove-Module AzureRM
$ Import-Module AzureRM
$ (Get-Module AzureRM).Version.ToString() 
1.0.3

$ Install-AzureRM

或者您可以在运行更新后打开新的PowerShell窗口。

答案 1 :(得分:6)

看来命令发生了一些变化,我不得不使用Install-Module -Force AzureRM -AllowClobber让它更新

答案 2 :(得分:1)

最简单的方法来自official link,并寻找突出显示的内容。 该链接将为您提供最新版AzurePowershell的MSI

enter image description here

答案 3 :(得分:0)

最可靠的方式似乎是:

下载最新的MSI并运行它。 https://github.com/Azure/azure-powershell/releases

我知道您要求提供脚本版本...我没有找到令人满意的各种脚本答案。 (我并不想要并排安装; Install-AzureRM没有找到;等等。

答案 4 :(得分:0)

我使用:

$azureRMs = Get-Module
foreach($azureRM in $azureRMs)
    {
    if($azureRM.name -like "AzureRM*" )
        {
        write-host "removing" $azureRM
        remove-Module -Name $azureRM
        Uninstall-Module -Name $azureRM
        }
    }
Install-Module azureRM