分类
电脑技巧

AD账号加到本机管理员组

在日常工作中,有时需要将某个AD账号加到本机管理员组中,但是如果用AD中的受限组来做的话,会将Admin组现有的其它成员全部移出来的!下面的脚本就是专门为解决此问题所写的!
以前,我有写一个将AD中的某个账号加到用户电脑的本机管理员的脚本,如下:
Dim oWshNetwork
Set oWshNetwork = WScript.CreateObject(“WScript.Network”)

Dim strComputer
strComputer = oWshNetwork.ComputerName
‘WScript.Echo strComputer

Set objGroup = GetObject(“WinNT://” & strComputer & “/Administrators”)
Set objUser = GetObject(“WinNT://Domain/DomainUser“)
objGroup.Add(objUser.ADsPath)
但是这个脚本有个不足,就是如果查到用户”DomainUser“已存在于本机管理员中的话,就是出现一个错误,说用户已经存在,加到开机脚本中后,用户经常会抱怨,所以后来我又经过改进,如下:
Dim sFlag
Dim oWshNetwork
Set oWshNetwork = WScript.CreateObject(“WScript.Network”)

strComputer = oWshNetwork.ComputerName
sFlag=0
Set colGroups = GetObject(“WinNT://” & strComputer & “/Administrators”)

For Each objUser In colGroups.Members
‘Wscript.Echo  objUser.Name

Next

strTestString = “/” & strComputer & “/”

Set colGroups = GetObject(“WinNT://” & strComputer & “/Administrators”)

For Each objUser In colGroups.Members
If InStr(objUser.AdsPath, strTestString) Then
‘Wscript.Echo “Local user: ” & objUser.Name
Else
IF objuser.Name = “DomainUser” Then
sFlag=1
‘wscript.echo “IN”
end if

‘Wscript.Echo “Domain user: ” & objUser.Name

End If
Next
if sFlag=0 then
‘wscript.echo “NO”
Set objGroup = GetObject(“WinNT://” & strComputer & “/Administrators”)
Set objUser = GetObject(“WinNT://Domain/DomainUser“)
objGroup.Add(objUser.ADsPath)
end if
这样更改,加了一个判断检测后,就不管此用户是存在于本机的管理员组,都不会有错误提示,如果已存在,则结束运行脚本,如果不存在,将DomainUser加到本机管理员组!
有需要的用户,将上面的代码COPY出来,存为.vbs格式,放在domain.com\SYSVOL\domain.com\scripts下面,用GPO加到Computer Setting的启动脚本中,这时候对用户的权限没有要求,因为这个时间是电脑启动中,用户还没有登录,是以域管理员的身份在执行脚本.

大家要用的话,只要将Domain改为你的Domain Name,将DomainUser改为你要加到本机管理员组的账号,就可以了!
希望这个对大家有用!我现在就是用这个,将我们一个管理账号加到所有电脑中,这样就方便平时的管理工作!

分类
电脑技巧

在域控上实现同时更改所有客户端本地administrator的密码

例一、更改域客户机本地管理员密码
1.在DC或者有权限的电脑上运行管理工具-Active Directory 用户和计算机,选定你欲操作的OU,新建一组策略,添加一条开机脚本。
2.开机脚本内容如下
Changing the Local Administrator Password.vbs
file:    Changing the Local Administrator Password.vbs
Author: Microsoft
strComputer = “.”
Set objUser = GetObject(“WinNT://” & strComputer & “/Administrator,user”)
objUser.SetPassword “testpassword”
objUser.SetInfo
3.保存组策略后,运行cmd,执行secedit /refreshpolicy MACHINE_POLICY命令立即刷新组策略。
注:
1. 本例不考虑管理员口令已改名的情况
2. 不考虑口令已经更改过,只要客户端重启就重置一次密码。
注意:把脚本集中存放在一个目录下,设置该目录权限,去除domain user,添加domain computer
例二、统一系统内置管理员帐号的帐号名
脚本如下:
file:    Remove User from Local Administrators Group.vbs
Author: FinaL
Date:    2004-4-19 21:46
说明:    移出本地管理员组中不需要的帐号
strComputer = “.”      //“.”代表本机
ValidUsers = “administrator”              //需要保留的用户名,可以指定多个
Set objGroups = GetObject(“WinNT://” & strComputer & “/Administrators,group”)
For Each objUser in objGroups.Members
If InStr(1,ValidUsers,objUser.Name,1)=0 Then
objGroups.Remove(objUser.AdsPath)        //删除帐号使用computer对象的delete方法
End If
Next
例3清理客户端的管理员权限帐号
1.先把客户端系统内置的管理员帐号统一为administrator。在选定OU上加一条组策略,“计算机配置”-“Windows配置”-“安全设置”-“本地策略”-“安全选项”,“重命名系统管理员”中指定为”administrator”。
2.把把客户端系统内置的管理员帐号密码统一修改。在选定OU上加一条开机脚本,修改administrator帐号的密码

 

How to:重置客户端Administrator密码

重置Administrator密码,一个老生常谈的问题,很多人的方案是在客户端上执行启动脚本或者登录脚本。

以下方案主体来自Technet Script Guy:

Option Explicit

On Error Resume Next

Msgbox “本操作将修改当前在线的客户端的本地Administrator密码”, 1, “请注意”

Set objOU = GetObject(“LDAP://OU=Finance, DC=fabrikam, DC=com”)
objOU.Filter = Array(“Computer”)

For Each objItem in objOU
strComputer = objItem.CN
Set objUser = GetObject(“WinNT://” & strComputer & “/Administrator”)
objUser.SetPassword(“i5A2sj*!“)
Next

Msgbox “本次操作已经成功完成”, 0, “恭喜您”

 

红色字体部分,请根据您的企业AD相关信息修改;蓝色部分为新的Administrator密码;该脚本将修改指定容器内所有在线的已加入域的客户端Administrator密码。脚本只需要在某台DC上执行就行,不需要作为启动脚本或者登录脚本。