Vraag : Vraag een txtdossier en voeg een gebruikersrekening in beheerdergroep toe elke machine.

Hallo,

Query voegt toe een txtdossier en een gebruikersrekening in beheerdergroep elke machine.
I het txtdossier as
Machinename heeft; De het manuscriptlooppas van Userlogin

When controleert elke machine en voegt die gebruiker in lokale admin toe. Ik wil zelfde login naam toevoegen die naast de machinenaam maar 2 gelijkaardige logins van 2 Domains

Domain1 \ Userlogin1
Domain2 \ Userlogin1

Regards
sharath
is

Antwoord : Vraag een txtdossier en voeg een gebruikersrekening in beheerdergroep toe elke machine.

probeer dit uit:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
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
Andere oplossingen  
 
programming4us programming4us