温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Windows中怎么利用限制AD用户登陆

发布时间:2021-10-22 10:29:28 来源:亿速云 阅读:377 作者:小新 栏目:系统运维

这篇文章将为大家详细讲解有关Windows中怎么利用限制AD用户登陆,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

大家都知道,Windows活动目录中,默认情况下,域用户可以在任意域计算机上登陆。哪么如何阻止这种现象发生呢?

常见的方法有在ADUC中设置用户属性中的登陆到,指定他能够登陆到的计算机。还有就是在客户端组策略的安全设置|本地策略|用户权限指派|“在本地登陆”设置允许在该计算机上登陆的用户和组。还有就是并发登陆,这里我们不讨论这个。微软有一个limitlogon工具,没怎么用过。至少我下下来我不知道从哪里下手。似乎这些方法都有一个点,需要手动一个一个的去设置用户的登陆属性,这对于大型环境,会打来很大的工作量。为此,我提出下面这个方法,主要思想创建一条域组策略的是将在该计算机上登陆最多的用户添加到“在本地登陆”中去。但是不同的机器又不同的用户,如何解决这个问题呢。我的处理方法是在每个客户端添加一个本地用户组,在策略“在本地登陆”中,将一个组添进去,将登陆客户端机器最多的用户添加到这个组中去。创建本地组和添加用户到组是可以采用脚本来实现的,从而解决了逐个设置的麻烦。

本人脚本不是很熟,很多是参照其他的脚本写的,也许有的地方不是很***。

一、创建本地组

有两种方式,一种BAT脚本,一种VBS脚本,将脚本作为启动脚本。


1、BAT方式
net localgroup LogonUser /add /comment:允许本地登组

2、VBS
strComputer = "."
Set objComputer = GetObject("WinNT://" & strComputer & ",computer")
Set objGroup = objComputer.Create("group", "LogonUser")
objGroup.SetInfo


二、找出在客户端登陆最多的用户。

谁的机器,一般情况下当然是谁使用谁登陆的最多。哪么如何找出这个用户呢?登陆登陆,对了,审核。哪么我们得在域中的策略中将登陆成功审核开启。我们只需要检索谁登陆成功审核日志最多。首先***个要解决的问题就是,我如何获得在这台机器上登陆过得域账户?

每一个域账户登陆后,都会在注册表SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList写入一个记录,下面的子项是他们的SID。哪么我只需要读出这些SID就可以了。在反过来通过SID查处用户。


Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" &_
strComputer & "\root\default:StdRegProv")
strKeyPath = "SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList"
oReg.EnumKey HKEY_LOCAL_MACHINE, strKeyPath, arrSubKeys
For Each subkey In arrSubKeys
If left(subkey,40) = "S-1-5-21-3417139075-3398302879-647143828" Then
'比较SID,只统计域帐户,上面这一行是域用户SID的前面一段,应该属于域ID。

Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery _
("Select * from Win32_UserAccount Where LocalAccount='False' And SID= '" & subkey & "'")

For Each objItem in colItems
LogonTimes=CountLogon("cotoso\\" & objitem.Name) 
'函数CountLogon,统计事件日志\安全 中成功审核的事件次数



Function CountLogon(Username)
strComputer = "."
Set objWMIService = GetObject("winmgmts:{(Security)}\\" & _ strComputer & "\root\cimv2")
Set colEvents = objWMIService.ExecQuery
_ ("SELECT * FROM Win32_NTLogEvent WHERE LogFile = 'Security' AND " & _
"EventCode = 528 AND User ='" & username & "'")  ‘统计事件528的用户
CountLogon=colEvents.Count end Function

关于“Windows中怎么利用限制AD用户登陆”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI