管理容易性アプリケーションと Microsoft 365 Apps クイック実行インストーラーの統合

Microsoft 365 Appsクイック実行インストーラーをソフトウェア管理ソリューションと統合する方法について説明します。

Microsoft 365 Appsクイック実行インストーラーは、IT プロフェッショナルとソフトウェア管理ソリューションがプログラムによって更新管理を制御できるようにする COM インターフェイスを提供します。 このインターフェイスは、Office 展開ツールよりも高度な追加の管理機能を提供します。

注:

この記事は、クイック実行インストーラーを使用する Office アプリに適用されます。

クイック実行との統合

このインターフェイスを使用するには、管理アプリケーションで COM インターフェイスを起動して、クイック実行インストール サービスと直接通信する公開 API を呼び出します。

注:

[!メモ] Office クイック実行インストーラーは、インストーラーの動作を制御できるパラメーターを指定して、コマンド ラインから実行できます。詳細は、「クイック実行用 Office 展開ツール」を参照してください。

次に、COM インターフェイスの概念図を示します

Office クイック実行インストーラーで COM インターフェイスを使用する図。

Microsoft 365 Appsクイック実行インストーラーは、CLSID CLSID_UpdateNotifyObjectに登録された COM ベースのインターフェイス IUpdateNotify を実装します。

このインターフェイスは、次のように呼び出すことができます。

hr = CoCreateInstance(CLSID_UpdateNotifyObject, NULL, CLSCTX_ALL,
       IID_IUpdateNotify, 
      (void **)&p); 

クイック実行インストール プログラムは昇格された特権で実行する必要があるので、この呼び出しは、呼び出し元が昇格された特権で実行している場合のみ正常に実行されます。

IUpdateNotify COM インターフェイスは、コマンドおよびパラメーターの検証と、クイック実行インストール サービスによる実行のスケジュール設定に利用できる 3 つの非同期関数を公開しています。

HRESULT Download([in] LPWSTR pcwszParameters) // Download update content.
HRESULT Apply([in] LPWSTR pcwszParameters) // Apply update content.
HRESULT Cancel() // Cancel the download action.

4 つ目のメソッド Status は、最後に実行したコマンドの状態または現在実行中のコマンド状態に関する情報 (成功、失敗、詳細なエラー コードなど) を取得するために使用できます。

HRESULT status([out] _UPDATE_STATUS_REPORT* pUpdateStatusReport) // Get status of current action. 
typedef struct _UPDATE_STATUS_REPORT  
{  
UPDATE_STATUS status;  
UINT error; 
BSTR contentid;  
} UPDATE_STATUS_REPORT;

クイック実行インストール サービスには、そのライフサイクルの間に IUpdateNotify メソッドの呼び出しが可能になる 4 つの状態 (起動中、アイドル、ダウンロード中および適用中) が存在します。

次に、COM インターフェイスの状態マシンの図を示します

COM インターフェイスの状態図。

注:

再起動: マシンの起動時に、クイック実行インストーラー サービスを使用できない期間があります。 再起動後に Status メソッドの呼び出しが成功すると、eUPDATE_UNKNOWN が返されます。

Idle: クイック実行インストーラーがアイドル状態のときは、以下を呼び出すことができます。

  • Apply: 以前にダウンロードしたコンテンツをインストールします。

  • Cancel: "メソッドが予期しないタイミングで呼び出されました" を返 0x800000eします。

  • Download: 後でインストールするために、新しいコンテンツをクライアントにダウンロードします。

  • Status: 最後に完了したアクションの結果を返すか、アクションがエラーで終了した場合はエラー メッセージを返します。 前のアクションがない場合、 Status は を返します eUPDATE_UNKNOWN

Downloading: クイック実行インストーラーがダウンロード状態のときは、以下のものを呼び出すことができます。

  • 適用: "メソッドが予期しないタイミングで呼び出されました" という値0x800000eを持つ HRESULT を返します。

  • Cancel: ダウンロードを停止し、一部ダウンロードされたコンテンツを削除します。

  • ダウンロード: "メソッドが予期しないタイミングで呼び出されました" という値0x800000eを持つ HRESULT を返します。

  • Status: DOWNLOAD_WIP を返して、ダウンロード作業が進行中であることを示します。

