PowerShellリモーティングを使用して別のコンピューターに接続しています。本当にいいです。多くのことができますが、ファイルを編集するにはどうすればよいですか?
PS C:\ Users \ guutlee> Enter-PSSession -ComputerName appprod
[appprod]:PS C:\ Users \ guutlee \ Documents> cd \ myapp
[appprod]:PS C:\ myapp>
リモートマシン上のファイルでファイルエディタを開くにはどうすればよいですか?
[appprod]:PS C:\ myapp>app.configを編集します
したがって、「ファイル名」の編集は、powershell.exeまたはpowershell_ise.exeからハングしているように見えます
私が考えることができる唯一のことは、pssessionから戻って、VisualStudioを開く「start\ webprod \ c $ \ inetpub \ myapp\web.config」です。
[appprod]:PS C:\ myapp> exit
PS C:\ Users \ guutlee> start \ agobuild \ c $ \ myapp \ app.config
PS C:\ Users \ guutlee> Enter-PSSession -ComputerName appprod
[appprod]:PS C:\ Users \ guutlee \ Documents> cd \ myapp
[appprod]:PS C:\ myapp> myapp.exe
もちろん、これでファイルを再検索し、c $共有が利用可能でアクセス可能であることを期待し、続行したいときにpssessionを再接続して、作業ディレクトリを再検索する必要があります。あまりエレガントではないようです。
これは関数であるかもしれませんが、頭を包むのに苦労しています。
では、リモートpssessionを使用してファイルを便利に編集するにはどうすればよいですか?
編集
kbrimingtonの投稿により、sshの-Xオプションについて考えさせられました。おそらく、PowerShellセッションで、ウィンドウ化されたアプリを元のウィンドウ化環境に転送できるようになるのは素晴らしいことです...
それでも、ファイルを編集するだけでよかったと思います。
編集
vi、emacs、cmd、editを使用したテスト
PS C:\ Users \ Meredith> Enter-PSSession -ComputerName appprod
[appprod]:PS C:\ Users \ guutlee \ Documents> C:\ vim \ vim72 \ vim filename.txt
[appprod]:PS C:\ Users \ guutlee \ Documents> C:\ emacs-23.2 \ bin \ emacs.exe -nw filename.txt
emacs.exe:emacs:標準入力はttyではありません
+ CategoryInfo \: NotSpecified: (emacs: standard input is not a tty:String) [], RemoteException + FullyQualifiedErrorId \: NativeCommandError
[appprod]:PS C:\ Users \ guutlee \ Documents> cmd
MicrosoftWindows[バージョン6.1.7600]
Copyright(c)2009MicrosoftCorporation。全著作権所有。
C:\ Users \ guutlee \ Documents>
[appprod]:PS C:\ Users \ guutlee \ Documents> edit filename.txt
viと編集ハング(プロンプトを戻すにはControl-C)
cmdが実行され、プロンプトが生成されますが、すぐに終了してPowerShellプロンプトに戻ります
emacsはエラーを生成します(標準入力はttyではありません)
編集
Jeredは、ファイルをローカルにプルバックして編集することを提案しています。私はUNCではなくpssessionsを使用してコピーすることへの彼の答えを飾りました(おそらくこれは彼が意図したものです)
PS C:\ Users \ Meredith> Invoke-Command -Session $ ps -ScriptBlock {get-content c:/inetpub/myapp/web.config}> web.config
Web設定を編集する
PS C:\ Users \ Meredith> get-content web.config | Invoke-Command -Session $ ps -ScriptBlock {set-content c:/inetpub/myapp/web.config}
ローカルからリモート、またはリモートからローカルのいずれかの方向で、invoke-commandsを実行できる可能性があります。