Linux 命令行工具,类似于 Windows dsregcmd,用于从 Microsoft Identity Broker 查询设备注册状态、PRT(主刷新令牌)信息和代理配置。
概述
dsreg 向管理员和开发人员提供有关 Linux 系统上设备注册状态的详细信息。 它会查询 Microsoft Identity Broker 以检索:
- 设备注册状态
- 设备 ID 和租户信息
- PRT (主刷新令牌)状态和刷新时间
- 证书信息
- 会话密钥详细信息
- Broker 版本和配置
安装
该工具包含在 Microsoft Identity Broker 包中,并在安装代理程序时安装到 /usr/bin/dsreg。
支持的 Linux 分发版
-
Ubuntu/Debian - DEB 包 (
microsoft-identity-broker_*.deb) -
RHEL/Rocky Linux/AlmaLinux - RPM 包 (
microsoft-identity-broker-*.rpm)
# Ubuntu/Debian
sudo apt install microsoft-identity-broker
注释
安装 microsoft-identity-broker后,dsregcmd 工具在系统范围内可用。
dsreg --help
用法
# Display device registration status
dsreg
dsreg --status
# Display help
dsreg --help
# Query specific tenant
dsreg --tenant-id <tenant-guid>
# Get DRS access token
dsreg --getdrstoken
# Unregister device (requires sudo)
sudo dsreg --tenant-id <tenant-guid> --unregister
# Clean broker state (prompts for confirmation)
dsreg --cleanup
# Clean broker state including certificates (requires sudo)
sudo dsreg --cleanup
命令选项
| 选项 | 说明 |
|---|---|
--status |
显示全面的设备注册和 PRT 状态(默认) |
--help |
显示帮助信息 |
--tenant-id <id> |
查询具有特定租户 GUID 的设备注册信息 |
--getdrstoken |
获取 DRS(设备注册服务)访问令牌以执行设备操作 |
--unregister |
从 Entra ID 租户中注销设备(需要 sudo 和 DRS 令牌) |
--cleanup |
使用确认提示清除所有本地代理状态。 阶段 1(始终):清除用户级缓存(帐户、令牌、凭据) 阶段 2(仅限根):从 /etc/microsoft/identity-broker/private 和 /etc/microsoft/identity-broker/certs 中删除设备私钥和证书(drs_* 和 stk_* 文件) 注意:不会从 Entra ID 注销设备(需要单独使用 --unregister ) |
输出信息
设备状态
| 领域 | 说明 |
|---|---|
| 设备注册状态 | (已注册/未注册) |
| 设备 ID | Microsoft Entra 租户中设备的唯一 ID。 |
| 租户 ID | 将设备加入Microsoft Entra ID时显示的租户详细信息。 |
| 租户名称/域 | 将设备加入Microsoft Entra ID时显示的租户详细信息。 |
| 证书指纹 | 设备证书的指纹。 |
主刷新令牌(PRT)
| 领域 | 说明 |
|---|---|
| PRT 演示 | (是|否)如果登录用户设备上存在主刷新令牌(PRT),则为“是”。 |
| PRT 缓存时间 | 上次在设备上缓存 PRT 的时间(UTC)。 |
| PRT 过期时间 | 如果 PRT 未续订,将在 UTC 时间过期的时间。 |
| 上次 PRT 刷新时间 | 上次更新企业 PRT 的时间(UTC)。 |
| PRT 年龄(小时) | |
| 会话密钥协议版本 | 用于与 PRT 关联的会话密钥的协议版本。 |
中转站信息
| 领域 | 说明 |
|---|---|
| Broker 版本 | 设备上安装的当前 microsoft-identity-broker 版本。 |
| 代理服务名称 | 中转站的系统服务的名称。 |
| 中转站二进制路径和安装时间戳 | 代理程序二进制文件的文件路径和安装时间戳。 |
| 设备模式 | (独占/共享) |
示例输出
Device State
-----------------------------------------------------------------
Device Registration Status : Registered
Device ID : a1b2c3d4-e5f6-g7h8-i9j0-k1l2m3n4o5p6
Tenant ID : 12345678-90ab-cdef-1234-567890abcdef
Tenant Name : contoso.com
Primary Refresh Token
-----------------------------------------------------------------
PRT Present : YES
PRT Cached At : 2025-12-11 08:30:15 UTC
PRT Expires On : 2025-12-25 08:30:15 UTC
PRT Age : 4.25 hours
Session Key Protocol : 3.1
Broker Information
-----------------------------------------------------------------
Broker Version : 2.0.123.456
Broker Service Name : microsoft-identity-device-broker.service
Broker Binary Path : /opt/microsoft/identity-broker/bin/microsoft-identity-broker
Broker Binary Timestamp : 2025-12-19 14:30:22 UTC
清理操作
该 --cleanup 命令进行安全操作。 使用用户确认进行双重清理:
确认提示
在继续之前,dsreg 会显示:
WARNING: This operation will permanently remove all local accounts, credentials, and cached tokens.
Running as root will also remove device certificates and private keys from:
- /etc/microsoft/identity-broker/certs (certificates)
- /etc/microsoft/identity-broker/private (private keys)
This is an irreversible operation.
Do you want to continue? (Y/N):
必须输入 Y 或 y 才能继续。 任何其他输入将取消该操作。
阶段 1:用户级清理(始终运行)
- 清除所有缓存的帐户
- 删除所有身份验证令牌
- 删除存储的凭据
- 清除 PRT 缓存
- 删除用户缓存目录:
~/.cache/intune-portal~/.cache/Microsoft~/.cache/microsoft-edge~/.config/intune~/.config/microsoft-identity-broker~/.local/share/intune-portal
阶段 2:设备密钥和证书清理(仅限根)
如果以根身份运行,sudo dsreg --cleanup则还会删除:
- 停止
microsoft-identity-device-broker服务 - 设备私钥来自
/etc/microsoft/identity-broker/private/ - 来自
/etc/microsoft/identity-broker/certs/的设备证书 - 系统级中转站数据
/var/lib/microsoft-identity-device-broker - 仅接触在证书目录中以
drs_*或stk_*为前缀的文件 - 安全:不修改其他密钥或证书
重要说明
- 清理不会从 Entra ID 中注销设备
- 若要完全删除设备,请单独运行
sudo dsreg --tenant-id <id> --unregister - 清理后,用户必须再次登录才能还原 PRT
- 在没有 sudo 的情况下运行只会清除用户缓存,而不是证书
故障排除
“未能获取代理实例”
原因: 代理未运行或未安装 解决方案:
# Check if broker is running
systemctl status microsoft-identity-device-broker
# Start broker if needed
systemctl start microsoft-identity-device-broker
“设备注册状态:未注册”
原因: 设备尚未向 Entra ID 解决方案注册:
- 检查与 Entra ID 的网络连接
- 确保设备满足注册要求
- 为您的组织启动注册流程
“PRT 存在:否”
原因: 未登录用户或 PRT 已过期 解决方案:
- 使用 Entra ID 帐户登录
- 验证 PRT 刷新所需的网络连接
- 检查时间的同步(PRT 需要准确的时间)
退出代码
| Code | 含义 |
|---|---|
| 0 | 成功(即使未注册或没有 PRT) |
| 1 | 命令行参数无效 |
| 2 | 无法初始化(代理服务器不可用) |
| 3 | 查询失败并出现错误 |
| 4 | 权限不足(需要 sudo) |
| 5 | 操作所需的 DRS 令牌 |
| 6 | 设备注销失败 |
| 7 | 清理操作失败 |
| 8 | 用户取消了清理操作 |
安全体系结构
特权分离
该工具通过适当分离关注点来实现安全性:
-
业务逻辑层 (
DeviceBrokerImpl): 无特权检查,仅可测试逻辑 -
IPC 边界 (
DBusDispatcher):通过callerUid验证实施安全 - 需要 root 权限的操作:在 D-Bus 边界而不是在业务逻辑中实现。
清理过程安全
证书清理经过安全设计:
- 仅删除在
drs_*中包含stk_*或/etc/microsoft/identity-broker/private前缀的文件 - 从不接触系统或用户证书
- 在任何破坏性操作之前提供确认提示
Architecture
该工具使用现有的中转站组件:
- DeviceBroker - 用于设备注册查询和特权操作
- BrokerCore - 用于 PRT 和身份验证状态
- DeviceInfoAccessor - 用于设备信息检索
- CacheManager - 用于读取缓存凭据
- D-Bus IPC - 用于与代理服务的安全通信
它与中转站共享相同的组件,确保结果一致。
与 Windows dsregcmd 的比较
| 功能 / 特点 | Windows dsregcmd | Linux dsreg |
|---|---|---|
| 设备加入状态 | ✓ | ✓ |
| 设备 ID | ✓ | ✓ |
| 租户 ID | ✓ | ✓ |
| PRT 状态 | ✓ | ✓ |
| PRT 时间戳 | ✓ | ✓ |
| 证书指纹 | ✓ | ✓ |
| 彩色编码输出 | ✗ | ✓ |
相关内容
有关详细信息,请参阅以下 Intune 文档:
- 适用于 Linux 的 Microsoft 单一登录的新增功能
- Microsoft Identity Broker for Linux 概述
部署指南:在 Microsoft Intune - 注册指南:在 Microsoft Intune 中注册 Linux 桌面设备。