適用中: クイック実行インストーラーが、以前にダウンロードしたコンテンツのインストール処理中の場合。

  • 適用: "メソッドが予期しないタイミングで呼び出されました" という値0x800000eを持つ HRESULT を返します。

  • Cancel: を返します 0x800000e。適用アクションを取り消すことはできません。

  • ダウンロード: "メソッドが予期しないタイミングで呼び出されました" という値0x800000eを持つ HRESULT を返します。

  • Status: APPLY_WIP を返して、適用作業が進行中であることを示します。

注:

OfficeC2RCOM は COM+ サービスであり動的に読み込まれるコンポーネントであるため、期待どおりの結果が得られるようにするには、このクラスのメソッドを呼び出すたびに CoCreateInstance を呼び出す必要があります。 この COM+ サービスは必要に応じて新しいインスタンスの作成を処理します。 いずれかのメソッドが初めて呼び出されるときに、COM+ は IUpdateNotify オブジェクトを読み込んで、そのオブジェクトを dllhost.exe インスタンスの 1 つで実行します。 新しいオブジェクトは約 3 分間アイドル状態でアクティブになります。 前回の呼び出しから 3 分以内に後続の呼び出しが行われると、 IUpdateNotify オブジェクトは読み込まれたままで、新しいインスタンスは作成されません。 3 分以内に呼び出しが行われないと、IUpdateNotify オブジェクトはアンロードされ、その後の呼び出しでは新しい IUpdateNotify オブジェクトが作成されます。

クイック実行インストーラー COM API リファレンス ガイド

以下の API リファレンス ドキュメントでは、次のようになっています。

適用

HRESULT Apply([in] LPWSTR pcwszParameters) // Apply update content.

パラメーター

  • displaylevel: true を指定 すると、更新プロセス中にインストール状態 (エラーを含む) が表示されます。 false を指定 すると、更新プロセス中にインストール状態 (エラーを含む) が非表示になります。 既定値は false です。

  • forceappshutdown: True を指定 すると、 適用 アクションがトリガーされたときに Office アプリケーションが直ちに強制的にシャットダウンされます。 false を 指定すると、Office アプリケーションが実行されている場合は失敗します。 既定値は false です。 詳細については、「注釈 」を参照してください。

    Apply アクションがトリガーされた時にいずれかの Office アプリケーションが実行中の場合、通常 Apply アクションは失敗します。 Apply メソッドに渡forceappshutdown=trueすと、OfficeClickToRun サービスはアプリケーションを直ちにシャットダウンし、更新プログラムを適用します。 この場合、データの損失が発生する可能性があります。

返される結果

結果 説明
S_OK
アクションが、実行のためにクイック実行サービスに正常に送られました。
E_ACCESSDENIED
呼び出し元が、昇格された特権で実行していません。
E_INVALIDARG
無効なパラメーターが渡されました。
E_ILLEGAL_METHOD_CALL
この時点では、アクションは許可されていません。 詳細については、「注釈 」を参照してください。

注釈

  • Apply アクションがトリガーされたときに実行中の Office アプリケーションがあると Apply アクションは失敗します。 Apply メソッドに渡forceappshutdown=trueすと、OfficeClickToRun サービスは、実行中のすべての Office アプリケーションを直ちにシャットダウンし、更新プログラムを適用します。 開いているドキュメントの変更内容を保存するように求めるダイアログが表示されないため、ユーザーはデータを損失する可能性があります。

  • このアクションは、COM の状態が次のいずれかのときにのみトリガーできます。

    • eUPDATE_UNKNOWN

    • eDOWNLOAD_CANCELLED

    • eDOWNLOAD_FAILED

    • eDOWNLOAD_SUCCEEDED

    • eAPPLY_SUCCEEDED

    • eAPPLY_FAILED

  • 以前にダウンロードしたコンテンツがない状態で Apply メソッドを呼び出すと、 Apply メソッドは Succeeded を報告します。これは、このメソッドが適用するものがないことを検出して、 Apply 処理を正常に完了したことを示します。

キャンセル

HRESULT Cancel() // Cancel the download action.

返される結果

結果 説明
S_OK
アクションが、実行のためにクイック実行サービスに正常に送られました。
E_ILLEGAL_METHOD_CALL
この時点では、アクションは許可されていません。 詳細については、「注釈 」セクションを参照してください。

