- Энциклопедия Windows
- Основные переменные среды в Windows 7
- Затирание учетных записей Windows 7
- Изучаем Event Tracing for Windows: теория и практика
- Теоретические основы службы трассировки Windows
- Поставщики событий (providers)
- Контроллеры
- Потребители
- Сессии ETW
- Создание своей сессии ETW
- Использование event tracing API для работы с ETW
- Настройка и запуск сеанса отслеживания событий
- Использование tracerpt и xperf для работы с ETW
Энциклопедия Windows
Все об использовании и настройке Windows
- Windata
- »
- Windows 7
- »
- Настройка
- » Основные переменные среды в Windows 7
Основные переменные среды в Windows 7
В Windows 7 есть немало переменных среды – специальных текстовых переменных, в которых хранятся данные об определенных настройках системы. Переменные среды Windows применяются как в командной строке, так и в адресной строке проводника. Как узнать основные переменные?
Прежде всего отметим, что все переменные среды в Windows 7 делятся на два типа:
- переменные среды пользователя содержат путь к пользовательским каталогам
- системные переменные содержат данные об определенных папках операционной системы, а также некоторые конфигурационные данные компьютера.
Чтобы узнать список переменных нужно сперва открыть командную строку. Щелкните на кнопке Пуск, введите команду cmd и нажмите . Теперь введите команду set. Будет представлен список переменных среды.
Чтобы использовать переменные среды, которые содержат путь к каталогам, нужно до и после переменной использовать символ %.
Скажем, в примере выше есть переменная ALLUSERSPROFILE – использовать ее нужно в виде %ALLUSERSPROFILE%. Это относится ко всем переменным, что указаны прописными (заглавными) буквами.
Затирание учетных записей Windows 7
Список форумов SYSAdmins.RU -> WINDOWS | На страницу 1, 2 След. |
Автор | |||||
---|---|---|---|---|---|
tovpadre Новичок Зарегистрирован: 21.06.2011
|
| ||||
Вернуться к началу |
| ||||
Зарегистрируйтесь и реклама исчезнет! | |||||
dusya Активный участник Зарегистрирован: 14.04.2014 |
| ||||
Вернуться к началу |
| ||||
tovpadre Новичок Зарегистрирован: 21.06.2011
|
| ||||
Вернуться к началу |
| ||||
dusya Активный участник Зарегистрирован: 14.04.2014 |
| ||||
Вернуться к началу |
| ||||
ipmanyak Windows guru Зарегистрирован: 28.03.2007
|
| ||||
Вернуться к началу |
| ||||
dusya Активный участник Зарегистрирован: 14.04.2014 |
| ||||
Вернуться к началу |
| ||||
tovpadre Новичок Зарегистрирован: 21.06.2011
|
| ||||
Вернуться к началу |
| ||||
dusya Активный участник Зарегистрирован: 14.04.2014 |
| ||||
Вернуться к началу |
| ||||
tovpadre Новичок Зарегистрирован: 21.06.2011
|
| ||||
Вернуться к началу |
| ||||
tovpadre Новичок Зарегистрирован: 21.06.2011 Изучаем Event Tracing for Windows: теория и практикаДобрый день. Недавно мне необходимо было разобраться со службой трассировки Windows. Эта служба появилась еще в Windows 2000, однако статей по этой службе в интернете оказалось крайне мало.Так появилась идея написания этой статьи. Итак, начнем! Сегодня я попытаюсь рассказать про:
Теоретические основы службы трассировки WindowsEvent Tracing for Windows (ETW) — это служба, которая позволяет получать события от одного или нескольких поставщиков событий в режиме реального времени или из файла *.etl за некоторый временной период. Не понятно? Сейчас разберемся! Для того, чтобы понять принцип работы ETW, необходимо разобраться со структурой этой службы Архитектура ETW включает в себя 4 элемента
Принцип работы состоит в следующем. В системе зарегистрировано некоторое число поставщиков событий, т.е. приложений, которые могут делиться своими событиями с сессиями ETW. Так же в этой системе есть некоторое число активных сессий ETW, которые могут потреблять события от одного или нескольких поставщиков и предоставлять их пользователю либо в режиме реального времени, либо записывать все события от поставщиков в файл логирования (*.etl). И управляют всем этим движением контроллеры. А теперь рассмотрим каждый элемент рассмотренной выше архитектуры подробнее, чтобы окончательно разобраться с принципом работы! Поставщики событий (providers)Поставщики событий — это приложения, содержащие инструменты отслеживания событий. После того, как поставщик зарегистрировался, контроллер может включить или отключить отслеживание событий в поставщике. Поставщик определяет свою интерпретацию включения или выключения. Как правило, включенный поставщик генерирует события, а отключенный поставщик нет. Это позволяет добавлять отслеживание событий в наше приложение, не требуя, чтобы оно генерировало события все время. Один поставщик может делиться своими событиями сразу с несколькими сессиями ETW. Каждое событие состоит из двух элементов: заголовка и данных! Заголовок события включает информацию о событии: идентификатор провайдера, идентификатор события, временную метку и т.д. Остальные данные определяются конкретным провайдером: ETW принимает любые данные и записывает их в буфер, а их интерпретация возлагается на потребителей информации. поставщики MOF (классические) Поставщики событий различаются по типам полей, которые они хранят в полезных нагрузках событий. С поставщиками событий вроде разобрались. Идем дальше! КонтроллерыКонтроллер — это приложение, которое отвечает за функционирование одной или нескольких сессий ETW. Именно контроллер определяет размер и местоположение файла журнала, запускает и останавливает сеансы трассировки событий (сессии ETW), позволяют поставщикам регистрировать события в сеансе. Как уже было сказано ранее, именно контроллер разрешает провайдеру делиться своими событиями! ПотребителиПотребители — это приложения, которые получают и обрабатывают события от одного или нескольких сеансов трассировки одновременно. Потребители могут получать события, хранящиеся в файлах журналов или из сеансов, которые доставляют события в режиме реального времени. Как мы уже знаем, у одной сессии ETW может быть несколько поставщиков. Возникает вопрос: а не будет ли путаницы? Как события из различных сессий ETW будут располагаться друг относительно друга? События сортируются по времени их появления, т.е. система доставляет события в хронологическом порядке! Сессии ETWСеансы отслеживания событий (сессии ETW) записывают события от одного или нескольких провайдеров, которые разрешает контроллер. Сессия также отвечает за управление и очистку буферов. Трассировка событий поддерживает до 64 сеансов трассировки событий, выполняющихся одновременно. Из этих сессий есть две сессии специального назначения. Остальные сеансы доступны для общего пользования. Две сессии специального назначения:
Сеанс трассировки событий Global Logger записывает события, которые происходят в начале процесса загрузки операционной системы, например, генерируемые драйверами устройств. Итак, а теперь переходим к практике. Создание своей сессии ETWПеред началом работы нам потребуется знание нескольких утилит, а именно: список провайдеров, доступных на конкретной ОС получить полную информацию о провайдере список всех активный сессий ETW Так же, для просмотра файлов, желательно иметь Notepad++. Просмотрев список провайдеров на своем компьютере (а их более 1000 на Windows 10), выберем один из них для нашей сессии: Я выбрал Microsoft-Windows-WinINet (эта служба записывает все наши действия при работе в браузере Microsoft Edge). 1. Win+R -> compmgmt.msc
12. Выбираем путь, по которому будет сохраняться файл журнала сессии Теперь созданная нами сессия работает. Необходимо поработать некоторое время в Microsoft Edge, чтобы сессия собрала о нас информацию! После того, как прошло некоторое время переходим в место, куда мы сохранили файл логирования. Там выполняем следующую команду. После выполнения этой команды сформируется 4 файла. Нас в данный момент будет интересовать dumpfile.xml. Открывать этот файл можно либо через notepad++, можно также сделать это в Excel. Внимательно изучив этот файл, можно заметить, что данная сессия собрала почти всю информацию о нашем перемещении в сети интернет. Более подробно об этом можно почитать здесь Изучаем ETW и извлекаем профиты. Ну что же, а мы движемся дальше. Только что мы создали сессию с единственным поставщиком событий. Получили данные сессии из файла логирования. Пришло время кодить! Использование event tracing API для работы с ETWВ этой статье Вы найдете ответы на многие вопросы, которые у вас скорее всего возникнут при написании приложений! Кодить будем на C++. Начнем с самого простого. Настройка и запуск сеанса отслеживания событийДля начала рассмотрим общую идею. Чтобы запустить сеанс трассировки необходимо: 1) Задать структуру EVENT_TRACE_PROPERTIES 2) Запустить сеанс с помощью StartTrace 3) Включаем поставщиков с помощью EnableTrace | EnableTraceEx | EnableTraceEx2 4) Перед остановкой сеанса трассировки необходимо отключить провайдеров с помощью EnableTrace | EnableTraceEx | EnableTraceEx2, передав EVENT_CONTROL_CODE_DISABLE_PROVIDER 5) Вызвать функцию ControlTrace и передать ей EVENT_TRACE_CONTROL_STOP В приведенном ниже примере я создаю сессию с именем MyEventTraceSession. Файл журнала логирования находится в текущей директории и называется WriteThePuth.etl Поставщиком событий является Microsoft-Windows-Kernel-Process. Его GUID Вы можете узнать с помощью Разберем приведенную программу более подробно. 1) Задаем структуру EVENT_TRACE_PROPERTIES Чтобы настроить сеанс трассировки событий, необходимо использовать структуру EVENT_TRACE_PROPERTIES, чтобы указать свойства сеанса. Память, которую вы выделяете для структуры EVENT_TRACE_PROPERTIES, должна быть достаточно большой, чтобы также содержать имена файлов сеансов и журналов, которые следуют за структурой в памяти. 2) Запускаем сеанс с помощью StartTrace После того, как вы укажете свойства сеанса, вызовите функцию StartTrace, чтобы запустить сеанс. Если функция завершается успешно, параметр SessionHandle будет содержать дескриптор сеанса, а свойство LoggerNameOffset будет содержать смещение имени сеанса. 3) Включаем поставщиков с помощью EnableTrace | EnableTraceEx | EnableTraceEx2 Чтобы включить поставщиков, которым вы хотите разрешить записывать события в свой сеанс, вызовите функцию EnableTrace, чтобы включить классических поставщиков, и функцию EnableTraceEx, чтобы включить поставщиков на основе манифеста. В остальных случаях — EnableTraceEx2. 4) Перед остановкой сеанса трассировки необходимо отключить провайдеров с помощью EnableTrace | EnableTraceEx | EnableTraceEx2, передав EVENT_CONTROL_CODE_DISABLE_PROVIDER Чтобы остановить сеанс трассировки после сбора событий, вызовите функцию ControlTrace и передайте EVENT_TRACE_CONTROL_STOP в качестве управляющего кода. Чтобы указать сеанс для остановки, вы можете передать дескриптор сеанса трассировки событий, полученный из более раннего вызова функции StartTrace, или имя ранее запущенного сеанса. Обязательно отключите всех провайдеров перед остановкой сеанса. Если вы остановите сеанс перед первым отключением провайдера, ETW отключит провайдера и попытается вызвать контрольную функцию обратного вызова провайдера. Если приложение, запустившее сеанс, завершается без отключения поставщика или вызова функции ControlTrace, поставщик остается включенным. 5) Чтобы остановить сеанс трассировки, вызываем функцию ControlTrace и передаем ей EVENT_TRACE_CONTROL_STOP Как мы убедились на приведенном выше примере, использование Event Tracing API является не самым простым. В зависимости от того, чем вы занимаетесь, дальше можно заниматься либо написание поставщиков событий, либо написанием потребителей событий. Однако обе эти задачи довольно объемные и в этой статье рассматриваться не будут! Дополнительную сложность создают 4 вида поставщиков событий, и, соответственно, 4 варианта написания событий и 4 варианта их потребления. Очень подробно и хорошо работа с Event Tracing API описана на официальном сайте Microsoft Using Event Tracing Проработав некоторое время с Event Tracing API у меня появился вопрос: а есть ли утилиты, которые упросят мне жизнь? Использование tracerpt и xperf для работы с ETWВ этой главе я не буду рассматривать эти утилиты с теоретической точки зрения. Команду Tracerpt можно использовать для анализа журналов трассировки событий, файлов журналов, созданных монитором производительности, и поставщиков трассировки событий в реальном времени. Он создает файлы дампа, файлы отчетов и схемы отчетов. У этой утилиты большое количество параметров, однако для начала работы подойдет следующий «минимум» Утилита xperf.exe является полноценным контроллером. Она поддерживает аргументы командной строки, позволяющие управлять ETW-провайдерами и сессиями. Контроллеры могут запрашивать состояние активных в данный момент сессий и получать списки всех зарегистрированных в системе провайдеров. Например, для получения всех активных сессий следует использовать следующую команду: а для получения списка всех зарегистрированных в системе провайдеров — команду: Контроллеры обладают еще несколькими ключевыми функциями. Они могут обновлять сессии и сбрасывать содержимое буферов на диск. На этом пока все! К сожалению, в данной статье я не затронул некоторое количество интересных вопросов (например, потребление событий в режиме реального времени или работу с сессиями специального назначения). Об этом можно почитать на следующих сайтах: |