Im Rahmen eines Softwarepaketes hat mein Kollege ein Powershellscript erstellt um einen Treiber zu deinstallieren. Es muss nur der Name des Treibers (inf-Datei) angegeben werden. In diesem Fall ein Canon Scanner. (CanoScan LiDE 110)
#########################################
# #
# ©@Christoph Keller #
# #
#########################################
#initilizing variables
$oeminfmatches = $null;
$infdir = $env:windir+"\inf";
#search for oem*.inf files
$oeminflist = gci $infdir\*.* -Include oem*.inf;
#searchpattern
$infname = "CanoScan LiDE 110";
#searching in $oeminflist and putting matches in $oeminfmatches; backing up matches in $logdir
foreach ($inf in $oeminflist) {
Select-String -path $inf.FullName -Pattern $infname -List| foreach {
$oeminfmatches += $_.filename;
#copy-item $_.path $logdir -force;
#write-host " Found $infname in"$_.path ;
}
}
#start uninstalling infs
if ($oeminfmatches -ne $null){
foreach ($match in $oeminfmatches) {
pnputil -f -d $match
}
Restart-Service Spooler;
}
else {
write-host "No inf-files found matching pattern: $infname";
}