注釈

  • このメソッドは、COM 状態 ID eDOWNLOAD_WIP の場合のみトリガーできます。 このメソッドは現在のダウンロード アクションを取り消そうとします。 COM 状態は eDOWNLOAD_CANCELLING に変わり、最終的に eDOWNLOAD_CANCELED に変わります。 これ以外の場合にトリガーすると、COM 状態は E_ILLEGAL_METHOD_CALL を返します。

ダウンロード

HRESULT Download([in] LPWSTR pcwszParameters) // Download update content.

パラメーター

  • displaylevel: true を指定 すると、更新プロセス中にインストール状態 (エラーを含む) が表示されます。 false を指定 すると、更新プロセス中にインストール状態 (エラーを含む) が非表示になります。 既定値は false です。
  • updatebaseurl: 代替ダウンロード ソースへの URL です。
  • updatetoversion: このバージョンに Office を更新します。 このパラメーターは、現在インストールされているバージョンよりも古いバージョンに更新する場合に定義します。
  • downloadsource: カスタマイズされた IBackgroundCopyManager の実装 (BITS マネージャー) の CLSID です。
  • contentid: カスタマイズされた BITS マネージャーのコンテンツ サーバーからダウンロードするコンテンツを識別します。 この値は、解釈のために BITS インターフェイスを介して渡されます。

返される結果

結果 説明
S_OK
アクションが、実行のためにクイック実行サービスに正常に送られました。
E_ACCESSDENIED
呼び出し元が、昇格された特権で実行していません。
E_INVALIDARG
無効なパラメーターが渡されました。
E_ILLEGAL_METHOD_CALL
この時点では、アクションは許可されていません。 詳細については、「注釈 」を参照してください。

注釈

  • downloadsourcecontentid をペアとして指定する必要があります。 ペアで指定しないと、 Download メソッドは E_INVALIDARG エラーを返します。

  • downloadsourcecontentidupdatebaseurl が指定されている場合、updatebaseurl は無視されます。

  • このアクションは、COM の状態が次のいずれかのときにのみトリガーできます。

    • eUPDATE_UNKNOWN

    • eDOWNLOAD_CANCELLED

    • eDOWNLOAD_FAILED

    • eDOWNLOAD_SUCCEEDED

    • eAPPLY_SUCCEEDED

    • eAPPLY_FAILED

  • 以前にダウンロードしたコンテンツがない状態で Apply メソッドを呼び出すと、 Apply メソッドは Succeeded を報告します。それはこのメソッドが、適用されたものがないことを検出し、 Apply 処理を正常に完了したことを示します。

  • カスタマイズした BITS マネージャーからコンテンツをダウンロードするには、次のパラメーターを渡す download() 関数を呼び出します。

    "downloadsource=CLSIDofBITSInterface contentid=BITSServerContentIdentifier"
    
  • Office Content Delivery Network (CDN) からコンテンツをダウンロードするには:downloadsourcecontentid、または updatebaseurl パラメーターを指定せずに download() 関数を呼び出します。

  • カスタマイズした場所からコンテンツをダウンロードするには、次のパラメーターを渡す download() 関数を呼び出します。

    "updatebaseurl=yourcontentserverurl"
    

状態

typdef struct _UPDATE_STATUS_REPORT
{
    UPDATE_STATUS status;
    UINT error;
    LPCWSTR contentid;
}UPDATE_STATUS_REPORT;
HRESULT status([out] _UPDATE_STATUS_REPORT& pUpdateStatusReport) // Get status of current action

パラメーター

パラメーター 説明
pUpdateStatusReport
UPDATE_STATUS_REPORT 構造体を指すポインターです。

返される結果

結果 説明
S_OK
Status メソッドは、常にこの結果を返します。 現在のアクションの UPDATE_STATUS_RESULT 状態を構造体で調べます。

