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

az vm run-command

命令

az vm run-command create

用于创建 run 命令的操作。

az vm run-command delete

用于删除 run 命令的操作。

az vm run-command invoke

在 VM 上执行特定的运行命令。

az vm run-command list

列出 VM 或位置中的运行命令。

az vm run-command show

获取特定的运行命令。

az vm run-command update

用于更新 run 命令的操作。

az vm run-command wait

将 CLI 置于等待状态,直到满足 res virtual-machine-run-command 的条件。

az vm run-command create

用于创建 run 命令的操作。

az vm run-command create --name
                         --resource-group
                         --vm-name
                         [--async-execution {false, true}]
                         [--command-id]
                         [--error-blob-uri]
                         [--location]
                         [--no-wait]
                         [--output-blob-uri]
                         [--parameters]
                         [--protected-parameters]
                         [--run-as-password]
                         [--run-as-user]
                         [--script]
                         [--script-uri]
                         [--tags]
                         [--timeout-in-seconds]

示例

创建运行命令。

az vm run-command create --resource-group "myResourceGroup" --location "West US" --async-execution false --parameters arg1=param1 arg2=value1 --run-as-password "<runAsPassword>" --run-as-user "user1" --script "Write-Host Hello World!" --timeout-in-seconds 3600 --run-command-name "myRunCommand" --vm-name "myVM"

创建一个运行命令,并将脚本输出流上传到 Azure 存储 blob (SAS URI) 。

az vm run-command create --resource-group "myResourceGroup" --location "West US" --script "Write-Host Hello World!" --run-command-name "myRunCommand" --vm-name "myVM" --output-blob-uri "https://mystorageaccount.blob.core.windows.net/mycontainer/RuncommandOutput.txt?sp=racw&st=2022-10-17T19:02:15Z&se=2022-10-18T03:02:15Z&spr=https&sv=2021-06-08&sr=b&sig=3BxtEasfdasdfasdfdYki9yvYsqc60V0%3D"

必需参数

--name --run-command-name

虚拟机运行命令的名称。

--resource-group -g

资源组的名称。 可以使用 az configure --defaults group=<name> 配置默认组。

--vm-name

虚拟机的名称。

可选参数

--async-execution

可选。 如果设置为 true,则脚本启动后,预配将立即完成,并且不会等待脚本完成。

接受的值: false, true
--command-id

指定预定义内置脚本的 commandId。

--error-blob-uri

指定要在其中上传脚本错误流的 Azure 存储 Blob。

--location -l

位置。 az account list-locations 中的值。 可以使用 az configure --defaults location=<location> 配置默认位置。

--no-wait

不等待长时间运行的操作完成。

默认值: False
--output-blob-uri

指定要在其中上传脚本输出流的 Azure 存储 blob (SAS URI) 。

--parameters

脚本使用的参数。

--protected-parameters

脚本使用的参数。

--run-as-password

使用用户运行参数所需的密码。 它将进行加密且不会记录。

--run-as-user

默认情况下,脚本进程在系统/根用户下运行。 指定要托管进程的自定义用户。

--script

指定要在 VM 上执行的脚本内容。

--script-uri

指定脚本下载位置。

--tags

空格分隔标记:key[=value] [key[=value] ...]。使用“”清除现有标记。

--timeout-in-seconds

执行 run 命令的超时时间(秒)。

az vm run-command delete

用于删除 run 命令的操作。

az vm run-command delete --name
                         [--ids]
                         [--no-wait]
                         [--resource-group]
                         [--subscription]
                         [--vm-name]
                         [--yes]

示例

删除运行命令。

az vm run-command delete --resource-group "myResourceGroup" --run-command-name "myRunCommand" --vm-name "myVM"

必需参数

--name --run-command-name

虚拟机运行命令的名称。

可选参数

--ids

一个或多个资源 ID(以空格分隔)。 它应该是包含“资源 ID”参数的所有信息的完整资源 ID。 应提供 --ids 或其他“资源 ID”参数。

--no-wait

不等待长时间运行的操作完成。

默认值: False
--resource-group -g

资源组的名称。 可以使用 az configure --defaults group=<name> 配置默认组。

--subscription

订阅的名称或 ID。 可以使用 az account set -s NAME_OR_ID 配置默认订阅。

--vm-name

虚拟机的名称。

--yes -y

不提示确认。

默认值: False

az vm run-command invoke

在 VM 上执行特定的运行命令。

az vm run-command show 返回有关每个运行命令的有用信息。 通过 az vmss run-command list发现运行命令 ID。

az vm run-command invoke --command-id
                         [--ids]
                         [--name]
                         [--no-wait]
                         [--parameters]
                         [--resource-group]
                         [--scripts]
                         [--subscription]

