niichavo
Advanced Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Код: 'комп, где запускаем скрипт strComputer = "TargetComp" 'комп, куда отсылаем сообщения strAdminCompName = "YaOdminko" strDrive = "e:" strPath = "\\папка за которой следим\\" strFileName = "файлО_за_которым_следим.txt" Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") Set colFiles = objWMIService. _ ExecQuery("Select * From CIM_DataFile Where Name = '" & strDrive & strPath & strFileName & "'") If colFiles.Count = 0 Then MyNetSend("Нетути файла") Else MyNetSend("ФайлО на месте") End If Dim Body Set objEvents = objWMIService.ExecNotificationQuery _ ("SELECT * FROM __InstanceOperationEvent WITHIN 5 WHERE " & _ "TargetInstance ISA 'CIM_DataFile'" & _ " AND TargetInstance.Drive = '" & strDrive & "'" & _ " AND TargetInstance.Hidden <> 1" & _ " AND TargetInstance.Path = '" & strPath & "'") 'Wscript.Echo "Ожидаем события ..." Do While(True) Set objLatestEvent = objEvents.NextEvent Select Case objLatestEvent.Path_.Class Case "__InstanceCreationEvent" tmpFileName = objLatestEvent.TargetInstance.FileName _ & "." & objLatestEvent.TargetInstance.Extension If LCase(tmpFileName) = LCase(strFileName) Then Body = Now & vbTab & "Файл """ & tmpFileName & _ """ был создан" & vbCrLf MyNetSend(Body) End If Case "__InstanceDeletionEvent" tmpFileName = objLatestEvent.TargetInstance.FileName _ & "." & objLatestEvent.TargetInstance.Extension If LCase(tmpFileName) = LCase(strFileName) Then Body = Now & vbTab & "Файл """ & tmpFileName & _ """ был удалён" & vbCrLf MyNetSend(Body) End If Case "__InstanceModificationEvent" tmpFileName = objLatestEvent.TargetInstance.FileName _ & "." & objLatestEvent.TargetInstance.Extension If objLatestEvent.TargetInstance.LastModified <> _ objLatestEvent.PreviousInstance.LastModified And _ LCase(tmpFileName) = LCase(strFileName) Then Body = Now & vbTab & "Файл """ & tmpFileName & _ """ был изменён" & vbCrLf MyNetSend(Body) End If End Select Loop '========== net send =========== Function MyNetSend(strBody) Set WshShell = CreateObject("WScript.Shell") WshShell.Run "net send " & strAdminCompName & " " & strBody End Function |
| Всего записей: 836 | Зарегистр. 14-09-2005 | Отправлено: 17:29 27-05-2009 | Исправлено: niichavo, 09:26 28-05-2009 |
|