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

Azure Runbook中PowerShell获取用户输入报错,如何解决?是否支持交互?

解决Azure AD应用注册脚本中Read-Host报错的问题

问题原因

你使用Read-Host获取用户输入时触发报错,是因为运行脚本的环境(比如Azure Automation Runbook)属于非交互式环境,这类环境不支持需要用户手动交互的命令,必须让脚本完全自动化执行,不能依赖实时输入。

替代解决方案

1. 将重定向URL作为脚本参数传入

把重定向URL设为脚本的必填参数,调用脚本时直接指定值:

param(
    [Parameter(Mandatory=$true)]
    [string]$RedirectUri
)

# 示例:使用Microsoft Graph PowerShell更新应用的重定向URL
Update-MgApplication -ApplicationId "你的应用注册ID" -Web @{RedirectUris = @( $RedirectUri )}

调用脚本时执行:

.\Update-AADAppRedirectUri.ps1 -RedirectUri "https://your-domain.com/callback"

2. 在Azure Automation Runbook中使用内置输入参数

如果是在Azure自动化Runbook中运行:

  • 登录Azure门户,找到目标Runbook,进入参数设置页,添加名为RedirectUri的字符串类型参数(可勾选“必填”)
  • 脚本中直接使用该参数即可:
# 直接使用Runbook定义的输入参数更新应用
Update-MgApplication -ApplicationId "你的应用注册ID" -Web @{RedirectUris = @( $RedirectUri )}

执行Runbook时,在触发界面输入对应的重定向URL即可。

3. 从配置文件读取重定向URL

将重定向URL写入配置文件(比如JSON),脚本读取该文件获取值:
创建app-config.json文件:

{
    "RedirectUri": "https://your-domain.com/callback",
    "ApplicationId": "你的应用注册ID"
}

脚本中读取配置:

$config = Get-Content "app-config.json" -Raw | ConvertFrom-Json

Update-MgApplication -ApplicationId $config.ApplicationId -Web @{RedirectUris = @( $config.RedirectUri )}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 06:20:23