2012-05-04 34 views
17

Stavo cercando di eseguire uno script sul computer remoto.Come eseguire uno script PowerShell disponibile nella macchina remota?

Ho fatto "Enable-PSremoting" nella macchina remota.

Ho inserito uno script hello.ps1 nella macchina remota.

[La mia macchina client è Windows XP e computer remoto è Windows 2003]

Poi dal mio computer client stavo cercando di eseguire lo script.

invoke-command -computer $MachineName -filepath "C:\hello.ps1" 

Ho ricevuto il seguente errore.

Invoke-Command: impossibile trovare il percorso 'C: \ hello.ps1' perché non esiste .

Penso che cerchi di trovare lo script dalla macchina client.

Se si tenta di eseguire

invoke-command -computer $MachineName -command { C:\hello.ps1 }, esegue lo script disponibile nella macchina remota nel lato client.

Ma mi piacerebbe eseguire lo script remoto nella macchina remota stessa.

Come eseguire lo script disponibile nella macchina remota?

Aggiornato:

In realtà questo comando "invoke-command -computer $MachineName -command { C:\hello.ps1 }" funziona nel lato remoto e restituito il risultato al lato client. Ho frainteso vedendo i valori di ritorno che sta eseguendo dal lato client.

+0

Ti amo. 5 anni dopo che il thread è stato pubblicato, dopo giorni e giorni di utilizzo di Google e traboccamenti e tentativi di ogni configurazione di Invoke-yadayada, quasi pronto a rinunciare, vedo la tua sezione "Aggiornamento:" qui sopra e prova proprio questo.Mi ha dato lo stesso errore ma ho agganciato una sessione remota in una variabile nel codice e finalmente ho qualcosa che funziona: :::::::: $ s = New-PSSession -ComputerName "WTxxxxxL32" -Credential $ credential :: ::: Invoke-Command -Session $ s -Command {D: \ ServerDLLDev \ RemoteCOMInstall.ps1} – JustJohn

risposta

1
+0

Ha una spiegazione di base sul servizio remoto. Ho già provato quelle cose di base. Ma l'esecuzione dello script in remoto ha delle difficoltà – Samselvaprabu

+0

@Samselvaprabu come è stato eseguito il file/script ospitato sul computer remoto tramite script locale? – Abdul

9

quando si scrive:

invoke-command -computer $MachineName -filepath "C:\hello.ps1" 

Lo script C:\hello.ps1 sarà preso dal computer client e portato al server da eseguire. Quindi hai il file di errore perché Invoke-Command sta cercando il file nel computer client.

+0

Che ne dici di dare parametri allo script remoto? –

+2

dai un'occhiata a '-ArgumentList'. – JPBlanc

+0

@JPBlanc Ho difficoltà a scoprire come utilizzare l'opzione '-ArgumentList' per eseguire il file remoto sul computer remoto specificato – Abdul

0

Ho avuto esattamente la stessa sonda e l'ho risolto con una combinazione di [WMICLASS] 's create() e Start-Process.

Verificare la mia risposta here.

0

ho ottenuto lo stesso errore, ma ho agganciato una sessione remota in una variabile nel codice e, infine, avere qualcosa che funziona:

$s = New-PSSession -ComputerName "WTxxxxxL32" -Credential $credential 

Invoke-Command -Session $s -Command {D:\ServerDLLDev\RemoteCOMInstall.ps1} 

ci sono un milione di Invoke-ecc solutone ma la più semplice lavorato finalmente per me . Grazie a te.

+0

Ciò significa che si sta eseguendo il comando di PowerShell sulla macchina virtuale dal computer locale ?? – ChanGan

+0

Nessuna VM coinvolta. Computer client e server. New-PSSession crea una sessione per eseguire il codice sul server remoto. Invoke-Command per la sessione esegue quindi lo script che risiede sul server. Prima avevo il codice sul client, ma questo ha creato un errore. – JustJohn

+0

La mia macchina server è su un altro dominio. questa soluzione funzionerà ?? – ChanGan

Problemi correlati