首页 | 邮件资讯 | 技术教程 | 解决方案 | 产品评测 | 邮件人才 | 邮件博客 | 邮件系统论坛 | 软件下载 | 邮件周刊 | 热点专题 | 工具
网络技术 | 操作系统 | 邮件系统 | 客户端 | 电子邮箱 | 反垃圾邮件 | 邮件安全 | 邮件营销 | 移动电邮 | 邮件软件下载 | 电子书下载

操作系统

Windows 9X | Linux&Uinx | Windows Server | 其它操作系统 | Vista | FreeBSD | Windows 7 |
首页 > 操作系统 > Windows Server > 限制Windows用户的并发登录 > 正文

限制Windows用户的并发登录

出处:Winmag社区 作者:陈流浩 时间:2004-1-7 19:24:00

   可能就是这篇文章的题目吸引了你,也可能你曾经也有过同样的心愿—管理并限制Windows网络中的用户登录限制。而且你曾经为此一筹莫展,渴望解决Windows网络中因为用户任意登录所导致资源管理,用户管理,安全审核等一系列问题。我在这里(包括下文,有时也会称为并发登录)所提到的任意登录是指同一时间,同一个用户账号在不同的计算机上同时登录的现象,或者说是在一台计算机登录,在完成工作后并未注册但又在另一台计算机上登录的现象,并不是指任何时间,任何地点在一台计算机上登录的现象。如果你曾经管理过Novell网络,后来转换到Windows网络,你会因为Windows没有提供这种机制而对那些不守规矩的用户行为感到无可奈何。因为作为一名Novell管理员非常清楚,限制用户账号的并发登录,仅仅是NDS(Novell Directory Service,Novell目录服务,与Windows 2000中的Active Directory一样,旨在提供一种单点登录,统一资源管理的手段,都是基于X.500标准设计,但NDS的某些方面可能强于Windows 2000的Active Directory,并发登录限制就是一个典型)对象的一个“Check Box”,唯一要做的是Enable或者是Disable。
    用户账号在同一时间内并发登录,所产生的最大问题还是与内部或者外部网络的安全相关。例如,你是一个网络的管理员,你为自己创建了一个登录账号,因为平时管理工作的需要,你给这个账号添加了足够的权限,而且你坚信:我的网络是安全的,我的同事也是相互尊重,不会利用别人的账号作任何事情的。为了自己方便记忆(或者说登录时输入简单),你设置了一个很容易记忆(比如,123456或者与你的用户名相同),但就是因为Windows网络没有并发登录限制机制,那些对网络特权账户充满好奇心(因为他知道有特权可以做很多事情),或者平时对你稍有不满的用户试图利用你的账号做什么事情(因为你设置的密码简单,容易被猜到,而且你还相信他们不会做什么),你都无法知道,这尤如恶梦一般。那怕你设置了安全审核,但审核结果还是你自己的登录账号,这显然是Windows没有并发登录限制所导致的问题。
    直到现在的Windows 2000为止,Microsoft都没有在系统中内置限制用户并发登录的机制(如果你已经预览过Windows Server 2003,你会发现它也没有这种机制)。当然,Microsoft并不是没有倾听用户的心声,因此,Microsoft在他的Windows 2000 Resource Kit中提供了一个程序来实现这种功能,试图来掩盖普天之下众多Windows管理员的谴责声。显然,Microsoft在这方面已经向前迈进了一大步,通过本文你会了解到,到目前为止,Microsoft究竟提供了一个怎么样的解决方案,这个解决方案是否已经一呼百应,实现了Window管理员多年来的夙愿,当然包括我。首先,我们来回顾一下在没有Microsoft自己的解决方案之前,我们Windows管理员自己是如何尝试着解决这个问题的。
    一、脚本程序
    作为一名Windows管理员,想必你肯定知道脚本在日常管理工作中的重要性,比如,批量创建用户。而且我们还知道,利用脚本可以为用户创建登录脚本,在登录脚本中,你可以为用户映射网络驱动器,连接打印机等等。聪明的Windows管理员就是利用脚本第一次实现了并发登录限制,让我们一起看看是如何实现的。
    使用Kixtart脚本处理器制作如下的一个脚本程序。Kixtart是一个可以运行在Windows各个版本上增强的脚本处理引擎。如果你要测试文章中的脚本程序,你需要安装Kixtart程序。有关Kixtart的详细信息,可以访问http://kixtart.org/站点。与Kixtart配合使用的部分程序,请到对应的操作系统安装盘中相应的support目录或者Resource中查找。
    注意,脚本程序中的Onlyonce.txt是保存在Netlogon共享目录中,它一般包括一些警告与说明信息,可以任意定义。
    这个脚本看起来有点复杂。但是,它工作得很好。除了程序本身,管理员还需要做二项工作。首先,为每个用户的主目录(Home Directory)创建一个隐藏共享,指定只有这个用户可以访问并且仅允许一个用户访问(这个很重要)。其次,在用户主目录中创建一个%username%.txt文件,并且指定仅对这个用户具有读取权限。
    从上面简单的解释中大家应该已经猜到脚本实现的原理,非常简单:限制主目录仅允许一个用户访问,如果同一个用户在没有注销的前提下尝试登录,映射网络驱动器将失败,系统显示Onlyonce.txt中的内容,然后调用shutdown防止用户登录。
    我想精明的读者已经发现NTName/NTName2正常运行时会受到的威胁—主目录的服务器关闭时,用户将可以任何登录,你再也无法阻止他们的这种行为。另一个缺陷就是当另一个用户故意或者偶然地连接到其他用户的主目录,在他不离开(尽管拒绝他访问,但已经连接)的情况下,主目录的所有者将不能登录(因为已经设置同时仅限一个用户连接)。
    二、一个更简单的手段
    Windows管理员们在不断地寻找更好的解决方案。所有的努力并没有白白浪费,终于有了更好的选择。NTName—一个Windows NT网络中限制用户账号并发登录的实用程序,我们可能不记得是由哪位Windows管理员编写的,但我们肯定可以发现这个比前面的脚本程序有很大的进步。与NTName程序配套使用的是Logout程序,一个强制注销的程序。让我们粗略地看一下NTName的实现。
    当你登录到NT网络时,计算机会添加一个由你的用户名组成的NetBIOS名字,名字是唯一的,因此同一时间内它只能存在于一台计算机上,在计算机中的Byte 16值等于0x03,这个名字用来在网络中广播信息,比如,假设你已经要求打印作业完成后显示消息,Windows网络就根据你登录时产生的NetBIOS名字决定你当前登录的计算机,并显示已经完成的消息(你可以测试,假如你并发登录20个用户,只会有一台计算机接到这个消息。)。NTName就是根据这个原理来实现的,在程序运行时,它把用户名作为一个参数处理,检查这个名字是否属于当前计算机所有。如果没有任何输出,就返回ErrorLevel 0。如果输入了名字所属的系统名称,返回ErrorLevel 1,这往往意味着指定的用户名已经在另一台计算机中登录,当然你可以要求另一台计算机注销。为此,你可以在用户的登录脚本中添加以下几行:

