Exchange 2016 でコマンドレット リファレンス トピックの配信および更新方法を刷新
(この記事は 2015 年 8 月 24 日に Exchange Team Blog に投稿された記事 A brave new world for Exchange 2016 cmdlet reference topic delivery and updates の翻訳です。最新情報については、翻訳元の記事をご参照ください。)
Update-ExchangeHelp は Exchange コマンドレットの 1 つであり、これを使用することで、Exchange サーバー上に Exchange コマンドレット リファレンスの最新版のヘルプ トピックをインストールして、Exchange 管理シェル (Get-Help <コマンドレット>) で利用できるようになります。Windows PowerShell コマンドレットにも一見、同様の処理を行うもの (Update-Help (英語) および Save-Help (英語)) がありますが、これらは Exchange 管理シェルでは使用することができません。
Update-ExchangeHelp は Exchange 2013 で提供されていたものの、フル活用されるまでには至らず、その真価が発揮されていませんでした。しかし、Exchange 2016 では、この状況が一転します。Exchange 2016 のあらゆる製品リリース (RTM および累積更新プログラム (CU)) で、Exchange 管理シェル用の Exchange コマンドレット リファレンス トピックが新規または更新版としてリリースされる際に、Update-ExchangeHelp が大いに活用されることになります。実際、特定の Exchange 製品リリースでは、一部の Exchange コマンドレット リファレンス トピックが、説明内容が不十分なままコマンド ラインに表示されている場合があるのです。
それでは、このコマンドレットを活用した場合に、どのようなメリットがあるのでしょう。コマンドレット リファレンス トピックの更新方法を変更することで、次のような利点があります。
- お客様が実際に使用するコマンドレットの品質が向上: 新規または更新されたコマンドレットのヘルプを記述する際に、使用頻度の高いものに優先的に取り組めるようになります。TechNet では、Exchange 2013 のコマンドレット リファレンス トピックについて、お客様による使用状況データを 2 年以上にわたって収集してきました。これまでのように Exchange のリリース時にすべてのコマンドレット トピックを全体的に更新する (広く浅く対応する) のではなく、参照頻度の高い新規のコマンドレットを優先的に更新する (狭く深く対応する) ことができます。
- 適切なタイミングでローカライズを実施: 一部の Exchange リリースでは、Exchange コマンドレットのヘルプについて、まず、英語版が提供された後に、ローカライズ版が提供されます。つまり、RTM 向けの Exchange コマンドレット ヘルプのローカライズ版は CU1 のコマンド ラインで提供され、CU1 向けの Exchange コマンドレット ヘルプのローカライズ版は CU2 のコマンド ラインで提供されるという具合です。しかし、Update-ExchangeHelp を使用すれば、次のリリースを待つのではなく、Exchange コマンドレット ヘルプのローカライズ版が提供可能になった時点で直ちに提供することができます。
このように、Exchange 製品をリリースする際には、Exchange コマンドレット リファレンス トピックのうち最も優先度の高い更新事項に重点的に対処し、これらを Exchange のコードに組み込んでコマンド ラインに表示できるようにしていきます。また、Exchange 製品のリリース後は、Exchange コマンドレット リファレンス トピックの更新作業を引き続き進め、TechNet で公開すると共に Update-ExchangeHelp でダウンロード可能な更新パッケージとして提供する予定です。Update-ExchangeHelp を使用すれば、Exchange 製品の次期リリースを待つことなく、都合の良いタイミングで Exchange 管理シェル用の更新版 Exchange コマンドレット リファレンス トピックをダウンロードできるようになります。
更新パッケージは、Exchange 製品のリリースとリリースの間で、適切な頻度で提供していくつもりです。Exchange 製品のリリース時には、更新版の Exchange コマンドレット リファレンス トピックを Exchange コードに組み込むことができるので、Exchange 製品をリリースする直前に、ダウンロード可能な更新パッケージを提供する必要はありません。Exchange 製品が四半期ごとにリリースされると仮定するならば、英語版の更新パッケージは四半期に 1 ~ 2 回提供するのが妥当であり、毎月またはそれ以上の短い間隔で提供されることはないと思われます。ローカライズ版の更新パッケージについては、四半期に 1 回の提供を予定しています。英語版のトピックは常にローカライズ版よりも先に提供されることになりますが、双方の差異は小さくなるはずです。
たとえば、Exchange 製品がリリースされたものの、Exchange コマンドレット リファレンス トピックの一部の説明内容が不完全な状態だった場合、マイクロソフトでは引き続きトピックの編集作業を進めて、リリースの 1 か月後に英語版の更新パッケージを公開します。また、この更新パッケージをローカライズして、ローカライズ版を可能な限り速やかに (英語版の更新パッケージの数週間後などを目安に) 公開します。さらに、英語版の未完成のコマンドレット リファレンス トピックの編集作業を進めて、1 つ目の英語版更新パッケージを公開した約 1 か月後に、次の英語版更新パッケージを公開します。この時点で、四半期のうち 2 か月が経過しており、Exchange 製品の次期リリースはわずか 1 か月後に迫っています。私たちは引き続きコマンドレット リファレンス トピックの改善に取り組んで、これを次期製品リリース向けの Exchange コードに組み込みます。そして次の Exchange 製品がリリースされると、同様のサイクルで作業を繰り返します。
この戦略のもう 1 つの重要なポイントは、通知です。Update-ExchangeHelp を定期的に実行して更新の有無を確認することもできますが、あまりお勧めできる方法ではありません。マイクロソフトでは、更新パッケージが利用可能になったタイミングで、RSS フィードを使用して通知を行うことを考えています。
使用方法
Update-ExchangeHelp の使用方法はきわめて簡単です。Exchange サーバー上の Exchange 管理シェル、または Exchange 管理ツールがインストールされたコンピューター上で次のコマンドを実行します。
Update-ExchangeHelp -Verbose |
Verbose スイッチは、「ご使用のサーバーは既に更新済みです」や「過去 24 時間以内に既にこのコマンドを実行済みです」などのステータス メッセージを表示してくれるので、重要です。24 時間の制限を回避してこのコマンドをもっと頻繁に実行したい場合は、Force スイッチを追加設定することができます。
問題点として挙げられるのは、Exchange サーバーが更新パッケージをダウンロードする際にインターネット アクセスが必要になる点です。これがさほど問題にならないお客様もいらっしゃいますし、大きな問題になるお客様もいらっしゃいます。この問題を回避する方法を、以下にご説明しましょう。
オフライン モードによる Update-ExchangeHelp
Update-ExchangeHelp をカスタマイズしてローカル ネットワーク上の更新プログラムを検索するようにするには、基本的に 4 つの手順が必要です。
- ExchangeHelpInfo.xml マニフェスト ファイルをダウンロードして、内容を確認する
- 更新パッケージをダウンロードして内部の Web サーバー上で公開し、ExchangeHelpInfo.xml ファイルをカスタマイズする
- カスタマイズした ExchangeHelpInfo.xml ファイルを公開する
- カスタマイズした ExchangeHelpInfo.xml ファイルを指し示すように Exchange サーバーのレジストリを変更する
ステップ 1: ExchangeHelpInfo.xml マニフェスト ファイルをダウンロードして、内容を確認する
https://go.microsoft.com/fwlink/p/?LinkId=287244 を開いて ExchangeHelpInfo.xml ファイルを保存し、このファイルをメモ帳で開きます。ExchangeHelpInfo.xml ファイルの内容の例を以下に示します。
<?xml version="1.0" encoding="utf-8"?> <ExchangeHelpInfo> <HelpVersions> <HelpVersion> <Version>15.01.0225.030-15.01.0225.050</Version> <Revision>001</Revision> <CulturesUpdated>en</CulturesUpdated> <CabinetUrl>https://download.microsoft.com/download/8/7/0/870FC9AB-6D22-4478-BFBF-66CE775BCD18/ExchangePS_Update_En.cab</CabinetUrl> </HelpVersion> <HelpVersion> <Version>15.01.0225.030-15.01.0225.050</Version> <Revision>002</Revision> <CulturesUpdated>de, es, fr, it, ja, ko, pt, pu, ru, zh-HanS, zh-HanT</CulturesUpdated> <CabinetUrl>https://download.microsoft.com/download/8/7/0/870FC9AB-6D22-4478-BFBF-66CE775BCD18/ExchangePS_Update_Loc.cab</CabinetUrl> </HelpVersion> <HelpVersion> <Version>15.01.0225.030-15.01.0225.050</Version> <Revision>003</Revision> <CulturesUpdated>en</CulturesUpdated> <CabinetUrl>https://download.microsoft.com/download/8/7/0/870FC9AB-6D22-4478-BFBF-66CE775BCD18/ExchangePS_Update_En2.cab</CabinetUrl> </HelpVersion> </HelpVersions> </ExchangeHelpInfo> |
利用可能な更新パッケージは、それぞれ <HelpVersion> セクションで定義されます。各 <HelpVersion> セクションには、次のキーが含まれます。
- <Version> : 更新パッケージが適用される Exchange のバージョンを示します。15.01.xxxx.xxx は Exchange 2016、15.00.xxxx.xxx は Exchange 2013 を指します。このキーでは、1 つのバージョンまたはバージョンの範囲が指定されます。
- <CulturesUpdated> : 更新パッケージの対象言語を示します。このキーでは、1 つまたは複数の言語が指定されます。
- <Revision> : Exchange のメジャー バージョン向けに提供された更新パッケージのリリース順を示します。つまり、Exchange 2016 向けとして最初にリリースされた更新パッケージは 001、2 番目にリリースされた更新パッケージは 002 という具合です。なお、更新パッケージの内容とそのリリース順に関連性はありません。たとえば、001 は英語版のみを対象とした更新、002 はその他すべてのサポート言語を対象とした更新、さらに、003 はドイツ語のみを対象とした更新であるという場合もあります。
- <CabinetUrl> : <HelpVersion> セクションで指定された更新パッケージの名前と場所を示します。
<HelpVersion> セクションで定義された更新パッケージは、 <Version> と <CulturesUpdated> の値の組み合わせを基に、Exchange サーバーに適用されます。
特定の Exchange バージョンの Exchange サーバーに複数の <HelpVersion> セクションが適用されることもあります。たとえば、同一の言語向けに複数の更新プログラムが用意されている場合や、お使いの Exchange サーバーに複数の言語がインストールされていて、言語ごとに別の更新プログラムを適用する必要がある場合などです。いずれにしても、適用する必要があるのは、ご利用の Exchange サーバーのバージョンと言語を対象とし、 <Revision> キーで指定されている最新の更新プログラムのみとなります。
たとえば、ご利用の Exchange サーバーで英語とスペイン語をインストールして Exchange 2016 バージョン 15.01.0225.040 を実行しており、ExchangeHelpInfo.xml マニフェスト ファイルが上記の例のようになっているとします。
この場合、Exchange のバージョンを考慮すれば、すべての更新プログラムが適用対象となりますが、実際に必要なのは英語版向けのリビジョン 003 とスペイン語向けのリビジョン 002 だけです。英語版向けのリビジョン 001 は、リビジョン 003 よりも古いので適用する必要はありません。
ステップ 2: 更新パッケージをダウンロードして内部の Web サーバー上で公開し、ExchangeHelpInfo.xml ファイルをカスタマイズする
最もシンプルで時間がかからないのは、利用可能な更新パッケージをすべて適用する方法です。
- ExchangeHelpInfo.xml ファイルで定義されているすべての .cab ファイルを、<CabinetUrl> 値として定義されている URL を使用してダウンロードします。
- これらの .cab ファイルを、イントラネット サーバー上 (https://intranet.contoso.com/downloads/exchange など) で公開します。
- イントラネット サーバー上の .cab ファイル (https://intranet.contoso.com/downloads/exchange/<cab ファイル名> など) を指し示すように ExchangeHelpInfo.xml ファイルの <CabinetUrl> 値を変更します。
- カスタマイズした ExchangeHelpInfo.xml ファイルを保存します。
この方法には次のようなメリットがあります。
- 多くのことを考慮する必要がありません。利用可能な .cab ファイルをすべて入手するので、ミスが発生しにくく、適用すべき更新プログラムをうっかり適用し忘れるといった事態を回避できます。
- メンテナンスが簡単です。更新パッケージがリリースされたら、新しい ExchangeHelpInfo.xml ファイルをダウンロードして、そこで定義されている新規の .cab ファイルすべてを入手するだけでメンテナンスは完了です。
ただし、同時に次のようなデメリットもあります。
- ご使用のバージョンや言語に対応していない不要な更新パッケージも、ほぼ確実にダウンロードされることになります。
- 関係のない不要な .cab ファイルによって、イントラネット サーバーの容量が消費されます。
お客様が適用すべき .cab ファイルだけを特定したい場合は、次の手順に従ってください。
1. 利用している Exchange サーバーのバージョン詳細を確認します。
a. 単一の Exchange サーバーのバージョン詳細を確認するには、Exchange 管理シェルで次のコマンドを実行します。 | |
Get-Command Exsetup.exe | ForEach {$_.FileVersionInfo} | |
b. 組織内のすべての Exchange サーバーのバージョン詳細を確認するには、Exchange 管理シェルで次のコマンドを実行します。 | |
Get-ExchangeServer | Sort-Object Name | ForEach {Invoke-Command -ComputerName $_.Name -ScriptBlock {Get-Command ExSetup.exe | ForEach{$_.FileVersionInfo}}} | Format-Table -Auto | |
ProductVersion の戻り値が 15.01.0225.xxx の形式で表示されます。 |
2. ExchangeHelpInfo.xml ファイルの <HelpVersion> セクションを確認し、 <Version> 、 <CulturesUpdated> 、 <Revision> の各キーの値に基づいて、お客様が適用すべきものを特定します。その方法はステップ 1 で説明しています。
適用すべき .cab ファイルを特定したら、次の手順に従ってください。
- <CabinetUrl> 値で定義されている URL を使用して、該当する .cab ファイルをダウンロードします。
- これらの .cab ファイルを、イントラネット サーバー上 (https://intranet.contoso.com/downloads/exchange など) で公開します。
- イントラネット サーバー上の .cab ファイル (https://intranet.contoso.com/downloads/exchange/<cab ファイル名> など) を指し示すように ExchangeHelpInfo.xml ファイルの <CabinetUrl> 値を変更します。
- 必要に応じて、お客様にとって不要な <HelpVersion> セクションを削除することもできます。
- カスタマイズした ExchangeHelpInfo.xml ファイルを保存します。
ステップ 3: カスタマイズした ExchangeHelpInfo.xml ファイルを公開する
前のステップでは、 <CabinetUrl> 値がイントラネット サーバー上の .cab ファイルを指し示すように ExchangeHelpInfo.xml ファイルをカスタマイズしました。次に、このカスタマイズした ExchangeHelpInfo.xml ファイルを、イントラネット サーバー上 (https://intranet.contoso.com/downloads/exchange/ExchangeHelpInfo.xml など) で公開します。なお、ExchangeHelpInfo.xml ファイルと .cab ファイルの場所に関連性はありません。同じ URL に配置することも、異なるサーバーに配置することも可能です。
ステップ 4: カスタマイズした ExchangeHelpInfo.xml ファイルを指し示すように Exchange サーバーのレジストリを変更する
前のステップでは、ExchagneHelpInfo.xml ファイルの構成を行いました。次に、このファイルが配置されたイントラネット内の場所を指定します。この例では、https://intranet.contoso.com/downloads/exchange/ExchangeHelpInfo.xml という値を使用します。
1. 次のテキストをコピーして、メモ帳にペーストします。お客様の環境に合わせて URL をカスタマイズしたら、UpdateExchangeHelp.reg ファイルとして保存します。
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ExchangeServer\v15\UpdateExchangeHelp] "ManifestUrl"="https://intranet.contoso.com/downloads/exchange/ExchangeHelpInfo.xml" |
2. この UpdateExchangeHelp.reg ファイルを内部の Exchange サーバー上で実行します。
Update-ExchangeHelp のメンテナンスと利用
上記のとおり、ご利用の Exchange サーバー上の Exchange 管理シェルで Update-ExchangeHelp を実行すると、情報を取得して、ご指定の内部の場所からファイルをダウンロードできます。実に簡単です。
ただし、カスタマイズしたこの設定を長期にわたってメンテナンスするには、多少の手間がかかるかもしれません。基本的には、Exchange のコマンドレット リファレンス ヘルプ用の更新パッケージがダウンロード可能な状態になり、かつ、その更新されたヘルプを Exchange サーバーに展開する必要がある場合には、ステップ 1 ~ 3 (レジストリの変更以外の作業すべて) を繰り返し実施する必要があります。
Chris Davis