Windows.Management.Update 名前空間

Windows.Management.Update 名前空間には、Windows デバイス間で Windows Update 操作を管理するための API が用意されています。 これは、いくつかの異なる目的に役立ちます。

  • 一般的な更新管理:WindowsUpdateManager、WindowsUpdateAdministrator、WindowsUpdate などのクラスを使用して、Windows デスクトップ、サーバー、IoT デバイス上の更新プログラムを検出、ダウンロード、インストール、監視します。プレビュー ビルドと非プレビュー ビルドの両方をカバーします。
  • Windowsソフトウェア更新プロバイダー プラットフォーム:WindowsSoftwareUpdateProvider、WindowsSoftwareUpdate、WindowsSoftwareUpdateProviderStatus、および WindowsUpdateManager のソフトウェア更新プログラム メンバーを使用して、Windows Update Orchestrator と統合するアプリの更新プロバイダーを作成およびホストします。 プロバイダーは、スキャン中に特定のソフトウェアの更新プログラムを検出し、オーケストレーターがスケジュールするときにアクション (ダウンロード、インストール、展開、再起動) を実行します。これは、Windows Updateと同じスケジュール、再起動の調整、ポリシーを再利用します。
  • IoT Insider Preview の有効化:PreviewBuildsManager と PreviewBuildsState を使用して、IoT デバイスを Insider Preview ビルドWindowsオプトし、登録状態を取得します。 デバイスの OEM が、デバイス構成プロパティ用の Windows Device Portal 内に設定ページを作成することが期待されます。

これらの API グループは同じ名前空間に共存しますが、さまざまなシナリオを対象としています。 デバイスの種類と更新の要件に基づいて、適切なセットを選択します。

クラス

Name 説明
PreviewBuildsManager

デバイスのプレビュー ビルドの状態を管理します。

PreviewBuildsState

デバイスをWindows Insider Programに関連付けるためにデバイスを接続するために使用される情報が含まれます。

WindowsSoftwareUpdate

プロバイダーが Windows Update Orchestrator に報告する単一のソフトウェア更新プログラム (ID、バージョン、サイズ、適用に必要なアクション、現在の状態など) を表します。

WindowsSoftwareUpdateActionInfo

呼び出すファイル、引数、およびアクションの種類を指定して、プロバイダーが 1 つの更新アクションを実行する方法について説明します。

WindowsSoftwareUpdateActionProgress

WindowsSoftwareUpdate で現在実行されているアクションの進行状況について説明します。

WindowsSoftwareUpdateActionResultInfo

WindowsSoftwareUpdate の最後に完了したアクションの結果について説明します。

WindowsSoftwareUpdateAppPackageInfo

AppPackage WindowsSoftwareUpdate がインストールする MSIX/AppX アプリケーション パッケージについて説明します。

WindowsSoftwareUpdateApprovalInfo

WindowsSoftwareUpdate の続行が承認される条件について説明します。

WindowsSoftwareUpdateExecutionInfo

実行可能ファイルまたは PowerShell WindowsSoftwareUpdate を適用するためにプロバイダーが実行する一連のアクションについて説明します。

WindowsSoftwareUpdateIdentity

MSI 製品コードまたは MSIX パッケージ ファミリ名によって、 WindowsSoftwareUpdate がターゲットとするインストール済み製品を識別します。

WindowsSoftwareUpdateLocalizationInfo

特定の言語での WindowsSoftwareUpdate のローカライズされたタイトル、説明、および詳細情報の URL を提供します。

WindowsSoftwareUpdateOptionalActionInfo

WindowsSoftwareUpdate のオプションの "close-and-deploy"、"close-and-install"、および "close-and-restart" アクション バリアント (ターゲット アプリケーションを最初に閉じる必要があるときに実行されるアクション) について説明します。

WindowsSoftwareUpdateOptionalInfo

カテゴリ、ローカライズされたコンテンツ、コンプライアンスのタイミングなど、 WindowsSoftwareUpdate の省略可能なメタデータを格納します。

WindowsSoftwareUpdateProvider

ディスク上の Windows ソフトウェア更新プロバイダー パッケージを表し、Windows Update Orchestrator で検証、登録、登録解除を行う操作を提供します。

WindowsSoftwareUpdateProviderActionResult

結果、必要な再起動、エラー情報など、ソフトウェア更新アクションについてプロバイダーが報告する結果について説明します。

WindowsSoftwareUpdateProviderPayloadFileInfo

ハッシュとコード署名の信頼状態など、 WindowsSoftwareUpdateProvider に属する 1 つのペイロード ファイルについて説明します。

WindowsSoftwareUpdateProviderStatus

