プログラムを作成する方法
次の例では、クラスプロパティとクラスプロパティを使用して、Configuration Managerでプログラムを作成する方法をSMS_Program
示します。
重要
クライアント コンピューターで定義されているメンテナンス期間が、そのプログラムの 最大許容実行時間設定より小さい期間に設定されている場合、アドバタイズされたプログラムは実行されません。 詳細については、Configuration Managerドキュメントの「メンテナンス ウィンドウを使用したプログラム実行シナリオ」を参照してください。
プログラムを作成するには
SMS プロバイダーへの接続を設定します。
クラスを使用して、新しいプログラム オブジェクトを
SMS_Program
作成します。新しいプログラムのプロパティを設定します。
ヒント
タスク シーケンスまたは仮想アプリケーション パッケージのプログラムを作成するときは、SMS_Programプロパティを特定の値に設定する必要があります。 次の表は、これらの設定を構成する必要がある内容の概要を示しています。
タスク シーケンス
プロパティ名 プロパティ値 ProgramName * 仮想アプリケーション パッケージ
プロパティ名 プロパティ値 CommandLine PkgGUID={E742FFD6-D539-42CC-9827-73535FC81E06}:VersionGUID={19366289-8C55-44E2-A5EC-7B385EFB4C30}
メモ: GUID 値は、仮想アプリケーションの XML マニフェスト ファイルから取得されます。ProgramName [仮想アプリケーション] 新しいプログラムとプロパティを保存します。
例
次のメソッドの例では、新しいプログラムを作成し、そのプロパティを設定してソフトウェア配布で使用します。
サンプル コードの呼び出しについては、「Configuration Manager コード スニペットの呼び出し」を参照してください。
Sub CreateProgram(connection, existingPackageID, newProgramName, newProgramComment, newProgramCommandLine, newMaxRunTime)
' Create the new program object. Dim newProgram
Set newProgram = connection.Get("SMS_Program").SpawnInstance_
' Populate the program properties.
newProgram.PackageID = existingPackageID
newProgram.ProgramName = newProgramName
newProgram.Comment = newProgramComment
newProgram.CommandLine = newProgramCommandLine
newProgram.Duration = newMaxRunTime
' Save the new program and properties.
newProgram.Put_
' Output new program name.
wscript.echo "Created program: " & newProgramName
End Sub
public void CreateProgram(WqlConnectionManager connection,
string existingPackageID,
string newProgramName,
string newProgramComment,
string newProgramCommandLine,
int newMaxRunTime)
{
try
{
// Create an instance of SMS_Program.
IResultObject newProgram = connection.CreateInstance("SMS_Program");
// Populate basic program values.
newProgram["PackageID"].StringValue = existingPackageID;
newProgram["ProgramName"].StringValue = newProgramName;
newProgram["Comment"].StringValue = newProgramComment;
newProgram["CommandLine"].StringValue = newProgramCommandLine;
newProgram["Duration"].IntegerValue = newMaxRunTime;
// Save the new program instance and values.
newProgram.Put();
Console.WriteLine("Created program: " + newProgramName);
}
catch (SmsException ex)
{
Console.WriteLine("Failed to create program. Error: " + ex.Message);
throw;
}
}
このメソッドの例には、次のパラメーターがあります。
パラメーター | 型 | 説明 |
---|---|---|
connection swebemServices |
-管理: WqlConnectionManager - VBScript: SWbemServices |
SMS プロバイダーへの有効な接続。 |
existingPackageID |
-管理: String -Vbscript: String |
プログラムに関連付けられているパッケージの名前。 |
newProgramName |
-管理: String -Vbscript: String |
新しいプログラムの名前。 |
newProgramComment |
-管理: String -Vbscript: String |
Configuration Manager コンソールのプログラムを説明するコメント。 |
newProgramCommandLine |
-管理: String -Vbscript: String |
プログラムの起動時に実行されるコマンド ライン。 |
newMaxRunTime |
-管理: Integer -Vbscript: Integer |
クライアント コンピューターでのプログラム実行のおおよその時間 (分単位)。 このパラメーターの最大値は 720 分または 12 時間です。 |
コードのコンパイル
C# の例では、次のものが必要です。
名前空間
System
Microsoft。ConfigurationManagement.ManagementProvider
Microsoft。ConfigurationManagement.ManagementProvider.WqlQueryEngine
Assembly
adminui.wqlqueryengine
microsoft.configurationmanagement.managementprovider
Mscorlib
堅牢なプログラミング
エラー処理の詳細については、「Configuration Manager エラーについて」を参照してください。