Http schemas microsoft com win 2004

Код события:10154 Источник: Microsoft-Windows-WinRM

Код события:10154 Источник: Microsoft-Windows-WinRM

Источник: Microsoft-Windows-WinRM
Дата: 08.09.2012 17:56:46
Код события: 10154
Категория задачи:Отсутствует
Уровень: Предупреждение
Ключевые слова:Классический
Пользователь: Н/Д
Компьютер: Dcsrv1.nwtraders. msft
Описание:
Службе WinRM не удалось создать следующие имена участников-служб: WSMAN/Dcsrv1.nwtraders. msft, WSMAN/Dcsrv1.

Дополнительные данные
Была получена ошибка «8344»: %%8344.

Действия пользователя
Имена участников-служб можно создать под учетной записью администратора с помощью служебной программы setspn. exe.
Xml события:

10154
0
3
0
0
0x80000000000000

4643

System
Dcsrv1.nwtraders. msft

WSMAN/Dcsrv1.nwtraders. msft
WSMAN/Dcsrv1
8344

Чтобы решить данную проблему делаем следующее.

Заходим в остнастку ADSIEDIT. msc

Код события 10154 Источник Microsoft-Windows-WinRM-01

подключаемся к контроллеру по умолчанию

Код события 10154 Источник Microsoft-Windows-WinRM-02

затем раскрываем объект DC=DOMAIN, DC=local там находим пункт OU=Domain Controllers

Код события 10154 Источник Microsoft-Windows-WinRM-03

Заходим в Свойства-Безопасность OU=Domain Controllers
Добавляем системную учетную запись NETWORK SERVICE и даём ей права «Удостоверенная на запись сопоставления имен участника службы «

Код события 10154 Источник Microsoft-Windows-WinRM-04

Код события 10154 Источник Microsoft-Windows-WinRM-05

Дожидаемся репликации, предупреждение от WinRM больше Нас не беспокоит.

We have a server machine where Net. Pipe Listener Adapter, Net. Tcp Listener Adapter services are deleted while in the server machine these services were running fine. When we observed that these services are disabled, we tried to enable the services but we got a pop up that these services are marked for deletion. Also, it asks the server to be rebooted but being the production server reboot is not possible.

As soon as you will try to install these services it will give you errors. Event Logs will show you following logs:

.NET Framework 3.5.1 Features

Error: Attempt to install Non-HTTP Activation failed with error code 0x80070643. Fatal error during installation

Error: Attempt to install HTTP Activation failed with error code 0x80070643. Fatal error during installation

The following features were not installed:

Windows Process Activation Service

Error: Attempt to install Configuration APIs failed with error code 0x80070643. Fatal error during installation

Error: Attempt to install Process Model failed with error code 0x80070643. Fatal error during installation

The following features were not installed:

221, 222, 223, 41, 219, 218, 217

So it is clear that WCF Non Http Activation installation is failing. Let us try again and try to see the messages that system generates when we try to install these.

Perform following steps:

You will get the following error message immediately.

Error: You cannot activate this unless you activate Window Process Activation Service

So to install the above components follow the steps as shown below:

allik

Новый пользователь

Имя журнала: Application
Источник: VSS
Дата: 27.03.2017 17:59:36
Код события: 12348
Категория задачи:Отсутствует
Уровень: Предупреждение
Ключевые слова:Классический
Пользователь: Н/Д
Компьютер: Admin-HP
Описание:
Предупреждение службы теневого копирования тома: доступ к корню тома \?Volume для VSS запрещен. При запрете на доступ к корню томов для администраторов могут возникать непредвиденные сбои. VSS при этом тоже не может работать правильно. Проверьте настройки безопасности для данного тома, а затем попробуйте повторить операцию.

Операция:
Удаление автоматически освобожденных теневых копий
Загрузка поставщика

Контекст:
Контекст выполнения: System Provider
Xml события:

Операция:
Удаление автоматически освобожденных теневых копий
Загрузка поставщика

