|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] скрипт записи devicepath |
|
|
CMD/BAT - [решено] скрипт записи devicepath
|
Пользователь Сообщения: 63 |
У меня по сети расшарены драйвера и требуется чтобы они устанавливались автоматически, но
OemPnPDriversPath в файле ответов не подходит т.к. windows автоматически подставляет туда системную переменную %systemdrive% а у меня сетевые пути типа: \\192.168.200.1\drivers\c\a задача такова, скрипт(что-то вроде этого http://forum.oszone.net/showthread.p...th#post1172464) сканирует заданную папку(в нашем случае drivers) и создаёт путь к каждой папке где содержится inf файл только в алфавитном порядке( т.е. сначало drivers\c а потом уже drivers\l) к каждому пути добавляется \\192.168.200.1 например ввиде переменной %serveraddress% в итоге получается список вида: \\192.168.200.1\drivers\c\a;\\192.168.200.1\drivers\c\b;\\192.168.200.1\drivers\c\c и т.д. Эта информация записывается в reg файл в DevicePath="" параметр который находится в HKLM\Software\Microsoft\Windows\CurrentVersion господа помогите реализовать данный скрипт (: |
|
Отправлено: 15:31, 18-06-2010 |
Пользователь Сообщения: 63
|
Профиль | Отправить PM | Цитировать неужели никто не сталкивался с этим?
|
Отправлено: 09:13, 19-06-2010 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 727
|
Профиль | Отправить PM | Цитировать netsupport,
setdevicepath.exe вы не пользуетесь поиском и задаете вопросы, обсуждавшиеся тысячи раз... и так во всех ваших темах... поэтому вам никто и не отвечает подолгу... |
------- Отправлено: 16:42, 19-06-2010 | #3 |
Пользователь Сообщения: 63
|
Профиль | Отправить PM | Цитировать zonderz,
я честно вбивал в поиск и в этом раздел и в разделе Автоматической установки "devicepath" но ничего не находилось, сейчас конечно ещё попытаюсь но пока не могу найти обсуждения этой темы |
Отправлено: 12:49, 21-06-2010 | #4 |
Пользователь Сообщения: 63
|
Профиль | Отправить PM | Цитировать Есть скрипт
@Echo Off SetLocal EnableDelayedExpansion Set ROOT=C:\Drivers Set WSIF=C:\TEST\winnt.sif PUSHD %ROOT% For %%i In ("%ROOT%") Do If Exist %%i (Set ROOT=%%~si&Set $R=%%~nxsi) Else Exit For /F "Delims=" %%i In ('DIR /B/S/A:D *') DO ( Set $D=%%~si If Exist !$D!\*.inf Set OemPnPDriversPath=!OemPnPDriversPath!;!$R!!$D:%ROOT%=! ) Echo [Unattended]>>"%WSIF%" Echo OemPnPDriversPath="%OemPnPDriversPath:~1%">>"%WSIF%" Добавлено: Поправил скрипт чтобы выводил результаты в команду которая добавляет изменения в реестре: SetLocal EnableDelayedExpansion Set ROOT=D:\Drivers\c set DIR=%systemroot%\inf PUSHD %ROOT% For %%i In ("%ROOT%") Do If Exist %%i (Set ROOT=%%~si&Set $R=%%~nxsi) Else Exit For /F "Delims=" %%i In ('DIR /B/S/A:D *') DO ( Set $D=%%~si If Exist !$D!\*.inf Set OemPnPDriversPath=!OemPnPDriversPath!;!$R!!$D:%ROOT%=! ) Echo OemPnPDriversPath="%OemPnPDriversPath:~1%">>"%DIR%" REG ADD HKLM\Software\Microsoft\Windows\CurrentVersion /v DevicePath /t REG_EXPAND_SZ /d %DIR% /f pause Но не работает. если посмотреть вывод в командной строке, то: D:\drivers\c>Echo OemPnPDriversPath="c\A;c\A2;c\A4;c\A5;c\A6;c\A7;c\Ak;c\At;c\D; c\E;c\F;c\H;c\I;c\I4;c\I5;c\I6;c\Ia;c\Ib;c\Ic;c\Id;c\Ie;c\IN;c\IT;c\K;c\N;c\N1;c \N2;c\N3;c\N4;c\S;c\T;c\U;c\V;c\V2;c\V3;c\VX;c\I2\1;c\I2\2;c\I2\3;c\I2\4;c\I2\5" 1>>"C:\Windows\inf" Отказано в доступе. В DevicePath добавляется в итоге просто текст C:\Windows\inf |
|
Последний раз редактировалось netsupport, 21-06-2010 в 17:34. Причина: правка кода Отправлено: 14:45, 21-06-2010 | #5 |
Пользователь Сообщения: 63
|
Профиль | Отправить PM | Цитировать фух, после многих модификацией и проверок готово.
В итоге скрипт выглядит так: SetLocal EnableDelayedExpansion Set ROOT=D:\Drivers\c set DIR=%systemroot%\inf PUSHD %ROOT% For %%i In ("%ROOT%") Do If Exist %%i (Set ROOT=%%~si&Set $R=%%~nxsi) Else Exit For /F "Delims=" %%i In ('DIR /B/S/A:D *') DO ( Set $D=%%~si If Exist !$D!\*.inf Set OemPnPDriversPath=!OemPnPDriversPath!;!$R!!$D:%ROOT%=! ) REG ADD HKLM\Software\Microsoft\Windows\CurrentVersion /v DevicePath /t REG_EXPAND_SZ /d %OemPnPDriversPath:~1% /f pause Но нужно перед каждым путём добавлять один и тот же нужны путь т.е. в моём случаи как раз сетевой путь(в моём случае это \\192.168.200.1\drivers) пока не могу понять как |
Отправлено: 17:44, 21-06-2010 | #6 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Цитата netsupport:
Set ROOT=D:\Drivers\c Set NETP=\\192.168.200.1\Drivers Set DevicePath=%%systemroot%%\inf PushD %ROOT%|| Exit For %%i In ("%ROOT%") Do Set ROOT=%%~si For /F "Delims=" %%i In ('DIR /B/S/AD *') DO If Exist %%~si\*.inf ( Set $D=%%~si& Call Set DevicePath=%%DevicePath%%;%NETP%%%$D:%ROOT%=%%) REG ADD HKLM\Software\Microsoft\Windows\CurrentVersion /v DevicePath /t REG_EXPAND_SZ /d "%DevicePath%" /f |
|
Отправлено: 10:50, 22-06-2010 | #7 |
Пользователь Сообщения: 63
|
Профиль | Отправить PM | Цитировать Ммм..что-то не так формируется, т.е. лишняя "Y:\", по мне так надо просто убрать из скрипта "$D:", но это не помогает ((
Set ROOT=\\77.50.100.46\drivers\c Set NETP=\\77.50.100.46\drivers\ Set DevicePath=%%systemroot%%\inf PushD %ROOT%|| Exit For %%i In ("%ROOT%") Do Set ROOT=%%~si For /F "Delims=" %%i In ('DIR /B/S/AD *') DO If Exist %%~si\*.inf ( Set $D=%%~si& Call Set DevicePath=%%DevicePath%%;%NETP%%%$D:%ROOT%=%%) REG ADD HKLM\Software\Microsoft\Windows\CurrentVersion /v DevicePath /t REG_EXPAND_SZ /d "%DevicePath%" /f pause %systemroot%\inf;\\77.50.100.46\drivers\Y:\c\A;\\77.50.100.46\drivers\Y:\c\A2;\\77.50.100.46\drivers \Y:\c\A4; и т.д. |
Последний раз редактировалось netsupport, 22-06-2010 в 14:46. Отправлено: 13:46, 22-06-2010 | #8 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Цитата netsupport:
Set NET=\\77.50.100.46\Drivers Set DIR=\\77.50.100.46\Drivers\c Set DevicePath=%%SystemRoot%%\inf PUSHD %DIR% For /F "Delims=" %%i In ('DIR /B/S/AD *') Do If Exist "%%i\*.inf" Call Set "DevicePath=%%DevicePath%%;%NET%%%~pnxi" REG ADD HKLM\Software\Microsoft\Windows\CurrentVersion /v DevicePath /t REG_EXPAND_SZ /d "%DevicePath%" /f |
|
Последний раз редактировалось amel27, 23-06-2010 в 12:21. Отправлено: 16:19, 22-06-2010 | #9 |
Пользователь Сообщения: 63
|
Профиль | Отправить PM | Цитировать Как, то странно получается
я не могу указывать в DIR всё папку drivers это слишком много драйверов мне надо указываь Set DIR=\\77.50.100.46\Drivers\с соответственно я тогда указываю Set NET=\\77.50.100.46\drivers чтобы "drivers" фигурировал в пути в итоге формируется ерунда: "%SystemRoot%\inf;\\77.50.100.46\drivers\c;\\77.50.100.46\drivers\c;\\77.50.100.46\drivers\c;\\77.50 .100.46\drivers\c;\\77.50.100.46\drivers\c;\\77.50.100.46\drivers\c;\\77.50.100.46\drivers\c;\\77.50 .100.46\drivers\c;\\77.50.100.46\drivers\c;\\77.50.100.46\drivers\c;\\77.50.100.46\drivers\c;\\77.50 .100.46\drivers\c;\\77.50.100.46\drivers\c;\\77.50.100.46\drivers\c;\\77.50.100.46\drivers\c;\\77.50 .100.46\drivers\c;\\77.50.100.46\drivers\c;\\77.50.100.46\drivers\c;\\77.50.100.46\drivers\c;\\77.50 .100.46\drivers\c;\\77.50.100.46\drivers\c;\\77.50.100.46\drivers\c;\\77.50.100.46\drivers\c;\\77.50 .100.46\drivers\c;\\77.50.100.46\drivers\c;\\77.50.100.46\drivers\c;\\77.50.100.46\drivers\c;\\77.50 .100.46\drivers\c;\\77.50.100.46\drivers\c;\\77.50.100.46\drivers\c;\\77.50.100.46\drivers\c;\\77.50 .100.46\drivers\c;\\77.50.100.46\drivers\c;\\77.50.100.46\drivers\c;\\77.50.100.46\drivers\c;\\77.50 .100.46\drivers\c;\\77.50.100.46\drivers\c\I2;\\77.50.100.46\drivers\c\I2;\\77.50.100.46\drivers\c\I 2;\\77.50.100.46\drivers\c\I2;\\77.50.100.46\drivers\c\I2" |
Отправлено: 17:39, 22-06-2010 | #10 |
|
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - Скрипт на добавление прав записи | DDNMazafaka | Скриптовые языки администрирования Windows | 3 | 29-08-2009 01:18 | |
Разное - [решено] Создается папка учетной записи после ее переименованияУчётные записи | stan7307 | Microsoft Windows 2000/XP | 28 | 14-09-2008 18:49 | |
Скрипт | Kobrin | Вебмастеру | 5 | 07-07-2008 05:41 | |
[решено] В чем отличия учетной записи Пользователь от учетной записи Опытный Пользователь??? | Ivan_PIV | Microsoft Windows 2000/XP | 3 | 22-03-2007 06:23 | |
Скрипт | Guest | Программирование и базы данных | 3 | 27-08-2004 14:12 |
|