Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In Configuration Manager entfernen Sie eine Kategorie aus einem Windows-Treiber, indem Sie den eindeutigen Bezeichner für die Kategorie aus der Arrayeigenschaft SMS_Driver Server-WMI-KlasseCategoryInstance_UniqueIDs entfernen.
So entfernen Sie eine Kategorie aus einem Windows-Treiber
Richten Sie eine Verbindung mit dem SMS-Anbieter ein. Weitere Informationen finden Sie unter Grundlagen des SMS-Anbieters.
Rufen Sie das SMS_Driver-Objekt für den Treiber ab, aus dem Sie die Kategorie entfernen möchten.
Rufen Sie den Kategorienamensbezeichner aus dem SMS_CategoryInstance Server-WMI-Klassenobjekt ab, das der gewünschten Kategorie entspricht.
Entfernen Sie den Kategoriebezeichner aus der Objektarrayeigenschaft
CategoryInstance_UniqueIDsSMS_Driver Server WMI Class.Committen Sie die Änderungen der SMS_Driver Server-WMI-Klasse .
Beispiel
Die folgende Beispielmethode entfernt eine Kategorie aus einem Windows-Treiber.
driverID ist ein gültiges SMS_Driver Server-WMI-Klassenobjekt . Weitere Informationen finden Sie unter Informationen zur Treiberverwaltung für die Betriebssystembereitstellung.
Informationen zum Aufrufen des Beispielcodes finden Sie unter Aufrufen von Configuration Manager Codeausschnitten.
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;
}
}
Die Beispielmethode verfügt über die folgenden Parameter:
| Parameter | Typ | Beschreibung |
|---|---|---|
Connection |
-Gehandhabt:WqlConnectionManager– VBScript: SWbemServices |
Eine gültige Verbindung mit dem SMS-Anbieter. |
driver |
-Gehandhabt: IResultObject– VBScript: SWbemObject |
Der Windows-Treiber. Es handelt sich um eine instance der WMI-Klasse von SMS_Driver Server. |
categoryName |
-Gehandhabt: String– VBScript: String |
Der Name einer vorhandenen Kategorie. Dies entspricht der Eigenschaft SMS_CategoryInstance Server WMI Classe LocalizedCategoryInstanceName . |
Kompilieren des Codes
Für dieses C#-Beispiel ist Folgendes erforderlich:
Namespaces
System
System.Collections.Generic
System.Text
Microsoft.ConfigurationManagement.ManagementProvider
Microsoft.ConfigurationManagement.ManagementProvider.WqlQueryEngine
Assembly
microsoft.configurationmanagement.managementprovider
adminui.wqlqueryengine
Robuste Programmierung
Weitere Informationen zur Fehlerbehandlung finden Sie unter Informationen zu Configuration Manager Fehlern.
.NET Framework-Sicherheit
Weitere Informationen zum Schützen Configuration Manager Anwendungen finden Sie unter Configuration Manager rollenbasierte Verwaltung.
Siehe auch
Informationen zur Treiberverwaltung für die BetriebssystembereitstellungGewusst wie: Hinzufügen einer Kategorie zu einem Windows-Treiber