読者です 読者をやめる 読者になる 読者になる

tech.guitarrapc.cóm

C#, PowerShell, Unity, Cloud, Serverless Technical Update and Features

PowerShell v5 の新機能紹介 - PowerShell ISE でリモートファイルを直接編集可能に

さて前回の記事で PowerShell v5 をコアとする Windows Management Framework 5.0 Preview September 2014 (v5.0) について紹介しました。

その機能詳細を触りつつ、何が変わるのかお伝えできればと思います。

今回は、まず WMF 5.0 のリリースノートにない機能です。

ついに PowerShell でリモートログイン中に、リモートファイルを直接エディタで編集可能になります。

  • 過去の記事はこちら

目次

*nux の ssh ではリモートサーバーのファイルを直接操作できる

vimに限りませんが、こんな操作が*nuxでは当然可能です。

ssh testserver # ssh で testserver にログイン
vim hoge.log # vim で hoge.log を編集

この時、vim で開く画面は ssh でそのままシームレスに展開されます。

f:id:guitarrapc_tech:20140908041113p:plain

リモートターミナルの中で、新たに画面を立ち上げることなく、シームレスにエディタでファイルを編集する。

ローカルとリモートで変わらないというのは、作業効率でも操作性でもあってほしい機能です。

PowerShell v4まではリモート先のファイルを直接エディタ展開編集できなかった

PowerShell v4 までは、 ssh に変わる WSMan でのリモートと謳うわりに 直接リモート上のファイルをエディタで編集する機能がなかったのです。

これは、とてつもなく苦痛を伴い、また私がもはや Enter-PSSession を使わない理由の一つでもありました。

PowerShell v5 なら ISE上でリモートファイルを直接編集できる

そう、PowerShell v5 の ISE ならね。要件は一つだけです。

をインストールしてください。

手順

いたって簡単です。

PowerShell ISE を起動

f:id:guitarrapc_tech:20140908041749p:plain

PowerShell.exe ではできません。PowerShell ISE からのみ可能です。

Enter-PSSession で対象のサーバーにリモートログインします。
Enter-PSSession -ComputerName "対象のIPやホスト名" -Credential "同じ認証でないならユーザー名/パスワードをPSCredentialで渡す"

例えばこうです。

Enter-PSSession -ComputerName 192.168.11.21 -Credential (Get-Credential)
psedit で対象のファイルを開きます。
psedit "リモート先のファイル名" 

例えばこうです。

psedit d:\hoge.log

f:id:guitarrapc_tech:20140908042249p:plain

ISE の別タブにリモートファイルが開かれます!オワリ!
[Remote File]選択したファイル名

の形式で開かれたでしょう!!

f:id:guitarrapc_tech:20140908042426p:plain

もちろん、ふつーにローカルのファイルと同様に操作できます。

保存すれば、リモートファイルが保存されます。

まとめ

これだけ覚えましょう。

1. Enter-PSSession
2. psedit ファイル名

もう、ssh で vim を打つたびに悔しがらなくて済む!*1

*1:と、思うじゃろ?動作が違うからそうでもない