Windows管理员的三大心愿之一限制Windows用户的并发登录
2009-10-29 00:00:00 来源:WEB开发网NTName %USERNAME% >%TEMP%\LOGONEDPC.TXT ;重定向到logonedpc.txt文件
If not errorlevel 1 goto Logon_OK
For /f %%f in(‘TYPE %TEMP%\LOGONEDPC.TXT’) do @echo 已经登录到%%f %0..\logout.exe
:Logon_OK
当然,你还可以使用前面提到的Kixtart修饰一下这个程序。但有一点要注意,如果允许用户看提示信息的时间过长,意味着用户有足够的时间来终止logout.exe的执行。
但是,这个NTName存在明显的不足,就是在多域的情况下,它会影响另一个域中同名账号的登录。比如,Sales域中的John没有注销,Markets域中的John将不能登录。然而,我们还是找到了解决的办法。NTName2支持自定义的NetBIOS名字,如前所述,这个名字是你登录时是由系统自动添加的。但NTName2允许你自己指定一个值,默认值为Byte 16=oxCE。由于程序需要根据这个值来确定名字冲突,这样执行速度稍微会有一点慢,另一个美中不足的是,自定义的Byte 16值可能与其他NetBIOS应用程序发生冲突。
三、Microsoft
事实上,很多Windows管理员都希望Microsoft提供一个自己的解决方案。最终,Microsoft在Windows 2000 Server Resource Kit中提供了一个命名为CConnect的程序。注意,CConnect虽然在Windows 2000中才出现,但它支持Windows NT,但对系统方面有些特殊需求,主要包括必须是NT SP4或者更高,Windows Script Host,WBEM,MDAC 2.0以上版本。Windows 2000本身已经满足这些条件。这也是目前唯一由Microsoft自己实现的一个解决方案,主要提供了这些功能:
ü 跟踪所有用户已经登录的计算机
ü 允许把并发连接限制到每用户或者每组方式