Vraag : Controleer Ou en al subOu en de e-mail als een computer geen domein meer dan 10 dagen gecontacteerd. Vbs of Powershell

Hallo,

Monitor willen Ou en al subOu en de e-mail als een computer geen domein voor meer dan 10 days.
I gecontacteerd hulp met een manuscript dat alle die computers kan aftasten en enkel de machinenamen met de elektronische post versturen dat niet het Domein gecontacteerd of geen voor 10 days.

Can wordt ingeschakeld iedereen me met dit please.

regards
Sharath
helpt

Antwoord : Controleer Ou en al subOu en de e-mail als een computer geen domein meer dan 10 dagen gecontacteerd. Vbs of Powershell

vast
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:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
156:
157:
158:
159:
160:
161:
162:
163:
164:
165:
166:
167:
168:
169:
170:
171:
172:
173:
174:
175:
176:
177:
178:
179:
180:
181:
182:
183:
184:
185:
const DAYS_DIFF = 10
const ROOT_OU = „cn=computers“
const LOG_FILE = „C:\temp\Last _Logon.log“

Schemerige objRootDSE, strConfig, objConnection, objCommand, strQuery
Schemerige objRecordSet, objDC, F, fso
Schemerige strDNSDomain, objShell, lngBiasKey, lngBias, k, arrstrDCs ()
Schemerige strDN, dtmDate, objDate, lngDate, objList, strUser
Schemerige logContent strBase, strFilter, strAttributes, lngHigh, lngLow,

Reeks objFSO = CreateObject („Scripting.FileSystemObject“)
Vastgestelde objTextFile = objFSO.CreateTextFile (LOG_FILE, Ware 2,)

'Gebruik een woordenboekvoorwerp aan spoor recentste lastLogon voor elke gebruiker.
Vastgestelde objList = CreateObject („Scripting.Dictionary“)
objList.CompareMode = vbTextCompare

'Verkrijg lokale bias van de Tijdzone uit machineregistratie.
Plaats objShell = CreateObject („Wscript.Shell“)
lngBiasKey = objShell.RegRead („HKLM \ de Controle \ van het Systeem \ CurrentControlSet \“ _
  & „TimeZoneInformation \ ActiveTimeBias“)
Als UCase (TypeName (lngBiasKey)) = „LANG“ toen
  lngBias = lngBiasKey
ElseIf UCase (TypeName (lngBiasKey)) = „VARIANT ()“ toen
  lngBias = 0
  Voor k = 0 aan UBound (lngBiasKey)
    lngBias = lngBias + (lngBiasKey (k) * 256 ^ k)
  Daarna
Eind als

