Хмм… Если ничего не меняли в коде, то ошибка вот здесь:
Код:

If .GetOwner(strUser, strDomain) <> 0 Then
Единственный вариант, который могу предположить — процесс завершается быстрее, нежели чем отведённый для опроса интервал — т.е., менее, чем за секунду.
Давайте попробуем так:
читать дальше »
Код:

Option Explicit
Const ForAppending = 8
Const TristateTrue = -1
Const TemporaryFolder = 2
Dim strComputer
Dim objSWbemLocator
Dim objSWbemServicesEx
Dim objSWbemEventSource
Dim objSWbemObjectEx
Dim objFSO
Dim objTS
Dim strPath
Dim strDomain
Dim strUser
strComputer = "."
Set objSWbemLocator = WScript.CreateObject("WbemScripting.SWbemLocator")
Set objSWbemServicesEx = objSWbemLocator.ConnectServer(strComputer, "root\cimv2")
Set objSWbemEventSource = objSWbemServicesEx.ExecNotificationQuery( _
"SELECT * FROM __InstanceCreationEvent WITHIN 1 " & _
"WHERE TargetInstance ISA 'Win32_Process'")
Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
strPath = objFSO.BuildPath(objFSO.GetSpecialFolder(TemporaryFolder), "Application activity.log")
Do
Set objSWbemObjectEx = objSWbemEventSource.NextEvent()
Set objTS = objFSO.OpenTextFile(strPath, ForAppending, True, TristateTrue)
With objSWbemObjectEx.TargetInstance
On Error Resume Next
If .GetOwner(strUser, strDomain) <> 0 Then
If Err.Number <> 0 Then
Err.Clear
On Error Goto 0
strDomain = "Unkhown"
strUser = "Unkhown"
Else
On Error Goto 0
End If
End If
objTS.WriteLine _
Now() & vbTab & _
.Name & vbTab & _
.ProcessID & vbTab & _
.ParentProcessID & vbTab & _
.ExecutablePath & vbTab & _
.CommandLine & vbTab & _
strDomain & "\" & strUser
End With
objTS.Close
Set objTS = Nothing
Loop
Set objFSO = Nothing
Set collSWbemObjectSet = Nothing
Set objSWbemServicesEx = Nothing
Set objSWbemLocator = Nothing
WScript.Quit 0