注釈

  • UPDATE_STATUS_REPORT 状態フィールドには、現在のアクションの状態が含まれています。 次のいずれかの状態値が返されます。

    typedef enum _UPDATE_STATUS
    {
    eUPDATE_UNKNOWN = 0,
    eDOWNLOAD_PENDING,
    eDOWNLOAD_WIP,
    eDOWNLOAD_CANCELLING,
    eDOWNLOAD_CANCELLED,
    eDOWNLOAD_FAILED,
    eDOWNLOAD_SUCCEEDED,
    eAPPLY_PENDING,
    eAPPLY_WIP,
    eAPPLY_SUCCEEDED,
    eAPPLY_FAILED,
    } UPDATE_STATUS;
    
    
  • 最後のコマンドでエラーが発生した場合は、 の UPDATE_STATUS_REPORT エラー フィールドにエラーに関する詳細情報が含まれます。 2 種類のエラー コードが Status メソッドから返されます。

  • エラーが 未満 UPDATE_ERROR_CODE::eUNKNOWNの場合、エラーは次の定義済みのエラー コードのいずれかです。

    typedef enum _UPDATE_ERROR_CODE
    {
    eOK = 0,
    eFAILED_UNEXPECTED,
    eTRIGGER_DISABLED,
    ePIPELINE_IN_USE,
    eFAILED_STOP_C2RSERVICE,
    eFAILED_GET_CLIENTUPDATEFOLDER,
    eFAILED_LOCK_PACKAGE_TO_UPDATE,
    eFAILED_CREATE_STREAM_SESSION,
    eFAILED_PUBLISH_WORKING_CONFIGURATION,
    eFAILED_DOWNLOAD_UPGRADE_PACKAGE,
    eFAILED_APPLY_UPGRADE_PACKAGE,
    eFAILED_INITIALIZE_RSOD,
    eFAILED_PUBLISH_RSOD,
    // Keep this one as the last
    eUNKNOWN
    } UPDATE_ERROR_CODE;
    
    

    戻りエラー コードが、失敗した関数呼び出しの HRESULT よりもUPDATE_ERROR_CODE::eUNKNOWN大きい場合。 HRESULT を抽出するには、 のエラー フィールドで返される値から減算 UPDATE_ERROR_CODE::eUNKNOWN します UPDATE_STATUS_REPORT

    状態とエラー値の完全なリストは、OfficeC2RCom.dll に埋め込まれている IUpdateNotify タイプ ライブラリを調べることで確認できます。

  • contentid フィールドは、ダウンロードが開始された後の Status の呼び出しに使用され、ダウンロード呼び出しに渡された contentid を返します。 このフィールドは、 Status メソッドの呼び出し前に null に初期化し、 Status が返されてから値を確認するようにしてください。 この値が null のままの場合は、返す contentid がないことを意味します。 この値が null 以外の場合は、 SysFreeString() の呼び出しで解放する必要があります。 次のコード スニペットは、 Download の後で Status を呼び出す方法を示しています。

    std::wstring contentID;
    UPDATE_STATUS_REPORT statusReport;
    statusReport.status = eUPDATE_UNKNOWN;
    statusReport.error = eOK;
    statusReport.contentid = NULL;
    hr = p->Status(&statusReport);
    if (statusReport.contentid != NULL)
    {
    contentID = statusReport.contentid;
    SysFreeString(statusReport.contentid);
    }
    wprintf(L"ContentID: %s, Status: %d, LastError: %d", contentID.c_str(), statusReport.status, statusReport.error);
    
    

IUpdateNotify2 インターフェイスの概要

バージョン [16.0.8208.6352] から、新しい IUpdateNotify2 インターフェイスが追加されました。

  • CLSID_UpdateNotifyObject2, {52C2F9C2-F1AC-4021-BF50-756A5FA8DDFE}

  • このインターフェイスは、下位互換性を実現するために元の IUpdateNotify インターフェイスもホストします。 つまり、このインターフェイスを使用すると、 UpdateNotifyObject インターフェイスで提供されるすべてのメソッドにアクセスできるようになります。

  • IUpdateNotify2 には、次の新しいメソッドが追加されています。

    • Hresult GetBlockingApps([out] BSTR * AppsList)。 更新をブロックしているアプリのリストを取得します。 この呼び出しにより、更新処理の進行をブロックする実行中の Office アプリが返されます。

    • HRESULT GetOfficeDeploymentData([in] int dataType, [in] LPCWSTR pcwszName, [out] BSTR * OfficeData)。 Office 展開データを取得します。

  • 新しいメソッドを使用する場合は、次のことを確認する必要があります。

    • Your C2R version is newer than the above build (>= June fork build).

    • CoCreateInstance の呼び出しには、 UpdateNotifyObject ではなく UpdateNotifyObject2 を使用すること。

