Pergunta

Temos um projeto .NET que usa WMI e está interessado em portá-la para o quadro Mono.

Parece Mono não suporta WMI.

Existem quaisquer bibliotecas que podem adicionar suporte a WMI?

Basicamente, gostaria de acessar um servidor Windows usando WMI a partir de uma caixa de Linux / OS X.

Foi útil?

Solução

Windows Management Instrumentation é uma implementação da Microsoft de WBEM ( Web-Based Enterprise Management ) .

Existem open-source implementações (por exemplo OpenPegasus ) que você pode ser capaz de usar um cliente, mas não há como dizer o que MS fez com sua versão. Se você pode enviar consultas CIM para o servidor, então você pode obter bons resultados.

Note que o Windows não faz WMI via HTTP, única DCOM / DCE-RPC, então alguns clientes simplesmente não vai funcionar. Um Google rápido .. e OpenPegasus lhe permitirá o acesso do Windows usando um WMI Mapper . Se não, você sempre pode correr o componente de servidor no Windows.

Outras dicas

Em relação WMI via HTTP, dê uma olhada WinRM , o que parece ser uma implementação de WS-Management para XP, Win2003, Win2008, e Vista. Isto define uma maneira de acessar Common Information Model (CIM) informações sobre HTTP (S) (SABONETE). CIM é definido pelo DMTF e WMI é a implementação da CIM, da Microsoft.

Se eu ler a sopa de letrinhas corretamente, você deve ser capaz de usar SOAP do Linux para o acesso WinRM (WS-Management) em uma máquina Windows, proporcionando assim o acesso ao WMI (desde que WinRM está instalado, em execução, e não com firewall).

Se a execução de um tal coisa em uma rede corporativa será permitido pela TI / Segurança é outra questão entierely: qualquer porta aberta pode ser um risco de segurança e que permite o comando, controle e configuração do projeto pode ser um buraco. Certificados, IPSec, e escopo regras de firewall são seu amigo!

Note que não tenho experiência direta usando o WS-Management, nem WinRM, então YMMV .

Eu sei que você pode instalar WMI-client no Linux (sudo apt-get install wmi-cliente). Você deve ser capaz de consultar qualquer objeto WMI em uma caixa de Windows a partir da linha de comando do Linux usando isso.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top