Opção explícita
adoCommand não ofuscante, adoConnection, strBase, strFilter, strAttributes
objLogFile não ofuscante, objInputFile, objFileSystem, objRootDSE, strDNSDomain, strQuery, adoRecordset, strName
objNetwork não ofuscante, strComputer, strUser, objAdmin, strDomain
Linhas não ofuscantes, símbolos, linha
Ajustar o objFileSystem = o CreateObject (“Scripting.fileSystemObject”)
Ajustar objInputFile = objFileSystem.OpenTextFile (“C:\temp\users.txt”, 1)
linhas = separação (objInputFile.ReadAll, vbNewline)
objInputFile.Close
objLogFile ajustado = objFileSystem.CreateTextFile (“C:\temp\users.log”, 2)
Para cada linha nas linhas
símbolos = separação (linha, “; ")
strComputer = guarnição (símbolos (0))
strUser = guarnição (símbolos (1))
se o sibilo (strComputer) = retifica então
o strComputer de objLogFile.WriteLine & “contatou”
strComputer de AddUserGroup, strUser
Mais
o strComputer de objLogFile.WriteLine & “não podia ser contatado”
terminar se
Em seguida
objLogFile.Close
AddUserGroup secundário (strComputer, strUser)
'Recuperar o nome de computador local e o nome de NetBIOS do domínio.
Ajustar o objNetwork = o CreateObject (“Wscript.Network”)
strDomain = objNetwork.UserDomain
WScript.Echo “adicionam” & strUser & “a” & strComputer
'Ligamento ao grupo dos administradores locais.
Ajustar o objAdmin = o GetObject (“WinNT: /” & strComputer & “/Administrators, grupo”)
'Objetos da DEMORA da instalação.
Ajustar o adoCommand = o CreateObject (“ADODB.Command”)
Ajustar o adoConnection = o CreateObject (“ADODB.Connection”)
adoConnection.Provider = “ADsDSOObject”
adoConnection.Open “fornecedor ativo do diretório”
Ajustar adoCommand.ActiveConnection = adoConnection
'Procurarar o domínio ativo inteiro do diretório.
Ajustar o objRootDSE = o GetObject (“LDAP: //RootDSE”)
strDNSDomain = objRootDSE.Get (“defaultNamingContext”)
strBase = ""
'Filtro no usuário com de “nome do início de uma sessão pre-Windows 2000”.
strFilter = “(sAMAccountName=” & strUser & ") “
'Lista limitada vírgula de valores de atributo a recuperar.
strAttributes = “sAMAccountName”
'Construir a pergunta da sintaxe de LDAP.
strQuery = strBase & “; ” & strFilter & “; ” & strAttributes & “; subtree”
adoCommand.CommandText = strQuery
adoCommand.Properties (de “tamanho página”) = 100
adoCommand.Properties (“intervalo de parada”) = 30
adoCommand.Properties (o “esconderijo resulta”) = falso
'Funcionar a pergunta.
Ajustar o adoRecordset = o adoCommand.Execute
'Enumerar o recordset resultante.
Fazer até adoRecordset.EOF
'Recuperar valores.
strName = adoRecordset.Fields (“sAMAccountName”). Valor
'Verific se usuário já um membro do grupo dos administradores locais.
Se (objAdmin.IsMember (“WinNT: /” & strDomain & “/” & strName) = falso) então
No resumo do erro em seguida
'Adicionar este usuário ao grupo.
objAdmin.Add (“WinNT: /” & strDomain & “/” & strName)
Se (Err.Number <> 0) então
strComputer de objLogFile.WriteLine & “; ” & strUser & “; Falha”
mais
O strName de WScript.Echo & “foi adicionado.”
strComputer de objLogFile.WriteLine & “; ” & strUser & “; Sucesso”
Terminar se
mais
O strName de WScript.Echo & “já existe.”
strComputer de objLogFile.WriteLine & “; ” & strUser & “; Sucesso”
Terminar se
'Mover-se para o registro seguinte no recordset.
adoRecordset.MoveNext
Laço
'Limpar.
adoRecordset.Close
adoConnection.Close
Terminar o submarino
Sibilo da função (strHost)
objPing não ofuscante, objRetStatus
objPing ajustado = GetObject (“winmgmts: {impersonationLevel=impersonate} _ de ").ExecQuery
(“selecionar * de Win32_PingStatus onde endereço = “” & strHost & “” ")
para cada objRetStatus em objPing
se IsNull (objRetStatus.StatusCode) ou objRetStatus.StatusCode0<> então
Sibilo = falso
'WScript.Echo “código de status é” & objRetStatus.StatusCode
mais
O sibilo = retifica
'Wscript.Echo “bytes =” & vbTab & objRetStatus.BufferSize
'Wscript.Echo “tempo (Senhora) =” & vbTab & objRetStatus.ResponseTime
'Wscript.Echo “TTL (s) =” & vbTab & objRetStatus.ResponseTimeToLive
terminar se
em seguida
Função do fim
|