Windows 드라이버에 범주를 추가하는 방법
Configuration Manager 범주에 대한 고유 식별자를 SMS_Driver Server WMI 클래스CategoryInstance_UniqueIDs
배열 속성에 추가하여 Windows 드라이버에 범주를 추가합니다. 배열에는 SMS_CategoryInstance Server WMI 클래스CategoryInstance_UniqueID
속성 값과 일치하는 하나 이상의 문자열 식별자가 포함되어 있습니다. 시스템의 각 범주에 대한 SMS_CategoryInstance Server WMI 클래스 개체의 인스턴스가 있습니다.
참고
드라이버 범주의 고유 식별자에는 "DriverCategories" 텍스트가 앞에 추가됩니다. 다른 범주 형식에는 다른 텍스트가 있습니다.
범주에는 지역화 정보가 있으며 SMS_CategoryInstance Server WMI 클래스LocalizedCategoryInstanceName
속성에서 범주의 표시 이름을 가져옵니다.
Windows 드라이버에 범주를 추가하려면
SMS 공급자에 대한 연결을 설정합니다. 자세한 내용은 SMS 공급자 기본 사항을 참조하세요.
범주를 추가하려는 드라이버의 SMS_Driver 개체를 가져옵니다.
원하는 범주와 일치하는 SMS_CategoryInstance Server WMI 클래스 개체에서 범주 이름 식별자를 가져옵니다.
범주 식별자를 SMS_Driver Server WMI 클래스 개체
CategoryInstance_UniqueIDs
배열 속성에 추가합니다.SMS_Driver 서버 WMI 클래스 변경 내용을 커밋합니다.
예시
다음 예제 메서드는 Windows 드라이버에 범주를 추가합니다. driverID
는 유효한 SMS_Driver 서버 WMI 클래스 개체입니다. 자세한 내용은 운영 체제 배포 드라이버 관리 정보를 참조하세요.
샘플 코드 호출에 대한 자세한 내용은 코드 조각 Configuration Manager 호출을 참조하세요.
Sub AddDriverCategory(connection,driver,categoryName)
Dim categories
Dim category
Dim driverCategoryID
Dim categoryID
Dim results
Dim existingCategory
' Find the category that matches the supplied category name.
Set results = _
connection.ExecQuery("SELECT * From SMS_CategoryInstance WHERE LocalizedCategoryInstanceName = '" _
+ categoryName+ "'")
' If the category was found, add it to the driver.
For Each category in results
If IsNull(driver.CategoryInstance_UniqueIDs) or UBound (driver.CategoryInstance_UniqueIDs) = -1 Then
' It is empty. Add the category.
driver.CategoryInstance_UniqueIDs = Array(category.CategoryInstance_UniqueID)
Else
' Determine if the category is already applied to the driver.
For each existingCategory in driver.CategoryInstance_UniqueIDs
if existingCategory = category.CategoryInstance_UniqueID Then
WScript.Echo "Already added"
Exit Sub
End If
Next
' Add the category.
categories = driver.CategoryInstance_UniqueIDs
Redim Preserve categories (UBound (driver.CategoryInstance_UniqueIDs)+1)
categories (Ubound (categories)) = category.CategoryInstance_UniqueID
driver.CategoryInstance_UniqueIDs = categories
End If
driver.Put_
Next
End Sub
public void AddDriverCategory(
WqlConnectionManager connection,
IResultObject driver,
string categoryName)
{
try
{
// Get the category.
IResultObject results = connection.QueryProcessor.ExecuteQuery(
"SELECT * From SMS_CategoryInstance WHERE LocalizedCategoryInstanceName = '" + categoryName + "'");
ArrayList driverCategories = new ArrayList(driver["CategoryInstance_UniqueIDs"].StringArrayValue);//;driverCategories);
foreach (IResultObject category in results)
{
foreach (string driverCategory in driverCategories)
{
// Do nothing if the driver already has the category.
if (driverCategory == category["CategoryInstance_UniqueID"].StringValue)
{
Console.WriteLine("Already exists");
return;
}
}
// Add the category to the action.
driverCategories.Add(category["CategoryInstance_UniqueID"].StringValue);
}
// Update the driver.
driver["CategoryInstance_UniqueIDs"].StringArrayValue = (string[])driverCategories.ToArray(typeof(string));
driver.Put();
}
catch (SmsException e)
{
Console.WriteLine("Failed to add the category" + e.Message);
throw;
}
}
예제 메서드에는 다음 매개 변수가 있습니다.
매개 변수 | 형식 | 설명 |
---|---|---|
Connection |
-관리: WqlConnectionManager - VBScript: SWbemServices |
SMS 공급자에 대한 유효한 연결입니다. |
driver |
-관리: IResultObject -Vbscript: SWbemObject |
Windows 드라이버입니다. SMS_Driver 서버 WMI 클래스의 인스턴스입니다. |
categoryName |
-관리: String -Vbscript: String |
기존 범주의 이름입니다. SMS_CategoryInstance 서버 WMI 클래스LocalizedCategoryInstanceName 속성과 일치합니다. |
코드 컴파일
이 C# 예제에는 다음이 필요합니다.
네임 스페이스
시스템
System.Collections.Generic
System.Text
Microsoft. ConfigurationManagement.ManagementProvider
Microsoft. ConfigurationManagement.ManagementProvider.WqlQueryEngine
어셈블리
microsoft.configurationmanagement.managementprovider
adminui.wqlqueryengine
강력한 프로그래밍
오류 처리에 대한 자세한 내용은 Configuration Manager 오류 정보를 참조하세요.
.NET Framework 보안
Configuration Manager 애플리케이션 보안에 대한 자세한 내용은 역할 기반 관리 Configuration Manager 참조하세요.
참고 항목
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기