tech.guitarrapc.cóm

Technical updates

Windows 10 Tech Preview における PowerShell をみてみよう

はい。みます。

目次

What's New in Windows PowerShell

全部の概要はここから

ぱっと見て気のなるポイントをつらつらと。

Win + X

Windows 8.1 から、 Win + X で表示されるのはコマンドプロンプトでしたが、タスクバーのプロパティから PowerShell に変更できました。(あるいはレジストリ直接)

Windows 10 Tech Preview は?変わりません。

f:id:guitarrapc_tech:20141002020541p:plain

Search

Windows 8.1 までは、PowerShell で検索 すると x64 と x86 が表示されました。

f:id:guitarrapc_tech:20141002020652p:plain

Windows 10 Tech Preview では? PowerShell のみです。

f:id:guitarrapc_tech:20141002020711p:plain

パスも x64 が起動していますね!

f:id:guitarrapc_tech:20141002020756p:plain

PSVersionTable

お待ちかねのデフォルトでインストールされるバージョンは?

PowerShell V5.0.9841.0 です。

f:id:guitarrapc_tech:20141002020845p:plain

Windows 8.1 にいれた、Windows Management Framework 5 September Preview と同じかにゃ?WMFバージョンみてないけど。

f:id:guitarrapc_tech:20141002020924p:plain

CLEバージョンだけ、Windows 10 Technical Preview の方が新しいですね。

Cmdlet数

Cmdletの数は1229 とさらに増えています。

f:id:guitarrapc_tech:20141002021032p:plain

ネットワーク系 Cmdlet とか DSC や Class 系が増えていますからね!

Ctrl + v

Cmd.exe で Ctrl + v ができるようになるよ!などといわれていましたが、PowerShell.exeだって同じです。できます。

Windows 8.1 までは、 Ctrl + v で残念な思いをしていましたが、

f:id:guitarrapc_tech:20141002021311p:plain

Windows 10 TechPreview で、Ctrl + v の 貼り付けができるようになっています。

f:id:guitarrapc_tech:20141002021229p:plain

当然でしょ。Cmd 産廃はよ *1

ISE

検索で、 PowerShell ISE ででます。

f:id:guitarrapc_tech:20141002021732p:plain

ise ではでませんが、一度でも PowerShell ISE で検索していれば履歴から選べますね。

f:id:guitarrapc_tech:20141002021859p:plain

ちなみに、Windows System にあります。

f:id:guitarrapc_tech:20141002022006p:plain

検索ボタンから探すと、ほぇぇ

f:id:guitarrapc_tech:20141002022739p:plain

f:id:guitarrapc_tech:20141002022803p:plain

V5 の ISE は、わかっていましたが、ISESteroids とか ScriptBrowser がデフォルトでのることもなく、PowerShell 4.0 と同様です。

f:id:guitarrapc_tech:20141002021627p:plain

ipconfig を呼ぶと、一瞬 cmdの画面が起動するのがダサイですね。ping は平気でしたが*2

f:id:guitarrapc_tech:20141002022340p:plain

おとなしく、Get-NetIPAddress を呼びましょう。

f:id:guitarrapc_tech:20141002022558p:plain

PowerShell.exe のプロパティ

PowerShell.exe のプロパティにタブが追加されています。

Experimental Property です。

f:id:guitarrapc_tech:20141002023304p:plain

そう、Ctrl + v などはここで制御しているんですね。いい試みだと思います。

いろいろ試してみましょうね。

Opacity で透明度も変更できるようになりました。

f:id:guitarrapc_tech:20141002023559p:plain

さらっとNew Feature に触れておきましょう。

RunSpace Debugging

ついに、RunSpace のデバッグができるようになります。 valentia はばりばり RunSpace 使ってますが、何が起こったのかデバッグしにくくてしょうがなかったですがこれで良くなります。

f:id:guitarrapc_tech:20141002025848p:plain

あ、Job や Workflowの Debugging もね!

f:id:guitarrapc_tech:20141002030122p:plain

PowerShell Script Debugging

ついに、別プロセスからPowerShell Scriptを実行している PowerShell.exe をアタッチしてデバッグが可能になります。

Cmdlet のデバッグで VS でやるのと同様ですが、やっとPowerShell ISE でもサポートです。

f:id:guitarrapc_tech:20141002030022p:plain

Different Version of Module in Same PSModulePath

違うバージョンの 1つのPowerShell Module を同じ $PSModulePath にいれて指定できるようになったらしく!呼び出し時のバージョン指定が可能になっています。

f:id:guitarrapc_tech:20141002030251p:plain

Get-Commandでバージョンも出るようになりました。

f:id:guitarrapc_tech:20141002030314p:plain

そしてバージョンを指定してモジュールをインポート、リムーブ可能になります。

f:id:guitarrapc_tech:20141002030559p:plain

Get-ItemPropertyValueによるGet-ItemPropertyのValue自動表示

Get-ItemProperty を多様するのが レジストリ操作ですが、レジストリのプロパティをとっても、そのValue を出すためには、取得したプロパティ名を改めて指定する必要がありました。

これが、Get-ItemPropertyValue するだけで、値が取れるようになりました!やった!これで レジストリ操作が格段に楽になります。

f:id:guitarrapc_tech:20141002030521p:plain

DSC

Throttle Limit がサポートされたので、数千台でもいけると Jeffrey は意気込んでいます。が、まぁ、どうでしょうか。いずれにしても Throrrling は必須だったのでよかったですね。

f:id:guitarrapc_tech:20141002030730p:plain

DSC Configuration を記述しているときの Tab補完が強化されます。これでやっと Ctrl + Space でインテリセンスを確認したり、Tabで自動補完されます。やっとです。

f:id:guitarrapc_tech:20141002030847p:plain

ISE

Remote Script Debug に Break All のサポート、 Start-Transcript のサポートから Enter-PSRemoting からの リモートファイルエディタまでできます。やったね!

f:id:guitarrapc_tech:20141002030924p:plain

oData EndPoint での Cmdlet 返却

んー、サーバーリソースのAPI代わり.... ぐらいかなぁ。使う図が思いつかないですね。だって、NewRelic つよいもん。。。。。あ、でも、まぁありかもしれないですね。PowerShell は拡張して内部の情報をいろいろとれるので、その辺のエージェントが頑張るのを待つまでもないですね。

たとえば、Web App Pool の状態や Siteの状態をAPI返却もできますね。監視周りに一石を投じれるかもしれません。

f:id:guitarrapc_tech:20141002031007p:plain

COMのバグ修正で 5倍処理が早く

嬉し悲しい。

f:id:guitarrapc_tech:20141002031213p:plain

PowerShell Team の動画です。

まとめ

Ctrl + v いいのでは?まぁ、まだまだ PowerShell は改善しなきゃですが、デバッグ周りの強化は私が正に気にしていた箇所なので素直にうれしいです。

次は、速度、以前に 古い設計を作り直してほしいですね。

*1:無理です。PowerShellのバイナリ扱いなんとかしなきゃ絶対むり

*2:Ping-ValentiaAsync あるので久々にpingよびだしました。