Контекст:
Контекст выполнения: System Provider
2D20436F64653A2053505250524F564330303030323333312D2043616C6C3A2053505250524F564330303030323237332D205049443A202030303030323432302D205449443A202030303030303437362D20434D443A2020433A5C57696E646F77735C53797374656D33325C737663686F73742E657865202D6B2073777072762D20557365723A204E616D653A204E5420415554484F524954595C

Операция:
Сбор данных модуля записи
Выполнение асинхронной операции

Контекст:
Контекст выполнения: Requestor
Текущее состояние: GatherWriterMetadata
2D20436F64653A2042554543584D4C4330303030393030312D2043616C6C3A2042554543584D4C4330303030383933392D205049443A202030303030303138342D205449443A202030303030333635322D20434D443A2020433A5C57696E646F77735C73797374656D33325C72756E646C6C33322E657865202F64207372727374722E646C6C2C457865637574655363686564756C65645350504372656174696F6E2020202020202D20557365723A204E616D653A204E5420415554484F524954595C

Имя журнала: Application
Источник: System Restore
Дата: 27.03.2017 17:59:38
Код события: 8193
Категория задачи:Отсутствует
Уровень: Ошибка
Ключевые слова:Классический
Пользователь: Н/Д
Компьютер: Admin-HP
Описание:
Не удалось создать точку восстановления (Процесс = C:Windowssystem32
undll32.exe /d srrstr. dll, ExecuteScheduledSPPCreation; Описание = Запланированная контрольная точка; HR = 0x80042318).
Xml события:

8193
2
0
0x80000000000000

39049
Application
Admin-HP

C:Windowssystem32
undll32.exe /d srrstr. dll, ExecuteScheduledSPPCreation
Запланированная контрольная точка
0x80042318
182304809D010000870100009501000022CE28677C6DDA79E28C1C000000000000000000

Имя журнала: Application
Источник: System Restore
Дата: 27.03.2017 17:59:38
Код события: 8211
Категория задачи:Отсутствует
Уровень: Ошибка
Ключевые слова:Классический
Пользователь: Н/Д
Компьютер: Admin-HP
Описание:
Не удалось создать по расписанию запланированную точку восстановления. Дополнительные сведения: (0x80042318).
Xml события:

8211
2
0
0x80000000000000

39050
Application
Admin-HP

———————————————————————
Имя журнала: Application
Источник: VSS
Дата: 27.03.2017 18:02:38
Код события: 8224
Категория задачи:Отсутствует
Уровень: Сведения
Ключевые слова:Классический
Пользователь: Н/Д
Компьютер: Admin-HP
Описание:
Служба VSS выключается из-за тайм-аута простоя.
Xml события:

8224
4
0
0x80000000000000

39051
Application
Admin-HP

———————————————————————
Имя журнала: Application
Источник: Microsoft-Windows-PerfNet
Дата: 27.03.2017 17:39:28
Код события: 2004
Категория задачи:Отсутствует
Уровень: Ошибка
Ключевые слова:Классический
Пользователь: Н/Д
Компьютер: Admin-HP
Описание:
Не удалось открыть объект счетчиков производительности службы сервера. Первые четыре байта (DWORD) в разделе данных содержат код состояния.
Xml события:

Счётчики производительности

«Счётчики производительности» (perfomance counters) – это расширяемый механизм сбора различной (в основном статистической) информации, заложенный в операционные системы линейки Windows NT, начиная с версии 3.1. Большая часть счётчиков доступна пользователю через оснастку (snap-in) Performance. О том, сколько всего интересного можно узнать, используя счётчики производительности, говорит тот факт, что примерно половина экспериментов, описанных в книге «Внутреннее устройство Windows 2000» Д. Соломона и М. Руссиновича, проводилась с использованием оснастки Performance. Кстати сказать, возможно чтение счётчиков и с удалённого компьютера.

Это мощный и гибкий механизм. Но, на мой взгляд, он неочевиден, громоздок и неудобен. Широкое практическое применение программистами представляется мне сомнительным. Однако есть несколько ситуаций, когда использование счётчиков производительности может быть оправдано:

