WMI en .net

NeB1

Alguien sabe que tengo que hacerle a mi ordenador para que me aparezca el namespace /root/virtualization en mi PC en el windows management instrumentation?

(esto es para saber todos los datos acerca de las máquinas virtuales que tiene tu equipo y la que se está ejecutando.)

SaReDnAL

Que sistema de virtualizacion tienes montado en el equipo?

Hyper-V? Virtual PC?

NeB1

#2 el tema es que no tengo ninguno ahora mismo montado para probarlo xD lo tengo que montar a lo largo de la semana, pero me han pedido que a ver si puedo sacar esos datos con una aplicación que estoy haciendo y que los envia a un servidor desde donde se pueden consultar muchos datos de cada PC.

PD: seguramente será hyper-V o vmware supongo, la cuestión es que tengo que ver a ver si se puede obtener de cualquiera de ellos independientemente, o ver que puedo hacer.

SaReDnAL

Yo creo que si no tienes instalado el sistema de virtualización no puedes acceder al namespace del mismo. Tengo yo en los favoritos del curro un manual cojonudo para acceder con powershell a la información de las máquinas virtuales. A ver si mañana me acuerdo y lo posteo

NeB1

#3 me vendría de puta madre!

SaReDnAL

Con vmware no se si es posible. Con la familia de productos de virtualizacion de microsoft rollo Hyper-V si que lo he probado:

Aqui un ejemplo para recuperar el ESTADo de las máquinas virtuales.

Existen otros códigos para crear un snapshot o salvar el estado de una máquina virtual:

RECUPERAR ESTADO DE MAQUINA:

$VMState=@{2="Running" ; 3="Stopped" ; 32768="Paused" ; 32769="Suspended";
32270="Starting" ; 32771="Snapshotting" ; 32773="Saving" ; 32774="Stopping" }

get-wmiobject -computername localhost -Namespace root\Virtualization
-query "Select * from MSVM_Computersystem where Description like
'%Virtual%' " | format-table -autosize @{Label=”VM Name”;
expression={$.elementName}}, Description, @{Label =”VM State”;
expression={$VmState[$
.EnabledState]}}

Aqui te dejo un documento del Microsoft TechFest (Para Virtualizacion)

Entre las páginas 15 y 20 te explica como acceder a la informacion de las máquinas virtuales

http://download.microsoft.com/download/5/7/1/571cd532-b7c5-4bd8-b6d4-205f1facba98/04-Managing%20Virtualization%20with%20SCVMM%20and%20PowerShell%20-%20Lee%20Chiang%20Yen.pdf

NeB1

#6 gracias tio, te lo has currado mogollón

SaReDnAL

#7 Pa eso estamos.

Por cierto, postea el avance en tu codigo y asi lo vamos viendo. Yo estuve recopilando info porque en mi empresa utilizamos bladeservers con hyper-V pero no llegamos a arrancar con ello por otros proyectos, asi que estaría way ver como lo sacas

Saludos

SaReDnAL

Por cierto, si necesitas código .NET para WMi, el otro dia hice en el curro un codigo que se conecta a una máquina remota y por wmi recupera de un namespace el nombre del usuario logado en la máquina. Creo recordar que se utilizaba la clase Management. Si necesitas codigo te lo puedo poner mañana

Saludos

NeB1

#9 eso sí lo tengo hecho.

Hay un programa que se llama WMICodeCreator que es la leche, le dices que quieres hacer y te genera el código en c#, VB.net y VBScript.

Dentro de este programa puedes por ejemplo, sacar el código para acceder a una máquina remota y preguntarle por los datos de lo que quieras. Esta muy de puta madre, es como tener infinitos ejemplos, si te interesa te lo cuelgo en megaupload.

Usuarios habituales

  • NeB1
  • SaReDnAL