您的位置:首页 > 理论基础

脚本:列出域客户端计算机的本地管理员成员

2009-12-31 15:43 183 查看
有个客户问能不能限制域客户端计算机的本地管理员组成员,回答他可以使用组策略中的受限制的组实现。又怕他会问组策略没有反馈结果,就拼凑了下面的脚本

使用说明:

把下面代码拷贝到记事本中,并另存为listlocalgroup.vbs
将listlocalgroup.vbs拷贝到域控的C盘根目录中
在域控的根目录下新建computers.txt,其中为域客户端计算机名,每个一行
使用域管理员打开命令行,在命令行中输入以下命令:
cd \
cscript listlocalgroup.vbs
等待命令执行完毕会在目录下生成Cscript_result.csv文件,使用excel对csv文件进行筛选

脚本内容:
--------------------------------------------------------------------
Const ForReading = 1
Const ForAppending = 8
Wscript.Echo "正在获取客户端的本地管理员组成员,使用时间由客户端数量决定。"
Wscript.Echo "请耐心等待..."
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objOpenTextFile = objFSO.OpenTextFile _
("c:\computers.txt", ForReading)
Set objWriteTextFile = objFSO.OpenTextFile _
("C:\Script_result.csv", ForAppending, True)
Do Until objOpenTextFile.AtEndOfStream
strNextLine = objOpenTextFile.Readline
arrServiceList = Split(strNextLine , ",")
Wscript.Echo "计算机名: " & arrServiceList(0)
strComputer = arrServiceList(0)
WritetoTXT = arrServiceList(0)
'objWriteTextFile.WriteLine(strComputer)
Set colGroups = GetObject("WinNT://" & strComputer & "")
colGroups.Filter = Array("group")
For Each objGroup In colGroups
if objgroup.name = "Administrators" then
Wscript.Echo "本地管理员组成员:"
'objWriteTextFile.WriteLine(objGroup.Name)
For Each objUser in objGroup.Members
Wscript.Echo vbTab & objUser.Name
WritetoTXT = WritetoTXT & "," & objUser.Name
'objWriteTextFile.WriteLine(vbTab & objUser.Name)
Next
end if
Next
if WritetoTXT <> strComputer then
objWriteTextFile.WriteLine(WritetoTXT)
end if
Loop
objWriteTextFile.Close
objOpenTextFile.Close
Wscript.Echo "已完成,结果已写入C:\Script_result.csv"
--------------------------------------------------------------------本文出自 “kylin_li” 博客,请务必保留此出处http://kylinli.blog.51cto.com/6719/253269
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