Cuestión : Supervisar a un Ou y a todos los Ou secundarios y enviarlos por correo electrónico si una computadora no ha entrado en contacto con el dominio por más de 10 días. Vbs o Powershell

Hola, el

Monitor un Ou y todos los Ou y email secundarios si una computadora no ha entrado en contacto con el dominio para más de 10 days.
I quiere ayuda con una escritura que pueda explorar todas las computadoras y enviar por correo electrónico apenas los nombres de la máquina que no ha entrado en contacto con el dominio o el ningún encendido para 10 days.

Can cualquier persona ayudarme con este please.

regards
Sharath
class= del

Respuesta : Supervisar a un Ou y a todos los Ou secundarios y enviarlos por correo electrónico si una computadora no ha entrado en contacto con el dominio por más de 10 días. Vbs o Powershell

fijo
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”

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

Fijar el objFSO = CreateObject (“Scripting.FileSystemObject”)
Fijar objTextFile = objFSO.CreateTextFile (LOG_FILE, 2, verdades)

'Utilizar un objeto del diccionario para seguir el último lastLogon para cada usuario.
Fijar el objList = CreateObject (“Scripting.Dictionary”)
objList.CompareMode = vbTextCompare

'Obtener el diagonal local de las zonas horarias del registro de la máquina.
Fijar el objShell = CreateObject (“Wscript.Shell”)
lngBiasKey = objShell.RegRead (“HKLM \ sistema \ CurrentControlSet \ control \” _
  y “TimeZoneInformation \ ActiveTimeBias”)
Si UCase (TypeName (lngBiasKey)) = “DE LARGO” entonces
  lngBias = lngBiasKey
ElseIf UCase (TypeName (lngBiasKey)) = “VARIANTE ()” entonces
  lngBias = 0
  Para k = 0 a UBound (lngBiasKey)
    lngBias = lngBias + (lngBiasKey (k) * 256 ^ k)
  Después
Terminar si

'Determinar el contexto de la configuración y el dominio del DNS del objeto de RootDSE.
Fijar el objRootDSE = GetObject (“LDAP: //RootDSE”)
strConfig = objRootDSE.Get (“configurationNamingContext”)
strDNSDomain = objRootDSE.Get (“defaultNamingContext”)

'Utilizar la DIFICULTAD para buscar el directorio activo para el nTDSDSA de ObjectClass.
'Esto identificará todos los reguladores del dominio.
Fijar el objCommand = CreateObject (“ADODB.Command”)
Fijar el objConnection = CreateObject (“ADODB.Connection”)
objConnection.Provider = “ADsDSOObject”
objConnection.Open “abastecedor activo del directorio”
objCommand.ActiveConnection = objConnection

strBase = ""
strFilter = “(objectClass=nTDSDSA)”
strAttributes = “AdsPath”
strQuery = strBase y “; ” y strFilter y “; ” y strAttributes y “; sub-estructura”

objCommand.CommandText = strQuery
objCommand.Properties (“tamaño de página”) = 100
objCommand.Properties (“descanso”) = 60
objCommand.Properties (el “escondrijo resulta”) = falso

Fijar el objRecordSet = objCommand.Execute

'Enumerar los objetos del padre del nTDSDSA de la clase. Ahorrar el regulador del dominio
'AdsPaths en arrstrDCs dinámicos del arsenal.
k = 0
Hacer hasta objRecordSet.EOF
  Fijar el objDC = el _
    GetObject (GetObject (objRecordSet.Fields (“AdsPath”)). Padre)
  arrstrDCs del coto de ReDim (k)
  arrstrDCs (k) = objDC.DNSHostName
  k = k + 1
  objRecordSet.MoveNext
Lazo
'Recuperar la cualidad del lastLogon para cada usuario en cada regulador del dominio.
Para k = 0 a UBound (arrstrDCs)

	si "" <> de ROOT_OU entonces
		strBase = ""
	
		strBase = ""
	terminar si
	  
 strFilter = “(y (objectCategory=computer) (objectClass=computer))”
  strAttributes = “NC, lastLogon”
  strQuery = strBase y “; ” y strFilter y “; ” y _ de los strAttributes
    y “; sub-estructura”

  objCommand.CommandText = strQuery
  En curriculum vitae del error después
  Err.Clear
  Fijar el objRecordSet = objCommand.Execute
  Si Err.Number <> 0 entonces
    Err.Clear
    En el error 0 indicado
  
  Amortiguar i 'como número entero
    En el error 0 indicado
    Hacer hasta objRecordSet.EOF
   
      strDN = objRecordSet.Fields (“NC”)
      lngDate = objRecordSet.Fields (“lastLogon”)
      En curriculum vitae del error después
      Err.Clear
      Fijar el objDate = el lngDate

      Si Err.Number <> 0 entonces
        Err.Clear
        dtmDate = #1/1/1601#
      
        lngHigh = objDate.HighPart
        lngLow = objDate.LowPart
        Si objList < 0="" Then="" lngHigh="lngHigh"> del lngLow (strDN) entonces
          objList (strDN) = dtmDate
        Terminar si
      
        strDN de objList.Add, dtmDate
      Terminar si
      objRecordSet.MoveNext
    Lazo
  Terminar si
Después

Para cada strUser en objList
	objDate = CDate (objList (strUser))
	diffDays = DateDiff (“d”, objDate, fecha)
	Si diffDays > DAYS_DIFF después 
		logContent = logContent y  strUser y “; ” y objList (strUser) y vbNewLine
	Terminar si       
Después

objTextFile.WriteLine logContent
objTextFile.Close

NotifyByEmail “trabaja a máquina la notificación del email de LastLogon”, logContent

objConnection.Close
Fijar el objRootDSE = nada
Fijar el objConnection = nada
Fijar el objCommand = nada
Fijar el objRecordSet = nada
Fijar el objDC = nada
Fijar el objDate = nada
Fijar el objList = nada
Fijar el objShell = nada

MsgBox “hecho”

NotifyByEmail secundario (strSubject, strResult)
	ToAddress dévil
	MessageSubject dévil
	MessageBody dévil
	MessageAttachment dévil
	myRecipient dévil, olMailItem

	Ol dévil, ns, newMail

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

	Fijar el ol = WScript.CreateObject (“Outlook.Application”)
	Fijar ns = ol.getNamespace (“MAPI”)
	ns.log en el "", "", verdad, falso
	Fijar el newMail = ol.CreateItem (el olMailItem)
	newMail.Subject = MessageSubject
	newMail.Body = MessageBody y vbCrLf

	'validar a recipiente, apenas en caso…
	Fijar myRecipient = ns.CreateRecipient (ToAddress)
	myRecipient.Resolve
	Si no myRecipient.Resolved entonces
	   MsgBox “recipiente desconocido”
	
	   newMail.Recipients.Add (myRecipient)
	   newMail.Send
	Terminar si

	Fijar el ol = nada

terminar el submarino
Otras soluciones  
 
programming4us programming4us