プロバイダーが使用するチャネルは、結果を Windows Update Orchestrator に報告します。スキャン結果、アクションの進行状況、アクションの結果です。 また、オーケストレーターが取り消しを要求すると、プロバイダーに通知します。

WindowsSoftwareUpdateResult

スキャン結果の送信、進行状況の報告、アクションの結果の報告など、ソフトウェア更新操作の結果を表します。

WindowsSoftwareUpdateScanResult

ソフトウェア更新スキャンが成功したかどうかや検出された WindowsSoftwareUpdate オブジェクトなど、ソフトウェア更新スキャンの結果を表します。

WindowsSoftwareUpdateVersion

WindowsSoftwareUpdate の 4 部構成のバージョン番号 (メジャー、マイナー、リビジョン メジャー、およびリビジョン マイナー) を表します。

WindowsUpdate

WindowsUpdate は、1 つの保留中または進行中の更新 (ID とメタデータ、分類フラグ、End-User ライセンス契約 (EULA) の状態、期限、現在実行されているアクションの進行状況と結果など) を記述するプロパティ バッグです。

WindowsUpdateActionCompletedEventArgs

対応する WindowsUpdateManager.ActionCompleted イベントの イベント データ。

WindowsUpdateActionProgress

WindowsUpdate および WindowsUpdateProgressChangedEventArgs の ActionProgress プロパティによって返されます。

WindowsUpdateActionResult

WindowsUpdate.ActionResult プロパティによって返されます。

WindowsUpdateAdministrator

登録された管理者が、明示的な承認の背後にあるスキャン、更新、更新アクションの制限、再起動の要求または取り消しなど、デバイス上のWindows Updateアクティビティを制御できるようにします。

WindowsUpdateApprovalData

ApproveWindowsUpdate を使用して承認するときに、更新プログラムで追加のメタデータを構成できるようにします。

WindowsUpdateAttentionRequiredInfo

WindowsUpdateAttentionRequiredReason とタイムスタンプのタプルを表します。

WindowsUpdateAttentionRequiredReasonChangedEventArgs

対応する WindowsUpdateManager.AttentionRequiredReasonChanged イベントの イベント データ。

WindowsUpdateGetAdministratorResult

GetRegisteredAdministrator を呼び出した結果を表します。

WindowsUpdateItem

以前に完了した更新に関する情報のプロパティ バッグを表します。

WindowsUpdateManager

デバイスでの更新アクティビティの統合ビューを提供します。 WindowsUpdateManager を使用して、スキャンを開始し、デバイスに適用される更新プログラムを列挙し、最近完了した更新プログラムを確認し、イベントを介してスキャン、作業、進行状況のアクティビティを監視します。ポーリングは行いません。

Windows ソフトウェア更新プロバイダー プラットフォーム以降、WindowsUpdateManager では、登録済みのソフトウェア更新プロバイダーも列挙され、ソフトウェア更新プログラムのスキャンが実行されます。

WindowsUpdateManagerScanOptions

Windows.Management.Update 名前空間には、Windows デバイス間で Windows Update 操作を管理するための API が用意されています。 これは、いくつかの異なる目的に役立ちます。

  • 一般的な更新管理:WindowsUpdateManager、WindowsUpdateAdministrator、WindowsUpdate などのクラスを使用して、Windows デスクトップ、サーバー、IoT デバイス上の更新プログラムを検出、ダウンロード、インストール、監視します。プレビュー ビルドと非プレビュー ビルドの両方をカバーします。
  • Windowsソフトウェア更新プロバイダー プラットフォーム:WindowsSoftwareUpdateProvider、WindowsSoftwareUpdate、WindowsSoftwareUpdateProviderStatus、および WindowsUpdateManager のソフトウェア更新プログラム メンバーを使用して、Windows Update Orchestrator と統合するアプリの更新プロバイダーを作成およびホストします。 プロバイダーは、スキャン中に特定のソフトウェアの更新プログラムを検出し、オーケストレーターがスケジュールするときにアクション (ダウンロード、インストール、展開、再起動) を実行します。これは、Windows Updateと同じスケジュール、再起動の調整、ポリシーを再利用します。
  • IoT Insider Preview の有効化:PreviewBuildsManager と PreviewBuildsState を使用して、IoT デバイスを Insider Preview ビルドWindowsオプトし、登録状態を取得します。 デバイスの OEM が、デバイス構成プロパティ用の Windows Device Portal 内に設定ページを作成することが期待されます。

これらの API グループは同じ名前空間に共存しますが、さまざまなシナリオを対象としています。 デバイスの種類と更新の要件に基づいて、適切なセットを選択します。

