Windows Server 2016 (IIS 10以上)にIIS Media Services 4.1をインストールする (非サポート)


この記事の目的

  • 2021/2/16追記
    MicrosoftのダウンロードサイトからIIS Media Services 4.1が削除されました。
    サポート終了の公式アナウンスはないようですが、そもそもWindows Server 2016以降ではサポートされていないのでIIS Media Services自体が終了した技術と考えた方がよいです。

需要があるかは定かではないですが、Windows Server 2016 (IIS 10以上)にIIS Media Services 4.1をインストールする方法を記載します。
そのままインストールしようとすると以下のエラーになります。

IIS Version 7.0 or greater is required to install IIS Media Services 4.1.

IIS 10なのになぜ?
原因はIIS Media Services 4.1のインストーラーがIISのバージョンを決め打ちでチェックしているからです。
IIS 9までは対応しているのですが、IIS 10以上のバージョンだと「古いバージョン」と判断してしまいます。
※ Windows Server 2016以降はIIS Media Servicesのサポート対象ではないため、以下の回避策はサポートされない方法です。

前提

  • Windows Server 2016
  • IIS 10
  • IIS Media Services 4.1

この作業はレジストリを変更します。
自己責任の上、レジストリの変更は十分に注意して行ってください。

準備

IIS Media Services 4.1

以下からダウンロードできます。
https://www.microsoft.com/ja-jp/download/details.aspx?id=27955
※ IIS Media Service自体レガシーとなりつつあり、上記リンクはその内消滅する可能性があります。
上記URLは404になっていました。
公式にIIS Media Servicesをダウンロードする手段はなくなりました。

実施

実施する作業は以下の3点です。

  1. レジストリを変更し、IISのバージョンを古いものに偽装する。
  2. IIS Media Services 4.1をインストールする。
  3. レジストリを戻す。

1. レジストリ変更(バージョン偽装)

  • 「ファイル名を指定して実行」(Windowsキー + R)、またはスタートメニューの検索で"regedit"と入力し実行して、レジストリエディターを起動します。
  • ツリーから以下のキーを開きます。
    HKEY_LOCAL_MACHINE > SOFTWARE > Microsoft > InetStp
  • 右画面で「MajorVersion」を選択し、右クリックして"修正"を選択します。
  • 「表記」の「10進数」を選び、「値のデータ」に"9"を入力しOKを押します。

2. IIS Media Services 4.1 インストール

  • ダウンロードしたIIS Media Services 4.1のインストーラー(IISMedia_amd64_ja-JP.msi)を実行し、案内に従ってインストールします。

3. レジストリ変更(戻し)

  • レジストリエディターで、先ほど変更した「MajorVersion」の「値のデータ」を"10"に戻します。

おまけ

IIS Media Services 4.1をPowershellでサイレントインストールする場合は以下のコマンドです。

$msiArgs = '/qn', '/i', "xxx\IISMedia_amd64_ja-JP.msi"
$ps = Start-Process -PassThru -Wait msiexec -ArgumentList $msiArgs

xxxはインストーラーを置いているパスを設定します。

参考

https://blogs.msdn.microsoft.com/pkirchner/2017/05/09/workaround-error-installing-iis-media-services-on-windows-server-2016/
Microsoftのブログなので、この手順は公式(のはず)です。
このブログ内でもWindows Server 2016以降はIIS Media Servicesがサポートされない旨が追記されていました。