Compartir a través de


Interacción remota y opciones de conexión

Las operaciones de administración se pueden realizar local o remotamente con total transparencia. Para obtener acceso a objetos de administración en un equipo remoto, el usuario necesita establecer una conexión inicial con ese equipo. Las conexiones se representan con objetos ManagementScope. De manera predeterminada, uno de los objetos de ámbito se asocia al equipo local y al espacio de nombres root\cimv2 del sistema, aunque esto se puede modificar si se especifica un equipo concreto y un espacio de nombres WMI posiblemente distinto para el objeto de ámbito. Además, cuando conecte remotamente, podrá especificar credenciales para cualquier otro usuario que no sea el que ha iniciado la sesión en curso y las operaciones en el equipo remoto se realizarán en el contexto del usuario especificado. Para ello, se puede emplear un objeto ConnectionOptions. En el ejemplo de código siguiente se establece una conexión con un equipo remoto como usuario distinto del que ha iniciado la sesión en curso:

using System;
using System.Management;

public class RemoteConnect {

    public static void Main() {

      //Build an options object for the connection
      ConnectionOptions options = new ConnectionOptions();
      options.Username = "User1";
      options.Password = "MyPassword";

      //Make a connection to a remote computer using these options
      ManagementScope scope = new ManagementScope("\\\\Server1\\root\\cimv2", options);
      scope.Connect();

   }
}

La interacción remota de System.Management utiliza DCOM como mecanismo de interacción remota subyacente. El objeto ConnectionOptions controla también los niveles de representación y autenticación utilizados por WMI en las operaciones remotas con DCOM. La configuración predeterminada para estos parámetros es ImpersonationLevel.Impersonate y AuthenticationLevel.Unchanged respectivamente.

AuthenticationLevel.Unchanged significa que el cliente toma como valor predeterminado los requisitos del servidor de autenticación, utilizando el proceso de negociación DCOM. En Windows 2000 e inferiores, el servicio WMI requerirá autenticación del nivel Conectar, mientras que en Windows XP y superiores será necesaria la autenticación del nivel de paquete. Si el cliente requiere una configuración de autenticación específica, la propiedad de autenticación en el objeto ConnectionOptions se puede utilizar para controlar el nivel de autenticación en esta conexión concreta.

ImpersonationLevel.Impersonate significa que el cliente permite al proveedor de datos de WMI que represente su identidad cuando reúna la información requerida. Esta configuración predeterminada es ventajosa, cuando el proveedor es una aplicación o servicio de confianza, porque elimina la necesidad de que el proveedor realice comprobaciones explícitas de identidad y de acceso al obtener información para este cliente. Sin embargo, si por cualquier motivo el proveedor de destino o la aplicación instrumentada no son de confianza, la representación del cliente puede constituir una amenaza para la seguridad. En tales casos, se recomienda que la aplicación cliente cambie el nivel de representación a un valor inferior, como ImpersonationLevel.Identify. Tenga en cuenta que esto puede llevar a impedir que ciertos proveedores tengan acceso a la información, en casos en los que el proveedor no realiza comprobaciones de acceso o no tiene bastantes permisos en su propio contexto de ejecución para obtener la información requerida.

Vea también

Acceso a la información de administración con System.Management | Recuperar colecciones de objetos de administración | Consultar información de administración | Suscribir y consumir eventos | Ejecutar métodos en objetos de administración | Utilizar objetos con establecimiento inflexible de tipos