zDrvInst.exe - инсталляция драйверов и управление службами Синтаксис: zDrvInst.exe ServiceName [DriverFile] [DisplayName] [/install] [/uninstall] [/start] [/stop] [/status] [/nolog] ServiceName - имя сервиса DriverFile - файл драйвера DisplayName - если не указано, будет использоваться имя сервиса. /nolog - отключает лог Возвращает %ErrorLevel% последней выполненной комманды 0 - Sucess 1 - Error Примеры: zDrvInst.exe snapman "...\snapman.sys" /install - создать службу zDrvInst.exe snapman /start - запусить ее zDrvInst.exe snapman /status - показать информацию zDrvInst.exe snapman "...\snapman.sys" /install /start /status - то-же, но одной строкой. zDrvInst.exe snapman /uninstall - деактивирует службу и удаляет драйвер. /uninstall - комманда достаточно агрессивная, позволяет удалить службу, которая используется. К примеру, с помощью /uninstall можно использовать несовместимые версии Acronis без перезагрузки. VirusTotal - * X86 ** X64 *
Последний раз редактировалось: nikzzzz (2020-05-24 09:05), всего редактировалось 10 раз(а)
Раз "не прокатило" с переменными окружения, можно ввести, например, /xstatus, который будет возвращать цифирьки состояния (или битовую маску, не знаю, как удобнее).
dialmak А зачем нужны записи в реестр? zDrvInst /install сам их сделает. Проверки очень многие лишние. При запуске TBIMount сам стартует драйвер. То-есть можно обойтись минимумом
А я об этом откуда знаю? Если в описании не указано - я решил, что нет такого. А если он добавляет, то нужно озвучить шаблон. Попробую упростить - отпишусь.. Увидел непонятку при тестировании. Если путь к драйверу не тот, то все равно рапортует, что мол все ОК Если в скрипте заменить строчку на
"%TBIMountPath%\zDrvInst%xOS%.exe" "tbimount" "%SystemRoot%\%System32%\drivers\tbimount.sys" /install && echo The TBIMount service was installed successfully. || echo Error install TBIMount service.
(System32 на %System32%) то будет при запуске из c:\windows\syswow64\cmd.exe Переписал реестр. Он что не проверяет наличие файла???
Последний раз редактировалось: dialmak (2019-02-19 21:22), всего редактировалось 1 раз
62428Так все равно цифирьку эту For'ом придется вытаскивать, смысл?
Не, как ErrorLevel возвращать, разумеется. Смысл такой: /status возвращает success/fail (errorlevel 0/1) И если success, то xstatus вернет расширенное состояние.
Положи .sys файл в нужное место, и сервис будет работать!
Хм.. неужели сложно сделать проверку и выдать, что файла не существует или просто errorlevel=1 или к примеру 2 Получается, что проверить создание можно только после старта, это неудобно..
dialmak Не сложно, просто не делал эту проверку, сама api функция ее оказывается не делает. Добавлю, но это все равно не даст гарантии, что сервис будет работать, это можно выяснить только запустив его.
@echo off setlocal enableextensions pushd "%~dp0" set "xOS=64" if /i "%PROCESSOR_ARCHITECTURE%"=="x86" if not defined PROCESSOR_ARCHITEW6432 ( set "xOS=" ) for /f "tokens=4 delims=[]." %%G in ('ver') do set wOS=%%G if %wOS% lss 10000 ( set wOS=7 ) else ( set wOS=10 ) set "System32=System32" if exist "%SystemRoot%\sysnative\cmd.exe" set "System32=sysnative" set "TBIMountPath=%cd%\TeraByte Drive Image Backup and Restore Suite\TBIView" if not exist "%TBIMountPath%\tbimount*.exe" set "TBIMountPath=%cd%" if not exist "%TBIMountPath%\tbimount*.exe" set "TBIMountPath=" ::TBIMount if not defined TBIMountPath goto :skipTBIMount "%TBIMountPath%\zDrvInst%xOS%.exe" "tbimount" /status | find.exe /i "running" >nul && if exist "%SystemRoot%\%System32%\drivers\tbimount.sys" ( echo The TBIMount service already running. goto :skipTBIMount ) :installTBIMount echo. echo Installing TBIMount driver... "%TBIMountPath%\tbimount%xOS%.exe" unmount * /q "%TBIMountPath%\zDrvInst%xOS%.exe" "tbimount" /uninstall if "%xOS%"=="64" if %wOS% EQU 7 copy /y "%TBIMountPath%\tbimount.x64.sys" "%SystemRoot%\%System32%\drivers\tbimount.sys" >nul if "%xOS%"=="" if %wOS% EQU 7 copy /y "%TBIMountPath%\tbimount.xp.sys" "%SystemRoot%\%System32%\drivers\tbimount.sys" >nul if "%xOS%"=="64" if %wOS% EQU 10 copy /y "%TBIMountPath%\tbimount.w10.x64.sys" "%SystemRoot%\%System32%\drivers\tbimount.sys" >nul if "%xOS%"=="" if %wOS% EQU 10 copy /y "%TBIMountPath%\tbimount.w10.sys" "%SystemRoot%\%System32%\drivers\tbimount.sys" >nul if not exist "%SystemRoot%\%System32%\drivers\tbimount.sys" ( echo File "%SystemRoot%\System32\drivers\tbimount.sys" not found. goto :skipTBIMount ) "%TBIMountPath%\zDrvInst%xOS%.exe" "tbimount" "%SystemRoot%\System32\drivers\tbimount.sys" /install && echo The TBIMount service was installed successfully. || echo Error install TBIMount service. :startTBIMount "%TBIMountPath%\zDrvInst%xOS%.exe" "tbimount" /start && echo The TBIMount service was started successfully. || echo Error starting TBIMount service. :skipTBIMount popd endlocal goto :eof
К сожалению он тоже не умеет удалять драйвер который используется..
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете прикреплять файлы к сообщениям Вы можете скачивать файлы