모든 프로그램 및 최대 런타임 값을 나열하는 방법
Configuration Manager 및 SMS_Program
클래스 및 클래스 속성을 사용하여 SMS_Package
최대 런타임 값으로 모든 프로그램을 나열할 수 있습니다.
모든 프로그램 및 최대 실행 시간을 나열하려면
SMS 공급자에 대한 연결을 설정합니다.
클래스를 사용하여 사용 가능한 패키지를 로드합니다
SMS_Package
.각 패키지의 클래스 및 속성을 사용하여
SMS_Program
각 프로그램 집합을PackageID
열거합니다.각 프로그램의 패키지 이름, 프로그램 이름 및 최대 런타임 값을 출력합니다.
예시
다음 예제 메서드는 해당 패키지 이름, 프로그램 이름 및 최대 실행 시간을 사용하여 모든 프로그램을 나열하는 방법을 보여 줍니다.
샘플 코드 호출에 대한 자세한 내용은 코드 조각 Configuration Manager 호출을 참조하세요.
Sub ListPackagesProgramsandMaximumRunTimeValue(connection)
Const wbemFlagReturnImmediately = 16 Const wbemFlagForwardOnly = 32 Dim packageQuery Dim allPackages Dim package Dim packageID Dim program Dim programsForPackage
' Build query to get all of the packages.
packageQuery = "SELECT * FROM SMS_Package"
' Run query.
Set allPackages = connection.ExecQuery(packageQuery, , wbemFlagForwardOnly Or wbemFlagReturnImmediately)
' The query returns a collection of package objects that needs to be enumerated.
For Each package In allPackages
' Output package name and get the PackageID value to use in program query.
WScript.Echo ""
WScript.Echo "Package: " & package.Name
packageID = package.PackageID
' Build query to get the programs for the package.
packageQuery = "SELECT * FROM SMS_Program WHERE PackageID='" & packageID & "'"
' Run query.
Set programsForPackage = connection.ExecQuery(packageQuery, , wbemFlagForwardOnly Or wbemFlagReturnImmediately)
' The query returns a collection of program objects that needs to be enumerated.
For Each program In programsForPackage
' Output Maximum Runtime Value for each program found.
WScript.Echo " Program: " & program.ProgramName
WScript.Echo " Maximum Runtime Value: " & program.Duration
Next
Next
End Sub
public void ListPackagesProgramsandMaximumRunTimeValue(WqlConnectionManager connection)
{
try
{
// Build query to get the packages.
string packageQuery = "SELECT * FROM SMS_Package";
// Load the specific program to change (programname is a key value and must be unique).
IResultObject allPackages = connection.QueryProcessor.ExecuteQuery(packageQuery);
// The query returns a collection of packages that needs to be enumerated.
foreach(IResultObject package in allPackages)
{
// Output package name and get the PackageID value to use in program query.
Console.WriteLine();
Console.WriteLine("Package: " + package["Name"].StringValue);
string packageID = package["PackageID"].StringValue;
// Build query to get the programs for the package.
string programQuery = "SELECT * FROM SMS_Program WHERE PackageID='" + packageID + "'";
// Load the all programs belonging to the package.
IResultObject programsForPackage = connection.QueryProcessor.ExecuteQuery(programQuery);
// The query returns a collection of programs that needs to be enumerated.
foreach(IResultObject program in programsForPackage)
{
// Output Maximum Runtime Value for each program found.
Console.WriteLine(" Program: " + program["ProgramName"].StringValue);
Console.WriteLine(" Maximum Runtime Value: " + program["Duration"].IntegerValue);
}
}
}
catch (SmsException ex)
{
Console.WriteLine("Failed to list the packages and programs. Error: " + ex.Message);
throw;
}
}
예제 메서드에는 다음 매개 변수가 있습니다.
매개 변수 | 형식 | 설명 |
---|---|---|
connection |
-관리: WqlConnectionManager - VBScript: SWbemServices |
SMS 공급자에 대한 유효한 연결입니다. |
코드 컴파일
C# 예제에는 다음이 필요합니다.
네임 스페이스
시스템
Microsoft. ConfigurationManagement.ManagementProvider
Microsoft. ConfigurationManagement.ManagementProvider.WqlQueryEngine
어셈블리
adminui.wqlqueryengine
microsoft.configurationmanagement.managementprovider
Mscorlib
강력한 프로그래밍
오류 처리에 대한 자세한 내용은 Configuration Manager 오류 정보를 참조하세요.