PowerShell自动连接AzureAD脚本运行报错404如何修复?
修复方案
1. 修正脚本语法与逻辑错误
原脚本存在多个明显的语法和逻辑错误,按优先级修复:
Connect-AzureAD参数格式错误:$TenantId与-credential之间没有空格,会被识别为同一个参数值,修改为:Connect-AzureAD -TenantId $TenantId -Credential $MyCredential- 用户名读取逻辑错误:你直接把用户名文件的路径
C:\Azure-AD\UserName.txt赋值给了$SecUser,没有实际读取文件内的用户名内容,修改为:$SecUser = Get-Content "C:\Azure-AD\UserName.txt" - 文件路径不匹配:你生成加密密码时存储的路径是
C:\AzureAD\Password.txt,脚本读取的路径是C:\Azure-AD\Password.txt,二者差了一个横杠,建议统一路径为C:\Azure-AD,生成密码的命令对应修改为:(Get-Credential).Password | ConvertFrom-SecureString | Out-File "C:\Azure-AD\Password.txt" - 租户ID为空:
$TenantId = ""没有填写你实际的Azure AD租户ID,需要替换为你自己的租户ID值,可在Azure门户的Azure AD概览页获取。
2. 补充前置检查项
修改完上述错误后如果仍报错,再检查以下配置:
- 确认你使用的账号没有启用多因素认证(MFA),基于用户名密码的非交互认证方式不支持开启MFA的账号,如果必须用MFA账号,需要改用服务主体或托管身份认证。
- 确认AzureAD模块已安装且版本正常,可执行以下命令重新安装最新版模块:
Install-Module -Name AzureAD -Force -AllowClobber - 确认运行脚本的用户和生成加密密码的用户是同一个Windows用户,
ConvertFrom-SecureString生成的加密串默认和当前用户、当前设备绑定,换用户/换设备都无法解密。
修复后完整脚本示例
# 替换为你实际的Azure AD租户ID $TenantId = "替换为你的租户ID" $SecFile = "C:\Azure-AD\Password.txt" # 读取用户名文件内容 $SecUser = Get-Content "C:\Azure-AD\UserName.txt" $MyCredential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $SecUser, (Get-Content $SecFile | ConvertTo-SecureString) Connect-AzureAD -TenantId $TenantId -Credential $MyCredential
内容的提问来源于stack exchange,提问作者Bilal Yousaf
相关产品推荐
相关产品推荐

