en-us/about_DriverTool.PowerCLI.help.txt

TOPIC
    about_DriverTool.PowerCLI
     
SHORT DESCRIPTION
    DriverTool.PowerCLI provides CmdLets for automation of driver packs and driver
    updates for Dell, HP and Lenovo PC models.
 
LONG DESCRIPTION
     
    To automate driver packs:
    -------------------------
    Automated procedure for download, package and adding driver packs to a new task sequence.
    The task sequence created can be added as a sub task sequence to the main OSD task sequence.
 
    1. Download, extract and package driver packs. Example:
     
        @("20QW","20QF") | Foreach-Object{ Write-Host "Getting driver pack for model $_"; Get-DtDriverPack -Manufacturer Lenovo -ModelCode "$_" -OperatingSystem "win10" -OsBuild "21H2" -Verbose } | Invoke-DtDownloadDriverPack
         
        The packages will be created in c:\temp\D on developement machine and should be copied to final location on Sccm Server manually.
 
    2. Create SCCM packages after copying the package folders to server. Example:
     
        $packageDefintionSms = Get-ChildItem -Path "Z:\Packages\CM-Drivers\21H2" -Filter "PackageDefinition.sms" -Recurse | ForEach-Object {$_.FullName}
        $packageDefintionSms
        $packageDefintionSms | New-DtCmPackageFromDriverPackPackageDefinitionSms
 
    3. Create task sequence with all the driver packages added. Example:
 
        $packageDefintionSms = Get-ChildItem -Path "Z:\Applications\CM-Drivers\21H2" -Filter "PackageDefinition.sms" -Recurse | ForEach-Object {$_.FullName}
        $packageDefintionSms
        New-DtCmTaskSequenceFromDriverPackPackageDefinitionSms -Path $packageDefintionSms -Name "Test CM Drivers 21H2" -Description "Test CM Drivers 21H2" -ProgramName "INSTALL-OFFLINE-OS"
 
 
    To automate driver updates:
    ---------------------------
    Automated procedure for download, package and adding driver updates to a new task sequence.
    The resulting task sequence can be added as a sub task sequence to the main OSD task sequence.
 
    This procedures downloads _all_ driver updates for a specified computer model and can be run
    without having access to the computer model in question.
 
    Note! Some of the driver updates for a model might allready be installed or not even required
    due to differences in actual hardware components installed. The resulting driver updates package
    can therefore be manually trimmed for unrequired drivers. If the resulting driver package from this
    procedure is not trimmed for unrequired drivers, the package might still work sucessfully but assumes
    that all driver updates quits gracefully if not applicable. Testing is allways neccessary!
 
    Note! Be sure to exclude BIOS and other Firmware from a driver update package as such updates
    requires special care and should be packaged separatly.
 
    Note! An automated procedure for creating an allready trimmed package is availble when signed into
    the actual computer model in question. The required drivers can then be calculated based on locally
    installed updates after filling the machine up using the vendor update utility.
 
    1. Download, extract and package driver packs. Example:
 
        @("20QW","20QF") | Foreach-Object{ Write-Host "Getting driver updates for model $_"; Get-DtDriverUpdates -Manufacturer Lenovo -ModelCode "$_" -OperatingSystem "WIN10X64" -OsBuild "21H2" -ExcludeDriverUpdates @("BIOS","Firmware") -Verbose } | Invoke-DtDownloadDriverUpdates
 
        Note! Some driver updates when extracted might result in a path longer than 256 characters. Try enabling long path support in registry ( [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem]LongPathsEnabled=1) or extract such updates manually to a shorter root path before moving the result to the package drivers folder.
         
        The packages will be created in c:\temp\DU on developement machine and should be copied to final location on Sccm Server manually. Example server locations:
        * Z:\Packages\DriverUpdates\21H2\20QW
        * Z:\Packages\DriverUpdates\21H2\20QF
 
    2. Create SCCM packages after copying the package folders to server. Example:
     
        $packageDefintionSms = Get-ChildItem -Path "Z:\Packages\DriverUpdates\21H2" -Filter "PackageDefinition.sms" -Recurse -Depth 3| ForEach-Object {$_.FullName}
        $packageDefintionSms
        $packageDefintionSms | New-DtCmPackageFromDriverPackPackageDefinitionSms
 
    Note! When recursing the directory, the recursion depth is set to avoid getting PackageDefinition.sms for driver updates in the Drivers sub folders. The recursion depth must be set depending on start point of recursion.
 
    3. Create task sequence with all the driver update packages added. Example:
 
        $packageDefintionSms = Get-ChildItem -Path "Z:\Packages\DriverUpdates\21H2" -Filter "PackageDefinition.sms" -Recurse -Depth 3| ForEach-Object {$_.FullName}
        $packageDefintionSms
        New-DtCmTaskSequenceFromDriverPackPackageDefinitionSms -Path $packageDefintionSms -Name "Test Driver Updates 21H2" -Description "Test Driver Updates 21H2" -ProgramName "INSTALL"
     
KEYWORDS
    DriverTool PowerCLI Package DriverPack DriverUpdate