[Цитировать]

    nikzzzz
  • 215
  • Стаж: 9 лет 9 месяцев
  • Сообщений: 3114
  • Репутация: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 *
Вложение


Последний раз редактировалось: nikzzzz (2020-05-24 09:05), всего редактировалось 10 раз(а)

[Цитировать]

    nikzzzz
  • 215
  • Стаж: 9 лет 9 месяцев
  • Сообщений: 3114
  • Репутация:127

    [+] [-]
Утилита обновлена.
Исправлены мелкие баги с ErrorLevel , добавлено DisplayName

[Цитировать]

    dialmak
  • 2607
  • Стаж: 8 лет 9 месяцев
  • Сообщений: 842
  • Репутация:40

    [+] [-]
nikzzzz, так и не ответил, ведь это работает
ping 127.0.0.1 -n 1 && ping 127.0.0.2 -n 1 || ping 127.0.0.3 -n 1
ping 10.100.100.100 -n 1 && ping 127.0.0.2 -n 1 || ping 127.0.0.3 -n 1
https://i.imgur.com/oKS6lRu.png

[Цитировать]

    nikzzzz
  • 215
  • Стаж: 9 лет 9 месяцев
  • Сообщений: 3114
  • Репутация:127

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

[Цитировать]

    dialmak
  • 2607
  • Стаж: 8 лет 9 месяцев
  • Сообщений: 842
  • Репутация:40

    [+] [-]
Может перепутал c 'command || command && command'
это не работает

[Цитировать]

    nikzzzz
  • 215
  • Стаж: 9 лет 9 месяцев
  • Сообщений: 3114
  • Репутация:127

    [+] [-]
dialmak
Может и так.

[Цитировать]

    dialmak
  • 2607
  • Стаж: 8 лет 9 месяцев
  • Сообщений: 842
  • Репутация:40

    [+] [-]
nikzzzz, не работает перенаправление, в прошлой версии по моему работало, но не уверен..
zDrvInst64.exe myservice /status | find /i "service"

[Цитировать]

    nikzzzz
  • 215
  • Стаж: 9 лет 9 месяцев
  • Сообщений: 3114
  • Репутация:127

    [+] [-]
Утилита обновлена.
dialmak,
62346не работает перенаправление
Утилита просто выводила результат в UTF16, баг исправлен.

[Цитировать]

    dialmak
  • 2607
  • Стаж: 8 лет 9 месяцев
  • Сообщений: 842
  • Репутация:40

    [+] [-]
nikzzzz,
баг исправлен.
Спасибо, потестим.
Если 32 битное приложение работает в 64 битной ОС, то какой драйвер ей требуется - 32 или 64 битный? Спрашиваю чисто теоретически.. Практика наверное разнообразна и нужно проверять каждый случай (по крайней мере так надежнее).

[Цитировать]

    Гость
  • Репутация:0

    [+] [-]
dialmak, даже если приложение 32-битное, под х64 нужен 64-битный драйвер. Могу так утверждать, поскольку в 2k10 все программы х86. И для обеспечения их работы в х64 ОС/РЕ приходилось добавлять именно х64 дрова.

[Цитировать]

    nikzzzz
  • 215
  • Стаж: 9 лет 9 месяцев
  • Сообщений: 3114
  • Репутация:127

    [+] [-]
dialmak
Битность драйвера должна соответствовать битности системы, иначе он просто может не встать.

[Цитировать]

    dialmak
  • 2607
  • Стаж: 8 лет 9 месяцев
  • Сообщений: 842
  • Репутация:40

    [+] [-]
conty9, nikzzzz,
Скорее всего так и есть, что битность драйвера должна совпадать с битностью ОС.
Но практика упрямая штука. Я проверил парочку.
Некоторые драйвера x86 безпроблемно работают на x64 c приложениями любой разрядности.
Ясно и другое, что некоторые драйвера не будут так работать.
nikzzzz, я немного потестил и честно говоря уже нихрена не понимаю, работает как то по-разному или я дурак. Может в батнике статус показать, что драйвер запущен, хотя его и в помине нет, в комстроке пишет, что нет такого.. и т.д.

