[Quote]

    nikzzzz
  • 215
  • Longevity: 9 years
  • Posts: 3114
  • REPUTATION:127

    [+] [-]
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 *
Attachments


Last edited by nikzzzz on 2020-05-24 09:05; edited 10 times in total

[Quote]

    Ander_73
  • 15549
  • Longevity: 7 years 11 months
  • Posts: 3925
  • REPUTATION:127

    [+] [-]
Раз "не прокатило" с переменными окружения, можно ввести, например, /xstatus, который будет возвращать цифирьки состояния (или битовую маску, не знаю, как удобнее).

[Quote]

    nikzzzz
  • 215
  • Longevity: 9 years
  • Posts: 3114
  • REPUTATION:127

    [+] [-]
dialmak
А зачем нужны записи в реестр?
zDrvInst /install сам их сделает.
Проверки очень многие лишние.
При запуске TBIMount сам стартует драйвер.
То-есть можно обойтись минимумом
zDrvInst "tbimount"  /uninstall
zDrvInst "tbimount" ".../tbimount.sys" /install

[Quote]

    nikzzzz
  • 215
  • Longevity: 9 years
  • Posts: 3114
  • REPUTATION:127

    [+] [-]
Ander_73,
62426можно ввести, например, /xstatus, который будет возвращать цифирьки
Так все равно цифирьку эту For'ом придется вытаскивать, смысл?

[Quote]

    dialmak
  • 2607
  • Longevity: 8 years 11 months
  • Posts: 842
  • REPUTATION:40

    [+] [-]
nikzzzz,
zDrvInst /install сам их сделает.
А я об этом откуда знаю? Если в описании не указано - я решил, что нет такого.
А если он добавляет, то нужно озвучить шаблон.
Попробую упростить - отпишусь..
Увидел непонятку при тестировании.
Если путь к драйверу не тот, то все равно рапортует, что мол все ОК
Если в скрипте заменить строчку на
"%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

Переписал реестр. Он что не проверяет наличие файла???


Last edited by dialmak on 2019-02-19 21:22; edited 1 time in total

[Quote]

    dialmak
  • 2607
  • Longevity: 8 years 11 months
  • Posts: 842
  • REPUTATION:40

    [+] [-]
Так все равно цифирьку эту For'ом придется вытаскивать, смысл?
Да вроде проблем нет, в код возврата лепить бит.
0000 - одно
0001 - второе
0010 - третье
0011 - второе и третье
и т.д.

[Quote]

    Ander_73
  • 15549
  • Longevity: 7 years 11 months
  • Posts: 3925
  • REPUTATION:127

    [+] [-]
62428Так все равно цифирьку эту For'ом придется вытаскивать, смысл?
Не, как ErrorLevel возвращать, разумеется.
Смысл такой: /status возвращает success/fail (errorlevel 0/1)
И если success, то xstatus вернет расширенное состояние.

[Quote]

    nikzzzz
  • 215
  • Longevity: 9 years
  • Posts: 3114
  • REPUTATION:127

    [+] [-]
62429Он что не проверяет наличие файла???
Не проверяет, но запустить его будет невозможно.
62432Да вроде проблем нет, в код возврата лепить бит.
Я уже говорил, что не хочу нарушать идеологию, 0 - Sucess, not 0 - Error

[Quote]

    nikzzzz
  • 215
  • Longevity: 9 years
  • Posts: 3114
  • REPUTATION:127

    [+] [-]
62433И если success, то xstatus вернет расширенное состояние.
Куда и в каком виде?

[Quote]

    dialmak
  • 2607
  • Longevity: 8 years 11 months
  • Posts: 842
  • REPUTATION:40

    [+] [-]
nikzzzz,
Не проверяет, но запустить его будет невозможно.
Но при этом пишет 0 - Sucсess !!! Это нормально?
Зачем тогда читать код возврата, если он врет..

[Quote]

    nikzzzz
  • 215
  • Longevity: 9 years
  • Posts: 3114
  • REPUTATION:127

    [+] [-]
dialmak,
62436Но при этом пишет 0 - Sucсess !!! Это нормально?
Положи .sys файл в нужное место, и сервис будет работать!

[Quote]

    Ander_73
  • 15549
  • Longevity: 7 years 11 months
  • Posts: 3925
  • REPUTATION:127

    [+] [-]
62435Куда и в каком виде?
62433как ErrorLevel возвращать, разумеется.
62426будет возвращать цифирьки состояния (или битовую маску, не знаю, как удобнее)

[Quote]

    dialmak
  • 2607
  • Longevity: 8 years 11 months
  • Posts: 842
  • REPUTATION:40

    [+] [-]
nikzzzz,
Положи .sys файл в нужное место, и сервис будет работать!
Хм.. неужели сложно сделать проверку и выдать, что файла не существует или просто errorlevel=1 или к примеру 2
Получается, что проверить создание можно только после старта, это неудобно..

[Quote]

    nikzzzz
  • 215
  • Longevity: 9 years
  • Posts: 3114
  • REPUTATION:127

    [+] [-]
dialmak
Не сложно, просто не делал эту проверку, сама api функция ее оказывается не делает.
Добавлю, но это все равно не даст гарантии, что сервис будет работать, это можно выяснить только запустив его.

[Quote]

    dialmak
  • 2607
  • Longevity: 8 years 11 months
  • Posts: 842
  • REPUTATION:40

    [+] [-]
nikzzzz, Немного упростилось
@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
К сожалению он тоже не умеет удалять драйвер который используется..

[Quote]

    nikzzzz
  • 215
  • Longevity: 9 years
  • Posts: 3114
  • REPUTATION:127

    [+] [-]
dialmak,
62441К сожалению он тоже не умеет удалять драйвер который используется..
Попробовал, удалить можно, но большая вероятность синьки, а это не дело.

Page 4 of 5


Display posts:    

Current time is: 12-Jan 23:23

All times are UTC + 3


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum