Comment supprimer une catégorie d’un pilote Windows
Dans Configuration Manager, vous supprimez une catégorie d’un pilote Windows en supprimant l’identificateur unique de la catégorie de la propriété de tableau de CategoryInstance_UniqueIDs
classe WMI SMS_Driver Server.
Pour supprimer une catégorie d’un pilote Windows
Configurez une connexion au fournisseur SMS. Pour plus d’informations, consultez Notions de base du fournisseur SMS.
Obtenez l’objet SMS_Driver du pilote dont vous souhaitez supprimer la catégorie.
Obtenez l’identificateur de nom de catégorie à partir de l’objet classe WMI du serveur SMS_CategoryInstance qui correspond à la catégorie souhaitée.
Supprimez l’identificateur de catégorie de la propriété de tableau d’objets
CategoryInstance_UniqueIDs
WMI Class SMS_Driver Server.Validez les modifications apportées à la classe WMI SMS_Driver Server .
Exemple
L’exemple de méthode suivant supprime une catégorie d’un pilote Windows.
driverID
est un objet de classe WMI SMS_Driver Server valide. Pour plus d’informations, consultez À propos de la gestion des pilotes de déploiement de système d’exploitation.
Pour plus d’informations sur l’appel de l’exemple de code, consultez Appel d’extraits de code 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;
}
}
L’exemple de méthode a les paramètres suivants :
Paramètre | Type | Description |
---|---|---|
Connection |
-Géré:WqlConnectionManager - VBScript : SWbemServices |
Connexion valide au fournisseur SMS. |
driver |
-Géré: IResultObject -Vbscript: SWbemObject |
Pilote Windows. Il s’agit d’une instance de la classe WMI du serveur SMS_Driver. |
categoryName |
-Géré: String -Vbscript: String |
Nom d’une catégorie existante. Cela correspond à la propriété SMS_CategoryInstance Server WMI Classe LocalizedCategoryInstanceName . |
Compilation du code
Cet exemple C# nécessite :
Espaces de noms
Système
System.Collections.Generic
System.Text
Microsoft. ConfigurationManagement.ManagementProvider
Microsoft. ConfigurationManagement.ManagementProvider.WqlQueryEngine
Assembly
microsoft.configurationmanagement.managementprovider
adminui.wqlqueryengine
Programmation robuste
Pour plus d’informations sur la gestion des erreurs, consultez À propos des erreurs Configuration Manager.
Sécurité de .NET Framework
Pour plus d’informations sur la sécurisation des applications Configuration Manager, consultez Configuration Manager’administration basée sur les rôles.
Voir aussi
À propos de la gestion des pilotes de déploiement de système d’exploitation
Comment ajouter une catégorie à un pilote Windows