你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

Set-AzureRmVMExtension

更新扩展属性或向虚拟机添加扩展。

警告

AzureRM PowerShell 模块已自 2024 年 2 月 29 日起正式弃用。 为了确保持续获得支持和更新,建议用户从 AzureRM 迁移到 Az PowerShell 模块。

尽管 AzureRM 模块仍可运行,但不再受到维护或支持,任何继续使用的行为都由用户自行决定并自行承担风险。 有关过渡到 Az 模块的指导,请参阅我们的迁移资源

语法

Set-AzureRmVMExtension
   -Publisher <String>
   -ExtensionType <String>
   [-Settings <Hashtable>]
   [-ProtectedSettings <Hashtable>]
   [-AsJob]
   [-ResourceGroupName] <String>
   [-VMName] <String>
   [-Name <String>]
   [-TypeHandlerVersion <String>]
   [-Location <String>]
   [-DisableAutoUpgradeMinorVersion]
   [-ForceRerun <String>]
   [-DefaultProfile <IAzureContextContainer>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
Set-AzureRmVMExtension
   -Publisher <String>
   -ExtensionType <String>
   [-SettingString <String>]
   [-ProtectedSettingString <String>]
   [-AsJob]
   [-ResourceGroupName] <String>
   [-VMName] <String>
   [-Name <String>]
   [-TypeHandlerVersion <String>]
   [-Location <String>]
   [-DisableAutoUpgradeMinorVersion]
   [-ForceRerun <String>]
   [-DefaultProfile <IAzureContextContainer>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]

说明

Set-AzureRmVMExtension cmdlet 更新现有虚拟机扩展的属性或向虚拟机添加扩展。

示例

示例 1:使用哈希表修改设置

PS C:\> $Settings = @{"fileUris" = "[]"; "commandToExecute" = ""};
PS C:\> $ProtectedSettings = @{"storageAccountName" = $stoname; "storageAccountKey" = $stokey};
PS C:\> Set-AzureRmVMExtension -ResourceGroupName "ResourceGroup11" -Location "West US" -VMName "VirtualMachine22" -Name "ContosoTest" -Publisher "Contoso.Compute" -Type "CustomScriptExtension" -TypeHandlerVersion "1.1" -Settings $Settings -ProtectedSettings $ProtectedSettings;

前两个命令使用标准 Windows PowerShell 语法创建哈希表,然后将这些哈希表存储在$Settings和$ProtectedSettings变量中。 要了解详情,请键入 Get-Help about_Hash_Tables。 第二个命令包括以前创建并存储在变量中的两个值。 最后一个命令根据 $Settings 和 $ProtectedSettings 的内容修改 ResourceGroup11 中名为 VirtualMachine22 的虚拟机的扩展。 该命令指定包括发布服务器和扩展类型的其他必需信息。

示例 2:使用字符串修改设置

PS C:\> $SettingsString = '{"fileUris":[],"commandToExecute":""}';
PS C:\> $ProtectedSettingsString = '{"storageAccountName":"' + $stoname + '","storageAccountKey":"' + $stokey + '"}';
PS C:\> Set-AzureRmVMExtension -ResourceGroupName "ResourceGroup11" -Location "West US" -VMName "VirtualMachine22" -Name "CustomScriptExtension" -Publisher "Contoso.Compute" -Type "CustomScriptExtension" -TypeHandlerVersion "1.1" -SettingString $SettingsString -ProtectedSettingString $ProtectedSettingsString ;

前两个命令创建包含设置的字符串,然后将其存储在$SettingsString和$ProtectedSettingsString变量中。 最后一个命令根据 $SettingsString 和 $ProtectedSettingsString 的内容修改 ResourceGroup11 中名为 VirtualMachine22 的虚拟机的扩展。 该命令指定包括发布服务器和扩展类型的其他必需信息。

参数

-AsJob

在后台运行 cmdlet

类型:SwitchParameter
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-Confirm

提示你在运行 cmdlet 之前进行确认。

类型:SwitchParameter
别名:cf
Position:Named
默认值:False
必需:False
接受管道输入:False
接受通配符:False

-DefaultProfile

用于与 Azure 通信的凭据、帐户、租户和订阅。

类型:IAzureContextContainer
别名:AzureRmContext, AzureCredential
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-DisableAutoUpgradeMinorVersion

指示此 cmdlet 阻止 Azure 来宾代理将扩展自动更新到较新的次要版本。 默认情况下,此 cmdlet 使来宾代理能够更新扩展。

类型:SwitchParameter
Position:Named
默认值:None
必需:False
接受管道输入:True
接受通配符:False

-ExtensionType

指定扩展类型。

类型:String
别名:Type
Position:Named
默认值:None
必需:True
接受管道输入:True
接受通配符:False

-ForceRerun

指示此 cmdlet 在虚拟机上强制重新运行相同的扩展配置,而无需卸载并重新安装该扩展。 该值可以是与当前值不同的任何字符串。 如果未更改 forceUpdateTag,则处理程序仍会应用对公共或受保护设置的更新。

类型:String
Position:Named
默认值:None
必需:False
接受管道输入:True
接受通配符:False

-Location

指定虚拟机的位置。

类型:String
Position:Named
默认值:None
必需:False
接受管道输入:True
接受通配符:False

-Name

指定扩展的名称。

类型:String
别名:ExtensionName
Position:Named
默认值:None
必需:False
接受管道输入:True
接受通配符:False

-ProtectedSettings

将扩展的专用配置指定为哈希表。 此 cmdlet 加密专用配置。

类型:Hashtable
Position:Named
默认值:None
必需:False
接受管道输入:True
接受通配符:False

-ProtectedSettingString

将扩展的专用配置指定为字符串。 此 cmdlet 加密专用配置。

类型:String
Position:Named
默认值:None
必需:False
接受管道输入:True
接受通配符:False

-Publisher

指定扩展发布者的名称。 发布者在注册扩展时提供名称。

类型:String
Position:Named
默认值:None
必需:True
接受管道输入:True
接受通配符:False

-ResourceGroupName

指定虚拟机资源组的名称。

类型:String
Position:0
默认值:None
必需:True
接受管道输入:True
接受通配符:False

-Settings

将扩展的公共配置指定为哈希表。 此 cmdlet 不加密公共配置。

类型:Hashtable
Position:Named
默认值:None
必需:False
接受管道输入:True
接受通配符:False

-SettingString

将扩展的公共配置指定为字符串。 此 cmdlet 不加密公共配置。

类型:String
Position:Named
默认值:None
必需:False
接受管道输入:True
接受通配符:False

-TypeHandlerVersion

指定要用于此虚拟机的扩展版本。

类型:String
别名:HandlerVersion, Version
Position:Named
默认值:None
必需:False
接受管道输入:True
接受通配符:False

-VMName

指定虚拟机的名称。 此 cmdlet 修改此参数指定的虚拟机的扩展。

类型:String
别名:ResourceName
Position:1
默认值:None
必需:True
接受管道输入:True
接受通配符:False

-WhatIf

显示运行该 cmdlet 时会发生什么情况。 cmdlet 未运行。

类型:SwitchParameter
别名:wi
Position:Named
默认值:False
必需:False
接受管道输入:False
接受通配符:False

输入

String

Hashtable

SwitchParameter

输出

PSAzureOperationResponse