Liste installierter OEM Driver - Powershell PNPutil

Folgender Code nimmt die Elemente sämtlicher OEM Drivers, aufgelistet per PNPutil, in ein Array auf und gibt diese in einer “GridView” aus.

# load output of util into memory as array
$PNPutil = pnputil -e
#
# parse the array and create objects
$PNPObjects = for($i = 2;$i -lt $PNPutil.length;$i += 6){
    $Array = @{}
    for($j = 0; $j -lt 5;$j ++){
        $Pair = $PNPutil[$i+$j].Split("\:")
        $Array.Add($Pair[0].Trim().Replace(" ","_"),$Pair[1].Trim().Replace("            ",""))
    }
New-Object PSObject -Property $Array
}
# output in gridview
$PNPObjects | Out-GridView

 

Folgender zusätzlich Code kann verwendet werden um sämtliche Objekte eines bestimmten Herstellers, Klasse und Version auszugeben. Die oem###.inf Werte können für die Entfernung eines OEM Driver Packages genutzt werden.

# search objects for a specific package provider, class and version
$OEM = ($PNPObjects |?{($_.Driver_date_and_version -like "*5303.1600.0.0") -and ($_.Driver_package_provider -match "Xerox") -and ($_.Class -match "Printer")} | Select-Object Published_Name -ExpandProperty Published_Name)
Loading