You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无Azure CLI/Az PS的Windows VM:Azure工具安装及命令执行方案问询

Windows VM自动部署Azure工具与代理执行方案

一、无交互自动安装Azure CLI/Az PowerShell

不用手动操作或捕获自定义镜像,Azure自定义脚本扩展(Custom Script Extension) 是官方推荐的自动化配置方案,能在VM部署完成后自动运行脚本完成工具安装:

1. 安装Azure CLI(静默无交互)

编写PowerShell脚本,调用官方MSI安装包并静默执行:

# 下载Azure CLI Windows安装包
Invoke-WebRequest -Uri https://aka.ms/installazurecliwindows -OutFile .\AzureCLI.msi
# 静默安装,无任何交互弹窗
Start-Process msiexec.exe -ArgumentList '/i AzureCLI.msi /quiet' -Wait
# 清理安装包
Remove-Item .\AzureCLI.msi

2. 安装Az PowerShell模块(无交互)

先调整PowerShell执行策略,再强制安装模块:

# 允许当前用户运行远程脚本(仅作用于当前用户,不修改系统全局设置)
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser -Force
# 安装Az模块,强制覆盖现有版本,跳过交互确认
Install-Module -Name Az -Force -AllowClobber -Scope CurrentUser

3. 集成到流水线部署

在你的ARM模板/Bicep配置中嵌入自定义脚本扩展,或用Azure CLI/PowerShell命令在VM部署后立即启用:
示例Azure CLI命令:

az vm extension set \
  --resource-group <你的资源组名称> \
  --vm-name <目标VM名称> \
  --name CustomScriptExtension \
  --publisher Microsoft.Compute \
  --settings '{"fileUris": ["<你的脚本存储地址,如Azure Blob URL>"]}' \
  --protected-settings '{"commandToExecute": "powershell -ExecutionPolicy Bypass -File install-azure-tools.ps1"}'

将上述安装脚本上传至Azure存储Blob(可配置SAS令牌限制访问),通过扩展拉取并自动执行。

二、无需在VM安装工具的替代方案

如果不需要在VM内部执行Azure操作,可通过以下方式实现:

1. 利用VM托管身份调用Azure REST API

Azure所有资源操作均提供REST API,给VM启用系统/用户分配的托管身份后,无需本地工具,直接在VM内用PowerShell发送HTTP请求完成操作:
示例:获取订阅内VM列表

# 获取托管身份的访问令牌
$token = (Invoke-WebRequest -Uri 'http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https://management.azure.com/' -Headers @{Metadata="true"}).Content | ConvertFrom-Json
# 调用Azure管理API
$vmList = Invoke-WebRequest -Uri 'https://management.azure.com/subscriptions/<你的订阅ID>/providers/Microsoft.Compute/virtualMachines?api-version=2023-07-01' -Headers @{Authorization="Bearer $($token.access_token)"}
# 解析返回结果
$vmList.Content | ConvertFrom-Json

这种方式完全依赖原生PowerShell和Azure REST API,无需安装任何Azure工具,但需熟悉API参数结构。

2. 由流水线代理代执行操作

若后续Azure操作无需在VM内部触发,直接用流水线的托管代理(如Azure DevOps托管代理、GitHub Actions Runner)执行命令即可——这些代理默认预装了Azure CLI和Az PowerShell模块,直接在流水线步骤中完成对目标VM的Azure配置操作,无需在VM上安装任何工具。

内容的提问来源于stack exchange,提问作者Shay Weitzman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 06:05:30