Я считаю, что создание собственных счётчиков более интересно и полезно, но и более трудоёмко. Поэтому первая часть этой статьи описывает чтение данных существующих счётчиков производительности (всё равно считывать данные со счётчиков, хотя бы и своих, придётся) и морально подготавливает к созданию собственных счётчиков. Вторая посвящена собственно созданию.

Общая картина

Для получения значений счётчиков производительности нужно сделать примерно такой вызов:

Для доступа к счётчикам производительности существует несколько интерфейсов. Я знаю о четырёх: функция RegQueryValueEx, библиотека PDH (Performance Data Helper), WMI (Windows Management Instrumentation) и ActiveX System Monitor (если его можно назвать интерфейсом).

В статье рассматривается только интерфейс RegQueryValueEx – базовый и наиболее простой (всего одна функция, не вводятся дополнительные уровни абстракции). Остальные интерфейсы удобнее, но, во-первых, сложнее, во-вторых, их изучение никак не поможет при создании собственных счётчиков производительности.

Особенности, отличающие этот код от обычного использования RegQueryValueEx:

Но главное отличие – это, конечно, возвращаемые данные.

Структура данных о производительности

Данные, возвращаемые RegQueryValueEx, имеют чёткую иерархию.

ПРИМЕЧАНИЕ

В этом разделе я рассматриваю именно саму иерархию, т. е. уровни и классификацию полученных данных. Не относящиеся к делу поля описываемых структур не приводятся.

Все размеры и смещения даны в байтах. Все смещения отсчитываются от начала соответствующей структуры.

На верхнем уровне находится весь блок данных в целом. Он описывается структурой PERF_DATA_BLOCK:

На следующем уровне иерархии находятся «объекты типа» (object type; по-моему, их логично было бы называть «классами» или «типами», но обычно их называют объектами; далее и я буду называть их объектами). Они бывают двух видов:

Основное логическое отличие между этими видами объектов заключается в том, что для «одиночных» объектов данные счётчиков относятся непосредственно к объекту, а для «экземплярных» данные относятся к экземпляру.

Объект описывается следующей структурой:

Далее идут «определения счётчиков». Их должно быть PERF_OBJECT_TYPE::NumCounters штук. Каждый счётчик представлен так:

После определений счётчиков у «одиночных» объектов находится блок данных. Он состоит из структуры PERF_COUNTER_BLOCK, и собственно значений счётчиков. Структура PERF_COUNTER_BLOCK:

Данные счётчика находятся по смещению PERF_COUNTER_BLOCK::CounterOffset от начала этой структуры.

У «экземплярных» объектов всё несколько сложнее. За определениями счетчиков следуют «определения экземпляров», каждый со своим блоком данных. Блок данных имеет такую же структуру, что и блоки данных «одиночных» объектов. Определение экземпляра:

Всё вместе выглядит примерно так:


Рисунок 1. Весь блок данных в целом.


Рисунок 2. «Одиночный» объект.


Рисунок 3. «Экземплярный» объект.

Содержимое данных о производительности

А теперь рассмотрим те же самые структуры, но с другой точки зрения.

ПРЕДУПРЕЖДЕНИЕ

Некоторые поля я не описываю и даже не привожу, так как структуры и без того большие, а эти поля не кажутся мне хоть сколько-нибудь важными. А иногда мне и не совсем понятно, зачем они нужны. Поэтому после прочтения статьи рекомендую на всякий случай изучить соответствующие разделы MSDN (информации там немного).

Кроме имени системы здесь, пожалуй, ничего полезного нет. А имя системы совпадает с именем компьютера, с которого были получены данные, поэтому большого интереса также не представляет. Остальные структуры содержат несколько больше полезной информации.

Базе имён посвящён следующий раздел. Если кратко, то поля ObjectNameTitleIndex и ObjectHelpTitleIndex позволяют получить текстовое имя объекта и его описание. Описание может оказаться полезным только в том случае, если планируется его выводить, а вот имя можно использовать при поиске нужного объекта (обычно, правда, поступают наоборот – сначала по имени получают индекс, а уже по индексу находят объект).

