腳本:列出域客戶端計算機的本地管理員成員

有個客戶問能不能限制域客戶端計算機的本地管理員組成員,回答他可以使用組策略中的受限制的組實現。又怕他會問組策略沒有反饋結果,就拼湊了下面的腳本
 
使用說明:
  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"
--------------------------------------------------------------------
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章