Windows - посмотрите активные сессии ETW, чтобы я мог закрыть одну из них - PullRequest
3 голосов
/ 07 августа 2011

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

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

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

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

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

, чтобы увидеть данные MOF.Но я получаю «Сервер RPC недоступен» .Используя на этом экране значения по умолчанию: IWBemLocator (Пространства имен), Как интерпретировать passsword = null, Уровень аутентификации = пакет.

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

Ответы [ 3 ]

6 голосов
/ 08 мая 2018

Вы можете использовать команду 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 Командлеты , которые могут выполнять аналогичные действия.

3 голосов
/ 29 августа 2011

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

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

1 голос
/ 15 сентября 2016

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

...