Haccker
05-03-2021, 01:30
Доброго времени.
Вы бы не могли проверить мой бат на правильность.
Всё работает, но возможно есть ошибки или ненужные строки.
У меня нет образования в ИТ сфере, "накалякал" с разных форумов, методом тыка, так сказать.
Задача простая, запустить определенный .ехе от имени администратора с исполняемого каталога, а не из папки system32, без отображения самой командной строки (без окна cmd), и выполнения последующего алгоритма exeшника.
@echo off // скрыть информацию с cmd появляющегося на 1 секунду
%1@mshta vbscript:Execute("CreateObject(""Wscript.Shell"").Run """"""%~f0"""" :"",0:Close()")& exit/b //скрывает окно командной строки
set "params=%*"
cd /d "%~dp0" && ( if exist "%temp%\getadmin.vbs" del "%temp%\getadmin.vbs" ) && fsutil dirty query %systemdrive% 1>nul 2>nul || ( echo Set UAC = CreateObject^("Shell.Application"^) : UAC.ShellExecute "cmd.exe", "/k cd ""%~sdp0"" && %~s0 %params%", "", "runas", 1 >> "%temp%\getadmin.vbs" && "%temp%\getadmin.vbs" && exit /B ) //даёт cmd права администратора, открывая новое окно cmd и позволяет сохранить создаваемый файл в исполняемой папке, а не в system32, вроде как.
файл.exe -бЛа -бКа -бСа > файл.txt //исполняемый экзешник/скрипт работающий в командной строке, работает с условиями и создает текстовик в исполняемой папке)
cls //очистка "невидимого" окна
exit //завершение. хз, работает без последних двух строк.
Вижу: "всё очень коряво, но работает" -такое себе).
Что тут лишнее? Подскажите пожалуйста.
Пытался сделать тоже самое через vbs
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run chr(34) & "C:\папка\Файл.bat" & Chr(34), 0
Set WshShell = Nothing
Не хочет работать, основанное окно скрывается, но открывается второе с правами администратора.
_________
Пока писал вопрос и параллельно ковырял бат столкнулся с проблемой, работает через раз...
Окно с правами администратора продолжает висеть без отображения информации. А его быть не должно.
Вы бы не могли проверить мой бат на правильность.
Всё работает, но возможно есть ошибки или ненужные строки.
У меня нет образования в ИТ сфере, "накалякал" с разных форумов, методом тыка, так сказать.
Задача простая, запустить определенный .ехе от имени администратора с исполняемого каталога, а не из папки system32, без отображения самой командной строки (без окна cmd), и выполнения последующего алгоритма exeшника.
@echo off // скрыть информацию с cmd появляющегося на 1 секунду
%1@mshta vbscript:Execute("CreateObject(""Wscript.Shell"").Run """"""%~f0"""" :"",0:Close()")& exit/b //скрывает окно командной строки
set "params=%*"
cd /d "%~dp0" && ( if exist "%temp%\getadmin.vbs" del "%temp%\getadmin.vbs" ) && fsutil dirty query %systemdrive% 1>nul 2>nul || ( echo Set UAC = CreateObject^("Shell.Application"^) : UAC.ShellExecute "cmd.exe", "/k cd ""%~sdp0"" && %~s0 %params%", "", "runas", 1 >> "%temp%\getadmin.vbs" && "%temp%\getadmin.vbs" && exit /B ) //даёт cmd права администратора, открывая новое окно cmd и позволяет сохранить создаваемый файл в исполняемой папке, а не в system32, вроде как.
файл.exe -бЛа -бКа -бСа > файл.txt //исполняемый экзешник/скрипт работающий в командной строке, работает с условиями и создает текстовик в исполняемой папке)
cls //очистка "невидимого" окна
exit //завершение. хз, работает без последних двух строк.
Вижу: "всё очень коряво, но работает" -такое себе).
Что тут лишнее? Подскажите пожалуйста.
Пытался сделать тоже самое через vbs
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run chr(34) & "C:\папка\Файл.bat" & Chr(34), 0
Set WshShell = Nothing
Не хочет работать, основанное окно скрывается, но открывается второе с правами администратора.
_________
Пока писал вопрос и параллельно ковырял бат столкнулся с проблемой, работает через раз...
Окно с правами администратора продолжает висеть без отображения информации. А его быть не должно.