Quantcast
Channel: Deployment Research - Johan Arwidmark
Viewing all articles
Browse latest Browse all 168

Finding drivers that does not have a drive package in ConfigMgr 2012

$
0
0

Here is a script that helps you find drivers in ConfigMgr 2012 that are not associated with a driver package. Very useful if you need to some house cleaning in the drive repository.

Credit goes to Kaido Järvemets for awesome logic in the script!

You can also download the script.

<#
.Synopsis
   This script queries Configuration Manager 2012 Drivers that are not related with any Driver Packages
.DESCRIPTION
.EXAMPLE
    Get-CMUnusedDrivers.ps1 -SiteCode PS1 -SiteServer CM01
.NOTES
    Developed By Johan Arwidmark and Kaido Järvemets
    Version 1.0
#>
[CMDLETBINDING()]
Param(
    [Parameter(Mandatory=$True,HelpMessage="Please Enter CM Site Server")]
        $SiteServer,
    [Parameter(Mandatory=$True,HelpMessage="Please Enter CM Site Code")]
        $SiteCode
    )

Try{
    $DriverAr = @()
    $Drivers = Get-WmiObject -Namespace "Root\SMS\Site_$($SiteCode)" -Class SMS_Driver -ErrorAction STOP -ComputerName $SiteServer
    foreach($Item in $Drivers){
        Try{
            $Query = Get-WmiObject -Namespace "Root\SMS\Site_$($SiteCode)" -Query "select * from SMS_Driver where CI_ID not in(select CI_ID from SMS_DriverContainer where CI_ID='$($item.CI_ID)') and CI_ID='$($item.CI_ID)'" -ErrorAction STOP -ComputerName $SiteServer
                if(($Query | Measure-Object | Select-Object -ExpandProperty Count) -ne 0){
                    $DObject = New-Object PSOBJECT
                        $DObject | Add-Member -MemberType NoteProperty -Name "CI_ID" -Value $Query.CI_ID
                        $DObject | Add-Member -MemberType NoteProperty -Name "LocalizedDisplayName" -Value $Query.LocalizedDisplayName
                        $DObject | Add-Member -MemberType NoteProperty -Name "ContentSourcePath" -Value $Query.ContentSourcePath
                    $DriverAr += $DObject
                }
        }
        Catch{
            $_.Exception.Message
        }
    
    }
    $DriverAr
}
Catch{
    $_.Exception.Message
}

More ...

Viewing all articles
Browse latest Browse all 168

Trending Articles