Jak dodać sterownik systemu Windows do pakietu obrazu rozruchowego Configuration Manager

W Configuration Manager należy dodać sterownik systemu Windows do pakietu obrazu rozruchowego wdrożenia systemu operacyjnego, dodając odwołanie do wymaganego sterownika we właściwości tablicy klasy ReferencedDriversWMI serwera SMS_BootImagePackage.

Uwaga

Właściwość ReferencedDrivers jest tablicą osadzonego obiektu SMS_Driver_Details i można dodać do pakietu więcej niż jeden sterownik. Obiekty w tablicy są dodawane do pakietu obrazu rozruchowego za każdym razem, gdy są aktualizowane w punkcie dystrybucji.

Lokalizacja zawartości sterownika jest zwykle uzyskiwana z właściwości obiektu ContentSourcePathklasy WMI serwera SMS_Driver, ale można ją zastąpić, jeśli oryginalna lokalizacja sterownika nie jest dostępna.

Może być konieczne dodanie sterowników sieci lub magazynu do pakietu obrazu rozruchowego, aby sekwencja zadań mogła uzyskiwać dostęp do zasobów sieciowych i dyskowych w programie WinPE.

Sterowniki są dodawane do obrazu tylko wtedy, gdy obraz rozruchowy jest odświeżany przez wywołanie metody RefreshPkgSource w klasie SMS_BootImagePackage .

Sterowniki są dodawane do obrazu przy użyciu Menedżer pakietów systemu Windows.

Aby dodać sterownik systemu Windows do 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 obrazów rozruchowych, do których chcesz dodać sterownik.

  3. Utwórz i wypełnij obiekt osadzony SMS_Driver_Details , aby zawierał szczegóły sterownika.

  4. SMS_Driver_Details Dodaj obiekt do ReferencedDrivers właściwości tablicy obiektuSMS_BootImagePackage.

  5. Zatwierdź zmiany obiektu SMS_BootImagePackage .

Przykład

Poniższa przykładowa metoda dodaje sterownik systemu Windows do 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 AddDriverToBootImagePackage(connection, driverId,packageId)  

    Dim bootImagePackage  
    Dim driver   
    Dim referencedDrivers  
    Dim driverDetails  

    ' Get the boot image package and referenced drivers.  
    Set bootImagePackage = connection.Get("SMS_BootImagePackage.PackageID='" & packageId &"'" )  
    referencedDrivers = bootImagePackage.ReferencedDrivers  

    ' Get the driver.  
    Set driver = connection.Get("SMS_Driver.CI_ID=" & driverId )  

    ' Create and populate the driver details.  
    Set driverDetails = connection.Get("SMS_Driver_Details").SpawnInstance_  
    driverDetails.ID=driverId  
    driverDetails.SourcePath=driver.ContentSourcePath  

    ' Add the driver details.  
    ReDim Preserve referencedDrivers (Ubound (referencedDrivers)+1)  
    Set referencedDrivers(Ubound(referencedDrivers))=driverDetails  
    bootImagePackage.ReferencedDrivers=referencedDrivers  

    bootImagePackage.Put_   
    bootImagePackage.RefreshPkgSource   

End Sub  
public void AddDriverToBootImagePackage(  
    WqlConnectionManager connection,   
    int driverId,   
    string packageId)  
{  
    try  
    {  
        // Get the boot image package.  
        IResultObject bootImagePackage = connection.GetInstance(@"SMS_BootImagePackage.packageId='" + packageId + "'");  

        // Get the driver.  
        IResultObject driver = connection.GetInstance("SMS_Driver.CI_ID=" + driverId);  

        // Get the drivers that are referenced by the package.  
        List<IResultObject> referencedDrivers = bootImagePackage.GetArrayItems("ReferencedDrivers");  

        // Create and populate an embedded SMS_Driver_Details. This is added to the ReferencedDrivers array.  
        IResultObject driverDetails = connection.CreateEmbeddedObjectInstance("SMS_Driver_Details");  

        driverDetails["ID"].IntegerValue = driverId;  
        driverDetails["SourcePath"].StringValue = driver["ContentSourcePath"].StringValue;  

        // Add the driver details to the array.  
        referencedDrivers.Add(driverDetails);  

        // Add the array to the boot image package.  
        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: String
-Vbscript: String
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 usunąć sterownik systemu Windows z pakietu obrazu rozruchowego