'Bepaal configuratiecontext en DNS domein van voorwerp RootDSE.
Plaats objRootDSE = GetObject („LDAP: //RootDSE“)
strConfig = objRootDSE.Get („configurationNamingContext“)
strDNSDomain = objRootDSE.Get („defaultNamingContext“)

De 'DRUKTE van het gebruik aan onderzoeks Actieve Folder voor ObjectClass nTDSDSA.
'Dit zal alle Controlemechanismen van het Domein identificeren.
Reeks objCommand = CreateObject („ADODB.Command“)
Vastgestelde objConnection = CreateObject („ADODB.Connection“)
objConnection.Provider = „ADsDSOObject“
objConnection.Open de „Actieve Leverancier van de Folder“
objCommand.ActiveConnection = objConnection

strBase = ""
strFilter = „(objectClass=nTDSDSA)“
strAttributes = „AdsPath“
strQuery = strBase & „; “ & strFilter & „; “ & strAttributes & „; onderverdeling“

objCommand.CommandText = strQuery
objCommand.Properties (de „Grootte van de Pagina“) = 100
objCommand.Properties („Onderbreking“) = 60
objCommand.Properties (de „Resultaten van het Geheime voorgeheugen“) = Vals

Reeks objRecordSet = objCommand.Execute

'Som oudervoorwerpen van klasse op nTDSDSA. Sparen het Controlemechanisme van het Domein
'AdsPaths in dynamische serie arrstrDCs.
k = 0
Doe tot objRecordSet.EOF
  Plaats objDC = _
    GetObject (GetObject (objRecordSet.Fields („AdsPath“)). Ouder)
  Het Domein van ReDim arrstrDCs (k)
  arrstrDCs (k) = objDC.DNSHostName
  k = k + 1
  objRecordSet.MoveNext
Lijn
'Win lastLogon attributen voor elke gebruiker op elk Controlemechanisme van het Domein terug.
Voor k = 0 aan UBound (arrstrDCs)

	als ROOT_OU <> "" toen
		strBase = ""
	anders
		strBase = ""
	beëindig als
	  
 strFilter = „(& (objectCategory=computer) (objectClass=computer))“
  strAttributes = „CN, lastLogon“
  strQuery = strBase & „; “ & strFilter & „; “ & strAttributes _
    & „; onderverdeling“

  objCommand.CommandText = strQuery
  Op Fout hervat daarna
  Err.Clear
  Reeks objRecordSet = objCommand.Execute
  Als Err.Number <> 0 toen
    Err.Clear
    Op Fout GoTo 0
  Anders
  Schemerige I 'als Geheel
    Op Fout GoTo 0
    Doe tot objRecordSet.EOF
   
      strDN = objRecordSet.Fields („CN“)
      lngDate = objRecordSet.Fields („lastLogon“)
      Op Fout hervat daarna
      Err.Clear
      Reeks objDate = lngDate

      Als Err.Number <> 0 toen
        Err.Clear
        dtmDate = #1/1/1601#
      Anders
        lngHigh = objDate.HighPart
        lngLow = objDate.LowPart
        Als lngLow < 0="" Then="" lngHigh="lngHigh"> objList (strDN) Dan
          objList (strDN) = dtmDate
        Eind als
      Anders
        objList.Add strDN, dtmDate
      Eind als
      objRecordSet.MoveNext
    Lijn
  Eind als
Daarna

Voor Elke strUser in objList
	objDate = CDate (objList (strUser))
	diffDays = DateDiff („D“, objDate, Datum)
	Als diffDays > DAYS_DIFF toen 
		logContent = logContent &  strUser & „; “ & objList (strUser) & vbNewLine
	Eind als       
Daarna

logContent objTextFile.WriteLine
objTextFile.Close

NotifyByEmail „van Machines van LastLogon E-mail- Bericht“, logContent

objConnection.Close
Reeks objRootDSE = niets
Vastgestelde objConnection = niets
Reeks objCommand = niets
Reeks objRecordSet = niets
Reeks objDC = niets
Reeks objDate = niets
Vastgestelde objList = niets
Reeks objShell = niets

„Gedaane“ MsgBox

sub NotifyByEmail (strSubject, strResult)
	Schemerige ToAddress
	Schemerige MessageSubject
	Schemerige MessageBody
	Schemerige MessageAttachment
	schemerige myRecipient, olMailItem

	Schemerige ol, NS, newMail

	ToAddress = „[email protected]“
	MessageSubject = strSubject
	MessageBody = strResult

	Reeks ol = WScript.CreateObject („Outlook.Application“)
	Vastgesteld NS = ol.getNamespace („MAPI“)
	ns.log op "", valse "", waar,
	Reeks newMail = ol.CreateItem (olMailItem)
	newMail.Subject = MessageSubject
	newMail.Body = MessageBody & vbCrLf

	'bevestig de ontvanger, enkel desgevallend…
	Plaats myRecipient = ns.CreateRecipient (ToAddress)
	myRecipient.Resolve
	Als niet myRecipient.Resolved toen
	   MsgBox „onbekende ontvanger“
	Anders
	   (myRecipient) newMail.Recipients.Add
	   newMail.Send
	Eind als

	Reeks ol = niets

eind sub
Andere oplossingen  
 
programming4us programming4us