域账号加到本机管理员组和本机Power Users组

简介:

在日常工作中,有时需要将某个AD账号加到本机管理员组中,但是如果用AD中的受限组来做的话,会将Admin组现有的其它成员全部移出来的!下面的脚本就是专门为解决此问题所写的!

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改为你要加到本机管理员组的账号,就可以了!

大家都知道,在域环境中,默认情况下,所有域用在本地电脑中只有Users组的权限,但是,在实际应用中,Users的权限很少,连设置共享都不行,有些环境需要给域用户POWER USERS的权限,下面的脚本,就是为实现些功能而写!

注意上:应用时,请将下面黑体的domain改为你自已的域名!

dim sFlag
Dim oWshNetwork
Set oWshNetwork = WScript.CreateObject("WScript.Network")

strComputer = oWshNetwork.ComputerName
sFlag=0
Set colGroups = GetObject("WinNT://" & strComputer & "/power users")

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

Next

strTestString = "/" & strComputer & "/"

Set colGroups = GetObject("WinNT://" & strComputer & "/power users")

For Each objUser In colGroups.Members
    If InStr(objUser.AdsPath, strTestString) Then
        'Wscript.Echo "Local user: " & objUser.Name
    Else
        IF objuser.Name = "Domain users" 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 & "/power users")
             Set objUser = GetObject("WinNT://domain/domain users")
             objGroup.Add(objUser.ADsPath)
end if     

 

很实用,有兴趣的朋友可以试试。


本文转自 zhou_ping 51CTO博客,原文链接:http://blog.51cto.com/yuntcloud/1277339,如需转载请自行联系原作者


相关文章
|
8月前
|
Shell
检测本机当前用户是否为超级管理员
检测本机当前用户是否为超级管理员
107 1