Windows Server 2008 R2中的Djoin命令应用解析
2010-01-17 08:48:57 来源:WEB开发网第一部分:离线域加入
要求
【IT专家网独家稿件】可以在所有Windows 7和Windows Server 2008 R2中找到Djoin。用户不需将Active Directory域的性能级别提升至Windows Server R2,而且用户不需要使用R2域控制器,因为djoin与此前的域控制器版本可以兼容。由于Djoin要求管理员特权,所以用户需要在提升的命令提示符上使用此工具。当然,用户也需要一个有足够权限的帐户创建域电脑帐户。
两个步骤
离线域加入一台电脑主要由两个步骤。首先,用户要在Active Directory中创建一个电脑帐户。这一过程称为服务提供(PRovisioning)。最简单的操作是在R2域控制器上完成这一过程。Djoin将创建一个64位编码的元数据团作为文本文件。这个数据团要用于离线域加入Windows 7电脑。
服务提供
此命令在R2域控制器上准备了一个电脑帐户,就像这样:
djoin /provision /domain <domain to be joined> /machine <name of the computer to be joined> /savefile blob.txt
如果用户不需要Windows Server 2008 R2域控制器,那可以在Windows 7电脑上通过/downlevel参数运行djoin.exe命令,这一Windows 7应该已经成为了域成员。
离线域加入
用户要在该电脑上复制要加入到域中的bob.txt文件,并发布以下命令:
djoin /requestODJ /loadfile blob.txt /windowspath %SystemRoot% /localos
有必要使用localos参数在该电脑上运行djoin命令。在用来确定指向目标电脑系统根文件的Windows路径参数的电脑上,也可以运行djoin命令。如果用户想域加入一个离线虚拟机,可以使用此方法。这样,一旦虚拟机启动时,就已经是一个域成员,而不需要请求重启。
在此,我们还有很多其他性能没有谈到。下面是所有djoin参数的完整列表。之后,我们将讨论离线域加入如何在无人安装情况下运行,以及在哪些情况下可以使用此功能。
命令说明:
djoin.exe [/OPTIONS] /PROVISION – 在域中准备一个电脑帐户 /DOMAIN <Name> – 被加入域的名称 /MACHINE <Name> – 开始域的名称 /MACHINEOU <OU> – 选择性(OU)是创建帐户的地方 /DCNAME <DC> – 选择性 <DC> 可锁定帐户创建 /REUSE – 重新使用任意已有帐户,帐户密码会被重置 /SAVEFILE <FilePath> – 为<FilePath>中的文件节约准备数据 /NOSEARCH – 跳过帐户冲突检查,快速请求DCNAME /DOWNLEVEL – 支持Windows Server 2008 或更早版本域控制器的使用 /PRINTBLOB – 返回64位编码元数据团作为应答文件 /DEFPWD – 使用默认电脑帐户密码 /REQUESTODJ – 请求下次启动时进行离线域加入 /LOADFILE <FilePath> – 通过/SAVEFILE预先制定<FilePath> /WINDOWSPATH <Path> – 离线时通往Windows Directory的路径 /LOCALOS – 允许/WINDOWSSPATH来指定本地运行的操作系统 这一命令必须作为本地管理员身份运行。 更改要在重启后才能应用。 |
第二部分:无人情况的离线域加入
完成第一部分的操作是一回事,而在电脑初次启动的时候,部署大量已经成为域成员的电脑又是另一回事。
可以在无人安装的情况下离线域加入一台电脑。首先,用户需要完成第一部分中的两个步骤,例如,在域中创建电脑帐户以及元数据团。然后为unattend.xml添加以下部分:
<Component>
<Component name=Microsoft-Windows-UnattendedJoin>
<Identification>
<Provisioning>
<AccountData>Base64Encoded Blob</AccountData>
</Provisioning>
</Identification>
</Component>
“Base64Encoded Blob”要被blob.txt文件的内容替代。请检查下面的截屏,以便对元数据团有所了解。
可能用到离线域加入的情况
笔者读到离线域功能的时候,第一个想法是觉得对于那些购买了预装Windows 7系统电脑的大型企业而言,这是一个极大改进。用户只需发送一个已经域加入到电脑厂商的操作系统映像就可以了。一旦新电脑连接到该厂商网络中,他们就可以使用了,而不需要将新电脑加入到该厂商的Active Directory域中。
不过,由于每台电脑需要不同的元数据团,所以操作系统映像本身并不能完成此操作。用户需要先创建blob文件,然后电脑厂商必须确认每台电脑都接收到了自己的元数据团。问题在与元数据团必须包含在unattend.xml中。因此,这一过程比自动为多台电脑指定名称要复杂一些,因为用户不能连续指定编号或以电脑的MAC地址作为其名称。
相反,用户需要一个中心存储来保存所有blob文件以确保每台电脑都接收到了正确的unattend.xml。所以,电脑厂商要为这一过程做好准备——而这似乎还不太现实。
尽管如此,笔者希望很快会有第三方的解决方案可以解决这一问题。当然,用户也可以为自己编写一个方案为新安装的电脑实现离线域加入。
小型企业当然会执行手动操作。离线域加入的好处在于,部署新电脑的时候不需要管理员在本地执行操作;相对而言不需要带有明确文本密码的netdom脚本。
另一个使用离线域加入功能的情况是自动部署虚拟机的时候。如前所述,用户只需装上虚拟盘就可以域加入一个虚拟机。这样用户可以用脚本完成大量虚拟机的部署,而不需要再部署过程中不断重启。
总结
这一功能和新的离线域功能一样有用,不过笔者更希望能有一个方案让每台电脑不需要特殊的blob。这在技术上是可行的。可以在无人操作的时候添加电脑名称。而且,一旦电脑初次启动,就可以在Active Directory中创建电脑帐户。如此,就可以弃用我们在第一部分中所提到的Provisioning步骤。
笔者认为,这样的方案可改进新电脑添加到Active Directory的方式。考虑到过去新的映射技术推动了用户购买预装了Vista的电脑,似乎这样的方案值得一试。不过,微软在Vista遭到媒体负面宣传后或许不会有心思做这种技术改进吧。
更多精彩
赞助商链接