Help - Search - Members - Calendar
Full Version: Drivers Instalation in Post-Install stage (New Method)
MSFN Forums > Unattended Windows Discussion & Support > Device Drivers
Pages: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10

   
Google Internet Forums Unattended CD/DVD Guide
MadBoy
Last Updated: 31.I.2008 Current Version 2.0.0.20

What is it for:
This program was writtten to help install drivers on newly installed computers. It's main goal is to be used after Windows is installed and after user logins for the first time to Windows using Administrative account. All you do is put drivers for all (or just one) computers in one dir, start the program and press Action/Install Missing Drivers (or in Automatic mode just start program and it should do all steps by itself). It should remove unknown devices from system and recheck them with drivers you have uploaded to drivers directory of your choice. If it finds the drivers, device gets installed without any questions. Usually drivers should work in the form that they are supplied by manufacturer, but sometimes it may require some work from your side to prepare them. This program is fully functional with Bashrat Driver Packs. With version 0.7.3 program adds option to update all system drivers to the highest versions.

With version 2.0.0.17 there were heavy changes introduced to the core. Please reread this page and replace your old config with new one as it won't be the same. This version adds special new drivers instalation method which uses internal database prepare function which tries to find the right driver for device before Windows. This way only the path containing the driver is given to Windows which should heavily speed up the process of installing the drivers. Especially if you will use drivers database which was also introduced in this version.

Click to view attachment

To run program you just need:
1. pro-s_hardware_<version>.exe
2. hardware_config.xml

Below is example of how the hardware.xml can look like. As you may notice in the example below the config file is divide in couple of diffrent sections. This is to keep config more organized.

Hardware_config.xml for newest version 2.0.0.20 includes following lines:
CODE
<?xml version="1.0" encoding="utf-8"?>
<settings>
  <basic_configuration>
    <choice>manual</choice>
    <window_managing>
        <hardware_wizard>
            <wizard_use>Yes</wizard_use>
            <wizard_title>Found New Hardware Wizard</wizard_title>
            <wizard_button_cancel>Cancel</wizard_button_cancel>
            <wizard_button_next>Next</wizard_button_next>
            <wizard_button_finish>Finish</wizard_button_finish>
        </hardware_wizard>
    </window_managing>
    <share_configuration>
        <use_mapping>Yes</use_mapping>
        <map_network_drive>    
            <drive_1>
                <share_path>\\127.0.0.1\c$</share_path>
                <domain_username>EM\MadBoy</domain_username>
                <domain_password>SuperPass</domain_password>
            </drive_1>
        </map_network_drive>
    </share_configuration>
        <drivers>
          <drivers_method>New</drivers_method>
          <drivers_database_use>Yes</drivers_database_use>
          <drivers_database_recreate>No</drivers_database_recreate>
          <drivers_database_path>$ProgramDir\hardware_database.db</drivers_database_path>
          <drivers_directory_path>RELATIVE:\PenDrive\Drivers</drivers_directory_path>
          <drivers_packed>No</drivers_packed>
          <drivers_copy>No</drivers_copy>
          <drivers_copy_path>C:\DriversTest</drivers_copy_path>
          <drivers_copy_delete>No</drivers_copy_delete>
          <options>
              <method>RegistryDevicePath</method>
              <registry_path>Begin</registry_path>
              <problem_ids>01,10,18,24,28,37,39</problem_ids>
              <update_all>No</update_all>
              <plug_and_play>
                    <option>Internal</option>
                    <time_to_wait>15</time_to_wait>
              </plug_and_play>
              <shutdown>
                    <auto_reboot_when_necessary>No</auto_reboot_when_necessary>
                    <auto_reboot_when_done>No</auto_reboot_when_done>
                    <auto_login>Yes</auto_login>
                    <notify_when_done>Yes</notify_when_done>
              </shutdown>
              <time_to_run>0</time_to_run>
              <force_run>No</force_run>
              <device_manager>No</device_manager>
          </options>
        </drivers>
        <log>
          <log_overwrite>No</log_overwrite>
          <log_to_file>Yes</log_to_file>
          <log_filename_path>Drive_1:\hardware.log</log_filename_path>
          <log_option>Simple</log_option>
    </log>
        <gui>
          <hide_legacy_devices>No</hide_legacy_devices>
          <fade_in_effect>No</fade_in_effect>
          <hide_views>No</hide_views>
        </gui>
  </basic_configuration>
</settings>


Possible settings for hardware_config.xml:

QUOTE (Section less settings)
choice - possible options are Manual and Automatic. In standard mode when you choose Automatic program will automaticly checks everything and if unknown devices will be found it should remove them, and drivers path to registry or implement them into system and then redetect devices. Manual option requires pressing button and is suggested to use in early stages till you realy know what you are doing and you tested that everything works.


QUOTE (Section: <window_managing>)
About section: This section holds language specific entries. It's very imporant to set it to proper language depending on system language you have. If you don't set it to what it should be you'll end up in program stuck in a loop.

SubSection: <window_managing> \ <hardware_wizard>
About sub-section: Hardware Wizard that shows up from time to time during drivers instalation.

==> <wizard_use>Yes</wizard_use>
==> <wizard_title>Found New Hardware Wizard</wizard_title>
==> <wizard_button_cancel>Cancel</wizard_button_cancel>
==> <wizard_button_next>Next</wizard_button_next>
==> <wizard_button_finish>Finish</wizard_button_finish>


QUOTE (Section: <share_configuration>)
About section: This section allows mapping of drives.
Comments on sub-section: Mapping of drives happens at the very begging of program so the log from mapping of drives may not be available in the log (but should be visible in the GUI). This is to give everyone ability to use shares also for LOGS. You can have as many drives mapped as 20.

==> <use_mapping>Yes</use_mapping> -> possible values are Yes or No. You either want to map drives or not.
==> <map_network_drive> -> subsection that defines drives that are to be mapped.
=====> <drive_1> -> this value is quite imporant. It's name is later on used as a drive letter in values. You can have it called drive_1, myshare or even evilshare. Check example below for more explanation.
=====> <share_path>\\127.0.0.1\c$</share_path> -> full share path.
=====> <domain_username>EM\MadBoy</domain_username> -> username along with domain in format as shown in the example.
=====> <domain_password>SuperPass</domain_password> -> password in clear format. Remember it's not wise to use private accounts. Use some open for everyone that has only specific access rights to specifc shares.


Section <share_configuration> example 1:
CODE
<share_configuration>    
    <map_network_drive>
        <use_mapping>Yes</use_mapping>    
        <drive_1>
            <share_path>\\127.0.0.1\c$</share_path>
            <domain_username>EM\MadBoy</domain_username>
            <domain_password>SuperPass</domain_password>
        </drive_1>
        <evilshare>
            <share_path>\\127.0.0.1\d$</share_path>
            <domain_username>EM\MadBoy24324</domain_username>
            <domain_password>Su3432perPass</domain_password>
        </evilshare>
        <SomeOthershare>
            <share_path>\\myserver\c\shared_path</share_path>
            <domain_username>EM\MadBoy24324</domain_username>
            <domain_password>Su3432perPass</domain_password>
        </SomeOthershare>
    </map_network_drive>
</share_configuration>

