しばたテックブログ

PowerShellを中心に気分で書いている技術ブログです。

Windows Server 2019のServer Core App Compatibility Feature on Demandを試す

Windows Server 2019で新たに導入されたApp Compatibility Feature on Demand(FoD)は、基本的にCUIのみであるServer Coreに対して後入れでいくつかのGUI管理ツールを導入できる機能になります。

Insider previewの時点で既にムッシュが試しており、リリース版でも結果的には変わらない内容となりましたが、せっかく試したのでエントリとして残しておきます。

FoDをセットアップする

公式の手順はこちらになります。

docs.microsoft.com

最初にWindows Server 2019 Server Coreを普通にセットアップし、その後専用のISO媒体からDISMを使いFoDの機能を追加する形になります。

Server Coreのセットアップ

ここの手順は端折ります。
適当にServer Coreのセットアップをして管理者ユーザーがログインできる状態にしてください。

f:id:stknohg:20181004121229p:plain

エディションはStandard、Datacenterどちらでも構いません。

FoD ISOイメージの取得

先述の通りFoDをセットアップするには専用のISOイメージが必要です。
このイメージの入手先についてはドキュメントにきちんと明記されておらず残念な感じになっています。
(そのうち明記されるとは思いますが...)

とりあえず私はVisual Studioサブスクリプション(MSDNサブスクリプション)からダウンロードすることができたのでそのイメージを利用しています。

f:id:stknohg:20181004121254p:plain

FoD ISOイメージのマウント

このISOイメージをOS内でマウントします。

公式の手順としてはネットワークドライブなどに配置したISOファイルをPowerShellのMount-DiskImageコマンドレットを使ってマウントする手順が紹介されています。

本エントリでは公式の手順に加えてマウントしたボリューム、およびドライブレターの取得方法も提示しておきます。

# ISOイメージのマウント
$image = Mount-DiskImage -ImagePath '[FoD ISOのパス].iso' -PassThru

# マウントしたボリューム情報を取得
Get-Volume -DiskImage $image

# ドライブレターを取得する場合
(Get-Volume -DiskImage $image).DriveLetter

FoDをセットアップする

DISMを使い先ほどマウントしたドライブをソースに指定して機能を追加します。
公式の手順ではDISM.exeを使っていましたが、せっかく最初でPowerShellを使っているので本エントリではAdd-WindowsCapabilityを使った手順を紹介します。

Add-WindowsCapability -Online -Name 'ServerCore.AppCompatibility~~~~0.0.1.0' -Source [マウントしたドライブレター]:\ -LimitAccess

# 公式の手順だとこんな感じ
# DISM /Online /Add-Capability /CapabilityName:"ServerCore.AppCompatibility~~~~0.0.1.0" /Source:[マウントしたドライブレター]:\ /LimitAccess

実行例)

f:id:stknohg:20181004121311p:plain

機能の追加後は再起動が要求されるので、サーバーを再起動すれば完了です。

Restart-Computer

【補足】Internet Explorerの追加方法

FoDを使ってInternet Explorerを利用するにはさらにもうひと機能追加する必要があります。

Add-WindowsCapability -Online -Name 'Browser.InternetExplorer~~~~0.0.11.0' -Source [マウントしたドライブレター]:\  -LimitAccess

こちらもインストール後に再起動が必要です。

なお、iexplore.exeへのパスは追加されないので、IEを起動する際は

"C:\Program Files\internet explorer\iexplore.exe"

の様にフルパスで指定してやる必要があります。

FoDを試してみる

公式には

  • Microsoft Management Console (mmc.exe)
  • イベントビューアー (Eventvwr.msc)
  • パフォーマンスモニター (PerfMon.exe)
  • リソースモニター (Resmon.exe)
  • Device Manager (Devmgmt.msc)
  • エクスプローラー (Explorer.exe)
  • PowerShell ISE (Powershell_ISE.exe)
  • フェイルオーバークラスターマネージャー (CluAdmin.msc)

が利用できると謳われています。

ただ、MMCに関してはデスクトップ版の全機能ではなく、上記以外だと

  • ディスクの管理 (diskmgmt.msc)
  • ローカルグループポリシーエディター (gpedit.msc)
  • ローカルユーザーとグループ (lusrmgr)
  • ポリシーの結果セット (rsop.msc)
  • ローカルセキュリティポリシー (secpol.msc)
  • セキュリティが強化されたWindows Defenderファイアウォール(WF.msc)

のみ使える様です。

加えてざっと調べたところ、

  • コントロールパネル (control.exe)
  • クラスター更新対応 (ClusterUpdateUI.exe )
  • 色の管理 (colorcpl.exe)
  • FAX送付状エディター (FXSCOVER.exe)
  • ハードウェア追加ウィザード (hdwwiz.exe)
  • IExperssウィザード (iexpress.exe (非推奨機能))

の起動を確認できました。
(機能がきちんと利用可能かまでは調べてません...)

以下に適当にスクリーンショットを張っていきます。

f:id:stknohg:20181004124043p:plain

f:id:stknohg:20181004124049p:plain

f:id:stknohg:20181004124055p:plain

f:id:stknohg:20181004124102p:plain

f:id:stknohg:20181004124109p:plain

f:id:stknohg:20181004124116p:plain

f:id:stknohg:20181004124133p:plain

f:id:stknohg:20181004124141p:plain

f:id:stknohg:20181004124146p:plain

f:id:stknohg:20181004124156p:plain

f:id:stknohg:20181004124202p:plain

f:id:stknohg:20181004124209p:plain

f:id:stknohg:20181004124216p:plain

f:id:stknohg:20181004124222p:plain