跟踪漫游用户

当拥有许多漫游用户时,你经常需要知道用户登录到了哪台计算机上。试图让用户自己找到内部的计算机名称,或是放在计算机某处的一个小标签(经常会不见了)并不总是一件容易的事情,而结果就是这个任务经常会花费很多时间。并且有时候你只是想在不需要和用户通话的情况下就知道他登录到了哪台计算机上。


幸运的是,这里有一个变通的方法。你可以使用一个简单的命令从一个用户名得到一台计算机的名称,然后Ping那个用户的机器看看他是否登录了。DNS和Dnscmd工具让它变得可行。你可以从Windows OS光盘的\Support\Tools目录下面找到Dnscmd工具,并可以在任意的Windows Server 2003、Windows XP或者Windows 2000机器上运行这个工具。


利用Dnscmd工具,你可以得到一个用户在DNS中注册的名字缩写和这个用户登录的计算机名称。在我们的DNS中,我在域的正向查找区域中创建了一个名为users的域(例如,users.company.com)。现在我可以使用Dnscmd注册一个别名,或是CNAME,用于一个用户登录时的资源记录。我使用Dnscmd命令的/recordadd开关和CNAME选项,按照下列语法:

dnscmd [ServerName]  /recordadd ZoneName  NodeName CNAME   Host|DomainName 

在这个语法中,ServerName用来指定DNS服务器的名称。ZoneName和NodeName分别指定包含这个记录的区域和节点名称。

Host|DomainName指定了你想要添加到那条记录中的DNS主机和域的完全合格域名(Fully Qualified Domain Name,FQDN)。例如,对于登录到计算机PC1且英文缩写是xxx的漫游用户,命令:

dnscmd MyDNSServer  /recordadd company.com  %username% .users CNAME  %computername%
 .%userdnsdomain% 

在新创建的users.companyname.com下面创建了一个名为XXX的CNAME项。该项包含了这个FQDN PC1.comanyname.com。

现在我们已经有了为这个用户注册的别名,你可以输入:

ping -a XXX.users.company.com 

或者

ping -a XXX.users 

去ping这个用户的计算机,看看这个用户是否登录了。

如果想在用户注销时删除这个记录,你可以在命令中使用/recorddelete开关和CNAME选项。
dnscmd MyDNSServer
  /recorddelete company.com  %username%.%users CNAME  %computername%.%userdnsdomain% /f 

我已经在组策略对象(GPOs)中把这些命令作为登录和注销脚本实现了。现在我可以很轻松地跟踪漫游用户登录到了哪些机器上。

分享到