Section <share_configuration> example 2:
CODE
<share_configuration>    
    <map_network_drive>
        <use_mapping>Yes</use_mapping>    
        <drive_5>
            <share_path>\\127.0.0.1\c$</share_path>
            <domain_username>EM\MadBoy</domain_username>
            <domain_password>SuperPass</domain_password>
        </drive_5>
    </map_network_drive>
</share_configuration>


QUOTE (Section: <drivers>)
About section: This sections is the most important section of this program. This is where you define how program should behave when trying to find and install drivers.
==> <drivers_method>New</drivers_method> -> Possible settings are Old and New.
[*] Old drivers method is simple and takes all directories that have files (.inf) inside and puts them either in registry (when using method RegistryDevicePath) or integrates each inf separatly to system directory (when using SetupCopyOemInf method).
[*] New drivers method is a bit more advanced. It goes thru all files (.inf) and finds Hardware ID's they support. Then program compares them with devices that require drivers to be installed (so called Error Devices) and if any drivers match then that specific driver directory is added to registry (when using method RegistryDevicePath) or integrates that inf separatly to system directory (when using SetupCopyOemInf method).
==> <drivers_database_use>Yes</drivers_database_use> -> Possible settings are Yes or No.
[*] Comment: Worth to notice information is that if you use New Drivers method you don't nessecary need to set this on. Program will internally create database of drivers anyway. However creating database of drivers overhead can heavily increase speed of finding and installing correct drivers.
==> <drivers_database_recreate>No</drivers_database_recreate> -> Possible settings are Yes or No.
[*] Comment: Not realy useful feature as it will try to create new database every time program runs. As this is time consuming it would be the same as settings <drivers_database_use> to No when using New drivers method. You may wish to skip this or simply experience this for yourself.
==> <drivers_database_path>$ProgramDir\hardware_database.db</drivers_database_path> -> Full path to drivers database. Can use variables\mapped drives as described below.
[*] Comment: This setting is important for <drivers_database_use>. If you set <drivers_database_use> to Yes and your path to this database will be incorrect program will automatically turn of <drivers_database_use>.
==> <drivers_directory_path>RELATIVE:\PenDrive\Drivers</drivers_directory_path> -> Full path to where drivers are located. Can use variables\mapped drives as described below.
==> <drivers_packed>Yes</drivers_packed> -> Possible settings are Yes or No.
[*] Comment: Both .7zip and .rar format are supported. Note this may or may not work with <drivers_database_use>. But in my opinion to get this to work you would have to unpack .7z files first, run database prepare on it and then use packed files (which would be unpacked on program run). Feel free to use Bashrat Drivers Pack with this.
==> <drivers_copy>No</drivers_copy> -> Possible settings are Yes or No.
[*] Comment: This is to be used when you want to copy drivers first to some drive before "playing" with them. Works in conjuction with <drivers_copy_path>
==> <drivers_copy_path>C:\DriversTest</drivers_copy_path> -> Full path to where drivers are to be copied. Can use variables\mapped drives as described below.
==> <drivers_copy_delete>No</drivers_copy_delete> -> Possible settings are Yes or No. This setting should be used when we want drivers to be deleted when quiting the program.

Sub-Section:<drivers> \ <options>

==> update_all - possible options are No or Yes. This feature makes Windows update all drivers to the newest possible version that it can find in given path (in my opinion it should work without problems for both RegistryDevicePath and SetupCopyOemInf method but please report on that). Keep in mind that this command takes time (depending on amount of all drivers and devices) to run. Also when this option is enabled program will go start even if there's no Devices without drivers so you don't have to use 'Force_Run' option.
==> time_to_run - time in seconds to start program. Only available in Automatic mode.
==> auto_reboot_when_done - possible options are 0 or 2 or 6 or 9. Gives ability to reboot/shutdown pc after application is ending it's work. Works only in Automatic Mode. 0 means no reboot at all. 2 means reboot computer when done, 6 means run force reboot when done (closes other applications etc), 9 means shutdown and power down computer.
==> registry_path - possible options are Begin, End, None. This option controls if "%SystemRoot%\inf;" is supposed to be added in the begining, end or none at all in the registry line HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion :: DevicePath. I believe if you set it to End it will first look for correct driver for your device in YOUR NEW DRIVERS and then in the default Windows drivers dir. If you set it to None then drivers from default Windows drivers dir won't be taken in consideration at all. Keep in mind that some crucial devices like USB that are supported by WINDOWS use this dir.
==> problem_ids - here you put numbers separated by commas i.e. 01,10,18,28,37,39. This means that devices that match one of those problems IDS will be removed. You can either increase the numbers or decrease if you think default i use is too much. On that page: http://support.microsoft.com/kb/310123/en-us you can find what each problem means. Keep in mind that there have to be 2 digits for example: 01,05,09,10,18.
==> plug_and_play - possible options are Internal or Devcon. It enforces use of one of the functions depending on preferences of the user.
==> force_run - possible options are Yes or No. It gives ability to force run even if there are no devices that require action. It can be used if devices are not visible yet for system when the program is run but when Plug and Play rescan command is run they would normally show up but wouldn't be able to find drivers.


Section <drivers> example 1:
CODE
        <drivers>
          <drivers_method>New</drivers_method>
          <drivers_database_use>Yes</drivers_database_use>
          <drivers_database_recreate>No</drivers_database_recreate>
          <drivers_database_path>$ProgramDir\hardware_database.db</drivers_database_path>
          <drivers_directory_path>RELATIVE:\PenDrive\Drivers</drivers_directory_path>
          <drivers_packed>No</drivers_packed>
          <drivers_copy>No</drivers_copy>
          <drivers_copy_path>C:\DriversTest</drivers_copy_path>
          <drivers_copy_delete>No</drivers_copy_delete>
          <options>
              <method>RegistryDevicePath</method>
              <registry_path>Begin</registry_path>
              <problem_ids>01,10,18,24,28,37,39</problem_ids>
              <update_all>No</update_all>
              <plug_and_play>
                    <option>Internal</option>
                    <time_to_wait>15</time_to_wait>
              </plug_and_play>
              <shutdown>
                    <auto_reboot_when_necessary>No</auto_reboot_when_necessary>
                    <auto_reboot_when_done>No</auto_reboot_when_done>
                    <auto_login>Yes</auto_login>
                    <notify_when_done>Yes</notify_when_done>
              </shutdown>
              <time_to_run>0</time_to_run>
              <force_run>No</force_run>
              <device_manager>No</device_manager>
          </options>
        </drivers>

Section <drivers> example 2:
CODE
        <drivers>
          <drivers_method>Old</drivers_method>
          <drivers_database_use>Yes</drivers_database_use>
          <drivers_database_recreate>No</drivers_database_recreate>
          <drivers_database_path>$ProgramDir\hardware_database.db</drivers_database_path>
          <drivers_directory_path>RELATIVE:\PenDrive\Drivers</drivers_directory_path>
          <drivers_packed>No</drivers_packed>
          <drivers_copy>No</drivers_copy>
          <drivers_copy_path>C:\DriversTest</drivers_copy_path>
          <drivers_copy_delete>No</drivers_copy_delete>
          <options>
              <method>RegistryDevicePath</method>
              <registry_path>Begin</registry_path>
              <problem_ids>01,10,18,24,28,37,39</problem_ids>
              <update_all>No</update_all>
              <plug_and_play>
                    <option>Internal</option>
                    <time_to_wait>15</time_to_wait>
              </plug_and_play>
              <shutdown>
                    <auto_reboot_when_necessary>No</auto_reboot_when_necessary>
                    <auto_reboot_when_done>No</auto_reboot_when_done>
                    <auto_login>Yes</auto_login>
                    <notify_when_done>Yes</notify_when_done>
              </shutdown>
              <time_to_run>0</time_to_run>
              <force_run>No</force_run>
              <device_manager>No</device_manager>
          </options>
        </drivers>