NTName %USERNAME% >%TEMP%\LOGONEDPC.TXT ;重定向到logonedpc.txt文件If not errorlevel 1 goto Logon_OKFor /f %%f in(‘TYPE %TEMP%\LOGONEDPC.TXT’) do @echo 已经登录到%%f %0..\logout.exe:Logon_OK

CLSAT (1,1)If @INWIN = 2          ; 表示客户计算机是Windows 95/98    $L = "@LSERVER" + "\" + "NETLOGON" + "\" + "WINSET.EXE"    shell "$L USERNAME=@USERID"    shell "$L HOMEDRIVE=X:"  ; 你为用户映射的网络驱动器    shell "$L HOMEPATH=@HOMEDIR"    shell "$L HOMESHARE=@HOMESHR"    shell "$L COMPUTERNAME=@WKSTA"    shell "$L USERDOMAIN=@DOMAIN"    shell "$L LOGONSERVER=@LSERVER"    shell "$L USERPROFILE=@HOMESHR"    shell "$L OS=Windows_98"    setl "USERNAME=@USERID"    setl "HOMEDRIVE=X:"    setl "HOMEPATH=@HOMEDIR"    setl "HOMESHARE=@HOMESHR"    setl "COMPUTERNAME=@WKSTA"    setl "USERDOMAIN=@DOMAIN"    setl "LOGONSERVER=@LSERVER"    setl "USERPROFILE=@HOMESHR"    setl "OS=Windows_98"endifIf @WKSTA <> "@LSERVER"      ; 如果客户的工作站不是这台计算机    settime "@LSERVER"      ; 把工作站的时间设置成服务器时间endifuse X: "@HOMESHR"      ;这是Kixtart中自带的Net use命令$S = "@LSERVER" + "\" + "NETLOGON" + "\" + "users.txt"IF INGROUP("users") and EXIST("$S")    Display "$S"    AT (23,1) "按任何键继续"    GET $Aendif$B = "@LSERVER" + "\" + "NETLOGON" + "\" + "LOGBAT.BAT"shell "$B"     CLSBIG$X = 1DO    COLOR w/n    AT ( $X,$X*2 ) "@USERID"    $X = $X+1    UNTIL $X = 6COLOR g+/nAT ( $X,$X*2 ) "@USERID"sleep 3AT (23,0)SMALL$K=”@LSERVER”+”\”+”NETLOGON”+”\”+Onlyonce.txt”$J=”x:\”+”@USERID”+”.txt”if exist(“J$”)goto doneendifCLSDisplay “$K”Sleep 3$RC=shutdown(“”,”正在关闭系统!”,0,1,0):donecookie1 ; 需要通知Windows 98计算机当通过LMSCRIPT时脚本已经运行完毕exit
相关文章 热门文章
  • 微软宣布已售出4亿份Windows 7许可
  • Powercfg 从命令行控制系统的电源管理
  • windows NT 4.0 Domain升级到windows server 2008 R2需要注意的几个问题
  • windows 7使用GPO统一桌面黑屏
  • Windows 2003域更名工具(Domain Rename Tool)
  • 创建Windows 7部署介质
  • 轻松传送——Windows Easy Transfer
  • 使用MDT 2010执行Windows 7裸机安装
  • Windows Server 2008 R2和Windows 7的组策略
  • 监视Windows 7中的系统启动性能
  • Windows 7十大快捷键
  • 使用Windows Server 2003的Netsh命令创建DHCP作用域
  • “http 500内部服务器错误”的解决方法
  • 利用Windows 2000 Server的RRAS实现VPN服务器
  • 用凤凰万能启动盘解决本地/域管理员密码丢失
  • Win2003 Server企业版安装配置
  • Active directory 灾难恢复
  • Windows 2000/03域和活动目录
  • 如何在vmware4上创建windows 2003群集
  • MSI文件制作全过程
  • Win2000命令全集(一)
  • Windows 2000/AD技巧
  • 此系统的本地策略不允许您采用交互式登录解决方法
  • Win2000路由的安装与设置实现不同网段互通
  • 自由广告区
     
    最新软件下载
  • SharePoint Server 2010 部署文档
  • Exchange 2010 RTM升级至SP1 教程
  • Exchange 2010 OWA下RBAC实现的组功能...
  • Lync Server 2010 Standard Edition 标..
  • Lync Server 2010 Enterprise Edition...
  • Forefront Endpoint Protection 2010 ...
  • Lync Server 2010 Edge 服务器部署文档
  • 《Exchange 2003专家指南》
  • Mastering Hyper-V Deployment
  • Windows Server 2008 R2 Hyper-V
  • Microsoft Lync Server 2010 Unleashed
  • Windows Server 2008 R2 Unleashed
  • 今日邮件技术文章
  • 腾讯,在创新中演绎互联网“进化论”
  • 华科人 张小龙 (中国第二代程序员 QQ...
  • 微软推出新功能 提高Hotmail密码安全性
  • 快压技巧分享:秒传邮件超大附件
  • 不容忽视的邮件营销数据分析过程中的算..
  • 国内手机邮箱的现状与未来发展——访尚..
  • 易观数据:2011Q2中国手机邮箱市场收入..
  • 穿越时空的爱恋 QQ邮箱音视频及贺卡邮件
  • Hotmail新功能:“我的朋友可能被黑了”
  • 入侵邻居网络发骚扰邮件 美国男子被重..
  • 网易邮箱莫子睿:《非你莫属》招聘多过..
  • 中国电信推广189邮箱绿色账单
  • 最新专题
  • 鸟哥的Linux私房菜之Mail服务器
  • Exchange Server 2010技术专题
  • Windows 7 技术专题
  • Sendmail 邮件系统配置
  • 组建Exchange 2003邮件系统
  • Windows Server 2008 专题
  • ORF 反垃圾邮件系统
  • Exchange Server 2007 专题
  • ISA Server 2006 教程专题
  • Windows Vista 技术专题
  • “黑莓”(BlackBerry)专题
  • Apache James 专题
  • 分类导航
    邮件新闻资讯:
    IT业界 | 邮件服务器 | 邮件趣闻 | 移动电邮
    电子邮箱 | 反垃圾邮件|邮件客户端|网络安全
    行业数据 | 邮件人物 | 网站公告 | 行业法规
    网络技术:
    邮件原理 | 网络协议 | 网络管理 | 传输介质
    线路接入 | 路由接口 | 邮件存储 | 华为3Com
    CISCO技术 | 网络与服务器硬件
    操作系统:
    Windows 9X | Linux&Uinx | Windows NT
    Windows Vista | FreeBSD | 其它操作系统
    邮件服务器:
    程序与开发 | Exchange | Qmail | Postfix
    Sendmail | MDaemon | Domino | Foxmail
    KerioMail | JavaMail | Winwebmail |James
    Merak&VisNetic | CMailServer | WinMail
    金笛邮件系统 | 其它 |
    反垃圾邮件:
    综述| 客户端反垃圾邮件|服务器端反垃圾邮件
    邮件客户端软件:
    Outlook | Foxmail | DreamMail| KooMail
    The bat | 雷鸟 | Eudora |Becky! |Pegasus
    IncrediMail |其它
    电子邮箱: 个人邮箱 | 企业邮箱 |Gmail
    移动电子邮件:服务器 | 客户端 | 技术前沿
    邮件网络安全:
    软件漏洞 | 安全知识 | 病毒公告 |防火墙
    攻防技术 | 病毒查杀| ISA | 数字签名
    邮件营销:
    Email营销 | 网络营销 | 营销技巧 |营销案例
    邮件人才:招聘 | 职场 | 培训 | 指南 | 职场
    解决方案:
    邮件系统|反垃圾邮件 |安全 |移动电邮 |招标
    产品评测:
    邮件系统 |反垃圾邮件 |邮箱 |安全 |客户端
    广告联系 | 合作联系 | 关于我们 | 联系我们 | 繁體中文
    版权所有:邮件技术资讯网©2003-2010 www.5dmail.net, All Rights Reserved
    www.5Dmail.net Web Team   粤ICP备05009143号