Opcja Wyraźny
Ciemnawy adoCommand, adoConnection, strBase, strFilter, strAttributes
Ciemnawy objLogFile, objInputFile, objFileSystem, objRootDSE, strDNSDomain, strQuery, adoRecordset, strName
Ciemnawy objNetwork, strComputer, strUser, objAdmin, strDomain
Ciemnawy linia, żeton, linia
Ustalony objFileSystem = CreateObject ("Scripting.fileSystemObject")
Ustalony objInputFile = objFileSystem.OpenTextFile ("C:\temp\users.txt", 1)
linia = Rozłam (objInputFile.ReadAll, vbNewline)
objInputFile.Close
Ustalony objLogFile = objFileSystem.CreateTextFile ("C:\temp\users.log", 2)
Dla linia linia W linia
żeton = Rozłam (linia, "; ")
strComputer = Podstrzyżenie (żeton ((0)))
strUser = Podstrzyżenie (żeton (1))
jeżeli Świst (strComputer) = Prawdziwy wtedy
objLogFile.WriteLine strComputer & "kontaktować się"
AddUserGroup strComputer, strUser
Inny
objLogFile.WriteLine strComputer & "móc kontaktować się"
kończyć jeżeli
Następnie
objLogFile.Close
Okręt podwodny AddUserGroup (strComputer, strUser)
'Odzyskiwać lokalny komputerowy imię i NetBIOS imię domena.
Ustawiać objNetwork = CreateObject ("Wscript.Network")
strDomain = objNetwork.UserDomain
WScript.Echo "Dodawać" & strUser & "" & strComputer
'Zmora lokalny Administrator grupa.
Ustalony objAdmin = GetObject ("WinNT: /" & strComputer & "/Administrators, grupa")
'Ustawianie CEREGIELE przedmiot.
Ustalony adoCommand = CreateObject ("ADODB.Command")
Ustalony adoConnection = CreateObject ("ADODB.Connection")
adoConnection.Provider = "ADsDSOObject"
adoConnection.Open "Aktywny Adresowy Dostawca"
Set adoCommand.ActiveConnection = adoConnection
'Rewizja całkowity Aktywny Adresowy domena.
Ustalony objRootDSE = GetObject ("LDAP: //RootDSE")
strDNSDomain = objRootDSE.Get ("defaultNamingContext")
strBase = ""
'Filtr na użytkownik z "pre-Windows 2000 logon" imię.
strFilter = "(sAMAccountName=" & strUser & ") "
'Przecinek rozgraniczać lista atrybut wartość.
strAttributes = "sAMAccountName"
'Budować the LDAP składnia zapytanie.
strQuery = strBase & "; " & strFilter & "; " & strAttributes & "; subtree"
adoCommand.CommandText = strQuery
adoCommand.Properties ("Strona Rozmiar") = 100
adoCommand.Properties ("Timeout") = 30
adoCommand.Properties ("Tajna kryjówka Wynikać") = Fałszywy
'Biegać the zapytanie.
Ustawiać adoRecordset = adoCommand.Execute
'Wyliczać the wynikły recordset.
Do adoRecordset.EOF
'Odzyskiwać wartość.
strName = adoRecordset.Fields ("sAMAccountName"). Wartość
'Sprawdzać jeżeli użytkownik już członek the lokalny Administrator grupa.
Jeżeli (objAdmin.IsMember ("WinNT: /" & strDomain & "/" & strName) = Fałszywy) Wtedy
Na Błąd Życiorys Następnie
'Dodawać ten użytkownik the grupa.
objAdmin.Add ("WinNT: /" & strDomain & "/" & strName)
Jeżeli (Err.Number <> (0)) Wtedy
objLogFile.WriteLine strComputer & "; " & strUser & "; Niepowodzenie"
inny
WScript.Echo strName & "dodawać."
objLogFile.WriteLine strComputer & "; " & strUser & "; Sukces"
Kończyć Jeżeli
inny
WScript.Echo strName & "już istnieć."
objLogFile.WriteLine strComputer & "; " & strUser & "; Sukces"
Kończyć Jeżeli
'Ruszać się the następny rejestr w the recordset.
adoRecordset.MoveNext
Pętla
'Czyścić czyścić.
adoRecordset.Close
adoConnection.Close
Kończyć Okręt podwodny
Funkcja Świst (strHost)
ciemnawy objPing, objRetStatus
ustalony objPing = GetObject ("winmgmts: {impersonationLevel=impersonate} ").ExecQuery _
("wybiórka * od Win32_PingStatus dokąd adres = "" & strHost & "" ")
dla objRetStatus objRetStatus w objPing
jeżeli IsNull (objRetStatus.StatusCode) lub objRetStatus.StatusCode0<> wtedy
Świst = Fałszywy
'WScript.Echo "Status kod być" & objRetStatus.StatusCode
inny
Świst = Prawdziwy
'Wscript.Echo "Bajt =" & vbTab & objRetStatus.BufferSize
'Wscript.Echo "Czas (ms) =" & vbTab & objRetStatus.ResponseTime
'Wscript.Echo "TTL (s) =" & vbTab & objRetStatus.ResponseTimeToLive
kończyć jeżeli
następnie
Końcówka Funkcja
|