Самое интересное поле – это, конечно, CounterType. Оно определяет тип информации, содержащейся в счётчике, размер (или механизм вычисления размера) данных счётчика, манипуляции, которые необходимо произвести со значением счётчика перед использованием, и даже форму, в которой его нужно выводить.

В MSDN это поле уклончиво описано как комбинация различных значений (values). Именно значений, а не флагов, так как некоторые из битов этого поля являются флагами, а некоторые – нет. Те, которые «нет», отличаются тем, что логически они исключают друг друга, а их битовые маски пересекаются, поэтому проверять присутствие/отсутствие оператором «&» не получается. Схема такова:

Я приведу только значения, соответствующие полям size, type, и два значения поля subtype. Остальные менее интересны и более запутанны (некоторые – значительно более запутанны), если хотите, можете посмотреть их в MSDN.

Полноценный анализ поля CounterType в общем виде довольно сложен. Я, например, не только написать его не собрался, но даже и разобрался не со всеми вариантами. Но если вы не собираетесь писать свою оснастку Performance (да ещё и используя исключительно RegQueryValueEx…), то анализ этого поля вам нужно будет произвести только один раз, на этапе разработки приложения. В конце статьи есть пример такого анализа.

ПРИМЕЧАНИЕ

В MSDN описываются не столько флаги/значения (хотя и они тоже), сколько разумные (с точки зрения Microsoft) комбинации. В моей версии MSDN описано 36 различных типов счетчиков. Для каждого приведена формула, позволяющая из «сырых» данных получить понятное пользователю значение. Здесь я их приводить не буду.

ПРИМЕЧАНИЕ

И в MSDN, и в заголовочном файле winperf. h о поле NameOffset написано:

Однако о поле CodePage структуры PERF_OBJECT_TYPE и там, и там написано примерно следующее:

Specifies the code page. This member is zero if the instance strings are in Unicode. Otherwise, this member is the code-page identifier of the instance names.

Я ни разу не встретил ни ненулевого CodePage, ни неюникодного имени. Поэтому где правда – не знаю.

База имён

База имён – это таблица соответствия между индексом имени/описания чего-либо и самим именем/описанием. Точнее, эти базы могут существовать для нескольких языков, причём по две для каждого – одна для имён, вторая для описаний. Хранится всё, как водится, в реестре, большими, слегка структурированными кусками данных. По этому поводу можно только слегка опечалиться.

И база имён, и база описаний находятся в значениях одного ключа реестра. Есть два варианта (они оба работают, вы можете выбирать любой, но если планируется работать под Windows NT 4.0, то посмотрите Q237304 и выберите первый):

Во всех случаях «XYZ» это трёхсимвольная строчка, содержащая «основную часть идентификатора языка» (primary language identifier) в шестнадцатеричном виде. Языком может быть либо английский, либо язык версии (не локализации, а именно версии; локализацию можно поменять из настроек Regional Options, поменять версию гораздо сложнее, я, например, не умею) Windows. Для английского «XYZ» будет «009», для русского «019». При использовании «009» строчки будут английскими, при использовании языка версии могут быть либо локализованными (если создатель соответствующего объекта позаботился об этом, подробнее во второй части статьи), либо английскими.

СОВЕТ

Есть API-функция, которая вроде бы подходит для определения языка версии Windows. Это GetSystemDefaultUILanguage, но она существует только начиная с Windows 2000, да и название у неё подозрительное :)… Для Windows NT 4.0 нужно либо лезть в реестр (куда не скажу, так как не знаю), либо брать язык из VersionInfo какой-нибудь системной dll (смотрите функцию GetFileVersionInfo и её друзей).

Для удалённого компьютера единственный известный мне вариант – реестр. В Windows 2000 и XP нужно смотреть ключ «HKLM\System\CurrentControlSet\Control\Nls\Language», параметр InstallLanguage. Про Windows NT 4.0 – не знаю.

