Тусклое var1
Тусклое var2
Тусклое strComputer
Тусклое dicCompOS
'на резюме ошибки затем
Установите dicCompOS = CreateObject («Scripting.Dictionary»)
GetOSs () «# словарь нагрузки с операционными системами всех компьютеров домена»
Установите fso = CreateObject («Scripting.FileSystemObject»)
Установите tf = fso.OpenTextFile («PC_Info.txt», 2, поистине)
'### установленное компьютера ### здесь
strComputer = «YOUR_SRV»
tf.write («сервер; Адрес IP; Имя OS; Пакет услуг OS; Группы; Члены; Имя индикации; ")
tf.writeline («AdsPath»)
Установите objComputer = GetObject («WinNT: /» & strComputer)
objComputer.Filter = блок («группа»)
strIPAddress = fResolveIP (strComputer)
Для каждого objGroup в objComputer
Для каждого objMember в objGroup.Members
var1 = objMember.Name
Если objMember.Class <> «группа» и Err.Number = 0 после этого
var2 = ""
На резюме ошибки затем
var2 = objMember.FullName
На ошибке переход 0
OSName = разделило (dicCompOS (UCase (strComputer)), «¶") (0)
OSSP = разделило (dicCompOS (UCase (strComputer)), «¶") (1)
tf.writeline (strComputer & «; » & strIPAddress & «; » & OSName & «; » & OSSP & «; » & objGroup.Name & «; » & var1 & «; » & chr (34) & var2 & chr (34) & «; » & objMember.AdsPath)
Еще
tf.writeline (strComputer & «; » & strIPAddress & «; » & OSName & «; » & OSSP & «; » & objGroup.Name & «; » & var1 & «; » & Chr (34) & chr (34) & «; » & objMember.AdsPath)
Err.Clear
Закончитесь если
var1 = ""
var2 = ""
Затем
Затем
tf.close ()
Сделанное MsgBox «!»
Wscript.quit
Sub GetOSs ()
'# СУЕТА Init
Установите objRootDSE = GetObject («LDAP: //RootDSE»)
strDNSDomain = objRootDSE.Get («defaultNamingContext»)
strConfig = objRootDSE.Get («configurationNamingContext»)
Установите objCommand = CreateObject («ADODB.Command»)
Установите objConnection = CreateObject («ADODB.Connection»)
objConnection.Provider = «ADsDSOObject»
objConnection.Open = «ADProvider»
objCommand.ActiveConnection = objConnection
objCommand.Properties («размер страницы») = 100
objCommand.Properties («перерыв») = 900
'#
'### фильтра ### LDAP
strFilter = «(& (objectClass=computer))»
'Атрибуты ### для того чтобы восстановить ###
strAttributes = «sAMAccountName, operatingSystem, operatingSystemServicePack»
'### исполняет ### вопроса LDAP
strBase = "" '
strQuery = strBase & «; » & strFilter & «; » & strAttributes & «; поддерево»
objCommand.CommandText = strQuery
'На резюме ошибки затем
Установите objRecordSet = objCommand.Execute
'### идет через возвращенные показатели и хранит ### info
Не сделать до objRecordSet.EOF
dicCompOS (UCase (замените (objRecordSet.Fields («sAMAccountName»), «$», ""))) = objRecordSet.Fields («operatingSystem») & «¶» & objRecordSet.Fields («operatingSystemServicePack»)
'dicCompOS MsgBox (objRecordSet.Fields («sAMAccountName»)), objRecordSet.Fields («sAMAccountName»)
objRecordSet.MoveNext
Петля
Подводная лодка конца
fResolveIP функции (strComputer)
Тусклое wmiQuery, objWMIService, objPing, objStatus
wmiQuery = «выбирает * от Win32_PingStatus где» & _
«Адрес = «» & strComputer & «» «
Установите objWMIService = GetObject («winmgmts: \ \. \ корень \ cimv2»)
Установленный objPing = objWMIService.ExecQuery (wmiQuery)
Для каждого objStatus в objPing
Если IsNull (objStatus.StatusCode) или objStatus.Statuscode0<> после этого
fResolveIP = «неисвестне»
Еще
fResolveIP = objStatus.ProtocolAddress
Закончитесь если
Затем
Функция конца
|