閱讀英文

共用方式為


如何將 Windows 驅動程式新增至 Configuration Manager 開機映射套件

在 Configuration Manager 中,您可以將 Windows 驅動程式新增至作業系統部署開機映射套件,方法是在 SMS_BootImagePackage Server WMI 類別ReferencedDrivers 數位屬性中新增必要驅動程式的參考。

注意

屬性 ReferencedDrivers 是內嵌 SMS_Driver_Details 對象的數位,而且您可以將多個驅動程式新增至套件。 每次在發佈點上更新時,數位列中的物件都會新增至開機映像套件。

驅動程式內容的位置通常會從 SMS_Driver Server WMI Class 物件 ContentSourcePath 屬性取得,但如果原始驅動程式位置無法使用,則可以覆寫此屬性。

可能需要將網路或記憶體驅動程式新增至開機映像套件,以便工作順序可以在 WinPE 中存取網路和磁碟資源。

只有在重新整理開機映射時,才會將驅動程式新增至映像,方法是在 Class SMS_BootImagePackage 方法中呼叫 RefreshPkgSource 方法。

驅動程式會使用 Windows 套件管理員新增至映像。

將 Windows 驅動程式新增至開機映像套件

  1. 設定與SMS提供者的連線。 如需詳細資訊,請 參閱SMS提供者基本概念

  2. 取得您想要新增驅動程式之開機映像套件的 SMS_BootImagePackage 物件。

  3. 建立並填入內嵌 SMS_Driver_Details 物件,以包含驅動程式詳細數據。

  4. SMS_Driver_Details將物件新增至 ReferencedDrivers 物件的陣列SMS_BootImagePackage屬性。

  5. SMS_BootImagePackage認可物件變更。

範例

下列範例方法會將 Windows 驅動程式新增至開機映射套件。 套件是由其 PackageID 屬性所識別,而驅動程式則是透過其 CI_ID 屬性來識別。

如需呼叫範例程式代碼的相關信息,請 參閱呼叫 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;  
    }  
}  

範例方法具有下列參數:

參數 Type 描述
Connection -管理:WqlConnectionManager
- VBScript: SWbemServices
SMS 提供者的有效連線。
driverID -管理: String
- VBScript: String
中可用的 SMS_Driver.CI_IDWindows 驅動程式識別碼。
PackageID -管理: String
- VBScript: String
中可用 SMS_BootImagePackage.PackageID的開機映像套件標識碼。

正在編譯程式碼

此 C# 範例需要:

命名空間

系統

System.Collections.Generic

System.Text

Microsoft.ConfigurationManagement.ManagementProvider

Microsoft.ConfigurationManagement.ManagementProvider.WqlQueryEngine

組件

microsoft.configurationmanagement.managementprovider

adminui.wqlqueryengine

健全的程式設計

如需錯誤處理的詳細資訊,請 參閱關於 Configuration Manager 錯誤

.NET Framework 安全性

如需保護 Configuration Manager 應用程式的詳細資訊,請參閱 Configuration Manager 角色型系統管理

另請參閱

關於操作系統部署驅動程式管理
如何從開機映像套件移除 Windows 驅動程式