Hola!
¿Alguna vez has tenido la necesidad de obtener el nombre de una computadora remotamente?...es una tarea bastante interesante entre otra info. que puedes obtener; de hecho podrias realizar esto simplemente usando el Windows Script Host.
Pero si requieres hacer una tarea mas elaborada digamos auditar el hardware y software de una computadora remota,obtener que version del Sistema Operativo estas usando,etc, entonces es mas recomendable usar el Windows Management Instrumentation.
Anteriormente este servicio tenia que ser instalado de forma separada pero ahora lo interesante es que esta disponible en el .NET framework a través del espacio de nombre System.Management.
En siguiente ejemplo en C# muestra una simple consulta hacia una computadora remota, obtieniendo algunos datos básicos como el tipo de sistema operativo, la versión de éste,el nombre de la PC, entre otros; en este caso tengo privilegios administrativos para acceder a la PC, chequen la documentación para mas opciones.
Hoy en día existen varios programas de auditoría de hardware y software usados en los departamentos de TI, pero siempre es interesante saber como podemos realizar esas tareas.
Espero que este ejemplo les sea de utilidad y lo incluyan en su caja de herramientas de programación.
Saludos!
================================================
using System;
using System.Management; //Para acceder al WMI
namespace RemoteControlApp
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Inicia Programa para acceder a recursos de otra computadora remotamente...");
ConnectionOptions options = new ConnectionOptions();
ManagementScope scope = new ManagementScope("\\\\192.168.17.58\\root\\cimv2",options);
scope.Connect();
//Ahora obteniendo info acerca del OS
ObjectQuery query = new ObjectQuery("select * from Win32_OperatingSystem");
ManagementObjectSearcher wmiSearcher = new ManagementObjectSearcher(scope, query);
ManagementObjectCollection queryWMICollection = wmiSearcher.Get();
foreach (ManagementObject m in queryWMICollection)
{
//Mostrar info de la computadora remota
Console.WriteLine("Nombre de la computadora: {0}", m["csname"]);
Console.WriteLine("Directorio de Windows: {0}", m["WindowsDirectory"]);
Console.WriteLine("Sistema Operativo: {0} {1}", m["Caption"], m["Version"]);
Console.WriteLine("Fabricante: {0}", m["Manufacturer"]);
Console.WriteLine("Termina Programa para acceder a recursos de otra computadora remotamente...");
Console.ReadLine();
}
}
}
}