2012-05-04 11 views
17

Estaba tratando de ejecutar un script en una computadora remota.¿Cómo ejecutar un script de powershell disponible en una máquina remota?

Hice "Enable-PSremoting" en la máquina remota.

Puse una secuencia de comandos hello.ps1 en la máquina remota.

[Mi máquina cliente es Windows XP y el equipo remoto es Windows 2003]

Luego de mi equipo cliente que estaba tratando de ejecutar el script.

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

Recibí el siguiente error.

Invoke-Command: No se puede encontrar la ruta 'C: \ hello.ps1' porque no existe existe.

Creo que trata de encontrar el script desde la máquina del cliente.

Si trato de ejecutar

invoke-command -computer $MachineName -command { C:\hello.ps1 }, ejecuta la secuencia de comandos disponibles en el equipo remoto en el lado del cliente.

Pero me gustaría ejecutar el script remoto en la máquina remota.

¿Cómo hacer para ejecutar el script disponible en la máquina remota?

Actualizado:

En realidad este comando "invoke-command -computer $MachineName -command { C:\hello.ps1 }" trabaja en el lado remoto y devuelve el resultado al cliente. No entiendo bien al ver los valores de retorno que está ejecutando en el lado del cliente.

+0

Te amo. 5 años después de que se publique su hilo, después de días y días de buscar en Google y desbordamiento y probar cada configuración de Invoke-yadayada, casi listo para rendirme y veo su sección "Actualizar:" arriba y trato de hacerlo.Me dio el mismo error pero enganché una sesión remota en una variable en su código y finalmente tengo algo que funciona: ::::::::: $ s = New-PSSession -ComputerName "WTxxxxxL32" -Credential $ credential :: ::: Invoke-Command -Sesión $ s -Command {D: \ ServerDLLDev \ RemoteCOMInstall.ps1} – JustJohn

Respuesta

1

Consulte aquí para obtener un quick start on PowerShell remoting.

+0

Está teniendo una explicación básica acerca de la comunicación remota. Intenté esas cosas básicas ya. Pero ejecutar el script en el lado remoto tiene desafíos – Samselvaprabu

+0

@Samselvaprabu ¿cómo terminaste ejecutando el archivo/script alojado en el equipo remoto a través de un script local? – Abdul

9

Cuando se escribe:

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

El guión C:\hello.ps1 será tomado desde el equipo cliente y trajo al servidor para ser ejecutado. De modo que tiene el error , el archivo no existe porque Invoke-Command está buscando el archivo en la computadora del cliente.

+0

¿Qué le parece dar parámetros al script remoto? –

+2

eche un vistazo a ''ArgumentList'. – JPBlanc

+0

@JPBlanc Tengo dificultades para encontrar la forma de usar la opción ''ArgumentList' para ejecutar el archivo remoto en el equipo remoto especificado – Abdul

0

Tuve exactamente la misma sonda, y la resolví con una combinación de [WMICLASS] 's create() y Start-Process.

Comprobar mi respuesta here.

0

tengo el mismo error pero me enganchó una sesión remota en una variable en el código y, finalmente, tener algo que funciona:

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

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

hay un millón de Invoke-etc Solutons pero la más sencilla trabajado por último para mí . Gracias a ti.

+0

Esto significa que está ejecutando el comando powershell en su VM desde su máquina local? – ChanGan

+0

Sin VM implicada. Computadora cliente y servidor. The New-PSSession crea una sesión para ejecutar código en el servidor remoto. Invoke-Command para la sesión ejecuta el script que reside en el servidor. Antes tenía el código en el cliente, pero eso creó un error. – JustJohn

+0

Mi máquina servidor está en otro dominio. esta solución funcionará? – ChanGan

Cuestiones relacionadas