域控事务自动批量处理工具研究
2020-06-29刘翠媚李文祺尹婕刘可欣
刘翠媚 李文祺 尹婕 刘可欣
摘要:采用.Net WinForm等技術制作一款工具,不仅可以批量把域账号从安全组删除,而且还可以批量修改域账号的基本属性。当前批量处理域账号基本使用cmd脚本,人机交互界面并不友好,通过对域控事务自动批量处理工具的研究,域控使用人员在处理域控账号时减少了人工操作时间,减少了人为失误,提高了效率,实现了账号安全、权限安全以及数据安全。
关键词:域控;批量;.Net;WinForm;权限安全
1 研究背景
如今大型企业接入局域网的办公终端数量级都以千为统计单位,为了实现统一管理,基本都是通过域控来实现计算机命名规范、组策略控制屏保、计算机安全选项、账号启禁用等功能。
此外,文件共享服务器的权限控制也与域控息息相关。在日常运维中发现的问题主要包括以下几个方面:
(1)通过在域控里对应的VPN资源安全组添加用户账号,使得用户账号拥有访问该VPN资源的访问权限,但用户账号加入安全组后不能设置时效,导致该用户账号一直拥有访问该VPN资源的权限。
(2)用户只能使用UK登录计算机,而域账号的账号密码则由信息管理部门统一回收保管。当UK损坏或遗失,才开放账号密码登录计算机。但账号密码的回收以及密码的重置都需要人工操作。
(3)由于用户会出现调职的情况,调职后,用户需要加入新的安全组才能访问对应的共享文件夹。实际情况是,人工操作经常只会把需要加入的安全组添加了,但却忘记将不需要的安全组删除,那么用户所在的安全组就会一直增加,可访问的共享文件夹也一直递增,不符合数据安全的要求。
(4)大型企业人员调动频繁,域控中用户的岗位、联系方式、备注描述等基本属性需要维护,数量单一时人工操作比较容易,但数量一旦上百,这些基本属性的维护工作量就要耗费大量的人力和时间。
(5)微软自带一个域控的图形化页面管理工具,但该工具只能对某一账号或者某一计算机记录进行属性修改,即使有批量修改的功能,但范围具有局限性,并不能根据实际运维进行批量修改。
(6)cmd脚本能够批量修改用户账号或者计算机组织架构、基本属性,但每次操作都需要将用户账号或者计算机特异名以及特定脚本结合起来才能实现某一需求。虽然这个脚本实现的方法比自带工具快,但是每次操作都要进行数据整理,且界面不友好,对不熟悉域控cmd脚本的管理人员整理域控账号是一大难题。
因此,研究一个自动、批量处理域控用户账号、计算机账号、安全组人员的工具具有较强的实用性和高可靠性,兼具高效率和推广价值。
通过后台封装固化域控脚本功能,域控管理人员能够通过功能模块实现批量处理域控事务,即使是刚接手域控的管理人员也能完成基本的运维工作。
2 工具研究与实现
2.1 实现思路
(1)首先要保证该工具的使用安全性。由于该工具在处理域账号及计算机账号时能够批量操作,当发生人为失误的时候,对企业局域网内的终端影响很大,容易发生信息安全事故。因此,该工具前台需设置账号密码登录进行用户识别。
(2)由于普通用户的终端无权限对域控数据进行操作,因此,该工具需认证登录域控服务器,从而对域控用户账号以及计算机账号进行修改。
(3)每次操作后都可以确认执行结果以及提供操作日志查询,即使误操作也可以被及时发现并恢复原状。
2.2 VPN资源安全组人员的添加与删除功能的实现
该功能最关键的是时间,根据实际运维,操作为delete需在特定时间点定时执行,且当操作delete有对同一用户、同一资源组操作的,以时间最新的覆盖时间旧的;add操作则是立即执行。核心代码如下:
if (item.Operate == "delete")
lstCmds.Add(string.Format(tsTemplate,"task_"+item.SAMAccount,item.SAMAccount,item.VPNGroup,"rmmbr",item.TaskDateTime.Value.ToString("yyyy/MM/dd"),item.TaskDate-
Time.Value.ToString("HH:mm")));
else if (item.Operate == "add")
lstCmds.Add(string.Format(tsTemplate,"task_"+item.SAMAccount,item.SAMAccount,item.VPNGroup,"addmbr",item.TaskDateTime.Value.ToString("yyyy/MM/dd"),item.TaskDate-
Time.Value.ToString("HH:mm")));
2.3 修改基本属性功能的实现
修改密码和修改描述这两个功能,都需提供修改框给操作员填写对应需修改的密码和描述。这两个修改功能使用dsmod user的脚本,分别对应的参数是desc和pwd。核心代码如下:
if (method == Models.BWMethod.DRModifyPWD)
{foreach (var item in list){lstCmds.Add(string.Format("dsmod user \"{0}\" -pwd {1}",item.UniqueName, txtUpdate-
Content.Text.Trim()));
CommandTemplates.Add(string.Format("dsmoduser\"{0}\
"-pwd{{0}}",item.UniqueName));}}
2.4 删除不属于用户安全组功能的实现
分别制作白名单表、组织架构与安全组对应表,利用程序进行判断,当用户含有的安全组不属于对应表里相对的组织
架构,则把该安全组删除。当用户含有的安全组属于白名单里的,则自动保留。核心代码如下:
lstMapping.Clear(); lstBelongsTo.Clear();
var item = grp.First();
If(item.Item.OrganizationName==null||item.Item.OrganizationName.Trim()==""||item.Item.BelongsTo==null||item.Item.BelongsTo.Trim()=="") continue;
lstMapping.AddRange(grp.Select(i=>i.Mapping.MappingTo.Trim()).Distinct());
foreach (var str in item.Item.BelongsTo.Split(';'))
{if (str.Trim() == "") continue;
lstBelongsTo.Add(str.Trim());}
3 工具應用效益分析
当实验对象为50名用户时,实验结果如表1所示。
从表1可以看出,修改用户密码以及确认用户隶属安全组是否存在冗余这两个操作上,使用工具比人工操作所用时间减少约60%以及80%,极大地提高了工作效率。
4 结语
随着科技的日益发展,计算机信息技术对于企业的影响力日益增强,电力企业的信息安全与否直接影响到电力企业的经济效益,有效的信息运维辅助工具能够提高系统管理员的操作简易性,让信息运维人员有更多的精力投入到智能电网的开发中。通过对域控事务自动批量处理工具的研究,域控使用人员在处理域控账号时可以减少人工操作的时间,减少人为失误,实现账号安全、权限安全以及数据安全,提高工作效率和质量,对企业信息安全建设起到了一定的促进作用。
[参考文献]
[1] 狄伯豪.AD域控管理在集团性企业的应用[J].硅谷,2015(2):88.
收稿日期:2019-10-23
作者简介:刘翠媚(1990—),女,广东江门人,工程师,研究方向:信息运维智能化。