Вопрос

У нас есть проект .NET, использующий WMI, и мы заинтересованы в его портировании на платформу Mono.

Похоже, Mono не поддерживает WMI.

Существуют ли библиотеки, которые могут добавить поддержку WMI?

По сути, мы хотели бы получить доступ к серверу Windows с помощью WMI из системы Linux/OS X.

Это было полезно?

Решение

Инструментарий управления Windows - это реализация WBEM от Microsoft ( Управление предприятием на основе Интернета ) .

Существуют реализации с открытым исходным кодом (например, openPegasus ), которые вы можете использовать клиент, но нет никакого сообщения, что MS сделала со своей версией. Если вы можете отправлять запросы CIM на сервер, вы можете получить хорошие результаты.

Обратите внимание, что Windows не выполняет WMI через http, только DCOM / DCE-RPC, поэтому некоторые клиенты просто не будут работать. Быстрый Google ... и OpenPegasus позволит вам получить доступ к Windows с помощью WMI Mapper . Если нет, вы всегда можете запустить серверный компонент в Windows.

Другие советы

Что касается WMI через HTTP, взгляните на ВинРМ, который, по-видимому, является реализацией WS-Менеджмент для XP, Win2003, Win2008 и Vista.Это определяет способ доступа Общая информационная модель (CIM) информация через HTTP(S) (SOAP).CIM определяется ДМТФ а WMI — это реализация CIM от Microsoft.

Если я правильно прочитал алфавитный суп, вы сможете использовать SOAP из Linux для доступа к WinRM (WS-Management) на компьютере с Windows, обеспечивая тем самым доступ к WMI (при условии, что WinRM установлен, работает и не защищен брандмауэром).

Другой вопрос, будет ли разрешен запуск такой вещи в корпоративной сети службой ИТ/безопасности:любой открытый порт может представлять угрозу безопасности, а тот, который по замыслу допускает управление, контроль и настройку, может оказаться настоящей дырой.Сертификаты, IPSec и правила межсетевого экрана с ограниченной областью действия — ваши друзья!

Обратите внимание, что у меня нет прямого опыта использования WS-Management или WinRM, поэтому ЯММВ.

Я знаю, что вы можете установить wmi-клиент в Linux (sudo apt-get install wmi-client). Вы должны иметь возможность запрашивать любой wmi-объект в окне Windows из командной строки Linux, используя это.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top