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

如何通过Azure Functions或Azure Logic App在Azure虚拟机中运行Powershell脚本

Azure Windows VM运行PowerShell脚本的实现方案(Azure Functions / Azure Logic App)

这两种Azure服务均支持该需求,你可以根据自身场景选择对应方案:Azure Functions适合需要自定义复杂逻辑、高频率触发的场景;Azure Logic App适合低代码、需要联动多个Azure/第三方服务的工作流场景。


方案1:使用Azure Functions实现

  • 提前配置权限:为Azure Functions的系统托管身份分配目标VM所在资源组的Virtual Machine Contributor角色,或自定义包含Microsoft.Compute/virtualMachines/runCommand/action权限的角色,确保Function有调用VM执行命令的权限。
  • 创建PowerShell运行时的Azure Function,可按需选择触发方式(HTTP触发、定时触发、事件触发等均可)。
  • 编辑Function代码,调用Az.Compute模块的Invoke-AzVMRunCommand cmdlet执行脚本,参考代码如下:
# 使用系统托管身份登录Azure
Connect-AzAccount -Identity

# 替换为你的实际参数
$rgName = "目标VM所在资源组名称"
$vmName = "目标Windows虚拟机名称"
$targetScript = @"
# 此处写入需要在VM内执行的PowerShell代码
Get-Service | Where-Object Status -eq Running
Write-Output "脚本执行完毕"
"@

# 向VM下发脚本执行请求
$runResult = Invoke-AzVMRunCommand -ResourceGroupName $rgName -VMName $vmName -CommandId 'RunPowerShellScript' -ScriptString $targetScript

# 输出执行结果(可选)
$runResult.Value[0].Message
  • 保存并测试Function,确认脚本可正常在VM内执行、返回结果符合预期。

方案2:使用Azure Logic App实现

  • 提前配置权限:为Logic App的系统托管身份分配和上述方案一致的VM操作权限。
  • 创建Logic App工作流,按需选择触发条件(定时触发、HTTP请求触发、新Blob上传触发等均可)。
  • 在工作流设计器中添加Azure Resource Manager - 调用操作节点,按如下规则配置参数:
    • 订阅:选择目标VM所属的Azure订阅
    • 资源组:选择目标VM所在的资源组
    • 资源提供程序:选择Microsoft.Compute
    • 资源类型:选择virtualMachines
    • 资源:选择目标Windows虚拟机的名称
    • 操作名称:填入runCommand
  • 配置操作的请求Body,指定要执行的PowerShell脚本,参考结构如下:
{
  "commandId": "RunPowerShellScript",
  "script": [
    "Get-Service | Where-Object Status -eq Running",
    "Write-Output 'Logic App触发脚本执行成功'"
  ]
}
  • 保存工作流并运行测试,可在运行历史中查看脚本的执行返回结果。

注意事项

  • 两种方案底层均调用Azure VM的Run Command能力执行脚本,默认使用本地系统管理员权限运行,需严格管控脚本内容的安全性,避免执行高危操作。
  • 如果目标VM部署在私有子网、无公网IP,需要为Azure Functions/Logic App配置虚拟网络集成,确保服务可以访问到VM的管理接口。
  • Run Command的单脚本执行最大超时时间为90分钟,若需执行更长时间的任务,可将脚本提前上传到VM本地,通过Run Command触发脚本后台运行即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 07:45:03