다음을 통해 공유


Configuration Manager 부팅 이미지 패키지에 Windows 드라이버를 추가하는 방법

Configuration Manager 서버 WMI 클래스ReferencedDrivers 배열 속성에서 필요한 드라이버에 대한 참조를 추가하여 운영 체제 배포 부팅 이미지 패키지 SMS_BootImagePackage에 Windows 드라이버를 추가합니다.

참고

속성은 ReferencedDrivers 포함된 SMS_Driver_Details 개체의 배열이며 패키지에 둘 이상의 드라이버를 추가할 수 있습니다. 배열의 개체는 배포 지점에서 업데이트할 때마다 부팅 이미지 패키지에 추가됩니다.

드라이버 콘텐츠의 위치는 일반적으로 SMS_Driver Server WMI 클래스 개체 ContentSourcePath 속성에서 가져오지만 원래 드라이버 위치를 사용할 수 없는 경우 재정의할 수 있습니다.

작업 순서가 WinPE에 있는 동안 네트워크 및 디스크 리소스에 액세스할 수 있도록 부팅 이미지 패키지에 네트워크 또는 스토리지 드라이버를 추가해야 할 수 있습니다.

클래스 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;  
    }  
}  

예제 메서드에는 다음 매개 변수가 있습니다.

매개 변수 형식 설명
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 드라이버를 제거하는 방법