Frage : Einen Ou und alle VorOu überwachen und mailen, wenn ein Computer nicht mit Gebiet für mehr als 10 Tage in Verbindung getreten hat. Vbs oder Powershell

Hallo,

Monitor wünschen ein Ou und alle VorOu und eMail, wenn ein Computer nicht mit Gebiet für mehr in Verbindung getreten hat, als 10 days.
I Hilfe bei einem Index, der alle Computer scannen kann und gerade die Maschinennamen zu mailen, das dem Gebiet oder mit kein in Verbindung getreten hat, die für 10 days.

Can niemand angeschalten werden, mir mit diesem please.

regards
Sharath
helfen

Antwort : Einen Ou und alle VorOu überwachen und mailen, wenn ein Computer nicht mit Gebiet für mehr als 10 Tage in Verbindung getreten hat. Vbs oder Powershell

örtlich festgelegt
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:
6:
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“

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

objFSO = CreateObject („Scripting.FileSystemObject“) einstellen
objTextFile einstellen = objFSO.CreateTextFile (LOG_FILE, 2, zutreffendes)

'Einen Wörterbuchgegenstand benutzen, um spätestes lastLogon für jeden Benutzer aufzuspüren.
objList = CreateObject („Scripting.Dictionary“) einstellen
objList.CompareMode = vbTextCompare

'Ortszeit-Zonenvorspannung vom Maschinenregister beschaffen.
objShell = CreateObject („Wscript.Shell“) einstellen
lngBiasKey = objShell.RegRead („HKLM \ System \ CurrentControlSet \ Steuerung \“ _
  u. „TimeZoneInformation \ ActiveTimeBias“)
Wenn UCase (TypeName (lngBiasKey)) = „LANG“ dann
  lngBias = lngBiasKey
ElseIf UCase (TypeName (lngBiasKey)) = „VARIANTE ()“ dann
  lngBias = 0
  Für k = 0 zu UBound (lngBiasKey)
    lngBias = lngBias + (lngBiasKey (k) * 256 ^ k)
  Zunächst
Beenden wenn

'Konfigurationszusammenhang und DNS-Gebiet vom RootDSE Gegenstand feststellen.
objRootDSE = GetObject einstellen („LDAP: //RootDSE“)
strConfig = objRootDSE.Get („configurationNamingContext“)
strDNSDomain = objRootDSE.Get („defaultNamingContext“)

'AUFHEBEN verwenden, um aktives Verzeichnis nach ObjectClass nTDSDSA zu suchen.
'Dieses kennzeichnet alle Gebiets-Steuerpulte.
objCommand = CreateObject („ADODB.Command“) einstellen
objConnection = CreateObject („ADODB.Connection“) einstellen
objConnection.Provider = „ADsDSOObject“
objConnection.Open „aktiver Verzeichnis-Versorger“
objCommand.ActiveConnection = objConnection

strBase = ""
strFilter = „(objectClass=nTDSDSA)“
strAttributes = „AdsPath“
strQuery = strBase u. „; “ u. strFilter u. „; “ u. strAttributes u. „; Unterbaum“

objCommand.CommandText = strQuery
objCommand.Properties („Seiten-Größe“) = 100
objCommand.Properties („Abschaltung“) = 60
objCommand.Properties („Pufferspeicher resultiert“), = falsch

objRecordSet = objCommand.Execute einstellen

'Elternteilgegenstände von Kategorie nTDSDSA aufzählen. Gebiets-Steuerpult speichern
'AdsPaths in den dynamischen Reihe arrstrDCs.
k = 0
Bis objRecordSet.EOF tun
  objDC = _ einstellen
    GetObject (GetObject (objRecordSet.Fields („AdsPath“)). Elternteil)
  ReDim Konserve arrstrDCs (k)
  arrstrDCs (k) = objDC.DNSHostName
  k = k + 1
  objRecordSet.MoveNext
Schleife
'lastLogon Attribut für jeden Benutzer auf jedem Gebiets-Steuerpult zurückholen.
Für k = 0 zu UBound (arrstrDCs)

	wenn ROOT_OU <> "" dann
		strBase = ""
	sonst
		strBase = ""
	beenden wenn
	  
 strFilter = „(u. (objectCategory=computer) (objectClass=computer))“
  strAttributes = „KN, lastLogon“
  strQuery = strBase u. „; “ u. strFilter u. „; “ u. strAttributes _
    u. „; Unterbaum“

  objCommand.CommandText = strQuery
  Auf Störungs-Zusammenfassung zunächst
  Err.Clear
  objRecordSet = objCommand.Execute einstellen
  Wenn Err.Number <> 0 dann
    Err.Clear
    Auf Störung Goto- 0
  Sonst
  I 'als ganze Zahl verdunkeln
    Auf Störung Goto- 0
    Bis objRecordSet.EOF tun
   
      strDN = objRecordSet.Fields („KN“)
      lngDate = objRecordSet.Fields („lastLogon“)
      Auf Störungs-Zusammenfassung zunächst
      Err.Clear
      objDate = lngDate einstellen

      Wenn Err.Number <> 0 dann
        Err.Clear
        dtmDate = #1/1/1601#
      Sonst
        lngHigh = objDate.HighPart
        lngLow = objDate.LowPart
        Wenn lngLow < 0="" Then="" lngHigh="lngHigh"> objList (strDN) dann
          objList (strDN) = dtmDate
        Beenden wenn
      Sonst
        objList.Add strDN, dtmDate
      Beenden wenn
      objRecordSet.MoveNext
    Schleife
  Beenden wenn
Zunächst

Für jedes strUser im objList
	objDate = CDate (objList (strUser))
	diffDays = DateDiff („d“, objDate, Datum)
	Wenn diffDays > DAYS_DIFF dann 
		logContent = logContent u.  strUser u. „; “ u. objList (strUser) u. vbNewLine
	Beenden wenn       
Zunächst

objTextFile.WriteLine logContent
objTextFile.Close

NotifyByEmail „bearbeitet die LastLogon eMail-Mitteilung“ maschinell, logContent

objConnection.Close
objRootDSE einstellen = nichts
objConnection einstellen = nichts
objCommand einstellen = nichts
objRecordSet einstellen = nichts
objDC einstellen = nichts
objDate einstellen = nichts
objList einstellen = nichts
objShell einstellen = nichts

MsgBox „getan“

VorNotifyByEmail (strSubject, strResult)
	Schwaches ToAddress
	Schwaches MessageSubject
	Schwaches MessageBody
	Schwaches MessageAttachment
	schwaches myRecipient, olMailItem

	Schwaches ol, ns, newMail

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

	Ol = WScript.CreateObject („Outlook.Application“) einstellen
	Einstellen ns = ol.getNamespace („MAPI“)
	ns.log auf "", "", zutreffend, falsch
	newMail = ol.CreateItem (olMailItem) einstellen
	newMail.Subject = MessageSubject
	newMail.Body = MessageBody u. vbCrLf

	'die Empfänger, gerade im Fall validieren…
	myRecipient einstellen = ns.CreateRecipient (ToAddress)
	myRecipient.Resolve
	Wenn nicht myRecipient.Resolved dann
	   MsgBox „unbekannte Empfänger“
	Sonst
	   newMail.Recipients.Add (myRecipient)
	   newMail.Send
	Beenden wenn

	Ol einstellen = nichts

Unterseeboot beenden
Weitere Lösungen  
 
programming4us programming4us