Programação  
 
Conhecimento computador >> Programação >> Programação De Computador Idiomas >> 
Como executar um processo em um PC remoto com o WMI
WMI (Windows Management Instrumentation ) é usado para controlar as tarefas de gerenciamento em qualquer interface do Windows . A infra-estrutura é direcionado a programadores de C /C + + , mas pode ser implementado por programadores usando qualquer linguagem de script compatível com Windows, como o VBScript. WMI é uma ferramenta poderosa para processos administrativos no servidor local, mas é particularmente útil para máquinas remotas. Para WMI para acessar um computador remoto, o computador remoto deve permitir que passe pelo firewall. Instruções
um

Definir permissões no computador remoto . Se um administrador em "Computador A" precisa acessar "Computador B ", deve ser permitido após o firewall "Computador B" . Entrar em "Computador B " e abra o prompt de comando . Clique em "Iniciar ", "Executar ", digite " cmd.exe " e pressione " Enter"
2

Digite o seguinte no prompt de comando: " . Netsh firewall set RemoteAdmin serviço permitir " e depois pressione " Enter".
3

Crie um objeto localizador WBI com o seguinte código :

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

Conecte-se ao computador remoto através do " Método SWbemLocator.ConnectServer ". Esta função irá retornar um objeto " SWbemServices " , que é usado para executar comandos através da conexão remota :

objwbemServices = SWbemLocator.ConnectServer (_

[ ByVal strServer ] , _

[ ByVal strNamespace ] , _

[ ByVal strUser ] , _

[ ByVal strPassword ] , _

[ ByVal strLocale ] , _

[ ByVal strAuthority ] , _

[ ByVal iSecurityFlags ] , _

[ ByVal objwbemNamedValueSet ] _

)

Onde:

strServer é o nome do computador remoto .

strNamespace pode ser deixado em branco.

strUser é o nome do usuário a ser usado para fazer o login no computador remoto.

strPassword é a senha para o usuário no computador remoto.

strLocale pode ser deixado em branco.

strAuthority também pode ser deixado em branco.

iSecurityFlags pode ser ajustado para (0x0) para fazer o script continuar a tentar se conectar até que uma conexão é estabelecida. A alternativa é ( 0x80 ) , caso em que a conexão tentará carregar por dois minutos , depois morrer

objwbemNamedValueSet pode ser deixado em branco

Para continuar o exemplo : . .

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

, _

" algum_usuário ", _

" alguma_senha ", _

" ", _

"")
5

Executar um comando com o " Win32_Process de classe. " Esta função irá executar um comando no computador remoto . Use a sintaxe do MS-DOS para executar comandos nesta função :

uint32 Criar (

[ no] Seqüência de linha de comando ,

[ no] Seqüência de CurrentDirectory ,

[no] Win32_ProcessStartup ProcessStartupInformation ,

[out] uint32 ProcessId

);

Onde:

CommandLine é a linha de comando que deve ser executado na máquina remota .

CurrentDirectory deve ser definido como nulo , a menos que haja uma razão para especificar um diretório.

Win32_ProcessStartup ProcessStartupInformation deve ser o objeto de conexão . Neste caso , será o objeto SWbemLocator.ConnectServer criado na etapa anterior .

ProcessId vai se tornar uma variável global que contém a identificação do processo por este comando. Digite um nome de variável única aqui .

A função retorna "0" se o processo é bem-sucedido. Números de código de erro é retornado para os processos que falharam. Para o nosso exemplo , a função pode ser escrita:

Definir objProcess = objWMIService.Get ( " Win32_Process " )

intReturn = objProcess.Create _

( " algum_comando " , Null, objWMIService , intProcessID )

Se intReturn < > 0 Then

Wscript.Echo " O processo não pôde ser criado. " & _

VbNewLine & " linha de comando: " & strCommand & _

vbNewLine & " Valor de retorno: " & intReturn

Else

Wscript.Echo "Processo de criar. " & _

VbNewLine & " linha de comando: " & strCommand & _

vbNewLine e "Processo ID: " & intProcessID

End If
6

Salve o código em um arquivo VBScript (com extensão ". vbscript" ) . Toda a amostra de código para se conectar a um computador remoto e executar um processo é:

Set objSWbemLocator = CreateObject (" WbemScripting.SWbemLocator " )

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

, _

" algum_usuário ", _

" alguma_senha ", _

" ", _

"")

Definir objProcess = objWMIService.Get ( " Win32_Process " )

intReturn = objProcess.Create _

( " algum_comando " , Null, objWMIService , intProcessID )

Se intReturn < > 0 Then

Wscript.Echo "Processo não pôde ser criado . " & _

VbNewLine & " linha de comando: " & strCommand & _

vbNewLine & " Valor de retorno: " & intReturn

Else

Wscript.Echo "Processo de criar. " & _

VbNewLine & " linha de comando: " & strCommand & _

vbNewLine e "Processo ID: " & intProcessID

End If
7

botão direito do mouse no nome do arquivo e selecione " Propriedades". Marque a caixa "Permitir execução do arquivo. " Clique em " Aplicar". Dê um duplo clique no arquivo para executar o processo .

Anterior :

Próximo : No
  Os artigos relacionados
·Como adicionar Apóstrofes em MATLAB 
·Como personalizar uma tese Recurso 
·Como adicionar Acesso OrigemDaLinha a uma Lista 
·Diferença entre Alto Nível mais baixo nível em Progr…
·Tipos de dados Groovy 
·Como escrever um programa que traduz um grau Carta em u…
·Como Mudar De GW- BASIC para QBasic 
·Diferenças entre o objeto abstrato Tipos de Dados e Ab…
·Como escrever uma função que aceita como entrada um a…
·Como criar cartões virtuais para o lucro 
  Artigos em destaque
·Como criar uma macro Lisp 
·Como colocar listas suspensas em DataGrids em Asp.NET 
·Como registrar manualmente um arquivo OCX em Visual Bas…
·A função de F- Estatísticas em MATLAB 
·Como Integrar 2.007 bancos de dados com acesso Websites…
·Como remover um objeto de som no ActionScript 3 
·Como verificar se duas matrizes têm os mesmos elemento…
·Como Chegar Caixa de Edição Foco 
·Como mesclar uma matriz usando QBasic 
·A diferença entre a função Override e Overload Funç…
Cop e direita © Conhecimento computador http://ptcomputador.com Todos os Direitos Reservados