Windows 드라이버에서 범주를 제거하는 방법How to Remove a Category from a Windows Driver

Configuration Manager SMS_Driver 서버 WMI 클래스 배열 속성에서 범주의 고유 식별자를 제거 하 여 Windows 드라이버에서 범주를 제거 CategoryInstance_UniqueIDs 합니다.In Configuration Manager, you remove a category from a Windows driver by removing the unique identifier for the category from the SMS_Driver Server WMI Class CategoryInstance_UniqueIDs array property.

Windows 드라이버에서 범주를 제거 하려면To remove a category from a Windows driver

  1. SMS 공급자에 대한 연결을 설정합니다.Set up a connection to the SMS Provider. 자세한 내용은 SMS 공급자 기본 사항을 참조 하세요.For more information, see SMS Provider fundamentals.

  2. 범주를 제거 하려는 드라이버에 대 한 SMS_Driver 개체를 가져옵니다.Get the SMS_Driver object for the driver that you want remove the category from.

  3. SMS_CategoryInstance 서버 WMI 클래스 개체에서 원하는 범주와 일치 하는 범주 이름 식별자를 가져옵니다.Get the category name identifier from the SMS_CategoryInstance Server WMI Class object that matches the desired category.

  4. SMS_Driver 서버 WMI 클래스 개체 배열 속성에서 범주 식별자를 제거 합니다 CategoryInstance_UniqueIDs .Remove the category identifier from the SMS_Driver Server WMI Class object CategoryInstance_UniqueIDs array property.

  5. SMS_Driver 서버 WMI 클래스 변경 내용을 커밋합니다.Commit the SMS_Driver Server WMI Class changes.

예제Example

다음 예제 메서드는 Windows 드라이버에서 범주를 제거 합니다.The following example method removes a category from a Windows driver. driverID 는 유효한 SMS_Driver 서버 WMI 클래스 개체입니다.driverID is a valid SMS_Driver Server WMI Class object. 자세한 내용은 운영 체제 배포 드라이버 관리 정보를 참조 하세요.For more information, see About Operating System Deployment Driver Management.

샘플 코드를 호출하는 방법에 대한 자세한 내용은 Configuration Manager 코드 조각 호출을 참조하세요.For information about calling the sample code, see Calling Configuration Manager Code Snippets.

Sub RemoveDriverCategory(connection,driver,categoryName)  

    Dim results  
    Dim driverCategoryID  
    Dim category  
    Dim categories   
    Dim i  

    If IsNull(driver.CategoryInstance_UniqueIDs) _  
           or UBound (driver.CategoryInstance_UniqueIDs) = -1 Then  
        ' There are no categories, so quit.  
        Wscript.Echo "No categories found"  
        Exit Sub  
    End If    

     Set results = _  
      connection.ExecQuery("SELECT * From SMS_CategoryInstance WHERE LocalizedCategoryInstanceName = '" _  
      + categoryName+ "'")  

    ' If the category was found, delete, if it is there, from the driver.  
    For Each category In results  

        ' Destination for copied categories.  
        categories = Array(driver.CategoryInstance_UniqueIDs)  
        i=0   

        For Each driverCategoryID in driver.CategoryInstance_UniqueIDs  
            If driverCategoryID = category.CategoryInstance_UniqueID Then  
                ' Found it, so skip it.  
                 Redim Preserve categories (UBound(categories))  
            Else  
                ' Copy the category.  
                categories(i) = driverCategoryID  
                i=i+1  
            End If   
        Next   

        ' Make sure the array is empty.  
        if i = 0  Then  
            Redim categories(-1)  
        End If  

         driver.CategoryInstance_UniqueIDs = categories  
         driver.Put_  
    Next  
End Sub     
public void RemoveDriverCategory(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);  

        // Remove the category from the driver.  
        foreach (IResultObject category in results)  
        {  
            driverCategories.Remove(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 remove category :" + e.Message);  
        throw;  
    }  
}  

예제 메서드에는 다음과 같은 매개 변수가 포함되어 있습니다.The example method has the following parameters:

매개 변수Parameter TypeType DescriptionDescription
Connection ManagedWqlConnectionManager- Managed:WqlConnectionManager
- VBScript: SWbemServices- VBScript: SWbemServices
SMS 공급자에 대한 유효한 연결입니다.A valid connection to the SMS Provider.
driver - 관리 코드: IResultObject- Managed: IResultObject
Vba SWbemObject- VBScript: SWbemObject
Windows 드라이버입니다.The Windows driver. SMS_Driver SERVER WMI 클래스의 인스턴스입니다.It is an instance of SMS_Driver Server WMI Class.
categoryName - 관리 코드: String- Managed: String
Vba String- VBScript: String
기존 범주의 이름입니다.The name of an existing category. 이는 SMS_CategoryInstance 서버 WMI 클래스e 속성과 일치 합니다 LocalizedCategoryInstanceName .This matches the SMS_CategoryInstance Server WMI Classe LocalizedCategoryInstanceName property.

코드 컴파일Compiling the Code

이 c # 예제에는 다음이 필요 합니다.This C# example requires:

네임스페이스Namespaces

시스템System

System.Collections.GenericSystem.Collections.Generic

System.TextSystem.Text

Microsoft.ConfigurationManagement.ManagementProviderMicrosoft.ConfigurationManagement.ManagementProvider

Microsoft.ConfigurationManagement.ManagementProvider.WqlQueryEngineMicrosoft.ConfigurationManagement.ManagementProvider.WqlQueryEngine

어셈블리Assembly

microsoft.configurationmanagement.managementprovidermicrosoft.configurationmanagement.managementprovider

adminui.wqlqueryengineadminui.wqlqueryengine

강력한 프로그래밍Robust Programming

오류 처리에 대한 자세한 내용은 Configuration Manager 오류 정보를 참조하세요.For more information about error handling, see About Configuration Manager Errors.

.NET Framework 보안.NET Framework Security

Configuration Manager 응용 프로그램을 보호 하는 방법에 대 한 자세한 내용은 역할 기반 관리 Configuration Manager를 참조 하세요.For more information about securing Configuration Manager applications, see Configuration Manager role-based administration.

참고 항목See Also

운영 체제 배포 드라이버 관리 정보 About Operating System Deployment Driver Management
Windows 드라이버에 범주를 추가하는 방법How to Add a Category to a Windows Driver