Comment supprimer un pilote Windows d’un package d’image de démarrage
Dans Configuration Manager, vous supprimez un pilote Windows d’un package d’image de démarrage de déploiement de système d’exploitation en le supprimant de la ReferencedDrivers
propriété de l’objet classe WMI SMS_BootImagePackage Server.
Remarque
Le pilote n’est pas supprimé tant que le package d’image de démarrage n’est pas actualisé et mis à jour sur les points de distribution.
Pour supprimer un pilote Windows d’un package d’image de démarrage
Configurez une connexion au fournisseur SMS. Pour plus d’informations, consultez Notions de base du fournisseur SMS.
Obtenez l’objet SMS_BootImagePackage pour le package d’image de démarrage qui contient le pilote que vous souhaitez supprimer.
Supprimez le pilote de la
ReferencedDrivers
propriété . Le pilote est identifié par son identificateur d’élément de configuration représenté par laID
propriété de l’objet classe WMI SMS_Driver_Details Server . Cet identificateur correspond à laCI_ID
propriété deSMS_Driver
.Commitez les modifications apportées à l’objet
SMS_BootImagePackage
.Actualisez le package d’image de démarrage en appelant
RefreshPkgSource
.
Exemple
L’exemple de méthode suivant supprime le pilote Windows du package d’image de démarrage. Le package est identifié par sa PackageID
propriété et le pilote est identifié par sa CI_ID
propriété .
Pour plus d’informations sur l’appel de l’exemple de code, consultez Appel d’extraits de code Configuration Manager.
Sub RemoveDriverFromBootImagePackage(connection, driverId, packageId)
Dim bootImagePackage
Dim driver
Dim driverDetails
Dim newReferencedDrivers()
Dim found
Dim index
' Get the boot image package.
Set bootImagePackage = connection.Get("SMS_BootImagePackage.PackageID='" & packageId &"'" )
found = False
index=0
' Copy the contents and leave out the driver.
For Each driver In bootImagePackage.ReferencedDrivers
If driver.ID = driverID Then
found=True
Else
Set newReferencedDrivers(index)=driver
index = index + 1
End If
Next
' Update the referenced drivers.
If found=True Then
ReDim preserve newReferencedDrivers(UBound(bootImagePackage.ReferencedDrivers)-1)
bootImagePackage.ReferencedDrivers=newReferencedDrivers
bootImagePackage.Put_
bootImagePackage.RefreshPkgSource
End If
End Sub
public void RemoveDriverFromBootImagePackage(
WqlConnectionManager connection,
int driverId,
string packageId)
{
try
{
// Get the boot image package.
IResultObject bootImagePackage = connection.GetInstance(@"SMS_BootImagePackage.packageId='" + packageId + "'");
// Get the (SMS_Driver_Details) drivers referenced by the package.
List<IResultObject> referencedDrivers = bootImagePackage.GetArrayItems("ReferencedDrivers");
foreach (IResultObject ro in referencedDrivers)
{
if (ro["ID"].IntegerValue == driverId) // Remove the driver that matches driverId.
{
referencedDrivers.Remove(ro);
break;
}
}
bootImagePackage.SetArrayItems("ReferencedDrivers", referencedDrivers);
// Commit the changes.
bootImagePackage.Put();
bootImagePackage.ExecuteMethod("RefreshPkgSource", null);
}
catch (SmsException e)
{
Console.WriteLine(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. |
driverID |
-Géré: Integer -Vbscript: Integer |
Identificateur du pilote Windows disponible dans SMS_Driver.CI_ID . |
PackageID |
-Géré: String -Vbscript: String |
Identificateur du package d’image de démarrage disponible dans SMS_BootImagePackage.PackageID . |
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
Guide pratique pour ajouter un pilote Windows à un package d’image de démarrage Configuration Manager