Windows.Management.Update 名前空間
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
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 が用意されています。 これは、いくつかの異なる目的に役立ちます。
これらの API グループは同じ名前空間に共存しますが、さまざまなシナリオを対象としています。 デバイスの種類と更新の要件に基づいて、適切なセットを選択します。 |
| WindowsUpdateProgressChangedEventArgs |
対応する WindowsUpdateManager.ProgressChanged イベントの イベント データ。 |
| WindowsUpdateRestartRequestOptions |
構成して RequestRestart に渡すことができるフィールドのプロパティ バッグを表します。 |
| WindowsUpdateScanCompletedEventArgs |
対応する WindowsUpdateManager.ScanCompleted イベントの イベント データ。 |
列挙型
例
該当する更新プログラムをスキャンして列挙する
この 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 以上 |