Что такое PnPUtil.exe в 64-битных системах? - PullRequest
4 голосов
/ 24 ноября 2011

Я хотел бы установить драйвер USB-устройства [.inf-файл] с помощью утилиты PnPUtil.exe как в 32-разрядных, так и в 64-разрядных системах для Windows Vista и Windows 7.

Я протестировал на своей машине [Windows 7 32bit], и все было хорошо, потому что PnpUtil.exe находится в: C: \ Windows \ System32 \ PnPUtil.exe . Но в 64-битной Windows 7 утилита не находится в этом каталоге.

Когда я пытался установить драйвер на другой Windows 7 - 64-битной машине, я мог найти PnPUtil.exe в этом месте: C: \ WIndows \ winsxs \ amd64_microsoft-windows-pnputil_31bf3856ad364e35_6.1.7600.16385_none_5958b415_p610p064d6388p0 * и тест тоже был в порядке.

Так как же я могу точно определить этот каталог на всех платформах? Я заметил, что путь зависит от встроенной версии Windows - 6.1.7600.16385 - но как определить оставшуюся часть пути? Или путь всегда одинаков на всех 64-битных платформах? А как насчет Vista?

Ответы [ 3 ]

3 голосов
/ 20 февраля 2015

Расположение PnPUtil.exe, видимого из вашего установочного приложения, зависит от разрядности вашего установщика:

  • 32-битный установщик в 32-битной Windows:% WinDir% \ System32
  • 64-битный установщикв 64-битной Windows:% WinDir% \ System32
  • 32-битный установщик в 64-битной Windows:% WinDir% \ Sysnative (Windows Vista и выше)

Более подробная информация здесь: http://www.samlogic.net/articles/sysnative-folder-64-bit-windows.htm

2 голосов
/ 14 января 2012

Недавно я столкнулся с этой проблемой, пытаясь создать установщик для ReplicatorG , который включает драйверы Arduino и некоторые драйверы, специфичные для Makerbot Replicator.

Казалось, что нет никакого способа определить местоположение PnPutil, и вместо этого мне пришлось приобрести Microsoft DIFx и использовать их распространяемый DPinst.

В DPinst было несколько странных вещей, которые затрудняли его использование. Во-первых, кажется, что он не работает должным образом, если он находится в дереве каталогов с пробелами в пути. Кто знает почему. Во-вторых, поскольку драйверы Arduino не подписаны, их нужно было запускать в устаревшем режиме, чтобы избежать появления большого красного диалогового окна, предупреждающего пользователя. Для запуска в устаревшем режиме вы используете флаг /lm, но этот флаг должен быть в нижнем регистре. Опять же, неясно, почему.

В конце концов, я попросил установщика скопировать dpinst и каждый из драйверов в папку во временном каталоге, а затем запустить dpinst. Появляется симпатичный маленький мастер и сообщает пользователю, какие драйверы были установлены.

0 голосов
/ 02 октября 2014

Из C: \ WIndows \ winsxs \

dir / s PnPUtil. *

будет сканировать подкаталоги

...