新しいメソッドを使用しない場合は、何も変更する必要はありません。 すべての既存のメソッドは、以前とまったく同じ方法で動作します。

BITS インターフェイスの実装

Background Intelligent Transfer Service (BITS) は、クライアントとサーバーの間でファイルを転送するための Microsoft が提供するサービスです。 BITS は、Office クイック実行インストーラーがコンテンツのダウンロードに使用できるチャネルの 1 つです。 既定では、Microsoft 365 Appsクイック実行インストーラーは、WINDOWS の組み込みの BITS 実装を使用して CDN からコンテンツをダウンロードします。

カスタマイズされた BITS の実装を IUpdateNotify インターフェイスの download() メソッドに提供すると、管理ソフトウェアはクライアントがコンテンツをダウンロードする場所と方法を制御できます。 カスタマイズされた BITS インターフェイスは、CDN、IIS サーバー、ファイル共有などのクイック実行組み込みチャネル以外のカスタム コンテンツ配布チャネルを提供する場合に便利です。

カスタマイズした BITS インターフェイスが Office C2R サービスと連動するための最小要件は次のとおりです。

  • IBackgroundCopyManager の場合:

    HRESULT _stdcall CreateJob(
                        [in] LPWSTR DisplayName, 
                        [in] BG_JOB_TYPE Type, 
                        [out] GUID* pJobId, 
                        [out] IBackgroundCopyJob** ppJob)
    HRESULT _stdcall GetJob(
                        [in] GUID* jobID, 
                        [out] IBackgroundCopyJob** ppJob)
    HRESULT _stdcall EnumJobs(
                        [in] unsigned long dwFlags, 
                        [out] IEnumBackgroundCopyJobs** ppenum)
    
    
  • IBackgroundCopyJob の場合:

    HRESULT _stdcall AddFile(
                        [in] LPWSTR RemoteUrl, 
                        [in] LPWSTR LocalName)
    HRESULT _stdcall Resume()
    HRESULT _stdcall Complete()
    HRESULT _stdcall Cancel();
    HRESULT _stdcall GetState([out] BG_JOB_STATE* pVal);
    HRESULT GetProgress( [out] BG_JOB_PROGRESS *pProgress);
    
    
  • IBackgroundCopyJob3 の場合:

    HRESULT _stdcall AddFileWithRanges(
                        [in] LPWSTR RemoteUrl, 
                        [in] LPWSTR LocalName,
                        [in] DWORD RangeCount,
                        [in] BG_FILE_RANGE Ranges[])
    
    
  • 関数と AddFileWithRanges 関数のAddfile場合、リモート URLは次の形式になります。

    cmbits://<contentid>/<relative path to target file>
    
    • cmbits はハード コードされており、カスタマイズされた BITS を表します。

    • <contentid> は、Download() メソッドの contentid パラメーターです。

    • <relative path to target file> は、ファイルをダウンロードする場所とファイル名を指定します。

      たとえば、Download() メソッドに contentidf732af58-5d86-4299-abe9-7595c35136ef を指定していて、Office C2R がバージョン cab ファイル (file などv32.cab) をダウンロードする場合は、次RemoteUrlのように AddFile() を呼び出します。

    cmbits://f732af58-5d86-4299-abe9-7595c35136ef/Office/Data/V32.cab
    
  • IBackgroundCopyError の場合:

    HRESULT _stdcall GetErrorDescription(
          [in]  DWORD  LanguageId,
          [out] LPWSTR *ppErrorDescription);
    
    
  • IBackgroundCopyFile の場合:

    HRESULT _stdcall GetLocalName([out] LPWSTR *ppName); 
    HRESULT _stdcall GetRemoteName([out] LPWSTR *ppName);
    
    

コンテンツのステージングの自動化

IT 管理者は、CDN から直接使用できる場合、または Office 展開ツールまたは Microsoft エンドポイント Configuration Managerを使用して更新プログラム チャネルから利用可能な更新プログラムの展開を制御することを選択できる場合に、更新プログラムを自動的に受信できるようにデスクトップ クライアントを有効にすることを選択できます。