WindowsUpdateProgressChangedEventArgs

対応する WindowsUpdateManager.ProgressChanged イベントの イベント データ。

WindowsUpdateRestartRequestOptions

構成して RequestRestart に渡すことができるフィールドのプロパティ バッグを表します。

WindowsUpdateScanCompletedEventArgs

対応する WindowsUpdateManager.ScanCompleted イベントの イベント データ。

列挙型

Name 説明
WindowsSoftwareUpdateActionResult

プロバイダーが WindowsSoftwareUpdateProviderActionResult を通じて報告するソフトウェア更新アクションの結果を指定する定数を定義します。

WindowsSoftwareUpdateActionType

プロバイダーがライフサイクルを通じて WindowsSoftwareUpdate を移動するために実行するアクションを指定する定数を定義します。

WindowsSoftwareUpdateArchitecture

WindowsSoftwareUpdateAppPackageInfo が適用されるプロセッサ アーキテクチャを指定する定数を定義します。

WindowsSoftwareUpdateCategory

WindowsSoftwareUpdate を配信するペイロードの種類によって分類する定数を定義します。

WindowsSoftwareUpdateIdentityType

WindowsSoftwareUpdateIdentity の対象となる製品の識別方法を指定する定数を定義します。

WindowsSoftwareUpdateInstallationType

WindowsSoftwareUpdate をデバイスにインストールする方法を指定する定数を定義します。

WindowsSoftwareUpdateProviderRegistrationType

WindowsSoftwareUpdateProvider の登録状態を指定する定数を定義します。

WindowsSoftwareUpdateProviderTrustState

WindowsSoftwareUpdateProvider またはそのペイロード ファイルの 1 つのコード署名信頼状態を指定する定数を定義します。

WindowsSoftwareUpdateProviderType

スキャンと更新のアクションを実行するために、登録済みの WindowsSoftwareUpdateProvider を呼び出す方法を指定する定数を定義します。

WindowsSoftwareUpdateRestartReason

ソフトウェア更新操作を完了するために再起動が必要な理由を指定する定数を定義します。

WindowsUpdateAdministratorOptions

RegisterForAdministration に登録するときに呼び出し元が制御する管理者オプションを指定する定数を定義します。

WindowsUpdateAdministratorStatus

Windows更新管理者の登録/登録解除が成功したかどうかを示す状態コードを指定する定数を定義します。

WindowsUpdateAttentionRequiredReason

続行する前に更新に注意が必要な理由の詳細な理由を指定する定数を定義します。

WindowsUpdateManagerScanMode

WindowsUpdateManager.PerformScan を呼び出すときのソフトウェア更新スキャンの実行方法を指定する定数を定義します。

例

該当する更新プログラムをスキャンして列挙する

この C# の例では、 WindowsUpdateManager を作成し、スキャンを開始し、スキャンが完了したときに該当する更新プログラムを列挙します。

using System;
using Windows.Management.Update;

var updateManager = new WindowsUpdateManager("MyClientId");

updateManager.ScanCompleted += (manager, args) =>
{
    foreach (WindowsUpdate update in manager.GetApplicableUpdates())
    {
        Console.WriteLine($"Applicable update: {update.Title}");
    }
};

// Scan as if the user selected "Check for updates".
updateManager.StartScan(userInitiated: true);

ソフトウェア更新プロバイダーを作成する

Windows ソフトウェア更新プロバイダー プラットフォームを使用すると、カスタム更新ソースを Windows Update Orchestrator に接続できます。 プロバイダーは、操作ごとに 1 回 SYSTEM コンテキストで呼び出されます。 スキャン 中に WindowsSoftwareUpdate オブジェクトをビルドして送信します。 アクション 中に 、WindowsSoftwareUpdateProviderStatus を介して進行状況と最終的な結果を報告します。

次のスニペットは、C#、C++/WinRT、PowerShell のコア フローを示しています。 provider.json マニフェスト、コード署名、登録手順など、ビルド可能な完全なプロバイダー サンプルは、microsoft/windows-uop リポジトリに公開されています。

C#

using System.Collections.Generic;
using Windows.Management.Update;

// Scan: report the updates this provider offers.
void PerformScan(string providerId, IEnumerable<WindowsSoftwareUpdate> updates)
{
    var status = new WindowsSoftwareUpdateProviderStatus(providerId);
    WindowsSoftwareUpdateResult result = status.SetScanResult(true, 0, 0, updates);
}