Базы хранятся в значениях типа REG_MULTI_SZ, то есть состоят из большого количества разделённых нулями строк, последняя строка завершается двойным нулём. Формат такой:

Здесь Индекс_X – строчка с десятичным представлением числа. Последовательные индексы совершенно точно не являются последовательными числами потому, что в базе имён все индексы (кроме первого) чётные, а в базе описаний – нечётные. Но это не значит, что они идут друг за другом через один – между ними могут быть дырки, в общем случае последовательность не обязательно везде возрастающая (скорее всего она будет возрастающей, но это никем не гарантируется).

ПРИМЕЧАНИЕ

Во многих случаях индекс имени чего-либо и индекс соответствующего этому имени описания являются последовательными числами. Возникает соблазн предположить, что это закон. Однако изучение счётчиков объекта «Browser» опровергает такое предположение.

В дополнение к этому, в параметрах «Last Counter» и «Last Help» (тип REG_DWORD) ключа «HKLM\Software\Microsoft\Windows NT\CurrentVersion\Perflib» хранятся максимальные значения индексов, использованных в базах имён и описаний соответственно.

ПРИМЕЧАНИЕ

Совершенно случайно я «откопал» небольшую недокументированную особенность (сомнительной полезности, но тем не менее).

В файле Winreg. h можно обнаружить следующие строчки:

#define HKEY_PERFORMANCE_TEXT (( HKEY ) (ULONG_PTR)((LONG)0x80000050) )

#define HKEY_PERFORMANCE_NLSTEXT (( HKEY ) (ULONG_PTR)((LONG)0x80000060) )

С описателем HKEY_PERFORMANCE_TEXT все достаточно просто – он эквивалентен ключу «HKLM\Software\Microsoft\Windows NT\CurrentVersion\Perflib\009». Эквивалентен в том смысле, что если этот ключ открыть, получится как раз этот описатель.

Удалённый доступ

Поскольку всё хранится в реестре, для получения информации с удалённого компьютера (работающего под управлением Windows NT/2000/XP) можно использовать функцию RegConnectRegistry.

Параметр Значение
lpMachineName Имя машины. В MSDN написано, что формат имени – «\\name», но просто «name» у меня тоже работало.
hKey Запрашиваемый описатель. Либо HKEY_LOCAL_MACHINE, либо HKEY_USERS, либо HKEY_PERFORMANCE_DATA.
phkResult Описатель, эквивалентный запрашиваемому, но для удалённой машины.

Вот так просто… всё было бы, если бы все пользователи были администраторами на целевой машине… Иногда это не так. В этом случае может помочь Q155363 (HOWTO: Regulate Network Access to the Windows NT Registry), Q146906 (HOWTO: How To Secure Performance Data in Windows NT) и несколько моих дополнений:

Параметр lpValueName функции RegQueryValueEx

Здесь я просто приведу табличку из MSDN. Естественно, с некоторыми комментариями, половина из которых тоже взята из MSDN :)

ПРИМЕЧАНИЕ

Во всех случаях, кроме последнего, данные относятся к тому же компьютеру, что и используемый описатель ключа реестра. То есть, если использовать HKEY_PERFORMANCE_DATA, это будет машина, на которой выполняется программа, а если передавать в RegQueryValueEx результат RegConnectRegistry – машина с которой установлено соединение.