このサービスは、更新プログラムが利用可能になったときに、コンテンツのダウンロードを認識して自動化するための管理ツールの機能をサポートしています。

次の画像は、カスタム イメージのダウンロードの概要です

Office クイック実行インストーラーで COM インターフェイスを使用する図。

カスタム イメージのダウンロードの概要

前の図では、CDN で新しいMicrosoft 365 Appsイメージを使用できることがわかります。 Microsoft 365 Appsイメージと共に、管理ソフトウェアが Office 展開ツールを使用する必要性に代わってカスタマイズされたイメージを直接作成できるようにするために必要な情報を含む API を使用できます。

企業は、Microsoft 365 Apps更新プログラムを同期するように WSUS を構成します。 こうした更新プログラムには実際のイメージ ペイロードは含まれていませんが、管理ソフトウェアは新しいコンテンツが利用可能になったことを認識できます。 管理ソフトウェアは、更新プログラムのメタデータMicrosoft 365 Apps読み取り、更新プログラムが適用される Office のバージョンを理解できます。

更新プログラムの適用が可能な場合、管理ソフトウェアは CDN コンテンツとファイル リストを使用して、カスタム イメージを作成し、イメージの保存先として使用するように構成されたファイル共有の場所に保存できます。

Microsoft 365 Apps ファイル リスト API の使用

Microsoft 365 Apps ファイル リスト API は、特定のMicrosoft 365 Apps更新に必要なファイルの名前を取得するために使用されます。

HTTP 要求

GET https://clients.config.office.net/releases/v1.0/filelist

このメソッドには、要求本文を指定しません。

この API を呼び出すためにアクセス許可は必要ありません。

オプションのクエリ パラメーター

名前 説明
チャネル
チャネル名を指定します
省略可能 – 既定値は 'SemiAnnual'
サポートされている値 </DeployOffice/office-deployment-tool-configuration-options#channel-attribute-part-of-add-element.md>
version
更新プログラムのバージョンを指定します
省略可能 – 既定では、指定されたチャネルで使用できる最新バージョンが使用されます
建築
クライアント アーキテクチャを指定します
省略可能 – 既定値は 'x64' です
サポートされる値: x64、x86
lid
含める言語ファイルを指定します
省略可能 – 既定値は none
複数の言語を指定するには、各言語の lid クエリ パラメーターを含めます
言語識別子の形式 (例) を使用します。 'en-us', 'fr-fr'
alllanguages
すべての言語ファイルを含むように指定します
省略可能 – 既定値は false

HTTP 応答

成功した場合、このメソッドは 200 OK 応答コードと、応答本文のファイル オブジェクトのコレクションを返します。

イメージを作成するには、次の手順に従います。

  1. API を呼び出し、関心のある更新プログラムのチャネル、バージョン、アーキテクチャに適切なクエリ パラメーターを指定します。 注: 属性 "lcid": "0" を持つファイル オブジェクトは、言語に依存しないファイルであり、イメージに含まれている必要があります。
  2. ファイル オブジェクトを反復処理し、CDN ファイルをコピーしながら、ファイル オブジェクトごとに定義された "relativePath" 属性で指定されたフォルダー構造を作成することで、CDN のローカル イメージを構築します。

次の例では、現在のチャネルのファイル リストを取得し、バージョン 16.0.4229.1004 for 64bit を取得し、フランス語と英語の言語ファイルを含めます。

Get https://clients.config.office.net/releases/v1.0/filelist?Channel=Current&Version=16.0.4229.1004&Arch=x64&Lid=fr-fr&Lid=en-US

.dat ファイルのハッシュ検証

イメージ作成ツールは、計算されたハッシュ値と、各.dat ファイルに関連付けられている指定されたハッシュ値を比較することで、ダウンロードした.dat ファイルの整合性を確認できます。 hashLocation 値と hashAlgorithm 値を指定するファイル オブジェクトの例を次に示します。

