Another option using PoSH.

Import boot image drivers from existing boot image
https://gallery.technet.microsoft.com/Import-boot-image-drivers-c43e04da

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


Reply via email to