djoin是Windows内置用于离线加域的命令行工具,适用于目标机未启动、无法联网或处于隔离网络但域控制器可达的场景;分两步执行:先在域控可达机上生成含凭证的blob文件,再在目标机导入并重启完成加域。
什么是 djoin,它适合什么场景
djoin 是 windows 内置的命令行工具,专为“离线加域”设计:目标计算机尚未启动、无法联网、或处于隔离网络中,但你已有域管理员权限和域控制器可达(用于前期准备)。它不替代 netdom join 或图形化加域,而是通过预生成一个包含域身份凭证的 blob 数据,写入目标机本地策略,等其首次启动时自动完成域加入。
常见错误现象包括:运行 djoin 后直接在目标机执行却报错 Error: 0x2(系统找不到指定文件),或加域后计算机账户在 AD 中显示为“已禁用”——多半是没正确导出/导入 blob,或目标机未启用 Workstation 服务。
关键前提:执行准备阶段需一台能访问域控制器的在线机器(可以是域内任意管理机);目标机必须是 Windows Pro / Enterprise / Server,且系统版本 ≥ Windows 7 / Server 2008 R2。
分两步:先在域控可达机上生成 blob 文件
这一步必须联网、有域管理员权限,并指定目标计算机名(该名称将被创建为 AD 中的计算机对象):
djoin /provision /domain <your-domain.local> /machine <target-pc-name> /savefile C:\djoin.txt</target-pc-name></your-domain.local>
-
/domain必须是完整域名(如corp.example.com),不能是 NetBIOS 名(如CORP) -
/machine名称要符合 AD 命名规则(≤15 字符、无特殊符号、不与现有对象重名) -
/savefile路径建议用绝对路径;文件内容含敏感信息(加密后的计算机密钥),需保密,不可明文传给非信任人员
如果提示 Error: 0x80070005(拒绝访问),检查是否以管理员身份运行 CMD;若提示 Error: 0x8007054B(DNS 名称不存在),确认 DNS 可解析域控制器,或临时加 /dcname <dc-fqdn></dc-fqdn> 指定域控。
再在目标离线机上导入 blob 并触发加域
把 djoin.txt 拷贝到目标机(U 盘、光盘、或提前写入镜像),以管理员身份运行:
djoin /requestodj /loadfile C:\djoin.txt /windowspath C:\Windows /localos
-
/loadfile必须指向你拷贝过来的 blob 文件 -
/windowspath是目标机系统盘下的Windows文件夹路径(通常是C:\Windows,即使系统装在 D: 盘也得填实际 Windows 安装路径) -
/localos表示作用于当前操作系统(不是 PE 环境)
成功后不会立即生效。必须重启目标机——首次启动时,系统会自动调用 Workstation 服务,联系域控制器完成最终注册。若重启后仍显示工作组,检查事件查看器 → System 日志中是否有 Netlogon 相关错误(如 5722、5805),常因时间不同步、防火墙拦截 445/389 端口或 DNS 配置错误导致。
容易被忽略的三个细节
-
djoin 生成的计算机账户默认启用,但若目标机名已存在于 AD 中(即使已删除),加域会失败;AD 回收站启用时,需彻底清除旧对象或换名重试
- 离线机 BIOS/UEFI 时间误差超过 5 分钟,会导致 Kerberos 认证失败,加域静默失败;务必在重启前手动校准时间(哪怕只是粗略设对年月日)
- 如果目标机启用了 BitLocker,且使用 TPM + PIN 模式,首次启动加域过程可能卡在登录界面;建议先暂停 BitLocker 或改用 TPM-only 模式
djoin 生成的计算机账户默认启用,但若目标机名已存在于 AD 中(即使已删除),加域会失败;AD 回收站启用时,需彻底清除旧对象或换名重试blob 不是万能钥匙——它只解决“凭证预置”,后续仍依赖网络连通性、DNS 解析、Kerberos 时间同步等基础条件。很多问题其实不出在 djoin 本身,而出在离线机重启后的第一分钟网络状态。