Section <drivers> example 3:
CODE
        <drivers>
          <drivers_method>New</drivers_method>
          <drivers_database_use>No</drivers_database_use>
          <drivers_database_recreate>No</drivers_database_recreate>
          <drivers_database_path>$ProgramDir\hardware_database.db</drivers_database_path>
          <drivers_directory_path>RELATIVE:\PenDrive\Drivers</drivers_directory_path>
          <drivers_packed>No</drivers_packed>
          <drivers_copy>No</drivers_copy>
          <drivers_copy_path>C:\DriversTest</drivers_copy_path>
          <drivers_copy_delete>No</drivers_copy_delete>
          <options>
              <method>RegistryDevicePath</method>
              <registry_path>Begin</registry_path>
              <problem_ids>01,10,18,24,28,37,39</problem_ids>
              <update_all>No</update_all>
              <plug_and_play>
                    <option>Internal</option>
                    <time_to_wait>15</time_to_wait>
              </plug_and_play>
              <shutdown>
                    <auto_reboot_when_necessary>No</auto_reboot_when_necessary>
                    <auto_reboot_when_done>No</auto_reboot_when_done>
                    <auto_login>Yes</auto_login>
                    <notify_when_done>Yes</notify_when_done>
              </shutdown>
              <time_to_run>0</time_to_run>
              <force_run>No</force_run>
              <device_manager>No</device_manager>
          </options>
        </drivers>

Section <drivers> example 4:
CODE
        <drivers>
          <drivers_method>Old</drivers_method>
          <drivers_database_use>No</drivers_database_use>
          <drivers_database_recreate>No</drivers_database_recreate>
          <drivers_database_path>$ProgramDir\hardware_database.db</drivers_database_path>
          <drivers_directory_path>RELATIVE:\PenDrive\Drivers</drivers_directory_path>
          <drivers_packed>No</drivers_packed>
          <drivers_copy>No</drivers_copy>
          <drivers_copy_path>C:\DriversTest</drivers_copy_path>
          <drivers_copy_delete>No</drivers_copy_delete>
          <options>
              <method>RegistryDevicePath</method>
              <registry_path>Begin</registry_path>
              <problem_ids>01,10,18,24,28,37,39</problem_ids>
              <update_all>No</update_all>
              <plug_and_play>
                    <option>Internal</option>
                    <time_to_wait>15</time_to_wait>
              </plug_and_play>
              <shutdown>
                    <auto_reboot_when_necessary>No</auto_reboot_when_necessary>
                    <auto_reboot_when_done>No</auto_reboot_when_done>
                    <auto_login>Yes</auto_login>
                    <notify_when_done>Yes</notify_when_done>
              </shutdown>
              <time_to_run>0</time_to_run>
              <force_run>No</force_run>
              <device_manager>No</device_manager>
          </options>
        </drivers>


QUOTE (Section: <log>)
About section: This sections takes care of logging settings.
===> <log_overwrite>No</log_overwrite> -> Possible settings are Yes or No. This is to determine if the log should be cleaned up every time you start program or not (of course only if the file specifed already exists).
===> <log_to_file>Yes</log_to_file> -> Possible settings are Yes or No. This will tell program to only show LOG in GUI or also to write to file. My suggestion leave it on. Will be easier for me to debug your problems.
===> <log_filename_path>Drive_1:\hardware.log</log_filename_path> -> Full path to your log file. In this example you can see I use Drive_1 which is one of the mapped drives. But you can put FULL PATH or use other variables which are explained below.
===> <log_option>Simple</log_option> -> Possible options are Simple, Advanced or Debug. Each level gives a bit more information to log.


Section <log> example 1:
CODE
<log>
    <log_overwrite>No</log_overwrite>
    <log_to_file>Yes</log_to_file>
    <log_filename_path>Drive_1:\hardware.log</log_filename_path>
    <log_option>Simple</log_option>
</log>

Section <log> example 2:
CODE
<log>
    <log_overwrite>No</log_overwrite>
    <log_to_file>Yes</log_to_file>
    <log_filename_path>RELATIVE:\hardware.log</log_filename_path>
    <log_option>Simple</log_option>
</log>

Section <log> example 3:
CODE
<log>
    <log_overwrite>No</log_overwrite>
    <log_to_file>Yes</log_to_file>
    <log_filename_path>$ProgramsDir\hardware.log</log_filename_path>
    <log_option>Simple</log_option>
</log>


QUOTE (Section: <gui>)
About section: This sections takes care of gui related settings.

===> <hide_legacy_devices>No</hide_legacy_devices> -> Possible settings are Yes or No. This should hide legacy/degrade devices from View.
===> <fade_in_effect>No</fade_in_effect> -> Possible settings are Yes or No. Gives fading effect, not realy useful.
===> <hide_views>No</hide_views> -> Possible settings are Yes or No. This should be only used if you don't want to see the Devices populated to Devices View, Advanced View and Error View. Only use this if you have all your settings configured properly and you know you don't want to see it. This can speed up program by about 6-10 seconds depending on CPU.



QUOTE (The use of variables in PATHs (LOG/DRIVE MAPPING/DRIVERS PATH/DRIVERS COPY PATH))
$date => returns the current date
$computername => returns the current computer name (YHP001, HOME01, SOMECOMP)
$WindowsDir => returns the full path to Windows Director (C:\Windows, D:\Win, C:\WinXP)
$ProgramDir => returns the full path to Program Directory (D:\Programs\ProHardware, E:\Drivers, C:\TestDir)
$MyDocumentsDir => returns full path My Documents Directory (C:\Documents and Settings\<some_user>\My Documents)
$TempDir => returns full path to Temp directory (C:\Temp)
$SystemDrive => returns drive letter along with : (C:, D:, E:)

RELATIVE => returns drive letter without : (C, D, E). It's drive letter relative to where program is located.
CDROM => returns drive letter without : (D, E, F, G). It's drive letter of CDROM.
REMOVABLE => returns drive letter without : (D, E, F, G). It's drive letter of all USB devices and alike.


The use of program is standard mode:
1. Set the right stuff in hardware.xml (drivers location, can have subdirs etc).
2. Start the program. Removal of Unknown devices should start (in Automatic start or requires a button in Manual start)
3. Redetection of removed devices should start.
4. After windows finishes installing drivers you should be told so. You can then safely click the Exit button.

NOTE: In Automatic version program will close itself when done.

So without further ado...
Version 2.0.0.20 - pro-s_hardware_installer_2.0.0.20.exe and config file Click to view attachment

Archive of downloads (left just incase, please use newest version above):
Version 2.0.0.19 - pro-s_hardware_installer_2.0.0.19.exe and config file Click to view attachment
Version 2.0.0.18 - pro-s_hardware_installer_2.0.0.18.exe and config file Click to view attachment
Version 2.0.0.17 - pro-s_hardware_installer_2.0.0.17.exe and config file Click to view attachment
Version 2.0.0.10 - pro-s_hardware_installer_2.0.0.10.exe and config file Click to view attachment
Version 2.0.0.9 - pro-s_hardware_installer_2.0.0.9.exe and config file Click to view attachment

