Domanda

Ho installato PS 1.0 in un PC remoto (RPC001). Ho usato Windows Sysinternals strumento psexec.exe per eseguire la seguente procedura sul telecomando:

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

Posso vedere il processo PowerShell.exe in esecuzione sul PC remoto dopo, ma in realtà è non fare nulla, appena appeso lì. Ho provato a mettere un semplice codice di "Write-Output / Host" una stringa nello script. Corro lo stesso script sul telecomando da RTS, funziona lì.

Non sono sicuro se mi manca niente altro per eseguire lo script utilizzando PSExec, o è la limitazione psexec.exe. Vorrei iniziare uno script PS sul telecomando per fare qualcosa là localmente (comprimere alcuni file localmente e rimuovere i vecchi file) da mia casella.

Ho fatto una domanda simile in StackOverflow: Run processo remoto da PowerShell . Don mi ha suggerito di utilizzare PSExec. Suona come un modo alternativo per risolvere il problema. Tuttavia, non riesco a farlo funzionare con PowerShell. Un modo per ottenere PS lavorare sul PC remoto?

A proposito, non posso usare PS 2.0 in quanto la mia rete non mi permette di installare Windows XP SP3, che è richiesto per PS 2.0.

È stato utile?

Soluzione

Dopo ulteriori indagini sullo strumento PSExec, penso che ho avuto la risposta. Ho bisogno di aggiungere l'opzione -i per dire PSExec per lanciare il processo a distanza in modalità interattiva:

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

Senza -i, powershell.exe è in esecuzione sul telecomando in modalità di attesa. punto interessante è che se corro un semplice blocco (senza PS in pipistrello), funziona benissimo. Forse questo è qualcosa di speciale per il caso del PS? commenti e spiegazioni di benvenuto.

Altri suggerimenti

La risposta accettata non ha funzionato per me, ma il seguente fatto:

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

Esempio da qui

Si può provare quanto segue?

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

accettato risposta non funziona per me, ma questo non fa. Garantire script nella posizione (c:.. \ Temp_ di seguito su ciascun server remoto servers.txt contiene un elenco di indirizzi IP (uno per riga)

psexec @servers.txt -u <username> cmd /c "powershell -noninteractive -file C:\temp\script.ps1"
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top