Jak dodać kategorię do sterownika systemu Windows
W Configuration Manager należy dodać kategorię do sterownika systemu Windows, dodając unikatowy identyfikator kategorii do właściwości tablicy klasy CategoryInstance_UniqueIDs
SMS_Driver Server WMI. Tablica zawiera co najmniej jeden identyfikator ciągu zgodny z wartością właściwości klasy WMICategoryInstance_UniqueID
serwera SMS_CategoryInstance. Istnieje wystąpienie obiektu klasy WMI serwera SMS_CategoryInstance dla każdej kategorii w systemie.
Uwaga
Unikatowy identyfikator kategorii sterownika jest uzupełniony tekstem "DriverCategories". Inne typy kategorii mają inny tekst.
Kategoria zawiera informacje o lokalizacji i to z właściwości SMS_CategoryInstance Server WMI ClassLocalizedCategoryInstanceName
jest uzyskiwana nazwa wyświetlana kategorii.
Aby dodać kategorię do 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, do który chcesz dodać kategorię.
Pobierz identyfikator nazwy kategorii z obiektu klasy WMI serwera SMS_CategoryInstance, który odpowiada żądanej kategorii.
Dodaj identyfikator kategorii do właściwości tablicy obiektów
CategoryInstance_UniqueIDs
klasy WMI serwera SMS_Driver.Zatwierdź zmiany klasy WMI serwera SMS_Driver .
Przykład
Poniższa przykładowa metoda dodaje kategorię do 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 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;
}
}
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ą klasy LocalizedCategoryInstanceName WMI serwera SMS_CategoryInstance. |
Kompilowanie kodu
Ten przykład języka C# wymaga:
Obszary nazw
System
System.collections.generic
System.text
Microsoft. ConfigurationManagement.ManagementProvider
Microsoft. ConfigurationManagement.ManagementProvider.WqlQueryEngine
Zestawu
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ż
Informacje o zarządzaniu sterownikami wdrażania systemu operacyjnego
Jak usunąć kategorię ze sterownika systemu Windows
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla