平台化管理AD域用户及自动化重置密码、日志统计

部门现在缺人,从内网找了个高手来,这哥们是负责邮件集群的,挺牛逼的,负责全网mail系统,现在只有他自己负责这些了,所以他经常被琐碎的事情给缠着,没办法做外网的运维。他人过来,也就意味着我们部门也要兼管理exchange集群,本来和我八竿子打不着 的,上次开会居然让我帮忙搞这东西。。。哎。。。 领导的话,要听,走起!

要做的东西简单,以前管理账号,重置密码虽然有powershell的脚本,但是还是需要进入3389进入系统,填写密码,打开powershell脚本,运行相应的指令。相关的操作基本都是这样,很棘手的。

要改成尽量效率些,在保证安全的情况下,可以利用一切的接口。

项目名,adwebops

感叹公司大了,傻x也多了,每个星期都有超级多的重置密码、还有不少的入职和离职。 密码记不清的原因是,公司定期要求改密码,而且个数每次要增加一位。。。

用到的技术

powershell 大家懂的,编写windows脚本的神器,powershell可以很好的支持域信息的增删改查

ds命令 DC自带的命令集合

tornado 高性能web框架

jquery 前端

mysql 日志,平台账号密码

memcached token,kv

因为基本是我自己搞的,所以我可以直接把设计思路给大家共享下,但是具体的代码就不好分享啦,大家都懂的,毕竟是给公司写的。 这代码虽不能分享,但大家有疑问尽量的提出来吧,就当互相交流,我会尽量的回答的。。。。

powershell的用法,不难的,网上都有实例的。

举个例子,比如:收集用户信息

PowerShell收集AD用户信息  #定义用户所属OU、域名  $domain = “ou=Service,dc=testj,dc=com”  #定义输出结果存放位置  $aduser_output = “c:\aduser_output.csv”  #定义函数:导出用户描述  Function GetADUserDesc ($user)  {  $userpro = Get-ADUser $user -Properties *  $aduserdesc = $userpro.Description  return $aduserdesc  }  $dn=”CN=tt,OU=server,OU=admin,DC=testj,DC=com”  #定义函数,导出用户所在位置  Function GetADUserCon ($user)  {  $userpro = Get-ADUser $user -Properties *  $aduserdn= $userpro.DistinguishedName  If ($aduserdn.contains(“OU=”))  {  $aduserdn.indexof(“OU”)  $aduserdn.indexof(“DC”)  $adusercon = $aduserdn.replace(“$domain”,””)  }  Else {$adusercon = $aduserdn}  return $adusercon  }  #导入AD管理模块  Import-Module ActiveDirectory  #导出AD用户信息  $users = Get-ADUser -Filter * -SearchBase “$domain”  #构造HASH表,将所需用户属性输出到CSV文件  $users|Select-Object @{name=”account”;expression={$_.SamAccountName}},`  @{name=”description”;expression={GetADUserDesc $_.SamAccountName}},`  @{name=”container”;expression={“Service “}},`  @{name=”domain”;expression={“testj.com”}}`  |export-csv -encoding UTF8 -path $aduser_output

powershell 调用接口创建用户

$company = “Rich Computer”$objDomain = New-Object System.DirectoryServices.DirectoryEntry(“LDAP://OU=公司账户,OU=$company,DC=PSDomain,DC=com,DC=cn”)$objUser = $objDomain.Create(“user”, “CN=Jack Dong”)$objUser.Put(“displayName”,”Jack Dong”)$objUser.Put(“userPrincipalName”,fengyun.rui@rxiaorui.cc)$objUser.Put(“sAMAccountName”,”xiaorui”)$objUser.Put(“company”,$company)$objUser.Put(“department”,”Sales”)$objUser.Put(“TelephoneNumber”,”110″)$objUser.Put(“title”,”VP”)$objUser.SetInfo()$objUser.SetPassword(“Pass01!”)$objUser.psbase.InvokeSet(“AccountDisabled”, $false)$objUser.SetInfo()

有很多的域相关的管理功能的。~ 对我来说,不用太懂powershell的编程,老外有不少实例的,大家google下,改改就能用了

下图是我的设计思路,可以参考下。

首先是访问自助页面:

排队的功能

给大家看下写的几个页面样式。。。

判断是否有手机号码 !!!

输入验证码 !!!

如要没有手机号码,那么我们就走第二套方案,解决用户密码重置 ~

用户的添加删除 ~

登录~

修改成功后~

token ~

统计次数

总有看腻的时候,不论何等荣华的身份,

平台化管理AD域用户及自动化重置密码、日志统计

相关文章:

你感兴趣的文章:

标签云: