List Clients Local Admininistrators
Questo script WSH prende in input un elenco (computers.txt) di computer (client/server) e si collega ad ognuno di essi per ricavarne la lista degli utenti che fanno parte del gruppo Administrators, il risultato dell'operazione viene poi scritto in un file di output (lcladmns.txt); è possibile generare velocemente tale elenco utilizzando lo script “List All Computers And Users Within An OU And SubOUs“.
Gli errori di connessione vengono invece inseriti in un file separato denominato "errors.txt".
Lo scopo è quello di generare un semplicissimo report che possa aiutarvi ad individuare tutti quegli account utente che possiedono ingiustificatamente diritti amministrativi sui computer del dominio... quante volte, ad esempio, si assegnano temporaneamente dei permessi e poi ci si dimentica di rimuoverli?
Gestisce in maniera completamente autonoma le operazioni di scrittura dei risultati su file di testo, potete perciò eseguirlo indifferentemente con entrambi i motori WSH ("wscript.exe" oppure "cscript.exe") senza quindi dovervi preoccupare di reindirizzarne manualmente l'output.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 | '************Set Variables here************ ' Results output file ResultsFile = "lcladmns.txt" ' Errors log File ErrorLog = "errors.txt" ' Computers list file ComputersFile = "computers.txt" '****************************************** '*****Contasts Const OpenAsASCII = 0 Const OverwriteIfExist = -1 Const ForAppending = 8 TotErr = 0 '*****End of Contasts Set oFS = CreateObject("Scripting.FileSystemObject") '*****If ComputersFile Doesnt exist then create it and write local pc name into it If not oFS.FileExists(ComputersFile) Then Set fFile = oFS.CreateTextFile(ComputersFile, OverwriteIfExist, OpenAsASCII) Set oWshNet = CreateObject("WScript.Network") fFile.WriteLine(oWshNet.ComputerName) fFile.Close End If Set oTS = oFS.OpenTextFile(ComputersFile) Set oTSOut = oFS.CreateTextFile(ErrorLog) Set fFile = oFS.CreateTextFile(ResultsFile, OverwriteIfExist, OpenAsASCII) Do Until oTS.AtEndOfStream sComputer = oTS.ReadLine On Error Resume Next '*****MAKE CONNECTION Set oAdminGroup = GetObject("WinNT://" & sComputer & "/Administrators") '*****END OF CONNECTION If Err <> 0 Then TotErr = TotErr + 1 oTSOut.WriteLine "Error on " & sComputer & ":" & Err.Number & ", " & Err.Description Else On Error Goto 0 fFile.WriteLine ("--------------> " & sComputer) For Each oAdminUser in oAdminGroup.Members fFile.WriteLine Mid(oAdminUser.ADsPath, 9) Next fFile.WriteLine ("--------------> " & sComputer) fFile.WriteLine ("") End If Loop fFile.Close oTS.Close oTSOut.Close If TotErr = 0 Then msgbox "Task completed with " & TotErr & " errors" Else msgbox "Task completed with " & TotErr & " errors" & Chr(10) & Chr(13) & "Please check the error log" End If |
Suggeriti dall'autore
- Come elencare gli amministratori locali di un dominio Windows - How to list local administrators in a Windows Domain
- WSH - Windows Scripting Host
Print This • Email this • Twit This! • Add to del.icio.us • Share on Facebook • Digg This! • Stumble It! • AddThis! • Share on Segnalo Alice • Share on OKNotizie