2009-06-16 10 views
7

Wir haben ein .NET-Projekt, das WMI verwendet und daran interessiert ist, es in das Mono-Framework zu portieren.Das .NET-Framework von Mono und WMI

Es scheint, dass Mono WMI nicht unterstützt.

Gibt es Bibliotheken, die WMI-Unterstützung hinzufügen können?

Grundsätzlich möchten wir einen Windows-Server mit WMI aus einer Linux/OS X-Box zugreifen.

Antwort

5

Windows-Verwaltungsinstrumentation ist eine Microsoft-Implementierung von WBEM (Web-Based Enterprise Management).

Es gibt Open-Source-Implementierungen (z. B. openPegasus), die möglicherweise einen Client verwenden können, aber es gibt keine Informationen darüber, was MS mit ihrer Version gemacht hat. Wenn Sie CIM-Abfragen an den Server senden können, erhalten Sie möglicherweise gute Ergebnisse.

Beachten Sie, dass Windows nicht WMI über HTTP, nur DCOM/DCE-RPC, so dass einige Clients nicht funktionieren. Ein schneller google .. und OpenPegasus erlaubt Ihnen, Windows unter Verwendung eines WMI Mapper zuzugreifen. Wenn nicht, könnten Sie die Serverkomponente immer unter Windows ausführen.

5

In Bezug auf WMI über HTTP, werfen Sie einen Blick auf WinRM, die eine Implementierung von WS-Management für XP, Win2003, Win2008 und Vista zu sein scheint. Dies definiert eine Möglichkeit zum Zugriff auf Common Information Model (CIM) Informationen über HTTP (S) (SOAP). CIM ist definiert durch DMTF und WMI ist Microsofts Implementierung von CIM.

Wenn ich die alphabetische Suppe richtig lese, sollten Sie in der Lage sein, SOAP von Linux zu verwenden, um auf WinRM (WS-Management) auf einem Windows-Rechner zuzugreifen und so WMI zu installieren (solange WinRM installiert ist und ausgeführt wird) nicht gefeuert).

Ob dies in einem Unternehmensnetzwerk möglich ist, wird von der IT/Sicherheit noch erlaubt: Jeder offene Port kann ein Sicherheitsrisiko darstellen und einer, der Befehl, Kontrolle und Konfiguration erlaubt, kann ein Loch sein . Zertifikate, IPSec und Firewall-Regeln sind deine Freunde!

Beachten Sie, dass ich keine direkte Erfahrung mit WS-Management oder WinRM, also YMMV.

1

Ich weiß, dass Sie wmi-Client auf Linux installieren können (sudo apt-get installieren WMI-Client). Sie sollten in der Lage sein, jedes wmi-Objekt in einer Windows-Box über die Linux-Befehlszeile abzufragen.