Udostępnij za pośrednictwem


Jak usunąć sterownik systemu Windows z pakietu obrazu rozruchowego

W Configuration Manager należy usunąć sterownik systemu Windows z pakietu obrazu rozruchowego wdrożenia systemu operacyjnego, usuwając go z ReferencedDrivers właściwości obiektu klasy WMI serwera SMS_BootImagePackage.

Uwaga

Sterownik nie zostanie usunięty, dopóki pakiet obrazu rozruchowego nie zostanie odświeżony i zaktualizowany w punktach dystrybucji.

Aby usunąć sterownik systemu Windows z pakietu obrazu rozruchowego

  1. Skonfiguruj połączenie z dostawcą programu SMS. Aby uzyskać więcej informacji, zobacz Podstawy dostawcy programu SMS.

  2. Pobierz obiekt SMS_BootImagePackage dla pakietu obrazu rozruchowego zawierającego sterownik, który chcesz usunąć.

  3. Usuń sterownik z ReferencedDrivers właściwości . Sterownik jest identyfikowany przez jego identyfikator elementu konfiguracji reprezentowany przez ID właściwość obiektu klasy WMI serwera SMS_Driver_Details . Ten identyfikator jest zgodny z właściwością CI_IDSMS_Driver.

  4. Zatwierdź zmiany obiektu SMS_BootImagePackage .

  5. Odśwież pakiet obrazu rozruchowego, wywołując polecenie RefreshPkgSource.

Przykład

Poniższa przykładowa metoda usuwa sterownik systemu Windows z pakietu obrazu rozruchowego. Pakiet jest identyfikowany przez jego PackageID właściwość, a sterownik jest identyfikowany przez jego CI_ID właściwość.

Aby uzyskać informacje na temat wywoływania przykładowego kodu, zobacz Wywoływanie fragmentów kodu 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;  
    }  
}  

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.
driverID -Zarządzane: Integer
-Vbscript: Integer
Identyfikator sterownika systemu Windows dostępny w systemie SMS_Driver.CI_ID.
PackageID -Zarządzane: String
-Vbscript: String
Identyfikator pakietu obrazu rozruchowego dostępny w programie SMS_BootImagePackage.PackageID.

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 dodać sterownik systemu Windows do pakietu obrazu rozruchowego Configuration Manager