“Conocimientos Programación>Lenguajes De Programación

Cómo ejecutar un proceso en un PC remoto con Wmi

2013/6/25
WMI ( Windows Management Instrumentation ) se utiliza para controlar las tareas de administración de cualquier interfaz de Windows . La infraestructura está dirigido a C /C + + programadores , pero puede ser implementado por los programadores que utilizan cualquier lenguaje de programación compatible con Windows, como VBScript. WMI es una poderosa herramienta para los procesos administrativos en el servidor local , pero es particularmente útil para las máquinas remotas . Con el fin de WMI para acceder a un ordenador remoto , el equipo remoto debe permitir que pase el firewall. Instrucciones
1

establecer permisos en el equipo remoto . Si un administrador en "Equipo A" tiene que acceder a " equipo B ", se le debe permitir más allá del " equipo B " firewall. Acceda a " equipo B " y abra el símbolo del sistema . Haga clic en " Inicio", " Ejecutar", escribe " cmd.exe " y presionar " Enter"
2

Escriba lo siguiente en el símbolo del sistema : . " Netsh firewall set servicio RemoteAdmin enable" y pulse " Enter".
3

Crear un localizador de objetos WBI con el siguiente código :

Set objSWbemLocator = CreateObject ( " WbemScripting.SWbemLocator ")
4

Conectar al ordenador remoto a través del "método SWbemLocator.ConnectServer . " Esta función devuelve un objeto " SWbemServices " , que se utiliza para ejecutar comandos a través de la conexión remota :

objwbemServices = SWbemLocator.ConnectServer (_

[ ByVal strServer ] , _
< p> [ ByVal strNamespace ] , _

[ ByVal strUser ] , _

[ ByVal strPassword ] , _

[ ByVal strLocale ] , _

[ strAuthority ByVal ] , _

[ ByVal iSecurityFlags ] , _

[ ByVal objwbemNamedValueSet ] _

)

Dónde :

strServer es el nombre del equipo remoto .

strNamespace puede dejarse en blanco .

strUser es el nombre de usuario que se utilizará para iniciar sesión en el equipo remoto.

strPassword es la contraseña del usuario en el equipo remoto.

strLocale puede dejarse en blanco .

strAuthority también puede dejarse en blanco.

iSecurityFlags se puede ajustar a ( 0x0 ) para hacer que continúe la secuencia de comandos para intentar conectarse hasta que se establezca una conexión . La alternativa es ( 0x80 ) , en cuyo caso la conexión se intentará cargar durante dos minutos , y luego morir

objwbemNamedValueSet puede dejarse en blanco

Para continuar con el ejemplo : . .
< p> Set objWMIService = objSWbemLocator.ConnectServer ( " Some_Computer ", _

, _

" some_user ", _

" some_pass ", _

" ", _

"")
5

Ejecutar un comando con la "Clase Win32_Process . " Esta función se ejecutará un comando en el equipo remoto . Utilice la sintaxis de MS -DOS para ejecutar comandos en esta función :

uint32 Crear (

[ en ] string CommandLine ,

[ en ] string CurrentDirectory ,
< p > [ en ] Win32_ProcessStartup ProcessStartupInformation ,

[out] uint32 ProcessId

) ;

Dónde :

CommandLine es la línea de comandos que se va a ejecutar en la máquina remota se debe establecer .

CurrentDirectory en Null a menos que haya una razón para especificar un directorio.

Win32_ProcessStartup ProcessStartupInformation debe ser el objeto de conexión. En este caso , será el objeto SWbemLocator.ConnectServer creado en el paso anterior .

ProcessId se convertirá en una variable global que contiene el ID de proceso de este mandato . Introduzca un nombre de variable única aquí .

La función devuelve " 0 " si el proceso tiene éxito . Números de código de error se devuelven a los procesos que han fallado. Para nuestro ejemplo, la función se puede escribir :

Set objProcess = objWMIService.Get ( " Win32_Process " )

intReturn = objProcess.Create _

( " Some_Command " , Null, objWMIService , intProcessID )

Si intReturn < > 0 Entonces

Wscript.Echo " El proceso no pudo ser creada. " & _

" Línea de comandos: " Y vbNewLine y strCommand & _

vbNewLine y " Valor de retorno :" & intReturn

demás

Wscript.Echo "Proceso de creación. " & _

" Línea de comandos: " Y vbNewLine y strCommand & _

vbNewLine & " Id. de proceso: " & intProcessID

End If
6 < p> Guarde el código en un archivo VBScript (con la extensión " . VBScript ") . El ejemplo de código entero para conectarse a un equipo remoto y ejecutar un proceso es:

Set objSWbemLocator = CreateObject ( " WbemScripting.SWbemLocator " )

Set objWMIService = objSWbemLocator.ConnectServer ( " Some_Computer " , _

, _

" some_user ", _

" some_pass ", _

" ", _

"")

Set objProcess = objWMIService.Get ( " Win32_Process " )

intReturn = objProcess.Create _

( " Some_Command " , Null, objWMIService , intProcessID )
< p> Si intReturn < > 0 Entonces

Wscript.Echo " El proceso no pudo ser creada. " & _

" Línea de comandos: " Y vbNewLine y strCommand & _

vbNewLine y " Valor de retorno :" & intReturn

demás

Wscript.Echo "Proceso de creación. " & _

" Línea de comandos: " Y vbNewLine y strCommand & _

vbNewLine & " Id. de proceso: " & intProcessID

End If
7 < p> Haga clic en el nombre del archivo y seleccione " Propiedades". Marque la casilla "Permitir ejecutar el archivo . " Haga clic en " Aplicar". Haga doble clic en el archivo para ejecutar el proceso .

Lenguajes De Programación
¿Qué es estricta comprobación de tipos
Guía del programador de EGA y VGA Cards
Cómo editar Páginas HTML
Introducción a la Descomposición en valores singulares
¿Cuáles son Ligero Diseño y Lenguajes de marcas
Cómo utilizar Seleccione Destino del partido en todas las columnas de DB2
Cómo reemplazar mediante atributos XSL
Cómo convertir una imagen a binario y de binario a cadena
Conocimientos Informáticos © http://www.ordenador.online