Partager via


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

  1. Configurez une connexion au fournisseur SMS. Pour plus d’informations, consultez Notions de base du fournisseur SMS.

  2. Obtenez l’objet SMS_BootImagePackage pour le package d’image de démarrage qui contient le pilote que vous souhaitez supprimer.

  3. Supprimez le pilote de la ReferencedDrivers propriété . Le pilote est identifié par son identificateur d’élément de configuration représenté par la ID propriété de l’objet classe WMI SMS_Driver_Details Server . Cet identificateur correspond à la CI_ID propriété de SMS_Driver.

  4. Commitez les modifications apportées à l’objet SMS_BootImagePackage .

  5. 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