2009-11-23 134 views
5

He instalado PS 1.0 en una PC remota (RPC001). Solía ​​Windows Sysinternals tool PSExec.exe para ejecutar el siguiente proceso en el control remoto:Ejecutar scripts de PowerShell en PC remota

PSExec \\RPC001 -u myID -p myPWD PowerShell C:\script\StartPS.ps1 par1 par2 

puedo ver el proceso PowerShell.exe que se ejecuta en el PC remoto después, pero que en realidad está haciendo nada, simplemente pasar el tiempo allí. Traté de poner un código simple de "Write-Output/Host" una cadena en el script. Ejecuto el mismo script en el control remoto por RTS, funciona allí.

No estoy seguro de si me falta algo más para ejecutar el script mediante el uso de PSExec, o es una limitación de PSExec.exe. Me gustaría iniciar un script de PS en remoto para hacer algo allí localmente (comprimir algunos archivos localmente y eliminar archivos viejos) de mi caja.

Hice una pregunta similar en Stackoverflow: Run remote process by powershell. Don me sugirió que usara PSExec. Parece una forma alternativa de resolver el problema. Sin embargo, no puedo hacer que funcione con PowerShell. ¿Alguna forma de hacer que PS funcione en una PC remota?

Por cierto, no puedo usar PS 2.0 ya que mi red no me permite instalar Windows XP SP3, que es necesario para PS 2.0.

Respuesta

6

Después de investigar más sobre la herramienta PSExec, creo que obtuve la respuesta. Tengo que añadir la opción -i para contar de PSExec para poner en marcha el proceso de control remoto en modo interactivo:

PSExec \\RPC001 -i -u myID -p myPWD PowerShell C:\script\StartPS.ps1 par1 par2 

Sin -i, powershell.exe se está ejecutando en el mando a distancia en el modo de espera. El punto interesante es que si ejecuto un simple bate (sin PS en el bate), funciona bien. Tal vez esto es algo especial para el caso de PS? Bienvenidos comentarios y explicaciones.

+0

¿Cómo puedo lograr que para este 'proceso de puesta en uso de PSExec". wusa.exe "-ArgumentList" $ W2K12/quiet "-Wait' – Dotnet

2

¿Puedes intentar lo siguiente?

psexec \\server cmd /c "echo . | powershell script.ps1" 
+0

Creo que te falta la ruta de acceso total C: \ script \ StartPS.ps1 – toxicate20

5

La respuesta aceptada no funcionó para mí, pero lo hizo la siguiente:

>PsExec.exe \\<SERVER FQDN> -u <DOMAIN\USER> -p <PASSWORD> /accepteula cmd 
    /c "powershell -noninteractive -command gci c:\" 

Ejemplo de here

+0

Mismo problema ... aceptado funcionó y devolvió el código de error 0, pero no hizo nada, mientras que su solución funcionó – SteveC

+1

Tengo "powershell -nointeractive -file C: \ temp \ scripts.ps1" que funciona para mí (la respuesta aceptada no). – kafka

+0

@kafka ¿Dónde está ubicado su scripts.ps1? Estoy tratando de obtener un secuencia de comandos que se ejecuta de forma remota, pero en vano. – null

0

respuesta aceptada no funciona para mí, pero esto lo hace. Asegurar la escritura en la ubicación (c: \. Temp_ a continuación en cada servidor remoto servers.txt contiene una lista de direcciones IP (uno por línea)

psexec @servers.txt -u <username> cmd /c "powershell -noninteractive -file C:\temp\script.ps1" 
Cuestiones relacionadas