Ejecutar operaciones con privilegios mediante VBScript
Si usa la API de scripting para WMI, puede establecer privilegios de seguridad específicos. Por ejemplo, puede establecer los privilegios de seguridad para solicitar un apagado del sistema operativo o para examinar el registro de eventos de seguridad. Para obtener más información, consulte Ejecución con privilegios especiales.
Solo tiene que establecer privilegios cuando acceda a WMI en el equipo. Al acceder a un host remoto, RPC de COM establece automáticamente los privilegios. Para determinar todos los privilegios necesarios, consulte la documentación de las clases WMI específicas a las que quiere acceder, como Win32_OperatingSystem. Para obtener más información, consulte WbemPrivilegeEnum
En este tema se describen las secciones siguientes:
- Establecer un privilegio desde el objeto Security_
- Establecer un privilegio como parte de un moniker
- Revocar y restablecer privilegios
- Temas relacionados
Establecer un privilegio desde el objeto Security_
Use el procedimiento siguiente para establecer privilegios de seguridad en Visual Basic.
Para establecer privilegios en Visual Basic
Cree un objeto de tipo SWbemLocator.
Agregue el nuevo privilegio al objeto SWbemLocator.Security_.
El objeto Security_ contiene una colección SWbemObjectSet. Los objetos del conjunto son objetos SWbemSecurity. Para obtener más información, consulte Acceso a una colección.
Inicie sesión en WMI y recupere un objeto SWbemServices.
El objeto SWbemServices hereda el privilegio establecido en el paso anterior.
También puede establecer un privilegio mediante el método SWbemPrivilegeSet.AddAsString.
Establecer un privilegio como parte de un moniker
Puede establecer un privilegio como parte de un moniker.
El siguiente ejemplo muestra cómo agregar un privilegio de depuración a un moniker.
Set Service = GetObject("winmgmts:{impersonationLevel=impersonate, (Debug)}")
Revocar y restablecer privilegios
En el ejemplo siguiente se muestra cómo establecer el privilegio SeDebugPrivilege y revocar el privilegio SeRemoteShutdownPrivilege.
Set Service = GetObject("winmgmts:{impersonate,(Debug,!RemoteShutdown)}")
Temas relacionados