如何通过AADInternals实现Azure AD非交互式认证以自动化批量注册?
AADInternals 批量注册配置包自动化:非交互式认证方案
实现思路
AADInternals支持通过客户端凭证流完成非交互式认证,无需手动登录,完全适配PowerShell脚本自动化。核心是借助预先注册的Azure AD应用获取访问令牌,再将令牌传入AADInternals的相关命令。
1. 准备Azure AD应用与权限
- 在Azure AD中注册应用,记录租户ID、客户端ID和客户端密码
- 为应用分配以下Microsoft Graph权限(需管理员同意):
DeviceManagementServiceConfig.ReadWrite.All(批量注册配置包操作必需)Directory.Read.All(按需添加,部分场景可能需要)
2. 获取非交互式访问令牌
使用AADInternals内置命令直接获取令牌:
$tenantId = "你的租户ID" $clientId = "应用客户端ID" $clientSecret = "应用客户端密码" $token = Get-AADIntAccessTokenForGraph -TenantId $tenantId -ClientId $clientId -ClientSecret $clientSecret
3. 自动化生成配置包
用获取到的令牌调用批量注册相关命令,示例:
# 获取目标Autopilot配置文件 $autopilotProfile = Get-AADIntAutopilotProfile -AccessToken $token.AccessToken # 生成并导出配置包 New-AADIntAutopilotConfigurationPackage -ProfileId $autopilotProfile.Id -AccessToken $token.AccessToken -OutputPath "C:\Autopilot\Packages"
关键注意事项
- 确保AADInternals版本在v0.4.0及以上,旧版本可能不支持客户端凭证流
- 应用权限必须由管理员授予管理员同意,否则无法获取有效令牌
- 客户端密码不要硬编码在脚本中,建议用Azure Key Vault等安全方式存储和读取
内容的提问来源于stack exchange,提问作者Korey Mendes
相关产品推荐
相关产品推荐

