Вариант точный
Тусклое adoCommand, adoConnection, strBase, strFilter, strAttributes
Тусклое objLogFile, objInputFile, objFileSystem, objRootDSE, strDNSDomain, strQuery, adoRecordset, strName
Тусклое objNetwork, strComputer, strUser, objAdmin, strDomain
Тусклые линии, знаки внимания, линия
Установите objFileSystem = CreateObject («Scripting.fileSystemObject»)
Установите objInputFile = objFileSystem.OpenTextFile («C:\temp\users.txt», 1)
линии = разделили (objInputFile.ReadAll, vbNewline)
objInputFile.Close
Установленное objLogFile = objFileSystem.CreateTextFile («C:\temp\users.log», 2)
Для каждой линии в линиях
знаки внимания = разделили (линия, «; ")
strComputer = уравновешивание (знаки внимания (0))
strUser = уравновешивание (знаки внимания (1))
если Пинг (strComputer) = True после этого
strComputer objLogFile.WriteLine & «контактировало»
strComputer AddUserGroup, strUser
Еще
strComputer objLogFile.WriteLine & «не smogло быть контактировано»
закончитесь если
Затем
objLogFile.Close
Sub AddUserGroup (strComputer, strUser)
'Восстановите местное имя компьютера и имя NetBIOS домена.
Установите objNetwork = CreateObject («Wscript.Network»)
strDomain = objNetwork.UserDomain
WScript.Echo «добавляют» & strUser & «к» & strComputer
'Связь к группе местных администраторов.
Установите objAdmin = GetObject («WinNT: /» & strComputer & «/Administrators, группа»)
'Предметы СУЕТЫ установки.
Установите adoCommand = CreateObject («ADODB.Command»)
Установите adoConnection = CreateObject («ADODB.Connection»)
adoConnection.Provider = «ADsDSOObject»
adoConnection.Open «активно провайдер директории»
Установите adoCommand.ActiveConnection = adoConnection
'Ищите весь активно домен директории.
Установите objRootDSE = GetObject («LDAP: //RootDSE»)
strDNSDomain = objRootDSE.Get («defaultNamingContext»)
strBase = ""
'Фильтр на потребителе с «именем logon pre-Windows 2000».
strFilter = «(sAMAccountName=» & strUser & ") «
'Список размежеванный запятым значений атрибута, котор нужно восстановить.
strAttributes = «sAMAccountName»
'Построьте вопрос синтаксиса LDAP.
strQuery = strBase & «; » & strFilter & «; » & strAttributes & «; поддерево»
adoCommand.CommandText = strQuery
adoCommand.Properties («размер страницы») = 100
adoCommand.Properties («перерыв») = 30
adoCommand.Properties («тайник приводит к») = ложно
'Побегите вопрос.
Установите adoRecordset = adoCommand.Execute
'Перечислите приводя к recordset.
Не сделать до adoRecordset.EOF
'Восстановите значения.
strName = adoRecordset.Fields («sAMAccountName»). Значение
'Проверите если потребитель уже член группы местных администраторов.
Если (objAdmin.IsMember, то («WinNT: /» & strDomain & «/» & strName) = ложно) после этого
На резюме ошибки затем
'Добавьте этого потребителя к группе.
objAdmin.Add («WinNT: /» & strDomain & «/» & strName)
Если (Err.Number <> 0) после этого
strComputer objLogFile.WriteLine & «; » & strUser & «; Отказ»
еще
Было добавлено strName WScript.Echo & «.»
strComputer objLogFile.WriteLine & «; » & strUser & «; Успех»
Закончитесь если
еще
strName WScript.Echo & «уже существует.»
strComputer objLogFile.WriteLine & «; » & strUser & «; Успех»
Закончитесь если
'Двиньте к следующему показателю в recordset.
adoRecordset.MoveNext
Петля
'Очистьте вверх.
adoRecordset.Close
adoConnection.Close
Закончите подводную лодку
Пинг функции (strHost)
тусклый objPing, objRetStatus
установленный objPing = GetObject («winmgmts: {impersonationLevel=impersonate} _ ").ExecQuery
(«выберите * от Win32_PingStatus где адрес = «» & strHost & «» ")
для каждого objRetStatus в objPing
если IsNull (objRetStatus.StatusCode) или objRetStatus.StatusCode0<> после этого
Пинг = ложно
'WScript.Echo «Кодий состояния» & objRetStatus.StatusCode
еще
Пинг = True
'Wscript.Echo «байты =» & vbTab & objRetStatus.BufferSize
'Wscript.Echo «время (госпожа) =» & vbTab & objRetStatus.ResponseTime
'Wscript.Echo «TTL (s) =» & vbTab & objRetStatus.ResponseTimeToLive
закончитесь если
затем
Функция конца
|