Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
I Configuration Manager lägger du till en kategori i en Windows-drivrutin genom att lägga till den unika identifieraren för kategorin i matrisegenskapen SMS_Driver Server WMI-klassCategoryInstance_UniqueIDs
. Matrisen innehåller en eller flera strängidentifierare som matchar egenskapsvärdet SMS_CategoryInstance Server WMI-klassCategoryInstance_UniqueID
. Det finns en instans av SMS_CategoryInstance WMI-klassobjekt för varje kategori i systemet.
Obs!
Den unika identifieraren för en drivrutinskategori läggs till i texten "DriverCategories". Andra kategorityper har olika text.
En kategori har lokaliseringsinformation och det är från egenskapen SMS_CategoryInstance Server WMI-klassLocalizedCategoryInstanceName
som kategorins visningsnamn hämtas.
Så här lägger du till en kategori i en Windows-drivrutin
Konfigurera en anslutning till SMS-providern. Mer information finns i grunderna för SMS-provider.
Hämta SMS_Driver-objektet för drivrutinen som du vill lägga till en kategori i.
Hämta kategorinamnidentifieraren från objektet SMS_CategoryInstance Serverns WMI-klass som matchar önskad kategori.
Lägg till kategoriidentifieraren i objektmatrisegenskapen SMS_Driver Server WMI-klass
CategoryInstance_UniqueIDs
.
Exempel
Följande exempelmetod lägger till en kategori i en Windows-drivrutin.
driverID
är ett giltigt SMS_Driver WMI-klassobjekt för server . Mer information finns i Om drivrutinshantering för operativsystemdistribution.
Information om hur du anropar exempelkoden finns i Anropa Configuration Manager kodfragment.
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;
}
}
Exempelmetoden har följande parametrar:
Parameter | Typ | Beskrivning |
---|---|---|
Connection |
-Hanterade: WqlConnectionManager – VBScript: SWbemServices |
En giltig anslutning till SMS-providern. |
driver |
-Hanterade: IResultObject – VBScript: SWbemObject |
Windows-drivrutinen. Det är en instans av SMS_Driver serverns WMI-klass. |
categoryName |
-Hanterade: String – VBScript: String |
Namnet på en befintlig kategori. Detta matchar egenskapen SMS_CategoryInstance WMI-klassLocalizedCategoryInstanceName för server. |
Kompilera koden
Det här C#-exemplet kräver:
Namnområden
System
System.Collections.Generic
System.Text
Microsoft.ConfigurationManagement.ManagementProvider
Microsoft.ConfigurationManagement.ManagementProvider.WqlQueryEngine
Församling
microsoft.configurationmanagement.managementprovider
adminui.wqlqueryengine
Robust programmering
Mer information om felhantering finns i Om Configuration Manager fel.
.NET Framework Säkerhet
Mer information om hur du skyddar Configuration Manager program finns i Configuration Manager rollbaserad administration.
Se även
Om drivrutinshantering för operativsystemdistributionSå här tar du bort en kategori från en Windows-drivrutin