Expliciete optie
Schemerige adoCommand, adoConnection, strBase, strFilter, strAttributes
Schemerige objLogFile, objInputFile, objFileSystem, objRootDSE, strDNSDomain, strQuery, adoRecordset, strName
Schemerige objNetwork, strComputer, strUser, objAdmin, strDomain
Schemerige lijnen, tekenen, lijn
Reeks objFileSystem = CreateObject („Scripting.fileSystemObject“)
Vastgestelde objInputFile = objFileSystem.OpenTextFile („C:\temp\users.txt“, 1)
de lijnen = verdelen (objInputFile.ReadAll, vbNewline)
objInputFile.Close
Vastgestelde objLogFile = objFileSystem.CreateTextFile („C:\temp\users.log“, 2)
Voor elke lijn in lijnen
de tekenen = verdelen (lijn, „; “)
strComputer = Versiering (tekenen (0))
strUser = Versiering (tekenen (1))
als (strComputer) = Waar toen pingel
objLogFile.WriteLine strComputer & „gecontacteerd“
AddUserGroup strComputer, strUser
Anders
objLogFile.WriteLine strComputer & „kon niet worden gecontacteerd“
beëindig als
Daarna
objLogFile.Close
Sub AddUserGroup (strComputer, strUser)
'Win lokale computernaam en de naam van Netbios van domein terug.
Plaats objNetwork = CreateObject („Wscript.Network“)
strDomain = objNetwork.UserDomain
WScript.Echo „voeg“ & strUser & „toe aan“ & strComputer
'Bind aan de lokale groep van Beheerders.
Plaats objAdmin = GetObject („WinNT: /“ & strComputer & „/Administrators, groep“)
'De voorwerpen van de DRUKTE van de opstelling.
Reeks adoCommand = CreateObject („ADODB.Command“)
Vastgestelde adoConnection = CreateObject („ADODB.Connection“)
adoConnection.Provider = „ADsDSOObject“
adoConnection.Open de „Actieve Leverancier van de Folder“
Vastgesteld adoCommand.ActiveConnection = adoConnection
'Domein van de Folder van het onderzoek het volledige Actieve.
Reeks objRootDSE = GetObject („LDAP: //RootDSE“)
strDNSDomain = objRootDSE.Get („defaultNamingContext“)
strBase = ""
'Filter op gebruiker met de naam „van de pre-vensters 2000 opening van een sessie“.
strFilter = „(sAMAccountName=“ & strUser &“) „
'Komma afgebakende lijst van terug te winnen attributenwaarden.
strAttributes = „sAMAccountName“
'Concept de LDAP syntaxisvraag.
strQuery = strBase & „; “ & strFilter & „; “ & strAttributes & „; onderverdeling“
adoCommand.CommandText = strQuery
adoCommand.Properties (de „Grootte van de Pagina“) = 100
adoCommand.Properties („Onderbreking“) = 30
adoCommand.Properties (de „Resultaten van het Geheime voorgeheugen“) = Vals
'Looppas de vraag.
Reeks adoRecordset = adoCommand.Execute
'Som het voortvloeien op recordset.
Doe tot adoRecordset.EOF
'Win waarden terug.
strName = adoRecordset.Fields („sAMAccountName“). Waarde
De 'controle als gebruiker zich reeds een lid van de lokale Beheerders groepeert.
Als (objAdmin.IsMember („WinNT: /“ & strDomain & „/“ & strName) = Vals) toen
Op Fout hervat daarna
'Voeg deze gebruiker aan de groep toe.
objAdmin.Add („WinNT: /“ & strDomain & „/“ & strName)
Als (Err.Number <> 0) toen
objLogFile.WriteLine strComputer & „; “ & strUser & „; Mislukking“
anders
WScript.Echo werd strName & „toegevoegd.“
objLogFile.WriteLine strComputer & „; “ & strUser & „; Succes“
Eind als
anders
WScript.Echo strName & „er bestaat reeds.“
objLogFile.WriteLine strComputer & „; “ & strUser & „; Succes“
Eind als
'Beweging aan het volgende verslag in recordset.
adoRecordset.MoveNext
Lijn
'Maak schoon.
adoRecordset.Close
adoConnection.Close
Beëindig Sub
De functie pingelt (strHost)
het schemerige objPing, objRetStatus
het vastgestelde objPing = GetObject („winmgmts: {impersonationLevel=impersonate}“) .ExecQuery _
(„selecteer * uit Win32_PingStatus waar adres = „“ & strHost & „“ „)
voor elke objRetStatus in het objPing
als IsNull (objRetStatus.StatusCode) of objRetStatus.StatusCode0<> toen
Pingel = Vals
'WScript.Echo de „code van de Status is“ & objRetStatus.StatusCode
anders
Pingel = Waar
'Wscript.Echo „Bytes =“ & vbTab & objRetStatus.BufferSize
'Wscript.Echo „Tijd (Mej.) =“ & vbTab & objRetStatus.ResponseTime
'Wscript.Echo „TTL (s) =“ & vbTab & objRetStatus.ResponseTimeToLive
beëindig als
daarna
De Functie van het eind
|