How to Remove a Category from a Windows Driver (Jak usunąć kategorię ze sterownika systemu Windows)

W Configuration Manager usuwasz kategorię z sterownika systemu Windows, usuwając unikatowy identyfikator dla kategorii z właściwości tablica klas usługi WMI serwera SMS_Driver CategoryInstance_UniqueIDs .

Aby usunąć kategorię z sterownika systemu Windows

  1. Skonfiguruj połączenie z dostawcą programu SMS. Aby uzyskać więcej informacji, zobacz temat podstawowe informacje o dostawcy programu SMS.

  2. Pobierz obiekt SMS_Driver dla sterownika, z którego chcesz usunąć kategorię.

  3. Pobierz identyfikator kategorii z obiektu klasy WMI serwera SMS_CategoryInstance , który jest zgodny z odpowiednią kategorią.

  4. Usuń identyfikator kategorii z właściwości tablica obiektów klasy WMI serwera SMS_Driver CategoryInstance_UniqueIDs .

  5. Zatwierdź zmiany klasy WMI serwera SMS_Driver .

Przykład

Poniższa przykładowa Metoda usuwa kategorię z sterownika systemu Windows. driverID jest prawidłowym obiektem klasy WMI serwera SMS_Driver . Aby uzyskać więcej informacji, zobacz Informacje o zarządzaniu sterownikami wdrażania systemu operacyjnego.

Aby uzyskać informacje na temat wywoływania przykładowego kodu, zobacz wywoływanie Configuration Manager fragmentów kodu.

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;  
    }  
}  

Przykładowa Metoda ma następujące parametry:

Parametr Typ Opis
Connection ZarządzanychWqlConnectionManager
-VBScript: SWbemServices
Prawidłowe połączenie z dostawcą programu SMS.
driver Zarządzanych IResultObject
VBScript SWbemObject
Sterownik systemu Windows. Jest to wystąpienie klasy WMI serwera SMS_Driver.
categoryName Zarządzanych String
VBScript String
Nazwa istniejącej kategorii. Jest to zgodne z właściwością klasy e SMS_CategoryInstance serwera WMI LocalizedCategoryInstanceName .

Kompilowanie kodu

Ten przykład w języku C# wymaga:

Przestrzenie nazw

System

System.Collections.Generic

System.Text

Microsoft.ConfigurationManagement. ManagementProvider

Microsoft.ConfigurationManagement. ManagementProvider. WqlQueryEngine

Zestaw

microsoft.configurationmanagement. managementprovider

adminui. wqlqueryengine

Niezawodne programowanie

Aby uzyskać więcej informacji na temat obsługi błędów, zobacz Informacje o błędach Configuration Manager.

Zabezpieczenia.NET Framework

Aby uzyskać więcej informacji na temat zabezpieczania aplikacji Configuration Manager, zobacz Configuration Manager Administracja oparta na rolach.

Zobacz też

Zarządzanie sterownikami wdrażania systemu operacyjnego — informacje
How to Add a Category to a Windows Driver (Jak dodać kategorię do sterownika systemu Windows)