To do list:
- Fix _UpdateStatusBar icons (wth is going on)
- Fix any bugs that come in a way
- Add window managing for Ignore Unsigned drivers
- Add application updater (to update itself)
- Add database online support to download drivers from the WEB
- Add timers to execute some stuff simultaneously (where possible)


Changelog for 2.0.0.20 (public)
- Fixed bug where some .inf's would be ignored (tnx GrandCat), nasty typo tongue.gif
- Fixed bug where database wouldn't be recreated if one already existed and $variables were used
Changelog for 2.0.0.19 (public)
- Added workaround for devices with &REV_ (tnx hoolie)
Changelog for 2.0.0.18 (public)
- Changed amounts of elements from 30000 to 8300000 (my bad)
Changelog for 2.0.0.17 (public)
- First release since a while (expect lots of bugs tongue.gif)
Changelog for 2.0.0.16 (non-public)
- Changes to listing of directories for RegistryDevicePath (better/optimized)
- Changes to listing of files for SetupCopyOemInf (better/optimized)
- Updated version of 7zip to 4.57
- Added window managing of Hardware wizard
Changelog for 2.0.0.15 (non-public)
- Added drive mapping (supported in LOGS/DRIVERS DB/DRIVERS PATH/DRIVERS COPY PATH)
- Changes to _DetectInfrastructure(), warning for Windows Vista added (vista is not supported as far as i can tell).
- Changes to hardware_config.xml (update your configuration!!):
===> REPLACED: <drivers_directory> AND <drivers_drive> WITH <drivers_directory_path>
===> REPLACED: <log_filename> AND <log_path> WITH <log_filename_path>
===> ADDED: <drivers_database> with subkeys added
===> ADDED: <drivers_method> added
===> ADDED: <share_configuration> with subkeys added
===> ADDED: <window_managing> with subkeys added
- Added Modern Menu look
- Added prepare drivers database
Changelog for 2.0.0.14 (non-public)
- Updated settings check to be more informative in case config file wasn't found. Was missleading back then.
- Updated settings check msgboxes to ones with icons
- Changed config file name from hardware.xml to hardware_config.xml (update your configuration!!)
- Fixed default log file names when the correct one cannot be created
Changelog for 2.0.0.13 (non-public)
- Fixed logging problem where log file was created but no data was populated
- Fixed flickering when data was populated to SimpleDeviceListView
- Updated code to newest beta of AutoIT v3 (some GUI functions were broken)
- Fixed DllCall for Plug and Play Rescan (tnx to Smoke_N)
(Changed: DllCall() new method of passing types by reference using *.)
(Changed: DllCall(): short_ptr, long_ptr, int_ptr types deprecated. Use short*, long* and int* respectively.)

Changelog for 2.0.0.10 (public)
- Fix of archives detection. Even thou <drivers_packed> option was No program was always checking for archives and not going further if it doesn't find any.
Changelog for 2.0.0.9
- Changed completly aproach to program due to several bugs in old code.
- Changed program name to Pro-S Hardware Professional.
- New GUI.
- New CODE.
- New configuration file (format .xml).
- New features.
- New autodetection of .7zip or .rar archives (only requires now drivers_packed set to Yes).
- Removed Backup option as it wasn't realy working.
- Removed Leave_registry_entries option as it wasn't realy working.
- Renamed Reboot option to auto_reboot_when_done. Other options not working!
as this will come back in newer better form. You can see in XML file that it's gonna be nice.
- Changed so now Debug option was moved to log_option which now takes Simple/Advanced/Debug as variables.
- Changed how variables look like in LOG section - they now start with $ instead of & as this char is unsupported by XML format.
- Too much to list all changes
Changelog for 0.7.3
- Fixed serious bug that was disallowing device to be removed when there was only one device in the list that didn't had any driver. (tnx kickarse!!)
- Added option Update_All_Drivers_Version (read documentation) which makes Windows update all drivers to newest version that it has access to (tnx kickarse!!)
- Cleaned up code (useless variables etc)
- Fixed bug that made the feature reboot useless (tnx kickarse!!)
- Added variable for Log_Path - &SystemDrive
Changelog for 0.7.2
- Added option to configure log files names/path to logfiles (check section [LOG]
- Changed config file format (please be advised on that!)
- Changed programs icon
Changelog for 0.7.1
- Fixed (hopefully, needs testing) better detection of devices with problems (thanks Jeca)
- Cleaned up, change code for removal of devices (requires testing aswell)
Changelog for 0.7.0
- Added option Force_run [ADVANCED] to ommit checking for unknown devices (even if 0 devices without drivers are detected program still can be run)
- Added option Reboot [ADVANCED] that in Automatic mode can reboot or shutdown pc after program is done running.
- Added option Plug_and_play [ADVANCED] to have ability to choose between Internal Plug & Play command and Devcon Rescan (was requested)
- Fixed hopefully 7zip problem with long filenames/spaces
Changelog for 0.6.8
- Added option RELATIVE to drivers_drive that takes the drive letter from path where the program is started at. So no more setting drive letter for harddrives is required. Just put hardware.exe on same drive as the drivers are located and it should find them with no problems.
- Added check for / in drivers_dir so it can't be used
Changelog for 0.6.7
- Changed to diffrent icon
- Added Time_To_Start option in Automatic mode
- Fixed so rundll32.exe process is now detected with more precision (as in even if rundll32.exe processes are running before program starts it only will care for the one that is started right after detection procedure and will ignore the rest)
Bâshrat the Sneaky
Looks very useful!
No_NaMe
upss. I am from turkei and Megaupload.com not work (All ip's blocked) smile.gif Please change download link. i want try this program newwink.gif
Thank you...
MadBoy
@No_NaMe -> here you go, server changed. Hope you will like the proggy.

@Bâshrat the Sneaky --> tnx newwink.gif hopefully will have more functions in it soon. already added some more.
MadBoy
Added support for 64bit systems.. which might be usefull for some. It needs testing so would be nice to get some response if it works or not ;p Also if anyone could tell me if in Windows 64 the paths are the same for:
"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Driver Signing", "Policy",
"HKEY_CURRENT_USER\Software\Microsoft\Driver Signing", "Policy"
"HKEY_CURRENT_USER\Software\Policies\Microsoft\Windows NT\Driver Signing", "BehaviorOnFailedVerify"
just in 64bit registry or something changed. As for 0.2.2 version until i know more on this issue Drivers Signing behaviour does the routine from 32bit system. I will update asap if anyone can confirm if keys haven't changed or have changed their paths.
MadBoy
All works?? Something doesn't work? I need some info about this, else i can't do much besides developing it further..
MadBoy
GUI ADDED, check it out smile.gif
MadBoy
Found little bug (check changelog). Fixed app is ready for download 0.3.1. I also noticed that the program can only work once on given machine. After it removes "Unknown" devices first time some weird process happens that they are not marked as Unknown anymore even when system doesn't find any drivers for them. In Device manager they are still as Unknown but Devcon doesn't care anymore. Not realy sure why. I'll try to investigate the problem and let you guys know. So far i tested it on Win2k / XP and it seems to work (although you can't start it more then once if all drivers weren't in specified dir, since it will just say nothing to remove).
donjuan
What is this man?

Click to view attachment
MadBoy
An error newwink.gif Seems that you've a lot of dirs in dirs for Drivers.. lemme check if i will find that error and i'll up the fixed version for you. Althought you should use 0.3.1 but i think it has that bug aswell. Lemme check.. and i'll get back to you. Hopefully i will get some time today to do it.
MadBoy
@donjuan - please try the new version 0.3.2 and lemme know if bug is gone.
reuphong
What is it for ?, can you tell more detail about : how to use ?, and how it works ?
MadBoy
I thought the first post was enough explanation. But lets give it one more try.. I have divided instalation into 3 phases:
1. Automatic instalation of Windows (which is covered preety much on MSFN)
2. Instalation of drivers after first login to system (this program covers this phase)
3. Instalation of applications (wrote program which installs all programs unattended, detects which server to use, with nice GUI etc but it's too personalized as it is to release it - maybe later)

Okey so basically you put hardware.exe and hardware.ini on CD (or usb driver or wherver you wish but remember to set right settings in hardware.ini). Then you also put on that CD directory with all drivers you need. So it would look like:
CODE
E:\hardware.exe
E:\hardware.ini
E:\Drivers
E:\Drivers\VGA
E:\Drivers\AUDIO
E:\Drivers\ETC


So after you're done with 1st phase (windows instalation), you login to system, insert CD with drivers (2nd phase) and start hardware.exe.. it should delete all unknown devices in your system.. set the right paths into registry so windows will have easy way to find it without your interaction, redetect removed unkown devices.. And that's it. You should by now have every drivers filled.

NOTE1: be sure to put drivers in clean format (it doesn[t support packed drivers or self-extracting), at least not at the moment. If it will be needed, it can be included.

NOTE2: hardware.exe / .ini not nessecary have to be in same place as drivers, so they can be put anywhere on CD or HDD.
donjuan
QUOTE (MadBoy @ Mar 29 2006, 12:21 AM) *
@donjuan - please try the new version 0.3.2 and lemme know if bug is gone.


This time it works but it does not remove the unknown devices.My language is Turkish by the way which are "bilinmeyen aygıt" in device manager.Is there a way you can fix this program because I want to use your prog with driverpacks from beshrat , on systems with unknown drivers.This is an hope giving utility...
Thanks in advance..

Click to view attachment
MadBoy
Get this program. Unpack it. copy devcon.exe into some easy accessible place. Go to Start/Run and type CMD there. Then find devcon.exe and do "devcon findall =Unknown" and tell me what output you have there. Later on you can check with "devcon findall =bilinmeyen" or devcon findall =bilinmeyen aygıt but i realy doubt the language matters here. I know i'm missing something to make sure it detects unknown devices correctly. I'll test some here and will wait for replay from you. Tnx for testing btw.
Scrapple
This seems handy! But I would appreciate the source-code...

Written in AutoIT, isn't it?

Thanx!
MadBoy
Yes, it's written in autotit. But i wouldn't like to release it, at least not yet as there is a lot more to cover with this program. I don't want all the work i have put it in .. to be lost within a few minutes. If you're wondering if there's malicious code.. well there isn't. But i guess i can't realy convince you, if you think so.
Scrapple
Well, I'm not the suspicious kind, but I do hate reinventing the wheel because I'd like to adapt some of your prog to work in conjunction with seupcopyoeminf.exe.

So what I mean by that, is doing a scan of all present hardware devices and integrating only the needed drivers. That way you won't need a devicepath setting, which is linked to 4096 chars.

Another thing is the skinning/GUI. (less importance)

I don't really care about having credit for any program, so I'd gladly give my extra source back to you to perhaps use the new ideas.
MadBoy
Well copyoeminf.exe is great proggy and i can add it to my program without big problem. It has one big disadvantage (that's why i decided to go with device path instead). It copies every inf .. including those that won't be used. I tried it few times with all the drivers from bashrat (think it was his drivers package). Over 700mb. And i ended up few waiting few minutes, or more waiting and watching screen as each .inf is getting copied one by one. Of course it can be used for much smaller amount of drivers and it will work fine and as fast. If you want i can 'add' copyoeminf.exe in some next version within days. Or if you know the routine how copyoeminf works (since i am not sure if all it does is going thru drivers dirs and copying nfo or also doing something else. When i get that info it shouldn't be problem to reproduce it in autoit and add it as option to choose if you wanna use setdevicepath or copyoeminf routine. Just another variable in hardware.ini.

Atm i have bigger problem that needs to be solved and when it gets solved i can preety much add more things into it. Devcon behaviour is a bit unpredictable to me. "devcon remove =Unknown" works the first time it's started (even on polish system). Then devcon rescan .. rescans devices. It's all fine and works. But if by accident it won't find drivers for any of those removed devices.. devcon doesn't care anymore. Running "devcon remove =Unknown" second time won't show any results (and in device manager you can clearly see unknown device, just it seems invisible for devcon). Maybe you can help on this?
Scrapple
Ok man, no problemo, just solve your current problems and build things from there.

About the devcon output... I don't know about that, but I think the devcon sourcecode is included in the DDK or the Platform SDK... so maybe this could help you...?

I do have one question for you: How do you set non-WHQL to ignore from AutoIt?

In batch I tried:
reg add "HKCU\SOFTWARE\Microsoft\Driver Signing" /v Policy /d 0 /f
reg add "HKLM\SOFTWARE\Microsoft\Driver Signing" /v Policy /d 00 /f
reg add "HKLM\SOFTWARE\Microsoft\Non-Driver Signing" /v Policy /d 00 /f

But that didn't work... auto-clicking it to "Ignore" from the XP-GUI "driver signing options" from within autoit is an option, but I'd like to know the "under the skin" way... :-)
MadBoy
I'm not sure it works thou tongue.gif Haven't been able to test it (only few comps so far). It uses all info i could find on some forums here..
CODE
Func DriverSigningOff(); Sets Driver Signing to OFF.
    RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Driver Signing", "Policy", "REG_BINARY", "00")
    RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Driver Signing", "Policy", "REG_DWORD", "0")
    RegWrite("HKEY_CURRENT_USER\Software\Policies\Microsoft\Windows NT\Driver Signing", "BehaviorOnFailedVerify", "REG_DWORD", "00000000")
EndFunc

Func DriverSigningOn(); Resets Driver Signing to DEFAULT.
    RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Driver Signing", "Policy", "REG_BINARY", "01")
    RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Driver Signing", "Policy", "REG_DWORD", "1")
    RegWrite("HKEY_CURRENT_USER\Software\Policies\Microsoft\Windows NT\Driver Signing", "BehaviorOnFailedVerify", "REG_DWORD", "00000001")
EndFunc
MadBoy
@donjuan
no need for more testing for now. I know where the problem is. Seems that when devices are removed from device manager by either hand (not 100% sure but think so) or devcon status from Unknown (device with problems: 28) is changed to Device with problems: 01 and is not longer marked as Unknown. So it will take me some time to redo the devcon search function and the whole process of device removal. Hopefully i will get some time at work to do this newwink.gif next version then should be language independant.
donjuan
QUOTE (MadBoy @ Mar 29 2006, 01:26 PM) *
@donjuan
no need for more testing for now. I know where the problem is. Seems that when devices are removed from device manager by either hand (not 100% sure but think so) or devcon status from Unknown (device with problems: 28) is changed to Device with problems: 01 and is not longer marked as Unknown. So it will take me some time to redo the devcon search function and the whole process of device removal. Hopefully i will get some time at work to do this newwink.gif next version then should be language independant.


Thank u very much in advance.Your tool will be very usefull in my opinion, especially for unknown devices in presetup systems.Looking forward to your newer version..
MadBoy
@donjuan - I think i fixed it. But it needs testing. Pls report if it works. Check changelog for details. As for presetup stage, as i understand you mean the stage while the windows is still being installed, my program hasn't been tested for that issue so you need to report on that. The thing here is that Devcon isn't used when Unattended is set to On because windows detects new devices by default so doesn't need devcon to do it's job. So it does all the things that non-unattended option without Devcon Remove/Rescan. Plus there's no GUI for unattended mode. I might add it but need some reports how this version works atm.
MadBoy
New version is out. I rushed it a bit but thought i would share it before i end up starting a lot of changes to GUI and other stuff. So without further ado...
Download version 0.3.6 (Current with GUI)

Problems to solve:
- Signing of drivers isn't 100% working. Unfortunetly Microsoft implemented it the way it can't be realy done just by registry. Tests shown that also during change from Warn to IGNORE mode (My Computer -> Properties -> Hardware -> Driver Signing) besides standard registry keys that can be found all over the internet this key below also changes. On my computer it has 2 values (one for IGNORE and one for WARN). So unless i'll find a way to fix it.. Bummer. Maybe someone has some nice idea? Each computer has their own diffrent keys so it's not that simple as i seen on other forums in some posts newwink.gif

- HKLM\Software\Microsoft\Windows\CurrentVersion\Setup\PrivateHash 15 CA EF C3 34 E8 C8 78
- HKLM\Software\Microsoft\Windows\CurrentVersion\Setup\PrivateHash 01 32 A3 68 55 C2 D2 00

Problem of signing drivers on unnatended cd doesn't exist because you can set the right value in winnt.sif or sysprep.inf. Or so i have read on Microsoft pages smile.gif Oh well, we will see..

Possible changes in next versions:
- Option to have copied drivers to C:\Drivers (or other dir you choose) and then using it
as the main driver directory. Mighty be usefull for ppl who like to leave the drivers
on hdd, and for use with pyron's method.
- Completly redo of GUI. As someone said GUI isn't good enough which i knew on begining,
but wanted to have something easy and done fast so i could see the progress going on.
So the project will have new GUI soon. Better, nicer. Maybe special GUI for congfiguration.
- Waiting for other ideas and problems.

Changelog for 0.3.6
- Added REMOVABLE drives to be autodetected (you can use it instead of CDROM or drive letter)
- Added function that will create hardware.ini automagically if there is no hardware.ini present (usefull ;p)
- Added option that opens Device Manager while devices are being removed/detected.
- Added option to use either RegistryDevicePath or SetupCopyOemInf by pyron


Would be nice if someone would give his opinion about this, especially about Driver Signing. Couldn't realy found good solution.
Scrapple
QUOTE (MadBoy @ Apr 4 2006, 06:14 PM) *
New version is out.....

Changelog for 0.3.6
- Added REMOVABLE drives to be autodetected (you can use it instead of CDROM or drive letter)
- Added function that will create hardware.ini automagically if there is no hardware.ini present (usefull ;p)
- Added option that opens Device Manager while devices are being removed/detected.
- Added option to use either RegistryDevicePath or SetupCopyOemInf by pyron


Would be nice if someone would give his opinion about this, especially about Driver Signing. Couldn't realy found good solution.



Thanx, very nice of you to integrate setupcopyoeminf!
MadBoy
Np, just report errors newwink.gif New version is there. Little mistake on my side ;/ And can anyone report problem with redetection of devices? I mean like you had to do it manually in device manager to see the process started?

Changelog for 0.3.7
- Fixed multiple Device Manager instances being started
MadBoy
Just to keep you guys posted.. i decided to add some screenshot. Not best quality but will give you *HINT* on new features that will be implemented in newest version.

Click to view attachment


New features:
- Full support for 7zip/Rar packed drivers
- Optional backup of c:\Windows\Inf directory before applying drivers
- New look
- Ability to configure .ini file thru GUI (not realy sure i need it but i'll try to implement it if i get time ;p)
- Possibility to copy drivers to for example C:\Drivers for later use (a must to set when using packed_drivers)
- Optional output to log_file (usefull for debugging)
- Optional output_option = Full/Simple - with Full mode on 99% of what's happening including output from external programs will be placed in log. (usefull for debugging but might slow down program a lot)
- Information if Windows require reboot to use drivers or not
- Automatic or Manual start (by pressing button).
- Auto autorun file creator for easy deployment on CD.

Suggestions are welcome as i haven't done everything yet so i can change things. Later on it will be much harder (althought with log window instead of preset GUI it's much easier to change things.

Hope you guys will like the changes in new version. Hopefully out sometime soon.
xboxhaxorz
The part about removal of unkown devices is kind of limited. How about i had a driver that was installed but had a ? mark or another driver that had the wrong driver installed. The fact that it resolves unknown devices is great, but usually thats not the case as windows has the drivers for that device already.
LDST
So is this project still alive? smile.gif
I could use this functionality in our corporate upgrade project.
Basically I'm at the point that after the first logon by the user (post Win2k -> XP Pro upgrade finishes), on several types of our HW, the NIC (hardwire and wireless) were not detected properly and are listed as unknown devices. I've been able to prove, via manual method, that uninstalling/removing the unknown devices and doing a new hardware scan will then detect the devices and pick up the driver from the C:\Windows\NLDRV\001 (or 002) folder (I've used nLite to integrate the drivers, works fine). For some reason these drivers are not sensed or found during the device detection phase. sad.gif
Remember, these are upgrades, not clean installs... Clean installs with the same source set created via nLite works right completely, all drivers found and installed correctly. huh.gif

So, I need a way to have the upgrade finish installing the right HW drivers...
The basic thought is to:

1. Have a script/batch file fire off from a RunOnce key (which I can't get to work either with an upgrade, but that's another story)
2. Check the registry to ensure the right DevicePath is set or force it to the desired paths (I have this working with a command in a script)
3. Remove all unknown devices (don't know for sure how to do this, but maybe "devcon -remove =Unknown" might work ?? )
4. Re-scan HW to detect the devices and install the right driver (again, I think "devcon rescan" ?? )
5. Reboot the PC

So, anyone out there with some insight on doing this?
Bâshrat the Sneaky
What is that 'Problem ID' column about?
Lost Soul
this is a great looking app, i think this will come in handy,, keep up the good work
qwerty009
Great app, can't wait for next release. Any idea when you might have next vers ready?
MadBoy
The project still alive although i kinda stopped developing last few weeks/months due to enormous time i had to spend on other things. It's kinda ready just one little bug that makes the program crash + i need to fix/add minor things but that can be done later on. I kinda stopped developing it due to hardly any interest from ppl (you know, when it's free and you don't see ppl wanting that you don't do it newwink.gif). Anyway i plan to release it since i noticed few ppl want it so it will come.

@Bashrat:
problem id column is what Device Manager states as device error code. When you go to devices that are unknown or with problems there's always a number next to error that it states. The error list can be found here. Only some "errors" are fixable by just removing device from device manager and are drivers related. Other problems usually are more serious problems that shouldn't and won't be solved just by device removal. But for maybe "future" features i added it to show the problem id number.


@LDST - my program if it would be ready and fully working can do that for you ;p devcon -remove =Unknown is one thing but it sometimes doesn't work as the device may have been marked as "problematic" and not realy unknown. I solved it by doing a lot of reasearch on how devcon works and what changes. So my program usually check for that "problem id" that i explained to bashrat and when it founds the right codes (only 2-3 of them are drivers related) it takes device id and removes them. Then devcon rescan and woila newwink.gif

xboxhaxorz - my first version was only looking for Unknown devices indeed. Problem with it is that after first devices removal they are no longer marked unknown. Also like you stated some device have just drivers problem. Well the new version works diffrently as i stated in this post.

I'll try to release 0.4.* version during this week or so.

Chears!
MadBoy
New version out. A lot of changes including hardware.ini so read first post carefully. Ideas, suggestions, bugs are welcome tongue.gif
Avneet
am using it but the add hardware wizard things comes up wheer u have to browse for the location of the drivers..

is that normal.. doesnt this program autocmatically scan the folder we define
Avneet
bump
MadBoy
Yeah, i encountred this problem several times too. Usually it happens when there is more then one driver on CD/Directories that matches the criteria. In cases where things weren't doubled up the Wizard didnt come up.
Avneet
umm thast a bumer.. hope this can be fixed.... i dont have copies of the same driver in the DIR.. but many driversfrom the same company.. i think it shud be able to pick up the appropriate driver automatically
MadBoy
Well it's not realy in power of my program. It's more like windows behaviour. What can be done is to check if there are registry entries that could disable that behaviour or eventually implement, what in autoit3 shouldn't be problem automatic 'click' next next next smile.gif so user interaction wouldn't be required. I'll have to look at it. I don't realy want to use 'screen interaction' as this won't be 'nice hack'. It will be visible for user which makes the program a bit unproffesional, but it also might be the only way smile.gif I've seen some drivers getting installed that way, like Toshiba bluetooth which was using similar way to interact with windows questions, but it was ugly to me.

I'll try to see how to fix problem, but i lack time latly since i am in the middle of changing jobs and i have other responsibilities now.
MadBoy
Release 0.4.4 is out. Please test it as it should fix the wizard problem that popped out even thou it wasn't nessecary. So please let me know.


Possible changes in next versions:
- Better handling of removed devices. Especially those that require reboot to work.

Changelog for 0.4.4
- Possibly fixed problem with Wizard poping-out when not nessecary. Need Feedback so lemme know.
- Completly new Plug & Play redetection handling (thru DLLCALL) - tnx to AUTOIT Forum.
Bilou_Gateux
Keep up the good work.

I will try it later to see if it can solve an issue i have with MultiPortSerial PCI board. Board itself is installed without problems but i have to accept the installation of each of the 4 COM ports. Drivers for both PCI board and COM ports are digitally signed.
MadBoy
Thanks,

i got msg from one of the users that the pop-up wizard in his case still pops up. It's weird. I tested it on Fujitsu-Siemens S7010 with like 7 drivers not installed and only Bluetooth didn't installed itself (but with BT there's some problem that even bigger companies can't realy solve as Microsoft doesn't sing it at all). I want the "manual" use to work perfect so i can just work on unattended mode so it can be used with switches and so it can be used easly in some advanced configuration.

I was thinking about using autoit functionality to just press buttons/navigate mouse etc so unsigned drivers can be taken care also with it (and eventually wizards if any comes up). I'm not sure it's good idea thou. Maybe someone has better or thinks it's a good one?
hoppy
Nice job, madboy.
hint: mayby you could ad in a rescan of the vgacard as they often are installed with the microsoft drivers, and probably beter drivers are in the drivers dir.
MadBoy
Adding Remove & Rescan just for graphic card is not an easy task, well codewise it's not so bad but i would have to implement searching procedure for all graphic cards. So i would have to have their Device ID. I guess there are like 32+ graphic cards which means having my program scanning thru every device id and trying to match it. Then when matched remove it. And here starts the hard part, after removal you rescan for p&p, but from now it's mostly Windows job to catch the right driver and i guess it would pickup the one that it finds first ? smile.gif Of course i could probably reset the path for searching for drivers so it wouldn't search in C:\Windows\System32 but most of the time it would be preety stupid idea on my part. My program isn't realy typical for use at home where usually ppl have great graphic cards and new drivers every few weeks/months. It's mostly build for IT Department use when they have a lot of hardware, diffrent computers and usually if some drivers work they leave it like that. So they can prepare CD or DVD or USB-PEN (fastest solution if u ask me) with drivers they have for each laptop/computer and they just use it. Usually those computers are supposed to work so ppl can "WORK", not play games or so newwink.gif That's why that request is a bit questionable newwink.gif Also preparing drivers, testing and using my program just once a year isn't realy worth the time you have to put in it. While at IT Dept you use it daily putting some work into it will shortly bring effects. Hope you understand.

If you would realy need it thou i can give you hints how to achieve it. But i realy don't see the purpose of making that addon smile.gif

What i want to add is so the program would 'check' if removed hardware needs reboot to apply drivers or not. That and few other things i want to add. Just a bit lack of time and doing other programs for myself.
ty628659
sad.gif need some help with "drives packed" mothed
I am testing version 0.4.4 functional with Bashrat Driver Packs in network drive, but somehow after unpacks, c:\drivers always empty

thanks!

hare is setting of hardware.ini

Start=Manual
Mode=Standard
Drivers_drive=Z
Drivers_dir=\DriverPacks
Device_manager=On
Method=RegistryDevicePath
Logging_to_file=Yes
Logging_option=Advanced
Drivers_Packed=7zip
Copy_drivers=Yes
Copy_where=C:\Drivers
Delete_drivers=No
Create_backup=Yes
Leave_registry_entries=No
___________________________

network drive

z:\DriverPacks\hardware.exe
z:\DriverPacks\hardware.ini
z:\DriverPacks\DP_Graphics_A_wnt5_x86-32_608.7z
z:\DriverPacks\DP_Graphics_B_wnt5_x86-32_603.7z
z:\DriverPacks\DP_Graphics_C_wnt5_x86-32_603.7z
_________________________________

hardware.log

[08:08:44] - =================== Log Start: ws0001
[08:08:44] - Starting program on ws0001.
[08:08:44] - Detecting Windows version - Windows XP x32
[08:08:44] - Checking for drivers directory existance.
[08:08:44] - Drivers directory (Z:\DriverPacks) exist.
[08:08:44] - Detecting number of devices in system.
[08:08:44] - Found 106 devices of which 3 have problems.
[08:08:44] - Manual start used - Waiting for orders.
[08:08:46] - Checking for directory where drivers will be copied.
[08:08:46] - Directory (C:\Drivers) already exists. Using it.
[08:08:46] - Searching for 7zip archives in Z:\DriverPacks
[08:08:47] - Unpacking drivers from Z:\DriverPacks\DP_Graphics_A_wnt5_x86-32_608.7z
[08:08:48] - Unpacking drivers from Z:\DriverPacks\DP_Graphics_B_wnt5_x86-32_603.7z
[08:08:49] - Unpacking drivers from Z:\DriverPacks\DP_Graphics_C_wnt5_x86-32_603.7z
[08:08:55] - Unpacking completed successfully.
[08:08:55] - Backup of drivers was started. Please wait!
[08:09:10] - Backup of drivers is done.
[08:09:10] - Setting Driver signing to OFF.
[08:09:10] - Setting path into registry using RegistryDevicePath method.
[08:09:10] - Drivers path was set successfully into registry.
[08:09:10] - Removing unknown hardware from system.
[08:09:10] - Unknown devices were removed successfully.
[08:09:10] - Starting Device Manager.
[08:09:10] - Forcing system to detect Plug & Play Devices.
[08:09:12] - System is now detecting and installing drivers for your hardware. Wait!
[08:10:07] - Setting Driver signing to ON.
[08:10:07] - Reseting registry DevicePath to default.
[08:10:08] - =================== Log End: ws0001
MadBoy
Weird, i reuploaded hardware_0.4.4 but it doesn't seems to be any diffrent. Also i just set this, and tested with some driver packs. I guess i could upload some new 7zip version. Maybe new driver packs are packed diffrently but i very much doubt it. Try my settings but yours look okey and shouldn't need to be changed. Also i hope you have full rights to C: drive and that directory C:\Drivers in your case doesn't exists or exists and is writeable? Ah, and check if 7z.exe can be found in some temp directory in your Documents and settings? My program on start unpacks 7z.exe to temp dir and uses it to unpack. If program still won't act like it should i can add some debug MsgBoxes so we can check what's wrong in your case, of course if you're up to some testing smile.gif

[INFO]
Start=Manual
Mode=Standard
Drivers_drive=C
Drivers_dir=\Test
Device_manager=On
Method=RegistryDevicePath
Logging_to_file=Yes
Logging_option=Advanced
Drivers_Packed=7zip
Copy_drivers=Yes
Copy_where=C:\DriversTest
Delete_drivers=No
Create_backup=No


[21:34:28] - =================== Log Start: MYCOMP
[21:34:28] - Starting program on MYCOMP.
[21:34:28] - Detecting Windows version - Windows XP x32
[21:34:28] - Checking for drivers directory existance.
[21:34:28] - Drivers directory (C:\Test) exist.
[21:34:28] - Detecting number of devices in system.
[21:34:29] - Found 140 devices without any problems.
[21:34:29] - Manual start used - Waiting for orders.
[21:34:30] - All devices have drivers. There's no need to start program.
[21:34:30] - Checking for directory where drivers will be copied.
[21:34:30] - Directory (C:\DriversTest) already exists. Using it.
[21:34:30] - Searching for 7zip archives in C:\Test
[21:34:30] - Unpacking drivers from C:\Test\DP_Chipset_wnt5_x86-32_605.7z
[21:34:37] - Unpacking drivers from C:\Test\DP_Graphics_B_wnt5_x86-32_603.7z
[21:35:55] - Unpacking drivers from C:\Test\DP_Graphics_C_wnt5_x86-32_603.7z
[21:36:35] - Unpacking drivers from C:\Test\DP_LAN_wnt5_x86-32_6051.7z
[21:36:58] - Unpacking drivers from C:\Test\DP_MassStorage_wnt5_x86-32_6031.7z
[21:37:20] - Setting Driver signing to OFF.
[21:37:20] - Setting path into registry using RegistryDevicePath method.
[21:37:20] - Added to registry: C:\DriversTest\D\C\A
[21:37:20] - Added to registry: C:\DriversTest\D\C\AM\1
[21:37:20] - Added to registry: C:\DriversTest\D\C\AM\2
[21:37:20] - Added to registry: C:\DriversTest\D\C\AM\3
etc
ty628659
Thank you for reply biggrin.gif i found the problem: I copy your *. ini file it still not taking any action, even not Zip the c:\windows\inf\* folder, so i was replace your 7z.exe v.4.41 to Barshrat Driver Packs v.4.26 before click "Remove and Rescan" it worked thumbup.gif
but after unpack in c:\driverpacks\d\... it won't auto searching hard drive folder. (of couse , I login as administrator for testing)
i am not sure "registry" been added, i try to search "C:\DriversTest" key word in registry it don't found.

hardware.log
........
[02:30:54] - Directory (C:\DriversTest) created successfully.
[02:30:54] - Searching for 7zip archives in C:\Test
........
[02:32:47] - Unpacking drivers from C:\Test\DP_Sound_B_wnt5_x86-32_606.7z
[02:33:12] - Unpacking drivers from C:\Test\DP_WLAN_wnt5_x86-32_605.7z
[02:33:35] - Unpacking completed successfully.
[02:33:36] - Setting Driver signing to OFF.
[02:33:36] - Setting path into registry using RegistryDevicePath method.
[02:33:37] - Drivers path was set successfully into registry.
[02:33:37] - Removing unknown hardware from system.
[02:33:38] - Advanced Output: PCI\VEN_8086&DEV_1051&SUBSYS_10518086&REV_02\4&1F7DBC9F&0&40F0: Removed
[02:33:38] - Advanced Output: 1 device(s) removed.
[02:33:38] - Advanced Output: PCI\VEN_8086&DEV_1051&SUBSYS_10518086&REV_02\4&1F7DBC9F&0&40F0: Removed
...
...
[02:33:39] - Unknown devices were removed successfully.
[02:33:39] - Starting Device Manager.
[02:33:39] - Forcing system to detect Plug & Play Devices.
[02:33:50] - System is now detecting and installing drivers for your hardware. Wait!
MadBoy
It's weird. Very weird. I can't reproduce your problem. As i see the times..
[02:32:47] - Unpacking drivers from C:\Test\DP_Sound_B_wnt5_x86-32_606.7z
[02:33:12] - Unpacking drivers from C:\Test\DP_WLAN_wnt5_x86-32_605.7z
drivers are being unpacked. But since RegistryDevicePath info doesn't "give" output what dirs are added to registry it seems like it doesn't finds the unpacked drivers in C:\DriversTest. Can you check if those were unpackaced successfully into C:\DriversTest?
[02:33:36] - Setting path into registry using RegistryDevicePath method.
[02:33:37] - Drivers path was set successfully into registry.
Rest seems to be working normal. Unknown devices are removed without problem.

Btw do you get the 'DUPA' msgbox before Backup of drivers happens? Is the path to 7z.exe correct?
ty628659
Can you check if those were unpackaced successfully into C:\DriversTest?
today i clean install xp home w/sp2 from MS-CD, it does same problem as yesterday. I have to replace 7z.exe to v.4.26 then unpackaced successfully into C:\DriversTest with all sub. but registry it seems like it doesn't added any thing!

Btw do you get the 'DUPA' msgbox before Backup of drivers happens? Is the path to 7z.exe correct?

if set Create_backup=Yes
dupa msgbox
c:\temp\7z.exe a -tzip "C:\backup_drivers-8/20/2006_7_21_53_PM.zip" "C:\windows\inf\*"

7z.exe (v.4.41) won't taking any action not even create a empty folder, with v.4.26 successfully backup to C:\backup_drivers-8\20\2006_7_21_53_PM.zip

send me debug version, i love to help you out
Google Internet Forums Unattended CD/DVD Guide
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.