Skip to content

Latest commit

 

History

History
123 lines (106 loc) · 7.87 KB

File metadata and controls

123 lines (106 loc) · 7.87 KB

SCCMInfo

Консольная утилита и служба Windows, отслеживающая ключевые события Microsoft Configuration Manager (SCCM) через WMI и записывающая подробные диагностические данные для администраторов.

Read in English

Содержание

Обзор

SCCMInfo подключается к пространству имен ROOT\\SMS текущего сайта SCCM, подписывается на создание ключевых объектов (например, SMS_DeploymentInfo и SMS_CombinedDeviceResources), обогащает полученные данные и записывает их в структурированную консольную таблицу и постоянные журналы. Инструмент может работать интерактивно для диагностики либо устанавливаться как служба Windows для непрерывного мониторинга.

Возможности

  • Автоматическое определение локального управляющего пункта и кода сайта SCCM.
  • Подписка на события SCCM WMI с подключаемыми обогатителями, добавляющими контекст перед записью в журналы.
  • Консольный вывод с таблицами Spectre.Console для быстрого анализа в интерактивном режиме.
  • Постоянное журналирование в ProcessInfoLog.txt рядом с исполняемым файлом и, при наличии прав, в журнал приложений Windows.
  • Возможность установки как службы Windows для автономного мониторинга.

Структура репозитория

Путь Описание
SCCMInfo/ Исходный код консольного приложения и службы Windows.
SCCMInfo.sln Файл решения Visual Studio под .NET Framework 4.8.
LICENSE.txt Лицензия проекта.

Предварительные требования

  • Windows 10/11 или Windows Server с доступом к инфраструктуре Configuration Manager.
  • .NET Framework 4.8 с Visual Studio 2019+ либо соответствующими Build Tools.
  • Права локального администратора и разрешения на доступ к пространствам WMI ROOT\\SMS и ROOT\\ccm.
  • Доступ к SMS Provider (локально или по сети) и права на запись в журнал приложений Windows.

Сборка

Перед сборкой восстановите пакеты NuGet (например, nuget restore SCCMInfo.sln).

Visual Studio

  1. Откройте SCCMInfo.sln в Visual Studio 2019 или новее.
  2. Выберите нужную конфигурацию (Debug или Release).
  3. Соберите решение через Build → Build Solution.

Командная строка

Используйте Developer Command Prompt for VS или среду с установленным MSBuild:

nuget restore SCCMInfo.sln
msbuild SCCMInfo.sln /t:Build /p:Configuration=Release

Собранные бинарные файлы появятся в SCCMInfo/bin/<Configuration>.

Использование

Интерактивный режим

  1. Убедитесь, что на устройстве установлен клиент SCCM и доступны пространства ROOT\\ccm и ROOT\\SMS.
  2. Запустите SCCMInfo.exe без параметров для начала интерактивного мониторинга. События WMI будут выводиться в консоль и записываться в ProcessInfoLog.txt рядом с исполняемым файлом.
  3. Проверьте консольный вывод, чтобы убедиться, что обогатители добавляют ожидаемый контекст к полученным экземплярам.

Запуск как служба Windows

  1. Откройте PowerShell или командную строку от имени администратора.
  2. Установите службу:
    SCCMInfo.exe --install
    После установки создается служба SCCMInfo, которая запускается автоматически.
  3. Управляйте службой по необходимости:
    • Запуск: sc start SCCMInfo
    • Остановка: sc stop SCCMInfo
    • Удаление после остановки: sc delete SCCMInfo
  4. Для проверки работы без установки службы выполните:
    SCCMInfo.exe --service
    Команда запускает обработчики службы в текущем процессе для целей отладки.

Журналирование

SCCMInfo записывает данные в несколько источников:

  • ProcessInfoLog.txt — располагается рядом с SCCMInfo.exe и содержит подробные сведения о событиях и ошибках.
  • Журнал приложений Windows — дублирует ключевые сообщения с идентификаторами 2001 и 2002 под именем источника SCCMInfo (создается автоматически при отсутствии).
  • Консольный вывод — отображает таблицы Spectre.Console и подробные статусы в интерактивном режиме.

Устранение неполадок

  • Проверьте, что выполняющая учетная запись имеет права на опрос пространств WMI SCCM и на создание источников журналов событий.
  • Если подключение к удаленному SMS Provider не удается, запустите SCCMInfo от доменной учетной записи с необходимыми правами или настройте доверенное соединение.
  • Просмотрите ProcessInfoLog.txt, чтобы найти необработанные исключения или обогатители, не добавившие дополнительный контекст.
  • При запуске как служба убедитесь, что папка журнала доступна для записи учетной записи службы (по умолчанию Local System).

Лицензия

Проект распространяется на условиях файла LICENSE.txt.