Wow, thanks! I'll try this out and see what the results are.
Printable View
Wow, thanks! I'll try this out and see what the results are.
Hi CeeBee,
I´ve been searching for hours for a script / batch like this. But it seems that it is not working on a german Windows Vista Business x86 Sp2. I copied the code into a batch called pnp.bat and opened a cmd with administrative rights. So when I call the pnp.bat without parameters I get the respsonse OOPSIE and so son. But when I call the pnp.bat with a parameter like samsung ... nothing seems to happen. Any idea?
with kind regards from germany
M. Theis
If nothing happens then it's likely that pnputil.exe -e produces no output. I'd look into why that happens. Sorry I don't have a Vista to try. Or maybe it doesn't spit out "Published name" and "Provider" but the equivalent in German? You'd have to match the proper strings...
Hi Ceebee,
thanks for response. So here is what I changed in the script (marked red):
And here is the output of pnputil -eCode:@ECHO OFF
CHCP 1252
SETLOCAL ENABLEDELAYEDEXPANSION
SET LAST_NAME = ""
SET LAST_PROVIDER = ""
SET PROVIDER_TO_DELETE=%1 %2 %3
IF /I "%1"=="" (
ECHO OOOPSIE... FORGOT TO SPECIFY A NAME???
GOTO END
)
FOR /F "tokens=1* delims=:" %%i IN ('pnputil.exe -e') DO (
IF /I "%%i"=="Veröffentlichter Name " (
SET LAST_NAME="%%j"
)
IF /I "%%i"=="Treiberpaketanbieter " (
SET LAST_PROVIDER="%%j"
ECHO FIND:%PROVIDER_TO_DELETE% in !LAST_PROVIDER! FOR !LAST_NAME!
SET REPLACED_PROVIDER=!LAST_PROVIDER:%PROVIDER_TO_DELETE%=!
SET NAME_TO_DELETE=!LAST_NAME: =!
IF /I NOT !REPLACED_PROVIDER!==!LAST_PROVIDER! (
SET NAME_TO_DELETE=!LAST_NAME: =!
ECHO DELETING DRIVER !NAME_TO_DELETE! PROVIDER=!LAST_PROVIDER!
REM ######REMOVE THE REM BELOW TO ACTUALLY DELETE##############
REM PNPUTIL.EXE -f -d !NAME_TO_DELETE!
) ELSE (
ECHO SKIPPING DRIVER !NAME_TO_DELETE! PROVIDER=!LAST_PROVIDER!
)
)
)
:END
One thing confuses me. When I use "pnputil -e" the output looks like above. But when I try to send the output to file with "pnputil -e > output.txt" ... the outputfile is being created but stays empty.Quote:
C:\TEMP>pnputil -e
Microsoft-PnP-Dienstprogramm
Veröffentlichter Name: oem0.inf
Treiberpaketanbieter: Microsoft
Klasse : Drucker
Treiberversion und -datum: Unbekannte Treiberversion und unbekanntes Treiberdatu
m
Name des Signaturgebers: microsoft windows
Veröffentlichter Name: oem1.inf
Treiberpaketanbieter: Microsoft
Klasse : Drucker
Treiberversion und -datum: Unbekannte Treiberversion und unbekanntes Treiberdatu
m
Name des Signaturgebers: microsoft windows
Veröffentlichter Name: oem2.inf
Treiberpaketanbieter: AnalogDevices
Klasse : Audio-, Video- und Gamecontroller
Treiberversion und -datum: 07/10/2007 6.10.01.5490
Name des Signaturgebers: microsoft windows hardware compatibility publisher
Veröffentlichter Name: oem3.inf
Treiberpaketanbieter: Intel
Klasse : Netzwerkadapter
Treiberversion und -datum: 04/13/2007 9.8.20.0
Name des Signaturgebers: Microsoft Windows Hardware Compatibility Publisher
Veröffentlichter Name: oem4.inf
Treiberpaketanbieter: Intel
Klasse : Netzwerkadapter
Treiberversion und -datum: 04/13/2007 9.8.20.0
Name des Signaturgebers: microsoft windows hardware compatibility publisher
Veröffentlichter Name: oem5.inf
Treiberpaketanbieter: Microsoft
Klasse : Drucker
Treiberversion und -datum: Unbekannte Treiberversion und unbekanntes Treiberdatu
m
Name des Signaturgebers: microsoft windows
Veröffentlichter Name: oem6.inf
Treiberpaketanbieter: Intel
Klasse : Anschlüsse (COM & LPT)
Treiberversion und -datum: 03/20/2007 5.4.0.1065
Name des Signaturgebers: Microsoft Windows Hardware Compatibility Publisher
Veröffentlichter Name: oem7.inf
Treiberpaketanbieter: Intel
Klasse : Systemgeräte
Treiberversion und -datum: 05/11/2007 3.0.30.1086
Name des Signaturgebers: Microsoft Windows Hardware Compatibility Publisher
Veröffentlichter Name: oem8.inf
Treiberpaketanbieter: Intel
Klasse : Systemgeräte
Treiberversion und -datum: 02/06/2007 8.3.0.1011
Name des Signaturgebers: Microsoft Windows Hardware Compatibility Publisher
Veröffentlichter Name: oem9.inf
Treiberpaketanbieter: Intel
Klasse : IDE ATA/ATAPI-Controller
Treiberversion und -datum: 01/13/2007 8.3.0.1008
Name des Signaturgebers: Microsoft Windows Hardware Compatibility Publisher
Veröffentlichter Name: oem10.inf
Treiberpaketanbieter: Intel
Klasse : Systemgeräte
Treiberversion und -datum: 02/05/2007 8.3.0.1011
Name des Signaturgebers: Microsoft Windows Hardware Compatibility Publisher
Veröffentlichter Name: oem11.inf
Treiberpaketanbieter: Intel
Klasse : IDE ATA/ATAPI-Controller
Treiberversion und -datum: 02/05/2007 8.3.0.1011
Name des Signaturgebers: Microsoft Windows Hardware Compatibility Publisher
Veröffentlichter Name: oem20.inf
Treiberpaketanbieter: VMware, Inc.
Klasse : USB-Controller
Treiberversion und -datum: 05/21/2009 4.0.4.0
Name des Signaturgebers: microsoft windows hardware compatibility publisher
Veröffentlichter Name: oem12.inf
Treiberpaketanbieter: Intel
Klasse : Systemgeräte
Treiberversion und -datum: 01/13/2007 8.3.0.1008
Name des Signaturgebers: Microsoft Windows Hardware Compatibility Publisher
Veröffentlichter Name: oem21.inf
Treiberpaketanbieter: VMware, Inc.
Klasse : Netzwerkdienst
Treiberversion und -datum: 06/29/2012 4.1.4.0
Name des Signaturgebers: microsoft windows hardware compatibility publisher
Veröffentlichter Name: oem30.inf
Treiberpaketanbieter: HTC
Klasse : Netzwerkprotokoll
Treiberversion und -datum: 06/25/2010 1.0.0.1
Name des Signaturgebers: microsoft windows hardware compatibility publisher
Veröffentlichter Name: oem13.inf
Treiberpaketanbieter: Intel
Klasse : USB-Controller
Treiberversion und -datum: 02/05/2007 8.3.0.1011
Name des Signaturgebers: Microsoft Windows Hardware Compatibility Publisher
Veröffentlichter Name: oem22.inf
Treiberpaketanbieter: VMware, Inc.
Klasse : Netzwerkadapter
Treiberversion und -datum: 06/29/2012 4.1.4.0
Name des Signaturgebers: microsoft windows hardware compatibility publisher
Veröffentlichter Name: oem31.inf
Treiberpaketanbieter: EPSON
Klasse : Drucker
Treiberversion und -datum: 07/18/2012 1.31.00.00
Name des Signaturgebers: microsoft windows hardware compatibility publisher
Veröffentlichter Name: oem14.inf
Treiberpaketanbieter: AnalogDevices
Klasse : Audio-, Video- und Gamecontroller
Treiberversion und -datum: 07/08/2008 6.10.01.5860
Name des Signaturgebers: Microsoft Windows Hardware Compatibility Publisher
Veröffentlichter Name: oem23.inf
Treiberpaketanbieter: VMware, Inc.
Klasse : Systemgeräte
Treiberversion und -datum: 02/16/2012 9.3.51.0
Name des Signaturgebers: microsoft windows hardware compatibility publisher
Veröffentlichter Name: oem32.inf
Treiberpaketanbieter: EPSON
Klasse : Bildverarbeitungsgeräte
Treiberversion und -datum: 03/15/2012 3.7.9.0
Name des Signaturgebers: microsoft windows hardware compatibility publisher
Veröffentlichter Name: oem15.inf
Treiberpaketanbieter: Samsung
Klasse : Drucker
Treiberversion und -datum: 07/04/2007 3.04.32
Name des Signaturgebers: microsoft windows hardware compatibility publisher
Veröffentlichter Name: oem24.inf
Treiberpaketanbieter: Aladdin Knowledge Systems
Klasse : PCMCIA-Adapter
Treiberversion und -datum: 10/23/2006 1.02
Name des Signaturgebers: microsoft windows hardware compatibility publisher
Veröffentlichter Name: oem16.inf
Treiberpaketanbieter: Intel Corporation
Klasse : Grafikkarte
Treiberversion und -datum: 04/18/2008 7.15.10.1472
Name des Signaturgebers: microsoft windows hardware compatibility publisher
Veröffentlichter Name: oem25.inf
Treiberpaketanbieter: SafeNet Inc.
Klasse : USB-Controller
Treiberversion und -datum: 06/28/2012 6.25
Name des Signaturgebers: microsoft windows hardware compatibility publisher
Veröffentlichter Name: oem17.inf
Treiberpaketanbieter: Trend Micro
Klasse : Netzwerkdienst
Treiberversion und -datum: 01/09/2013 5.82.0.1062
Name des Signaturgebers: microsoft windows hardware compatibility publisher
Veröffentlichter Name: oem26.inf
Treiberpaketanbieter: SafeNet Inc.
Klasse : USB-Controller
Treiberversion und -datum: 06/28/2012 6.25
Name des Signaturgebers: microsoft windows hardware compatibility publisher
Veröffentlichter Name: oem18.inf
Treiberpaketanbieter: DameWare Development
Klasse : Grafikkarte
Treiberversion und -datum: 03/14/2008 1.1.0.0
Name des Signaturgebers: microsoft windows hardware compatibility publisher
Veröffentlichter Name: oem27.inf
Treiberpaketanbieter: SafeNet Inc.
Klasse : USB-Controller
Treiberversion und -datum: 06/28/2012 6.25
Name des Signaturgebers: microsoft windows hardware compatibility publisher
Veröffentlichter Name: oem19.inf
Treiberpaketanbieter: DameWare
Klasse : Tastaturen
Treiberversion und -datum: 04/10/2007 1.0.0.1
Name des Signaturgebers: microsoft windows hardware compatibility publisher
Veröffentlichter Name: oem28.inf
Treiberpaketanbieter: FTDI
Klasse : USB-Controller
Treiberversion und -datum: 05/19/2006 2.00.00
Name des Signaturgebers:
Veröffentlichter Name: oem29.inf
Treiberpaketanbieter: EPSON
Klasse : Drucker
Treiberversion und -datum: 06/03/2013 1.61.00.00
Name des Signaturgebers: microsoft windows hardware compatibility publisher
Any idea?
With kind regards
Michael
Oh no waited to long for sending post ... so here again the 2nd try.
Hi CeeBee, thanks for the response.
I changed the batch file to match German language (changes are marked red)
An here is the output from ponputil -e (copied from cmd because it is not possible to write the output to file. The MSDN page for WriteConsole says that redirecting standard output to a file causes WriteConsole to fail and that WriteFile should be used instead. The debugger confirms that pnputil.exe does call kernel32!WriteConsoleW and kernel32!WriteConsoleInputW.)Code:@ECHO OFF
CHCP 850
SETLOCAL ENABLEDELAYEDEXPANSION
SET LAST_NAME = ""
SET LAST_PROVIDER = ""
SET PROVIDER_TO_DELETE=%1 %2 %3
IF /I "%1"=="" (
ECHO OOOPSIE... FORGOT TO SPECIFY A NAME???
GOTO END
)
FOR /F "tokens=1* delims=:" %%i IN ('pnputil.exe -e') DO (
IF /I "%%i"=="Veröffentlichter Name " (
SET LAST_NAME="%%j"
)
IF /I "%%i"=="Treiberpaketanbieter " (
SET LAST_PROVIDER="%%j"
ECHO FIND:%PROVIDER_TO_DELETE% in !LAST_PROVIDER! FOR !LAST_NAME!
SET REPLACED_PROVIDER=!LAST_PROVIDER:%PROVIDER_TO_DELETE%=!
SET NAME_TO_DELETE=!LAST_NAME: =!
IF /I NOT !REPLACED_PROVIDER!==!LAST_PROVIDER! (
SET NAME_TO_DELETE=!LAST_NAME: =!
ECHO DELETING DRIVER !NAME_TO_DELETE! PROVIDER=!LAST_PROVIDER!
REM ######REMOVE THE REM BELOW TO ACTUALLY DELETE##############
REM PNPUTIL.EXE -f -d !NAME_TO_DELETE!
) ELSE (
ECHO SKIPPING DRIVER !NAME_TO_DELETE! PROVIDER=!LAST_PROVIDER!
)
)
)
:END
Do you have any further ideas?Quote:
C:\TEMP>pnputil -e
Microsoft-PnP-Dienstprogramm
Veröffentlichter Name: oem0.inf
Treiberpaketanbieter: Microsoft
Klasse : Drucker
Treiberversion und -datum: Unbekannte Treiberversion und unbekanntes Treiberdatu
m
Name des Signaturgebers: microsoft windows
Veröffentlichter Name: oem1.inf
Treiberpaketanbieter: Microsoft
Klasse : Drucker
Treiberversion und -datum: Unbekannte Treiberversion und unbekanntes Treiberdatu
m
Name des Signaturgebers: microsoft windows
Veröffentlichter Name: oem2.inf
Treiberpaketanbieter: AnalogDevices
Klasse : Audio-, Video- und Gamecontroller
Treiberversion und -datum: 07/10/2007 6.10.01.5490
Name des Signaturgebers: microsoft windows hardware compatibility publisher
Veröffentlichter Name: oem3.inf
Treiberpaketanbieter: Intel
Klasse : Netzwerkadapter
Treiberversion und -datum: 04/13/2007 9.8.20.0
Name des Signaturgebers: Microsoft Windows Hardware Compatibility Publisher
Veröffentlichter Name: oem4.inf
Treiberpaketanbieter: Intel
Klasse : Netzwerkadapter
Treiberversion und -datum: 04/13/2007 9.8.20.0
Name des Signaturgebers: microsoft windows hardware compatibility publisher
Veröffentlichter Name: oem5.inf
Treiberpaketanbieter: Microsoft
Klasse : Drucker
Treiberversion und -datum: Unbekannte Treiberversion und unbekanntes Treiberdatu
m
Name des Signaturgebers: microsoft windows
Veröffentlichter Name: oem6.inf
Treiberpaketanbieter: Intel
Klasse : Anschlüsse (COM & LPT)
Treiberversion und -datum: 03/20/2007 5.4.0.1065
Name des Signaturgebers: Microsoft Windows Hardware Compatibility Publisher
Veröffentlichter Name: oem7.inf
Treiberpaketanbieter: Intel
Klasse : Systemgeräte
Treiberversion und -datum: 05/11/2007 3.0.30.1086
Name des Signaturgebers: Microsoft Windows Hardware Compatibility Publisher
Veröffentlichter Name: oem8.inf
Treiberpaketanbieter: Intel
Klasse : Systemgeräte
Treiberversion und -datum: 02/06/2007 8.3.0.1011
Name des Signaturgebers: Microsoft Windows Hardware Compatibility Publisher
Veröffentlichter Name: oem9.inf
Treiberpaketanbieter: Intel
Klasse : IDE ATA/ATAPI-Controller
Treiberversion und -datum: 01/13/2007 8.3.0.1008
Name des Signaturgebers: Microsoft Windows Hardware Compatibility Publisher
Veröffentlichter Name: oem10.inf
Treiberpaketanbieter: Intel
Klasse : Systemgeräte
Treiberversion und -datum: 02/05/2007 8.3.0.1011
Name des Signaturgebers: Microsoft Windows Hardware Compatibility Publisher
Veröffentlichter Name: oem11.inf
Treiberpaketanbieter: Intel
Klasse : IDE ATA/ATAPI-Controller
Treiberversion und -datum: 02/05/2007 8.3.0.1011
Name des Signaturgebers: Microsoft Windows Hardware Compatibility Publisher
Veröffentlichter Name: oem20.inf
Treiberpaketanbieter: VMware, Inc.
Klasse : USB-Controller
Treiberversion und -datum: 05/21/2009 4.0.4.0
Name des Signaturgebers: microsoft windows hardware compatibility publisher
Veröffentlichter Name: oem12.inf
Treiberpaketanbieter: Intel
Klasse : Systemgeräte
Treiberversion und -datum: 01/13/2007 8.3.0.1008
Name des Signaturgebers: Microsoft Windows Hardware Compatibility Publisher
Veröffentlichter Name: oem21.inf
Treiberpaketanbieter: VMware, Inc.
Klasse : Netzwerkdienst
Treiberversion und -datum: 06/29/2012 4.1.4.0
Name des Signaturgebers: microsoft windows hardware compatibility publisher
Veröffentlichter Name: oem30.inf
Treiberpaketanbieter: HTC
Klasse : Netzwerkprotokoll
Treiberversion und -datum: 06/25/2010 1.0.0.1
Name des Signaturgebers: microsoft windows hardware compatibility publisher
Veröffentlichter Name: oem13.inf
Treiberpaketanbieter: Intel
Klasse : USB-Controller
Treiberversion und -datum: 02/05/2007 8.3.0.1011
Name des Signaturgebers: Microsoft Windows Hardware Compatibility Publisher
Veröffentlichter Name: oem22.inf
Treiberpaketanbieter: VMware, Inc.
Klasse : Netzwerkadapter
Treiberversion und -datum: 06/29/2012 4.1.4.0
Name des Signaturgebers: microsoft windows hardware compatibility publisher
Veröffentlichter Name: oem31.inf
Treiberpaketanbieter: EPSON
Klasse : Drucker
Treiberversion und -datum: 07/18/2012 1.31.00.00
Name des Signaturgebers: microsoft windows hardware compatibility publisher
Veröffentlichter Name: oem14.inf
Treiberpaketanbieter: AnalogDevices
Klasse : Audio-, Video- und Gamecontroller
Treiberversion und -datum: 07/08/2008 6.10.01.5860
Name des Signaturgebers: Microsoft Windows Hardware Compatibility Publisher
Veröffentlichter Name: oem23.inf
Treiberpaketanbieter: VMware, Inc.
Klasse : Systemgeräte
Treiberversion und -datum: 02/16/2012 9.3.51.0
Name des Signaturgebers: microsoft windows hardware compatibility publisher
Veröffentlichter Name: oem32.inf
Treiberpaketanbieter: EPSON
Klasse : Bildverarbeitungsgeräte
Treiberversion und -datum: 03/15/2012 3.7.9.0
Name des Signaturgebers: microsoft windows hardware compatibility publisher
Veröffentlichter Name: oem15.inf
Treiberpaketanbieter: Samsung
Klasse : Drucker
Treiberversion und -datum: 07/04/2007 3.04.32
Name des Signaturgebers: microsoft windows hardware compatibility publisher
Veröffentlichter Name: oem24.inf
Treiberpaketanbieter: Aladdin Knowledge Systems
Klasse : PCMCIA-Adapter
Treiberversion und -datum: 10/23/2006 1.02
Name des Signaturgebers: microsoft windows hardware compatibility publisher
Veröffentlichter Name: oem16.inf
Treiberpaketanbieter: Intel Corporation
Klasse : Grafikkarte
Treiberversion und -datum: 04/18/2008 7.15.10.1472
Name des Signaturgebers: microsoft windows hardware compatibility publisher
Veröffentlichter Name: oem25.inf
Treiberpaketanbieter: SafeNet Inc.
Klasse : USB-Controller
Treiberversion und -datum: 06/28/2012 6.25
Name des Signaturgebers: microsoft windows hardware compatibility publisher
Veröffentlichter Name: oem17.inf
Treiberpaketanbieter: Trend Micro
Klasse : Netzwerkdienst
Treiberversion und -datum: 01/09/2013 5.82.0.1062
Name des Signaturgebers: microsoft windows hardware compatibility publisher
Veröffentlichter Name: oem26.inf
Treiberpaketanbieter: SafeNet Inc.
Klasse : USB-Controller
Treiberversion und -datum: 06/28/2012 6.25
Name des Signaturgebers: microsoft windows hardware compatibility publisher
Veröffentlichter Name: oem18.inf
Treiberpaketanbieter: DameWare Development
Klasse : Grafikkarte
Treiberversion und -datum: 03/14/2008 1.1.0.0
Name des Signaturgebers: microsoft windows hardware compatibility publisher
Veröffentlichter Name: oem27.inf
Treiberpaketanbieter: SafeNet Inc.
Klasse : USB-Controller
Treiberversion und -datum: 06/28/2012 6.25
Name des Signaturgebers: microsoft windows hardware compatibility publisher
Veröffentlichter Name: oem19.inf
Treiberpaketanbieter: DameWare
Klasse : Tastaturen
Treiberversion und -datum: 04/10/2007 1.0.0.1
Name des Signaturgebers: microsoft windows hardware compatibility publisher
Veröffentlichter Name: oem28.inf
Treiberpaketanbieter: FTDI
Klasse : USB-Controller
Treiberversion und -datum: 05/19/2006 2.00.00
Name des Signaturgebers:
Veröffentlichter Name: oem29.inf
Treiberpaketanbieter: EPSON
Klasse : Drucker
Treiberversion und -datum: 06/03/2013 1.61.00.00
Name des Signaturgebers: microsoft windows hardware compatibility publisher
I was able to output to a file, no issue.
Try this in a COMMAND PROMPT:
Let's see what it outputs.Code:FOR /F "tokens=1* delims=:" %i IN ('pnputil.exe -e') DO ECHO %i %j %k %l
Well it must be something related to Vista or to the German one.. no idea.. works for me...
Code:C:\>FOR /F "tokens=1* delims=:" %i IN ('pnputil.exe -e') DO ECHO %i %j %k %l
C:\>ECHO Microsoft PnP Utility %k %l
Microsoft PnP Utility %k %l
C:\>ECHO Published name oem0.inf %k %l
Published name oem0.inf %k %l
C:\>ECHO Driver package provider Microsoft %k %l
Driver package provider Microsoft %k %l
C:\>ECHO Class Printers %k %l
Class Printers %k %l
C:\>ECHO Driver date and version 06/21/2006 6.1.7600.16385 %k %l
Driver date and version 06/21/2006 6.1.7600.16385 %k %l
C:\>ECHO Signer name Microsoft Windows %k %l
Signer name Microsoft Windows %k %l
C:\>ECHO Published name oem1.inf %k %l
Published name oem1.inf %k %l
C:\>ECHO Driver package provider Microsoft %k %l
Driver package provider Microsoft %k %l
C:\>ECHO Class Printers %k %l
Class Printers %k %l
C:\>ECHO Driver date and version 06/21/2006 6.1.7601.17514 %k %l
Driver date and version 06/21/2006 6.1.7601.17514 %k %l
Hi CeeBee,
thanks for all. I still don´t know why your batch isn´t working for me, so I had to write it on my own and found a nice solution for doing this. Hope this will help others, too.
Code:@echo off
c:
cd c:\windows\inf
REM 1st run to test if the result is correctly
for /f "delims=:" %%a in ('findstr "\<drivername.CAT\>" "*.inf"') do echo "%%a" 2>nul
REM 2nd run only remove next REM if you are sure what you are doing
REM for /f "delims=:" %%a in ('findstr "\<drivername.CAT\>" "*.inf"') do pnputil -f -d "%%a"