Значение Описание
Global Будут возвращены данные для всех объектов, кроме тех, которые относятся к категории «Costly».
Costly Будут возвращены данные для тех объектов, которые «долго собирать». Процесс может занять секунд пять-десять-пятнадцать. Некоторые объекты включаются как в категорию Global, так и в категорию Costly.
xx yy zz (Разделённые пробелами десятичные представления индексов имён запрашиваемых объектов.) Функция вернёт данные для запрошённых объектов. В некоторых случаях она по собственной инициативе вернёт данные для ещё нескольких объектов. Например, если вы хотите узнать о процессах, то получите процессы, потоки и «Job Object Details» (в Windows 2000). Если же спросить о потоках или «Job Object Details», то получите ту же тройку объектов. Запрашиваемые объекты могут относиться к любой категории.
Foreign <имя системы> [xx yy zz] Ещё один механизм, предназначенный для получения значений счётчиков с удалённого компьютера. О параметре <имя системы> в MSDN написано следующее: « the name of a foreign computer, such as a Novell NetWare server or a UNIX system». Наверное, это правда. Но проверить я не смог, так как под рукой не оказалось ни одного такого сервера. С Windows-серверами этот механизм у меня не заработал. Если параметры xx yy zz не указаны, то будут возращены все счётчики, если указаны, то аналогично предыдущему пункту.
ПРИМЕЧАНИЕ

Строчки «Global» и «Costly» регистро-зависимы.

All together now

Итак, вы хотите получить значение счётчика «Counter» объекта «Object» c компьютера «Computer». Последовательность действий:

Проще всего читать базу «009», так как она точно есть. Но тогда имя объекта и счётчика должны быть английскими.

Для стандартных объектов и их счётчиков индексы не изменяются от системы к системе. Поэтому для них этап получения индексов можно пропустить. Единственная проблема – я не нашёл в MSDN упоминания об этом факте…

После получения данных о счетчиках (чтение базы имён в данном случае не считается) ключ HKEY_PERFORMANCE_DATA нужно закрыть. Но желательно делать это пореже. В том смысле, что лучше сделать это один раз в конце, а не каждый раз после обращения к RegQueryValueEx. Причина проста: для получения данных RegQueryValueEx загружает зарегистрированные в реестре dll-и. При закрытии HKEY_PERFORMANCE_DATA они могут быть выгружены, и при следующем запросе их придётся загружать заново.

В качестве примера я написал две утилиты. Первая – скорее полезная, вторая – скорее забавная.

PCViewer

PCViewer – это утилита, позволяющая просматривать значения счётчиков производительности, их имена, типы и т. п. Она позволяет подключаться к другому компьютеру, выбирать используемую базу имён, формировать любые запросы. Выдаёт всю информацию, возвращаемую RegQueryValueEx (включая смещения и размеры).

Для упрощения перебора структур я написал три простых класса. Для работы с базой имён – ещё два. И один для получения информации от RegQueryValueEx. Эти классы сосредоточены в файлах (*.h и *.cpp) perfobjects, titledb (чтобы продемонстрировать все варианты доступа к базам имён, мне пришлось не слабо изуродовать этот класс, в файлах titledb лежит оригинальная версия, в titledb_for_sample – используемая в проекте), perfdata, все они лежат в каталоге Perf. Кроме них, в этом каталоге присутствуют два файла (опять *.h и *.cpp) countrhelpdb. Это обёртка вокруг классов, работающих с базой имён.

Остальное – пользовательский интерфейс, написанный с использованием WTL 3.1

Processor Protector

ПРЕДУПРЕЖДЕНИЕ

Осторожно! Программа работает! В результате её работы вы можете потерять данные, получить BSOD (я получал; насколько я понял, получите вы BSOD или нет, зависит от того, что у вас установлено) и ещё какие-нибудь неприятности.

Для получения информации о процессоре и списка процессов используются фиксированные значения индексов – это стандартные объекты, для них можно.

Единственное, что может вызвать затруднение при просмотре кода – вычисление процента загрузки процессора по значению счётчика. Счётчик имеет следующий тип: PERF_SIZE_LARGE | PERF_TYPE_COUNTER | PERF_COUNTER_RATE | PERF_TIMER_100NS | PERF_DELTA_COUNTER | PERF_INVERSE_COUNTER | PERF_DISPLAY_PERSENT. Здесь:

Конечная формула выглядит так:

Что ж, можно считать, что теперь к созданию собственных счётчиков Вы готовы хотя бы морально :) Продолжение банкета – во второй части статьи.

Источники:

https://window-10.ru/http-schemas-microsoft-com-win-2004/

https://www. rsdn. org/article/baseserv/perfcounters1.xml

Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: