次の方法で共有


展開パッケージに更新を追加する方法

SMS_SoftwareUpdatesPackage クラスのインスタンスを取得し、AddUpdateContent メソッドを使用して、Configuration Managerのソフトウェア更新プログラム展開パッケージに更新プログラムを追加します。

ソフトウェア更新プログラムの展開パッケージを作成するには

  1. SMS プロバイダーへの接続を設定します。

  2. クラスを使用して、既存のパッケージ オブジェクトを SMS_SoftwareUpdatesPackage 取得します。

  3. メソッドを使用して、既存のパッケージに更新コンテンツを AddUpdateContent 追加します。

次のメソッド例は、 クラスと メソッドを使用してソフトウェア更新プログラムの展開パッケージに更新プログラムを SMS_SoftwareUpdatesPackage 追加する方法を AddUpdateContent 示しています。

注:

更新プログラムは、(C# のディクショナリ オブジェクト addUpdateContentParameters の一部として) コンテンツ ソース パスで使用できる必要があります。 更新プログラムがパッケージ ソースに存在する場合、そのパッケージ ソースを複数のデプロイ パッケージに使用することはできません。

重要

VBScript の例は含まれていません AddUpdateContent 。メソッドは失敗した場合にメソッド呼び出しから戻りません。 これは既知の問題であり、調査中です。

サンプル コードの呼び出しについては、「Configuration Manager コード スニペットの呼び出し」を参照してください。

C# でのメソッド呼び出しの例:

// PREWORK FOR AddUpdatesToSUMDeploymentPackage  

// Define the array of Content Ids to load into addUpdateContentParameters.  
int[] newArrayContentIds = new int[] { 82 };  

// Define the array of source paths (these must be UNC) to load into addUpdateContentParameters.  
string[] newArrayContentSourcePath = new string[] { "\\\\ServerOne\\source1" };  

// Load the update content parameters into an object to pass to the method.  
Dictionary<string, object> addUpdateContentParameters = new Dictionary<string, object>();  
addUpdateContentParameters.Add("ContentIds", newArrayContentIds);  
addUpdateContentParameters.Add("ContentSourcePath", newArrayContentSourcePath);  
addUpdateContentParameters.Add("bRefreshDPs", false);  

AddUpdatestoSUMDeploymentPackage(WMIConnection,  
                                 "ABC00001",  
                                 addUpdateContentParameters);  
public void AddUpdatestoSUMDeploymentPackage(WqlConnectionManager connection,  
                                            string existingSUMPackageID,  
                                            Dictionary<string, object> addUpdateContentParameters)  
{  
    try  
    {  
        // Get the specific SUM Deployment Package to change.  
        IResultObject existingSUMDeploymentPackage = connection.GetInstance(@"SMS_SoftwareUpdatesPackage.PackageID='" + existingSUMPackageID + "'");  

        // Add updates to the existing SUM Deployment Package using the AddUpdateContent method.  
        // Note: The method will throw an exception, if the method is not able to add the content.  
        existingSUMDeploymentPackage.ExecuteMethod("AddUpdateContent", addUpdateContentParameters);  

        // Output a success message that the content was added.  
        Console.WriteLine("Added content to the SUM deployment package. ");                  
    }  
    catch (SmsException ex)  
    {  
        Console.WriteLine("Failed to add content to the SUM deployment package.");                  
        Console.WriteLine("Error: " + ex.Message);        
        throw;  
    }  
}  

このメソッドの例には、次のパラメーターがあります。

パラメーター 説明
connection -管理: WqlConnectionManager SMS プロバイダーへの有効な接続。
existingSUMPackageID -管理: String 既存のソフトウェア更新プログラム展開パッケージのパッケージ ID。
addUpdateContentParameters - マネージド: dictionary オブジェクト メソッドに渡され、メソッド呼び出しで使用されるパラメーター (ContentIDsContentSourcePathbRefreshDPs) の AddUpdateContent セット。

コードのコンパイル

この C# の例では、次のものが必要です。

名前空間

System

System.Collections.Generic

System.text

Microsoft。ConfigurationManagement.ManagementProvider

Microsoft。ConfigurationManagement.ManagementProvider.WqlQueryEngine

Assembly

adminui.wqlqueryengine

microsoft.configurationmanagement.managementprovider

堅牢なプログラミング

エラー処理の詳細については、「Configuration Manager エラーについて」を参照してください。

.NET Framework のセキュリティ

Configuration Manager アプリケーションのセキュリティ保護の詳細については、「ロールベースの管理Configuration Manager」を参照してください。

関連項目

ソフトウェア更新プログラムの展開についてパッケージを配布ポイントに割り当てる方法
SMS_SoftwareUpdatesPackage
クラス SMS_SoftwareUpdatesPackageの AddUpdateContent メソッド