博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
域账号加到本机管理员组和本机Power Users组
阅读量:6995 次
发布时间:2019-06-27

本文共 2299 字,大约阅读时间需要 7 分钟。

在日常工作中,有时需要将某个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,如需转载请自行联系原作者

你可能感兴趣的文章
Silverlight如何调用淘宝API
查看>>
ESP8266- AP模式的使用
查看>>
hdu 1503 LCS输出路径【dp】
查看>>
博客园开张第一天
查看>>
java绘图
查看>>
The Semantic Web, Linked Data and Open Data
查看>>
用PHP逐行读取TXT文件
查看>>
从Android中Activity之间的通信说开来[转]
查看>>
SSH 常用命令
查看>>
模型思维_第1-4课_学习笔记
查看>>
linkin大话面向对象--方法详解
查看>>
Linkin大话Java和internet概念
查看>>
Linux指令--cp
查看>>
.Net多线程
查看>>
POJ 3660 Cow Contest——flody求传递闭包
查看>>
Java多线程之生产者消费者问题<一>:使用synchronized keyword解决生产者消费者问题...
查看>>
JSON字符串语法
查看>>
shell脚本read -t 超时输入测试
查看>>
rabbitmq(1)-入门
查看>>
Spring框架针对dao层的jdbcTemplate操作crud之add添加数据库操作
查看>>