Mi sto connettendo a un altro computer utilizzando il servizio remoto di PowerShell, davvero bello. può fare molto, ma come posso modificare un file?come modificare un file nella sessione remota di PowerShell (PowerShell)
PS C: \ Users \ guutlee>Enter-PSSession -ComputerName appprod
[appprod]: PS C: \ Users \ Documents guutlee>cd \ myapp \
[ appprod]: PS C: \ myapp>
Cosa posso fare per aprire un editor di file su un file sul computer remoto?
[appprod]: PS C: \ myapp> modifica app.config
modo modifica "nomefile" sembra solo per appendere, da powershell.exe o da powershell_ise.exe
Il l'unica cosa che posso pensare è uscire dalla pssession e "avviare \ webprod \ c $ \ inetpub \ myapp \ web.config", che aprirà lo studio visivo.
[appprod]: PS C: \ myapp> exit
PS C: \ Users \ guutlee>inizio \ agobuild \ c $ \ myapp \ app.config
PS C: \ Users \ guutlee>Enter-PSSession -ComputerName appprod
[appprod]: PS C: \ Users \ Documents guutlee>cd \ myapp \
[appprod]: PS C: \ myapp>myapp.exe
Naturalmente con questo devo ri-trovare il file, spero che il c $ condivisione è disponibile e accessibile, e la riconnessione la mia pssession e ri-trovare la mia directory di lavoro quando voglio andare avanti. Non sembra molto elegante.
potrei forse avvolgere questa è una funzione, ma avendo un momento difficile avvolgere la mia testa intorno che ..
così come faccio comodamente modificare un file con un pssession a distanza?
EDIT
post di kbrimington mi ha fatto pensare l'opzione -X a ssh. probabilmente sarebbe una cosa fantastica per le sessioni di PowerShell essere in grado di inoltrare le applicazioni con finestre all'ambiente di finestre originale ...
ma comunque sarei felice di modificare il file.
EDIT
test utilizzando VI, emacs, cmd e modificare
PS C: \ Users \ Meredith>Enter-PSSession -ComputerName appprod
[appprod]: PS C : \ Users \ guutlee \ Documents>C: \ vim \ vim72 \ vim nomefile.txt
[appprod]: PS C: \ Users \ guutlee \ Documents >C: \ emacs-23.2 \ bin \ emacs.exe -nw filename.txt
emacs.exe: emacs: standard input non è una tty
+ CategoryInfo \: NotSpecified: (emacs: standard input is not a tty:String) [], RemoteException + FullyQualifiedErrorId \: NativeCommandError
[appprod]: PS C: \ Users \ guutlee \ Documents> cmd
Microsoft Windows [versione 6.1.7600]
Copyright (c) 2009 Microsoft Corporation. Tutti i diritti riservati.
C: \ Users \ guutlee \ Documents>
[appprod]: PS C: \ Users \ Documents guutlee>Modifica filename.txt \
vi e modificare appendere (Control- C per ottenere una rapida indietro)
piste cmd, producendo una richiesta, ma esce immediatamente indietro alla richiesta powershell
emacs produce l'errore (standard input non è un TTY)
EDIT
Jered suggerisce di tirare il file indietro a livello locale per modificare. Ho abbellito la sua risposta a copiare utilizzando sessioni PSSession piuttosto che UNC (forse questo è ciò che intendeva)
PS C: \ Users \ Meredith>Invoke-Command -Session $ ps -ScriptBlock {get-content C:/inetpub/frontend/web.config}> web.config
Modifica web config
PS C: \ Users \ Meredith>web.config Get-Content | Invoke-Command -Session $ ps -ScriptBlock {set-content C: /inetpub/myapp/web.config}
Potenzialmente abbiamo potuto eseguire i comandi Invoke-in entrambe le direzioni, locali a distanza o remoto torna a Locale.
Questo non risponde come modificare comodamente un file, ma è una spiegazione del comportamento sospeso, quindi posterò come commento. La sessione sembra bloccarsi perché una sessione remota non virtualizza le applicazioni con finestre per te; cioè, la tua sessione di modifica sarebbe visibile a te in Desktop remoto se fossi connesso tramite servizi terminal. – kbrimington
non funzionerà molto bene con le app della console interattiva. – x0n