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 드라이버를 추가하려면
SMS 공급자에 대한 연결을 설정합니다. 자세한 내용은 SMS 공급자 기본 사항을 참조하세요.
드라이버를 추가할 부팅 이미지 패키지의 SMS_BootImagePackage 개체를 가져옵니다.
포함된 개체를
SMS_Driver_Details
만들고 채워 드라이버 세부 정보를 포함합니다.개체의
SMS_Driver_Details
배열 속성에ReferencedDrivers
개체를SMS_BootImagePackage
추가합니다.개체 변경 내용을
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_ID Windows 드라이버 식별자입니다. |
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 참조하세요.