如何通过本地脚本获取已加入Azure AD的设备的域信息及本地所属组?
如何通过本地脚本获取已加入Azure AD的设备的域信息及本地所属组?
兄弟,我懂你想在本地离线获取Azure AD设备信息的需求,毕竟传统AD那套注册表和WMI查询用惯了,突然换Azure AD确实有点懵。其实Azure AD的本地缓存机制和传统AD不一样,但还是有办法直接在本地拿到你需要的核心信息,不用碰网络:
首选工具:
dsregcmd /status
这个是Windows自带的命令,完全本地运行,不需要联网,能输出所有Azure AD相关的本地状态信息。运行后你能快速找到这些关键内容:- AzureAdJoined:显示设备是否已成功加入Azure AD(结果为Yes/No)
- TenantName:你的Azure AD租户名称(也就是对应的域名)
- TenantId:租户的唯一标识ID
- DeviceId:当前设备在Azure AD中的专属ID
- UserPrincipalName:当前登录的Azure AD用户账号
如果想在PowerShell里精准提取这些信息,可以用这条命令:
dsregcmd /status | Select-String -Pattern "AzureAdJoined|TenantName|TenantId|DeviceId"注册表中的隐藏缓存路径
你之前查看的HKLM\SOFTWARE\Microsoft\Enrollments确实没什么直接可用的内容,不过可以试试这两个路径:HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\CDP:这里存储了设备注册Azure AD的相关配置信息HKLM\SOFTWARE\Microsoft\IdentityStore\Cache:缓存了用户和设备的身份令牌数据,但内容大多是加密或格式化后的,可读性远不如dsregcmd输出的内容
关于OU和站点的重要说明
得给你提个醒:Azure AD本身没有传统AD里的OU(组织单元)和站点概念,这些是本地Active Directory特有的层级结构。所以当设备加入Azure AD后,本地根本不会缓存这类信息——毕竟Azure AD里就不存在这些东西,自然没的缓存啦。VBScript的适配方式
如果还要用VBScript来实现,你可以通过调用dsregcmd /status命令,捕获它的输出内容后逐行解析,筛选出你需要的字段即可,原理和PowerShell里的处理逻辑类似。
备注:内容来源于stack exchange,提问作者Adam Thompson
相关产品推荐
相关产品推荐

