Windows — просмотрите активные сеансы ETW, чтобы я мог закрыть один из них

Я работаю с трассировкой событий для Windows API и время от времени запускаю свое приложение, и ему не удается закрыть сеанс контроллера трассировки ETW после его открытия.

В основном я делаю ::StartTrace([out] handle...) и не закрываю этот дескриптор, когда закончу с ним (закрытие выполняется с помощью функции ::StopTrace())

Я ищу инструмент, который показывает мне активные сеансы, чтобы я мог закрыть его вручную. Без него мне приходится перезагружать компьютер, чтобы сеанс контроллера закрывался при выключении.

Кроме того, я понимаю, что в той же области ETW (в Win 7) я должен иметь возможность видеть макеты данных для общедоступных описаний MOF с помощью wbemtest.exe. Там я должен войти в

- Connect -> Namespace = \\root\wmi\EventTrace

для просмотра данных MOF. Но я получаю сообщение "Сервер RPC недоступен". Используя на этом экране значения dafaults: IWBemLocator (пространства имен), как интерпретировать пароль = ноль, уровень аутентификации = пакет.

В области учетных данных у меня есть пользователь и пароль (который я пробовал), но есть еще одно пустое поле - Полномочия. Есть ли способ увидеть данные MOF? Я запускал этот повышенный уровень под Win 7.


etw
person Ghita    schedule 07.08.2011    source источник
comment
Что касается первого вопроса, я искал такой API/инструмент и не нашел.   -  person Uri Cohen    schedule 12.08.2011
comment
Что касается второго вопроса, я смог увидеть классы в root\wmi\EventTrace. Я предполагаю, что здесь показаны зарегистрированные MOF-ы. Просто не знаю, как увидеть описание MOF (например, входной файл, используемый при компиляции компилятором MOF). Для этого я использовал WMI CIM Studio.   -  person Ghita    schedule 29.08.2011


Ответы (3)


Функция QueryAllTraces извлекает свойства и статистика для всех сеансов трассировки событий, запущенных на компьютере, для которого вызывающая сторона имеет разрешения на запрос.

Могу ли я предложить опубликовать вторую часть вашего вопроса как отдельный вопрос?

person Lars Truijens    schedule 29.08.2011
comment
Это действительно API для запроса трассировок. А также есть API для закрытия некоторых сеансов WMI. Мне просто интересно, есть ли готовый инструмент, который упрощает это для нас (например, WMI CIM Studio или что-то еще) - person Ghita; 29.08.2011
comment
Я верю, что запрос журнала technet.microsoft.com/en-us /library/cc788030(WS.10).aspx или wevutil el windowsecurity.com/articles/WEVTUTIL-Manage-Event-Logs.html может это сделать. Или графический интерфейс просмотра событий - person Lars Truijens; 29.08.2011

Вы можете использовать команду logman query -ets для просмотра списка запущенных в данный момент сеансов отслеживания событий. Например, в Windows 10 вы увидите что-то вроде этого:

C:\>logman query -ets

Data Collector Set                      Type                          Status
-------------------------------------------------------------------------------
AppModel                                Trace                         Running
FaceRecoTel                             Trace                         Running
FaceUnlock                              Trace                         Running
LwtNetLog                               Trace                         Running
Microsoft Security Client WMI Providers Trace                         Running
NtfsLog                                 Trace                         Running
TileStore                               Trace                         Running
WiFiSession                             Trace                         Running
SCM                                     Trace                         Running
UserNotPresentTraceSession              Trace                         Running
CldFltLog                               Trace                         Running
SHS-05042018-095434-7-5f                Trace                         Running
WDSC-05042018-095434-7-20               Trace                         Running
Diagtrack-Listener                      Trace                         Running
8696EAC4-1288-4288-A4EE-49EE431B0AD9    Trace                         Running
Cloud Files Diagnostic Event Listener   Trace                         Running

The command completed successfully.

Если вы создали свой собственный сеанс, например, с помощью Microsoft.Diagnostics.Tracing.Session.TraceEventSession, вы дали сеансу уникальное имя, и если он запущен, вы должны увидеть его в список.

Чтобы завершить существующий сеанс, сделайте это от имени администратора:

logman stop <SessionName> -ets

Существуют также некоторые командлеты PowerShell, которые может делать подобные вещи.

person nwsmith    schedule 08.05.2018

Утилита командной строки tracelog, входящая в состав Windows SDK, позволяет делать то же самое, что и QueryAllTraces, с помощью команды tracelog -l.

person Sebastien Pellizzari    schedule 15.09.2016