Jak usunąć kategorię ze sterownika systemu Windows
W programie Configuration Manager można usunąć kategorię ze sterownika systemu Windows, usuwając unikatowy identyfikator kategorii z właściwości tablicy klasy CategoryInstance_UniqueIDs
SMS_Driver Server WMI.
Aby usunąć kategorię ze sterownika systemu Windows
Skonfiguruj połączenie z dostawcą programu SMS. Aby uzyskać więcej informacji, zobacz Podstawy dostawcy programu SMS.
Pobierz obiekt SMS_Driver dla sterownika, z który chcesz usunąć kategorię.
Pobierz identyfikator nazwy kategorii z obiektu klasy WMI serwera SMS_CategoryInstance, który odpowiada żądanej kategorii.
Usuń identyfikator kategorii z właściwości tablicy obiektów
CategoryInstance_UniqueIDs
klasy SMS_Driver Server WMI.Zatwierdź zmiany klasy WMI serwera SMS_Driver .
Przykład
Poniższa przykładowa metoda usuwa kategorię ze sterownika systemu Windows.
driverID
jest prawidłowym obiektem klasy WMI serwera SMS_Driver . Aby uzyskać więcej informacji, zobacz About Operating System Deployment Driver Management (Informacje o zarządzaniu sterownikami wdrażania systemu operacyjnego).
Aby uzyskać informacje na temat wywoływania przykładowego kodu, zobacz Wywoływanie fragmentów kodu programu Configuration Manager.
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 | Wpisać | Opis |
---|---|---|
Connection |
-Zarządzane:WqlConnectionManager - VBScript: SWbemServices |
Prawidłowe połączenie z dostawcą programu SMS. |
driver |
-Zarządzane: IResultObject - VBScript: SWbemObject |
Sterownik systemu Windows. Jest to wystąpienie klasy WMI serwera SMS_Driver. |
categoryName |
-Zarządzane: String - VBScript: String |
Nazwa istniejącej kategorii. Jest to zgodne z właściwością SMS_CategoryInstance Server WMI Classe LocalizedCategoryInstanceName . |
Kompilowanie kodu
Ten przykład języka C# wymaga:
Przestrzenie nazw
System
System.Collections.Generic
System.Text
Microsoft.ConfigurationManagement.ManagementProvider
Microsoft.ConfigurationManagement.ManagementProvider.WqlQueryEngine
Montaż
microsoft.configurationmanagement.managementprovider
adminui.wqlqueryengine
Niezawodne programowanie
Aby uzyskać więcej informacji na temat obsługi błędów, zobacz About Configuration Manager Errors (Informacje o błędach programu Configuration Manager).
Zabezpieczenia programu .NET Framework
Aby uzyskać więcej informacji na temat zabezpieczania aplikacji programu Configuration Manager, zobacz Administracja oparta na rolach programu Configuration Manager.
Zobacz też
Informacje o zarządzaniu sterownikami wdrażania systemu operacyjnego
Jak dodać kategorię do sterownika systemu Windows