tech.guitarrapc.cóm

Technical updates

PowerShell 5.0 と Windows10 と RTM のリリースについて

Windows Management Framework 5.0 (WMF5.0) の ロードマップが PowerShell Team から公開されました。

https://blogs.msdn.com/b/powershell/archive/2015/08/06/windows-management-framework-wmf-5-0-roadmap.aspx

一方で Windows 10 にはすでに WMF5.0 が載っています。では、その違いは何なのかについて軽く触れておきます。

9/4 追記

ぎりぎり 8/31 に WMF5.0 Production Preview がでました。

https://blogs.msdn.com/b/powershell/archive/2015/08/31/windows-management-framework-5-0-production-preview-is-now-available.aspx

Windows 10 ビルド10240 にあった DSC 周りのバグも修正されています。

利用可能OSは次の通りです。.NET 4.5以上 をいれれば動くのでぜひどうぞ!

  • Windows Server 2012 R2
  • Windows Server 2012
  • Windows 2008 R2 SP1
  • Windows 8.1
  • Windows 7 SP1
12/20 追記

WMF5 RTM がリリースされました。最新情報はこちらをどうぞ。

tech.guitarrapc.com

目次

Windows 10 には WMF5.0 が搭載されている

気づいた方も多いように、Windows 10 には WMF 5.0 が搭載されており、当然PowerShell 5.0 が利用できます。

$PSVersionTable

バージョンは、5.0.10240.16384 と 「Windows 10のビルドバージョン」 10240 が見て取れます。

Name                           Value
----                           -----
PSVersion                      5.0.10240.16384
WSManStackVersion              3.0
SerializationVersion           1.1.0.1
CLRVersion                     4.0.30319.42000
BuildVersion                   10.0.10240.16384
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
PSRemotingProtocolVersion      2.3

WMF5.0 April Preview と Windows 10 の違い

さて、この Windows 10 の PowerShell 5.0 はWMF5.0 April Preview と違う点がいくつかあります。目につくところだけ触れておきます。

PSReadline の搭載

PSRealLine が PowerShell Core に取り込まれたことによる機能追加がまず気づくところです。

github.com

PSReadline による目に見える変化は2点あります。ほかにも強化点があるのですが、まぁいいです。

  • PowerShell コンソールでのシンタックスハイラックス
  • PowerShell コンソールでのインテリセンス表示

実際にモジュールを見てみると、

Get-Module

この通りですね。

ModuleType Version Name                            ExportedCommands                                                    
---------- ------- ----                            ----------------                                                    
Manifest   3.1.0.0 Microsoft.PowerShell.Management {Add-Computer, Add-Content, Checkpoint-Computer, Clear-Content...}  
Manifest   3.1.0.0 Microsoft.PowerShell.Utility    {Add-Member, Add-Type, Clear-Variable, Compare-Object...}           
Script     1.1     PSReadline                      {Get-PSReadlineKeyHandler, Get-PSReadlineOption, Remove-PSReadlin...

Windows 8.1 に WMF5.0 を当てても PSRealtine が有効にならないことに気づいた人はWindows 10 にあげられると幸せになれるでしょう。

ConsoleHost.exe の更新

ほかにも、Windows 10 で ConsoleHost.exe が更新されて Ctrl + v による貼り付けができるようになりました。 cmd.exe だけじゃないのです。

cmd.exe も PowerShell.exe も両方 ConsoleHost.exe の上で動いているので改善を享受できるのです。やったね!

Windows 10 は RTM?

WMF 5.0 の RTM が 2015年 Q4 なのに Windows 10 には WMF5.0 が載ってるのはどういうことなのかというのが先のロードマップに載っています。

https://blogs.msdn.com/b/powershell/archive/2015/08/06/windows-management-framework-wmf-5-0-roadmap.aspx

Production Preview (PP) が、2015年8月を目標に公開されるようです。そして、RTM が 2015年Q4 を目標に公開されるとあります。

Production Preview はあまり聞きなれない言葉ですが、これまでの Preview とは以下の違いがあるとしています。

WMF 5.0 Production Preview will differ from previous previews of WMF 5.0 in the following ways:

  • WMF 5.0 RTM リリース後も3カ月間フルサポートされます。「フルサポート」とは、本番環境を妨げる原因を調査し、必要に応じてワークアラウンドを提供するという意味としています
  • PPの機能はすべて Production Ready。つまり本番で利用可能としています。Experimental な実装は含まないとあります
  • PPインストール前に、これまでのWMF プレビューリリースはアンインストールが必要としています。(Windows 10 はそのままあげていいようですが)

そして、Windows 10 の搭載しているWMF 5.0 は PP ともRTMと表現されていません。その違いは何なのでしょうか。

Windows 10 の WMF5.0

Windows 10 の PowerShell 5.0.10240.16384 は、Windows 10 に搭載された他Windowsコンポーネントと同様にサポートされるとあります。

そして RTM での PowerShell と同じコードベースであり、RTMではフィードバックによるズレとバグ修正などを含む予定のようです。

つまり、本番で利用してもいい製品レベルだが、RTMではよりバグも少なくなるようですね。

実際、Windows 10 ではDSC 周りでバグが残っており、ヘルプ周りもヘルプが表示されていないものが数多くあります。

help Get-Module

ぴゃっ、説明全くないです。

NAME
    Get-Module
    
SYNTAX
    Get-Module [[-Name] <string[]>] [-FullyQualifiedName <ModuleSpecification[]>] [-All]  [<CommonParameters>]
    
    Get-Module [[-Name] <string[]>] -CimSession <CimSession> [-FullyQualifiedName <ModuleSpecification[]>] [-ListAvaila
    ble] [-Refresh] [-CimResourceUri <uri>] [-CimNamespace <string>]  [<CommonParameters>]
    
    Get-Module [[-Name] <string[]>] -ListAvailable [-FullyQualifiedName <ModuleSpecification[]>] [-All] [-Refresh]  [<C
    ommonParameters>]
    
    Get-Module [[-Name] <string[]>] -PSSession <PSSession> [-FullyQualifiedName <ModuleSpecification[]>] [-ListAvailabl
    e] [-Refresh]  [<CommonParameters>]
    

ALIASES
    gmo
    

REMARKS
    Get-Help cannot find the Help files for this cmdlet on this computer. It is displaying only partial help.
        -- To download and install Help files for the module that includes this cmdlet, use Update-Help.
        -- To view the Help topic for this cmdlet online, type: "Get-Help Get-Module -Online" or 
           go to https://go.microsoft.com/fwlink/?LinkID=141552.
ロードマップから予想できること

ロードマップ詳細待ちですが、RTM が 2015年Q4 ということは、Windows Server 2016 のリリースに向けてのリリースを考えてるんでしょうかねぇ。

過去には、2014年10月に WMF 4.0 の Rolling Update 1更新を Windows Update から配信しています。

Windows 10 も RTM までは、Production Preview を Windows Update で配信するといいですね。

まとめ

Windows 10 は進化するOS です。PowerShell 5.0 も進化に遅れないように改善していくようなので、どしどしフィードバックしましょう。

Bing