Home Hardware Networking Programmazione Software Domanda Sistemi
Conoscenza Informatica >> Programmazione >> Computer Programming Languages >> .

Come eseguire un processo su un PC remoto con WMI

WMI (Windows Management Instrumentation ) è utilizzato per controllare le attività di gestione in qualsiasi interfaccia di Windows . L'infrastruttura è rivolto a C /C + + programmatori , ma può essere implementato da programmatori che utilizzano qualsiasi linguaggio di scripting di Windows - compatibile, come VBScript . WMI è un potente strumento per i processi amministrativi sul server locale , ma è particolarmente utile per i computer remoti . Al fine di WMI per accedere a un computer remoto , il computer remoto deve consentire di passare il firewall . Istruzioni
1

impostare le autorizzazioni sul computer remoto . Se un amministratore su " Computer A " deve accedere a "Computer B , " deve essere consentito oltre il " B Computer " firewall . Log in " Informatica B " e aprire il prompt dei comandi . Fare clic su "Start ", " Esegui ", quindi digitare "cmd.exe " e premere "Invio"
2

Digitare quanto segue al prompt dei comandi : " . Netsh firewall set service RemoteAdmin abilitazione ", quindi premere "Enter ".
3

Creare un oggetto WBI localizzatore con il seguente codice :

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

Collegare al computer remoto tramite il "Metodo SWbemLocator.ConnectServer . " Questa funzione restituisce un oggetto " SWbemServices " , che viene utilizzato per eseguire comandi tramite la connessione remota :

objwbemServices = SWbemLocator.ConnectServer ( _

[ ByVal strServer ] , _

[ ByVal strNamespace ] , _

[ ByVal strUser ] , _

[ ByVal strPassword ] , _

[ ByVal strLocale ] , _

[ strAuthority ByVal ] , _

[ ByVal iSecurityFlags ] , _

[ ByVal objwbemNamedValueSet ] _

) per

Dove :

strServer è il nome del computer remoto .

strNamespace può essere lasciato vuoto .

strUser è il nome utente da utilizzare per accedere al computer remoto .

strPassword è la password per l'utente sul computer remoto .

strLocale può essere lasciato vuoto .

strAuthority può anche essere lasciato vuoto .

iSecurityFlags può essere impostato su ( 0x0 ) a rendere lo script continuerà a tentare di connettersi fino a quando viene stabilita una connessione . L'alternativa è ( 0x80 ) , nel qual caso il collegamento tenterà di caricare per due minuti , poi morire

objwbemNamedValueSet può essere lasciato vuoto

Per continuare l'esempio : . .

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

, _

" some_user " , _

" Some_Pass " , _

" " , _

" " ) economici 5

eseguire un comando con il " Win32_Process classe . " Questa funzione verrà eseguito un comando sul computer remoto . Utilizzare la sintassi di MS-DOS per eseguire comandi in questa funzione :

uint32 Create (

[ in] Stringa CommandLine , Stati

[ in] Stringa CurrentDirectory , Stati

[ in] Win32_ProcessStartup ProcessStartupInformation , Stati

[out ] uint32 ProcessId

) ;

Dove :

CommandLine è la linea di comando che deve essere eseguito sulla macchina remota .

CurrentDirectory dovrebbe essere impostata su null a meno che non ci sia una ragione per specificare una directory .

Win32_ProcessStartup ProcessStartupInformation dovrebbe essere l' oggetto di connessione . In questo caso , sarà l'oggetto SWbemLocator.ConnectServer creato nel passaggio precedente .

ProcessId diventerà una variabile globale contenente l' ID di processo per questo comando . Immettere un nome di variabile univoco qui .

La funzione restituisce "0" se il processo è riuscito. Codici di errore vengono restituiti per i processi non riusciti . Per il nostro esempio, la funzione può essere scritta :

objProcess = objWMIService.Get ( " Win32_Process " ) per

intReturn = objProcess.Create _

( " un_qualche_comando " , Null , objWMIService , intProcessID ) per

intReturn < > 0 Then

Wscript.Echo "Processo non può essere creata . " & _

VbNewLine & " Riga di comando: " & strCommand & _

vbNewLine & " Valore di ritorno : " & intReturn

Else

Wscript.Echo "Processo creato. " & _

VbNewLine & " Riga di comando: " & strCommand & _

vbNewLine & " ID processo: " & intProcessID

End If
6

Salvare il codice in un file VBScript ( con estensione " . vbscript" ) . L'intero codice di esempio per connettersi a un computer remoto ed eseguire un processo è :

objSWbemLocator = CreateObject ( " WbemScripting.SWbemLocator " ) per

objWMIService = objSWbemLocator.ConnectServer ( " Some_Computer " , _

, _

" some_user " , _

" Some_Pass " , _

" " , _

" " )

objProcess = objWMIService.Get ( " Win32_Process " ) per

intReturn = objProcess.Create _

( " un_qualche_comando ", null , objWMIService , intProcessID ) per

Se intReturn < > 0 Then

Wscript.Echo "Processo non può essere creata . " & _

VbNewLine & " Riga di comando: " & strCommand & _

vbNewLine & " Valore di ritorno : " & intReturn

Else

Wscript.Echo "Processo creato. " & _

VbNewLine & " Riga di comando: " & strCommand & _

vbNewLine & " ID processo: " & intProcessID

End If
7

pulsante destro del mouse sul nome del file e selezionare " Proprietà". Controllare la casella " Consenti l'esecuzione di questo file . " Fare clic su "Applica ". Fare doppio clic sul file per eseguire il processo .

 

Programmazione © www.354353.com