That’s quite nice Todd – you should blog it. As an alternative – you could simply tag the drivers you add to a boot image using a category. Then it’s super easy to see which ones are in a boot image. It takes an extra step and some discipline to do this of course, but so do most things that are good for you ☺
J From: [email protected] [mailto:[email protected]] On Behalf Of Todd Hemsell Sent: Wednesday, August 10, 2016 10:46 AM To: [email protected] Subject: [mssms] Move Drivers from one boot image to another. 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<file://$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