[Цитировать]

    nikzzzz
  • 215
  • Стаж: 9 лет 9 месяцев
  • Сообщений: 3114
  • Репутация:127

    [+] [-]
dialmak,
62374Может в батнике статус показать, что драйвер запущен, хотя его и в помине нет, в комстроке пишет, что нет такого..
Да, там есть некоторые сложности.
Пример - драйвер запущен, и деинсталлирован.
Но сам драйвер загружен и работает, утилита это и покажет.
А вот если его остановить, то утилита уже покажет, что его нет.
Не всегда можно остановить драйвер, если он в это время используется.

[Цитировать]

    dialmak
  • 2607
  • Стаж: 8 лет 9 месяцев
  • Сообщений: 842
  • Репутация:40

    [+] [-]
nikzzzz, Ну допустим. Но почему она выдает разные результаты одновременно. Ведь ничего не менялось..

[Цитировать]

    nikzzzz
  • 215
  • Стаж: 9 лет 9 месяцев
  • Сообщений: 3114
  • Репутация:127

    [+] [-]
62376Но почему она выдает разные результаты одновременно. Ведь ничего не менялось..
Не знаю, приведи тест.

[Цитировать]

    dialmak
  • 2607
  • Стаж: 8 лет 9 месяцев
  • Сообщений: 842
  • Репутация:40

    [+] [-]
nikzzzz, Это я где-то косячил наверное.
Единственное, что напрягает - долгие и нужные проверки. Вот пример установки TBIMount
@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="
if not defined TBIMountPath goto :skipTBIMount
"%TBIMountPath%\zDrvInst%xOS%.exe" "tbimount" /status | find.exe /i "running" >nul && if not exist "%SystemRoot%\%System32%\drivers\tbimount.sys" goto :installTBIMount
"%TBIMountPath%\zDrvInst%xOS%.exe" "tbimount" /status | find.exe /i "not found" >nul && goto :installTBIMount
"%TBIMountPath%\zDrvInst%xOS%.exe" "tbimount" /status | find.exe /i "running" >nul && (
echo The TBIMount service already running.
goto :skipTBIMount
)
"%TBIMountPath%\zDrvInst%xOS%.exe" "tbimount" /status | find.exe /i "stopped" >nul && goto :startTBIMount
:installTBIMount
echo.
echo Installing TBIMount driver...
"%TBIMountPath%\tbimount%xOS%.exe" unmount * /q
"%TBIMountPath%\zDrvInst%xOS%.exe" "tbimount" /stop
"%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
reg.exe add HKLM\SYSTEM\CurrentControlSet\Services\TBIMount /f >nul
reg.exe add HKLM\SYSTEM\CurrentControlSet\Services\TBIMount /v Type /t REG_DWORD /d "1" /f >nul
reg.exe add HKLM\SYSTEM\CurrentControlSet\Services\TBIMount /v Start /t REG_DWORD /d "3" /f >nul
reg.exe add HKLM\SYSTEM\CurrentControlSet\Services\TBIMount /v ErrorControl /t REG_DWORD /d "1" /f >nul
reg.exe add HKLM\SYSTEM\CurrentControlSet\Services\TBIMount /v DisplayName /t REG_SZ /d "TBIMount" /f >nul
reg.exe add HKLM\SYSTEM\CurrentControlSet\Services\TBIMount /v ImagePath /t REG_SZ /d "\SystemRoot\System32\drivers\tbimount.sys" /f >nul
"%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
Может можно как то упростить?

Страница 3 из 5


Показать сообщения:    

Текущее время: 23-Ноя 13:17

Часовой пояс: UTC + 3


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы можете скачивать файлы