What I do is open up the existing boot image and then open the SMSPROV.log
in cmtrace. THEN click on the drivers tab of the boot image. Once you can
see all of the drivers go to cmtrace and pause it.
open the smsprov.log
Open the boot image.
Find the line like this
select all
SMS_Driver.LocaleID,SMS_Driver.CI_ID,SMS_Driver.CI_UniqueID,SMS_Driver.DisplayName
from fn_ListDriverCIs_List(1033) AS SMS_Driver where
(((((((((((((((((((((((((((((((((((((((((((((((SMS_Driver.CI_ID = 16900711
OR SMS_Driver.CI_ID = 16900712) OR SMS_Driver.CI_ID = 16900713) OR
SMS_Driver.CI_ID = 16900714) OR SMS_Driver.CI_ID = 16900715) OR
SMS_Driver.CI_ID = 16900716) OR SMS_Driver.CI_ID = 16900717) OR
SMS_Driver.CI_ID = 16900718) OR SMS_Driver.CI_ID = 16900719) OR
SMS_Driver.CI_ID = 16900720) OR SMS_Driver.CI_ID = 16900721) OR
SMS_Driver.CI_ID = 16900722) OR SMS_Driver.CI_ID = 16900723) OR
SMS_Driver.CI_ID = 16900724) OR SMS_Driver.CI_ID = 16900725) OR
SMS_Driver.CI_ID = 16900726) OR SMS_Driver.CI_ID = 16900727) OR
SMS_Driver.CI_ID = 16900728) OR SMS_Driver.CI_ID = 16900729) OR
SMS_Driver.CI_ID = 16900730) OR SMS_Driver.CI_ID = 16900731) OR
SMS_Driver.CI_ID = 16900732) OR SMS_Driver.CI_ID = 16900733) OR
SMS_Driver.CI_ID = 16900734) OR SMS_Driver.CI_ID = 16900735) OR
SMS_Driver.CI_ID = 16900736) OR SMS_Driver.CI_ID = 16900737) OR
SMS_Driver.CI_ID = 16900738) OR SMS_Driver.CI_ID = 16900739) OR
SMS_Driver.CI_ID = 16900742) OR SMS_Driver.CI_ID = 16900743) OR
SMS_Driver.CI_ID = 16900744) OR SMS_Driver.CI_ID = 16900747) OR
SMS_Driver.CI_ID = 16900748) OR SMS_Driver.CI_ID = 16900749) OR
SMS_Driver.CI_ID = 17003831) OR SMS_Driver.CI_ID = 17074423) OR
SMS_Driver.CI_ID = 17074424) OR SMS_Driver.CI_ID = 17074425) OR
SMS_Driver.CI_ID = 17074426) OR SMS_Driver.CI_ID = 17074427) OR
SMS_Driver.CI_ID = 17074428) OR SMS_Driver.CI_ID = 17074429) OR
SMS_Driver.CI_ID = 17074430) OR SMS_Driver.CI_ID = 17074431) OR
SMS_Driver.CI_ID = 17074432) OR SMS_Driver.CI_ID = 17074433) OR
SMS_Driver.CI_ID = 17074434)
You copy that SQL and open SQL management studio. Then replace the "Select"
portion (not the from or where clause) with this
'Add-BootImageDriver -SiteCode XXX -SiteServer SITESERVER -DriverCI ' +
CAST ( SMS_Driver.CI_ID AS nvarchar(10)) + ' -BootImagePackageID
"NEWBOOTIMAGEPACKAGEID"' AS [PS],
The SQL output will look like this
Add-BootImageDriver -SiteCode XXX -SiteServer USHDCCMXXX01 -DriverCI
16777410 -BootImagePackageID XXX00134
Add-BootImageDriver -SiteCode XXX -SiteServer USHDCCMXXX01 -DriverCI
16777413 -BootImagePackageID XXX00134
Add-BootImageDriver -SiteCode XXX -SiteServer USHDCCMXXX01 -DriverCI
16777414 -BootImagePackageID XXX00134
Add-BootImageDriver -SiteCode XXX -SiteServer USHDCCMXXX01 -DriverCI
16777415 -BootImagePackageID XXX00134
Add-BootImageDriver -SiteCode XXX -SiteServer USHDCCMXXX01 -DriverCI
16777416 -BootImagePackageID XXX00134
Add-BootImageDriver -SiteCode XXX -SiteServer USHDCCMXXX01 -DriverCI
16777417 -BootImagePackageID XXX00134
Add-BootImageDriver -SiteCode XXX -SiteServer USHDCCMXXX01 -DriverCI
16777418 -BootImagePackageID XXX00134
Add-BootImageDriver -SiteCode XXX -SiteServer USHDCCMXXX01 -DriverCI
16777419 -BootImagePackageID XXX00134
Add-BootImageDriver -SiteCode XXX -SiteServer USHDCCMXXX01 -DriverCI
16777420 -BootImagePackageID XXX00134
Then open a SCCM PS prompt and paste this in there.
Function Add-BootImageDriver
{
[CmdLetBinding()]
Param(
[Parameter(Mandatory=$True,HelpMessage="Please Enter Site Server Site
code")]
$SiteCode,
[Parameter(Mandatory=$True,HelpMessage="Please Enter Site Server Name")]
$SiteServer,
[Parameter(Mandatory=$True,HelpMessage="Please Enter Driver CI_ID")]
$DriverCI,
[Parameter(Mandatory=$True,HelpMessage="Please Enter Boot Image Packge
ID")]
$BootImagePackageID
)
#Get the Boot image and the Driver
$BootImageQuery = Get-WmiObject -Namespace "Root\SMS\Site_$SiteCode"
-Class SMS_BootImagePackage -ComputerName $SiteServer -Filter
"PackageID='$BootImagePackageID'"
$DriverQuery = Get-WmiObject -Namespace "Root\SMS\Site_$SiteCode"
-Class SMS_Driver -ComputerName $SiteServer -Filter "CI_ID='$DriverCI'"
#Read the Lazy properties also
$BootImageQuery.Get()
#New Driver details
$NewBootImageDriver =
([WMIClass]"\\$SiteServer\root\SMS\Site_$($SiteCode):SMS_Driver_Details").CreateInstance()
$NewBootImageDriver.ID = $DriverQuery.CI_ID
$NewBootImageDriver.SourcePath = $DriverQuery.ContentSourcePath
#Add the driver details
$BootImageQuery.ReferencedDrivers +=
$NewBootImageDriver.psobject.baseobject
$BootImageQuery.Put()
}
then copy the output of the SQL query and paste it into the powershell
command