示例

在 Linux VM 上安装 nginx。

az vm run-command invoke -g MyResourceGroup -n MyVm --command-id RunShellScript --scripts "sudo apt-get update && sudo apt-get install -y nginx"

使用参数在 Linux VM 上运行 shell 命令。

az vm run-command invoke -g MyResourceGroup -n MyVm --command-id RunShellScript --scripts 'echo $1 $2' --parameters hello world

使用参数在 Windows VM 上运行 powershell 脚本。 内联提供的脚本。 警惕CMD.exe中的单引号。

az vm run-command invoke  --command-id RunPowerShellScript --name win-vm -g my-resource-group  \
    --scripts 'param([string]$arg1,[string]$arg2)' \
    'Write-Host This is a sample script with parameters $arg1 and $arg2' \
    --parameters 'arg1=somefoo' 'arg2=somebar'

使用参数在 Windows VM 上运行 powershell 脚本。 从 文件提供的脚本。

# script.ps1
#   param(
#       [string]$arg1,
#       [string]$arg2
#   )
#   Write-Host This is a sample script with parameters $arg1 and $arg2

az vm run-command invoke  --command-id RunPowerShellScript --name win-vm -g my-resource-group \
    --scripts @script.ps1 --parameters "arg1=somefoo" "arg2=somebar"

必需参数

--command-id

命令 ID。

值来自: az vm run-command list

可选参数

--ids

一个或多个资源 ID(以空格分隔)。 它应该是包含“资源 ID”参数的所有信息的完整资源 ID。 应提供 --ids 或其他“资源 ID”参数。

--name -n

虚拟机的名称。 可以使用 配置默认值 az configure --defaults vm=<name>

--no-wait

不等待长时间运行的操作完成。

默认值: False
--parameters

采用“[name=]value”格式的空格分隔参数。

--resource-group -g

资源组的名称。 可以使用 az configure --defaults group=<name> 配置默认组。

--scripts

空格分隔的脚本行。 使用 @{file} 从文件加载脚本。

--subscription

订阅的名称或 ID。 可以使用 az account set -s NAME_OR_ID 配置默认订阅。

az vm run-command list

列出 VM 或位置中的运行命令。

可以指定“--resource-group”和“--vm-name”来获取虚拟机的所有运行命令。 或者,可以指定“--location”以列出某个位置中某个订阅的所有可用运行命令。

az vm run-command list [--expand]
                       [--location]
                       [--resource-group]
                       [--vm-name]

示例

列出虚拟机中的运行命令。

az vm run-command list --resource-group "myResourceGroup" --vm-name "myVM"

列出某个位置中订阅的所有可用运行命令。

az vm run-command list --location "SoutheastAsia"

可选参数

--expand

要应用于操作的 expand 表达式。

--location -l

位置。 az account list-locations 中的值。 可以使用 az configure --defaults location=<location> 配置默认位置。

--resource-group -g

资源组的名称。 可以使用 az configure --defaults group=<name> 配置默认组。

--vm-name

虚拟机的名称。

az vm run-command show

获取特定的运行命令。

可以指定“--resource-group”、“--run-command-name”和“--vm-name”来获取虚拟机中的运行命令。 或者,可以指定“--command-id”和“--location”来获取某个位置中订阅的运行命令。

az vm run-command show [--command-id]
                       [--ids]
                       [--instance-view]
                       [--location]
                       [--name]
                       [--resource-group]
                       [--subscription]
                       [--vm-name]

示例

获取虚拟机中的运行命令。

az vm run-command show --resource-group "myResourceGroup" --run-command-name "myRunCommand" --vm-name "myVM"

获取某个位置中订阅的特定运行命令。

az vm run-command show --command-id "RunPowerShellScript" --location "SoutheastAsia"

可选参数

--command-id

命令 ID。

--ids

一个或多个资源 ID(以空格分隔)。 它应该是包含“资源 ID”参数的所有信息的完整资源 ID。 应提供 --ids 或其他“资源 ID”参数。

--instance-view

运行命令的实例视图。

默认值: False
--location -l

位置。 az account list-locations 中的值。 可以使用 az configure --defaults location=<location> 配置默认位置。

--name --run-command-name

虚拟机运行命令的名称。

--resource-group -g

资源组的名称。 可以使用 az configure --defaults group=<name> 配置默认组。

--subscription

订阅的名称或 ID。 可以使用 az account set -s NAME_OR_ID 配置默认订阅。

--vm-name

虚拟机的名称。

az vm run-command update

用于更新 run 命令的操作。

