Var1 fioco
Var2 fioco
strComputer fioco
dicCompOS fioco
'sul riassunto di errore dopo
Regolare il dicCompOS = CreateObject (“Scripting.Dictionary„)
GetOSs () “# dizionario del carico con sistemi operativi di tutti i calcolatori di dominio„
Regolare il fso = CreateObject (“Scripting.FileSystemObject„)
Regolar tf = fso.OpenTextFile (“PC_Info.txt„, 2, allineare)
'Del ### del calcolatore ### stabilito qui
strComputer = “YOUR_SRV„
tf.write (“assistente; IP address; Nome di OS; OS Service Pack; Gruppi; Membri; Nome dell'esposizione; ")
tf.writeline (“AdsPath„)
Regolare il objComputer = GetObject (“WinNT: /„ & strComputer)
objComputer.Filter = allineamento (“gruppo„)
strIPAddress = fResolveIP (strComputer)
Per ogni objGroup nel objComputer
Per ogni objMember in objGroup.Members
var1 = objMember.Name
Se objMember.Class <> “gruppo„ e Err.Number = 0 allora
var2 = ""
Sul riassunto di errore dopo
var2 = objMember.FullName
Sull'errore 0 di avanzamento
OSName = ha spaccato (dicCompOS (UCase (strComputer)), Ҧ") (0)
OSSP = ha spaccato (dicCompOS (UCase (strComputer)), Ҧ") (1)
tf.writeline (strComputer & “; „ & strIPAddress & “; „ & OSName & “; „ & OSSP & “; „ & objGroup.Name & “; „ & var1 & “; „ & chr (34) & var2 & chr (34) & “; „ & objMember.AdsPath)
Altrimenti
tf.writeline (strComputer & “; „ & strIPAddress & “; „ & OSName & “; „ & OSSP & “; „ & objGroup.Name & “; „ & var1 & “; „ & Chr (34) & chr (34) & “; „ & objMember.AdsPath)
Err.Clear
Si concludono se
var1 = ""
var2 = ""
Dopo
Dopo
tf.close ()
MsgBox “fatto!„
Wscript.quit
GetOSs secondario ()
'# DIFFICOLTÀ Init
Regolare il objRootDSE = GetObject (“LDAP: //RootDSE„)
strDNSDomain = objRootDSE.Get (“defaultNamingContext„)
strConfig = objRootDSE.Get (“configurationNamingContext„)
Regolare il objCommand = CreateObject (“ADODB.Command„)
Regolare il objConnection = CreateObject (“ADODB.Connection„)
objConnection.Provider = “ADsDSOObject„
objConnection.Open = “ADProvider„
objCommand.ActiveConnection = objConnection
objCommand.Properties (“formato di pagina„) = 100
objCommand.Properties (“prespegnimento„) = 900
'#
'### del filtro dal ### LDAP
strFilter = “(& (objectClass=computer))„
'Attributi del ### per richiamare ###
strAttributes = “sAMAccountName, operatingSystem, operatingSystemServicePack„
'Il ### esegue il ### di domanda di LDAP
strBase = "" '
strQuery = strBase & “; „ & strFilter & “; „ & strAttributes & “; sotto-albero„
objCommand.CommandText = strQuery
'Sul riassunto di errore dopo
Regolare il objRecordSet = objCommand.Execute
'Il ### passa attraverso le annotazioni restituite e memorizza il ### di Info
Fare fino a objRecordSet.EOF
dicCompOS (UCase (sostituire (objRecordSet.Fields (“sAMAccountName„), “$„, ""))) = objRecordSet.Fields (“operatingSystem„) & “¶„ & objRecordSet.Fields (“operatingSystemServicePack„)
'dicCompOS di MsgBox (objRecordSet.Fields (“sAMAccountName„)), objRecordSet.Fields (“sAMAccountName„)
objRecordSet.MoveNext
Ciclo
Sommergibile dell'estremità
fResolveIP di funzione (strComputer)
wmiQuery fioco, objWMIService, objPing, objStatus
il wmiQuery = “seleziona * a partire da Win32_PingStatus dove„ & _
“Indirizzo = “„ & strComputer & “„ “
Regolare il objWMIService = GetObject (“winmgmts: \ \. \ radice \ cimv2„)
objPing stabilito = objWMIService.ExecQuery (wmiQuery)
Per ogni objStatus nel objPing
Se IsNull (objStatus.StatusCode) o objStatus.Statuscode0<> allora
fResolveIP = “sconosciuto„
Altrimenti
fResolveIP = objStatus.ProtocolAddress
Concluder se
Dopo
Funzione di conclusione
|