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

有个客户问能不能限制域客户端计算机的本地管理员组成员,回答他可以使用组策略中的受限制的组实现。又怕他会问组策略没有反馈结果,就拼凑了下面的脚本
 
使用说明:
  1. 把下面代码拷贝到记事本中,并另存为listlocalgroup.vbs
  2. 将listlocalgroup.vbs拷贝到域控的C盘根目录中
  3. 在域控的根目录下新建computers.txt,其中为域客户端计算机名,每个一行
  4. 使用域管理员打开命令行,在命令行中输入以下命令:
     cd \
     cscript listlocalgroup.vbs
  5. 等待命令执行完毕会在目录下生成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"
--------------------------------------------------------------------
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章