az vm run-command update --name
                         [--async-execution {false, true}]
                         [--command-id]
                         [--error-blob-uri]
                         [--ids]
                         [--location]
                         [--no-wait]
                         [--output-blob-uri]
                         [--parameters]
                         [--protected-parameters]
                         [--resource-group]
                         [--run-as-password]
                         [--run-as-user]
                         [--script]
                         [--script-uri]
                         [--subscription]
                         [--tags]
                         [--timeout-in-seconds]
                         [--vm-name]

示例

更新运行命令。

az vm run-command update --resource-group "myResourceGroup" --location "West US" --async-execution false --parameters arg1=param1 arg2=value1 --run-as-password "<runAsPassword>" --run-as-user "user1" --script "Write-Host Hello World!" --timeout-in-seconds 3600 --run-command-name "myRunCommand" --vm-name "myVM"

使用将脚本输出流上传到 Azure 存储 blob (SAS URI) 更新 run 命令。

az vm run-command update --resource-group "myResourceGroup" --location "West US" --script "Write-Host Hello World!" --run-command-name "myRunCommand" --vm-name "myVM" --output-blob-uri "https://mystorageaccount.blob.core.windows.net/mycontainer/RuncommandOutput.txt?sp=racw&st=2022-10-17T19:02:15Z&se=2022-10-18T03:02:15Z&spr=https&sv=2021-06-08&sr=b&sig=3BxtEasfdasdfasdfdYki9yvYsqc60V0%3D"

必需参数

--name --run-command-name

虚拟机运行命令的名称。

可选参数

--async-execution

可选。 如果设置为 true,则脚本启动后,预配将立即完成,并且不会等待脚本完成。

接受的值: false, true
--command-id

指定预定义内置脚本的 commandId。

--error-blob-uri

指定要在其中上传脚本错误流的 Azure 存储 Blob。

--ids

一个或多个资源 ID(以空格分隔)。 它应该是包含“资源 ID”参数的所有信息的完整资源 ID。 应提供 --ids 或其他“资源 ID”参数。

--location -l

位置。 az account list-locations 中的值。 可以使用 az configure --defaults location=<location> 配置默认位置。

--no-wait

不等待长时间运行的操作完成。

默认值: False
--output-blob-uri

指定要在其中上传脚本输出流的 Azure 存储 blob (SAS URI) 。

--parameters

脚本使用的参数。

--protected-parameters

脚本使用的参数。

--resource-group -g

资源组的名称。 可以使用 az configure --defaults group=<name> 配置默认组。

--run-as-password

使用用户运行参数所需的密码。 它将进行加密且不会记录。

--run-as-user

默认情况下,脚本进程在系统/根用户下运行。 指定要托管进程的自定义用户。

--script

指定要在 VM 上执行的脚本内容。

--script-uri

指定脚本下载位置。

--subscription

订阅的名称或 ID。 可以使用 az account set -s NAME_OR_ID 配置默认订阅。

--tags

空格分隔标记:key[=value] [key[=value] ...]。使用“”清除现有标记。

--timeout-in-seconds

执行 run 命令的超时时间(秒)。

--vm-name

虚拟机的名称。

az vm run-command wait

将 CLI 置于等待状态,直到满足 res virtual-machine-run-command 的条件。

az vm run-command wait [--command-id]
                       [--created]
                       [--custom]
                       [--deleted]
                       [--exists]
                       [--ids]
                       [--instance-view]
                       [--interval]
                       [--location]
                       [--name]
                       [--resource-group]
                       [--subscription]
                       [--timeout]
                       [--updated]
                       [--vm-name]

可选参数

--command-id

命令 ID。

--created

等到在“Succeeded”处使用“provisioningState”创建。

默认值: False
--custom

等待条件满足自定义 JMESPath 查询。 例如 provisioningState!='InProgress', instanceView.statuses[?code=='PowerState/running']。

--deleted

等到删除。

默认值: False
--exists

等待资源存在。

默认值: False
--ids

一个或多个资源 ID(以空格分隔)。 它应该是包含“资源 ID”参数的所有信息的完整资源 ID。 应提供 --ids 或其他“资源 ID”参数。

--instance-view

运行命令的实例视图。

默认值: False
--interval

轮询间隔(以秒为单位)。

默认值: 30
--location -l

位置。 az account list-locations 中的值。 可以使用 az configure --defaults location=<location> 配置默认位置。

--name --run-command-name

虚拟机运行命令的名称。

--resource-group -g

资源组的名称。 可以使用 az configure --defaults group=<name> 配置默认组。

--subscription

订阅的名称或 ID。 可以使用 az account set -s NAME_OR_ID 配置默认订阅。

--timeout

最长等待时间(以秒为单位)。

默认值: 3600
--updated

等待,直到在“Succeeded”处使用 provisioningState 更新。

默认值: False
--vm-name

虚拟机的名称。