{
  "url": "https://officecdn.microsoft.com/pr/7ffbc6bf-bc32-4f92-8982-f9dd17fd3114/office/data/16.0.1234.1001/stream.x64.x-none.dat",
  "name": "stream.x64.x-none.dat",
  "relativePath": "/office/data/16.0.1234.1001/",
  "hashLocation": "s640.cab/stream.x64.x-none.hash",
  "hashAlgorithm": "Sha256",
  "lcid": "0"
},
  • hashLocation 属性は、ハッシュ値を含む .cab ファイルの相対パスの場所を指定します。 URL + relativePath + hashLocation を連結して、ハッシュ ファイルの場所を構成します。 この例では、stream.x64.bg-bg.hash の場所は次のようになります。

    https://officecdn.microsoft.com/pr/492350f6-3a01-4f97-b9c0-c7c6ddf67d60/office/data/16.0.4229.1004/s641026.cab/stream.x64.bg-bg.hash 
    
  • hashAlgorithm 属性は、使用されたハッシュ アルゴリズムを指定します。

    stream.x64.bg-bg.dat ファイルの整合性を検証するには、stream.x64.bg-bg.hash を開いて、ハッシュ ファイルの最初の行にあるハッシュ値を読み込みます。 この値と処理済みのハッシュ値 (指定のハッシュ アルゴリズムを使用して計算された値) を比較して、ダウンロードした .dat ファイルの整合性を検証します。

    次の例は、ハッシュを読み取る C# コードを示しています。

      string[] readHashes = System.IO.File.ReadAllLines(tmpFile, Encoding.Unicode);
      string readHash = readHashes.First();
    

Microsoft 365 Apps Updates

すべてのMicrosoft 365 Apps Updatesは、Microsoft Update カタログに発行されます。

Microsoft 365 Apps Updates管理ソフトウェアは、1 つの例外を除き、他の WU 更新プログラムと非常によく似た方法でMicrosoft 365 Apps Updatesを扱うことができます。クライアントの更新には実際のペイロードは含まれません。 Microsoft 365 Apps Updatesは、クライアントにインストールするのではなく、管理ソフトウェアを使用してワークフローをトリガーするために使用し、インストール コマンドを上記の COM ベースのインストール メカニズムに置き換える必要があります。

次の図は、Office 365 クライアント更新プログラムのワークフローを示しています。

O365PP クライアント更新プログラムのワークフロー図。

発行された各Microsoft 365 Apps更新プログラムには、更新に関するメタデータが含まれます。 このメタデータには、その特定の更新プログラムのファイル リスト API への API 呼び出しを派生するために使用できる MoreInfoUrl というパラメーターが含まれています。

次の例では、ファイル リスト API が MoreInfoURL に埋め込まれており、"ServicePath=" で始まります

https://go.microsoft.com/fwlink/?LinkId=626090&Ver=16.0.12527.21104&Branch=Insiders&Arch=64&XMLVer=1.6&xmlPath=http://officecdn.microsoft.com/pr/wsus/ofl.cab&xmlFile=O365Client_64bit.xml& ServicePath=https://go.microsoft.com/fwlink/?linkid=2190568&Channel=Insiders&Version=16.0.12527.21104&Arch=64&AllLanguages=True

コンテンツ ステージングを自動化するための追加のメタデータ

Release Discovery API

Microsoft 365 Apps リリース検出 API は、CDN に発行された各更新プログラムの詳細と、チャネル名やその他のチャネル属性を取得するために使用されます。

HTTP 要求

GET [https://clients.config.office.net/releases/v1.0/filelist/channels](https://clients.config.office.net/releases/v1.0/filelist/channels)

このメソッドには、要求本文を指定しません。

この API を呼び出すためにアクセス許可は必要ありません。

HTTP 応答

成功した場合、このメソッドは 200 OK 応答コードと、応答本文のファイル オブジェクトのコレクションを返します。

SKU API

SKU API は、Office CDN からの展開とサービスに使用できる製品と、それぞれに対するさまざまなオプションを決定するのに役立つ情報を返します。

HTTP 要求

GET [https://clients.config.office.net/releases/v1.0/filelist/skus](https://clients.config.office.net/releases/v1.0/filelist/skus) 

このメソッドには、要求本文を指定しません。

この API を呼び出すためにアクセス許可は必要ありません。

HTTP 応答

成功した場合、このメソッドは 200 OK 応答コードと、応答本文のファイル オブジェクトのコレクションを返します。