// Action: report progress, then the final result.
void PerformAction(string providerId)
{
    var status = new WindowsSoftwareUpdateProviderStatus(providerId);

    for (ulong i = 0; i <= 100; i += 10)
    {
        status.SetActionProgress(i, 100);
    }

    var actionResult = new WindowsSoftwareUpdateProviderActionResult(
        WindowsSoftwareUpdateActionResult.Succeeded,
        WindowsSoftwareUpdateRestartReason.None,
        resultCode: 0,
        extendedError: 0);
    status.SetActionResult(actionResult);
}

C++/WinRT

#include <winrt/Windows.Management.Update.h>
#include <winrt/Windows.Foundation.Collections.h>

using namespace winrt::Windows::Management::Update;
using namespace winrt::Windows::Foundation::Collections;

// Scan: report the updates this provider offers.
void PerformScan(winrt::hstring const& providerId, IVector<WindowsSoftwareUpdate> const& updates)
{
    WindowsSoftwareUpdateProviderStatus status{ providerId };
    auto result = status.SetScanResult(true, S_OK, 0, updates);
}

// Action: report progress, then the final result.
void PerformAction(winrt::hstring const& providerId)
{
    WindowsSoftwareUpdateProviderStatus status{ providerId };

    for (uint64_t i = 0; i <= 100; i += 10)
    {
        status.SetActionProgress(i, 100);
    }

    WindowsSoftwareUpdateProviderActionResult actionResult{
        WindowsSoftwareUpdateActionResult::Succeeded,
        WindowsSoftwareUpdateRestartReason::None,
        0,   // resultCode
        0 }; // extendedError
    status.SetActionResult(actionResult);
}

PowerShell

# Scan: report the updates this provider offers.
$providerStatus = [Windows.Management.Update.WindowsSoftwareUpdateProviderStatus]::new($ProviderId)
$statusResult   = $providerStatus.SetScanResult($true, 0, 0, $UpdateCollection)

# Action: report progress, then the final result.
$providerStatus = [Windows.Management.Update.WindowsSoftwareUpdateProviderStatus]::new($ProviderId)
for ($i = 0; $i -le 100; $i += 10) {
    [void]$providerStatus.SetActionProgress($i, 100)
}

$actionResult = [Windows.Management.Update.WindowsSoftwareUpdateProviderActionResult]::new(
    [Windows.Management.Update.WindowsSoftwareUpdateActionResult]::Succeeded,
    [Windows.Management.Update.WindowsSoftwareUpdateRestartReason]::None,
    0,   # resultCode
    0)   # extendedError
[void]$providerStatus.SetActionResult($actionResult)

Insider Preview ビルドの状態を確認する (IoT)

この C# の例では、ユーザーがデバイスがプレビュー ビルドを受け取っているかどうか、またはデバイスがプレビュー ビルドを取得できない問題があるかどうかを判断する方法を示します。

public string GetErrorMessage() 
{ 
    PreviewBuildsManager manager = PreviewBuildsManager.GetDefault(); 
    if (manager != null) 
    { 
        PreviewBuildsState state = manager.GetCurrentState(); 
        if (state.Properties.ContainsKey("ErrorMessage")) 
        { 
            return state.Properties["ErrorMessage"].ToString(); 
        } 
    } 
    return String.Empty; 
} 

注釈

  • サポートされているすべてのプラットフォームで一般的な更新管理を行うには、WindowsUpdateManager、WindowsUpdate、および WindowsUpdateAdministrator を使用します。
  • WindowsSoftwareUpdateProvider、WindowsSoftwareUpdateProviderStatus、WindowsSoftwareUpdate、および WindowsUpdateManager のソフトウェア更新プログラムのメンバーを使用して、アプリ (Windows Update オーケストレーション プラットフォーム) の更新プロバイダーを作成およびホストします。 プロバイダーの作成、オンボード、署名、登録のガイダンスと、完全な C#、C++、PowerShell サンプルについては、 microsoft/windows-uop リポジトリを参照してください。
  • PreviewBuildsManager と PreviewBuildsState は IoT 固有 であり、デスクトップまたはサーバーでの一般的な更新プログラムは管理しません。 デバイスの OEM が、デバイス構成プロパティ用の Windows Device Portal 内に設定ページを作成することが期待されます。 PreviewBuildsState からの情報は、デバイスによって読み取られ、ユーザーに表示された後、ユーザーのアカウントをデバイスに登録するために使用されます。 登録後、すべての設定管理は、デバイス自体ではなく、Windows Insider Programを介してオンラインで行われます。
  • プラットフォームの可用性と API コントラクトは、個々のクラス参照ページに記載されています。
API セット サポートされているWindows ビルド
ビルドのプレビュー 17134 以上
Windows Update Manager 22621 以上
Windows Update管理者 22621 以上
Windows ソフトウェア更新プログラム 26100 以上

関連項目