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

使用Az PowerShell创建Azure AD应用及客户端秘钥时遇空值错误求助

解决Azure AD应用客户端秘钥生成脚本的空参数异常

错误原因

  1. 使用New-AzADAppCredential的-Password参数传入自定义密码时,Azure不会返回该密码的任何形式(返回对象的Secret属性为null),导致后续SecureStringToBSTR调用因参数为空抛出异常。
  2. 最后输出时存在变量名笔误:$clientSecret应为$clientsecret(虽PowerShell大小写不敏感,但此处属于未定义变量)。

修复与重构方案

推荐两种方案,优先选择方案二(Azure自动生成秘钥,更安全合规):

方案一:使用自定义生成的密码(直接复用明文)

若需自行控制密码规则,修改脚本保存生成的明文密码,避免从Azure返回值中获取:

# 生成随机密码并保存明文
function Generate-Password {
    $validChars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()_+"
    $password = ""
    For ($i=0; $i -lt 16; $i++) {
        $random = Get-Random -Minimum 0 -Maximum $validChars.Length
        $password += $validChars[$random]
    }
    return $password
}

Connect-AzAccount
$appName = "test-123"

$plainTextPassword = Generate-Password
$clientSecretPassword = $plainTextPassword | ConvertTo-SecureString -AsPlainText -Force

$app = New-AzADApplication -DisplayName $appName
$secret = New-AzADAppCredential -ApplicationId $app.ApplicationId -Password $clientSecretPassword

# 直接输出保存的明文密码
Write-Host "Client ID: " $app.ApplicationId
Write-Host "Tenant ID: " (Get-AzContext).Tenant.Id
Write-Host "Client Secret: " $plainTextPassword

方案二:让Azure自动生成客户端秘钥(更安全)

去掉-Password参数,Azure会自动生成符合要求的秘钥,且返回的SecretText属性就是明文值,无需额外转换:

# 登录Azure
Connect-AzAccount

# 设置应用名称
$appName = "test-123"

# 创建Azure AD应用
$app = New-AzADApplication -DisplayName $appName

# 创建客户端秘钥(Azure自动生成,默认有效期1年,可添加-EndDate (Get-Date).AddYears(3) 设置3年有效期)
$secret = New-AzADAppCredential -ApplicationId $app.ApplicationId

# 格式化输出结果
Write-Host "`n=== Azure AD Application Details ==="
Write-Host "Client ID:       $($app.ApplicationId)"
Write-Host "Tenant ID:       $((Get-AzContext).Tenant.Id)"
Write-Host "Client Secret:   $($secret.SecretText)"

注意:客户端秘钥只能在生成时获取一次,Azure不会存储明文,务必妥善保存输出的秘钥值。

内容的提问来源于stack exchange,提问作者Mr. Annonymous

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 16:05:29