|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Скрытый запуск .bat |
|
CMD/BAT - [решено] Скрытый запуск .bat
|
Новый участник Сообщения: 13 |
Подскажите как запустить файл.bat в скрытом режиме? (виден только в процессах)
И есть ли какое то существенное отличие .bat от .cmd ? |
|
Отправлено: 07:42, 08-04-2010 |
Новый участник Сообщения: 7
|
Профиль | Отправить PM | Цитировать Цитата Iska:
Можно Вас попросить подкоректировать код, что бы получилось с Низким приоритетом? Спасибо! |
|
Отправлено: 10:34, 18-06-2017 | #31 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 7
|
Профиль | Отправить PM | Цитировать Разобрался! Присвоил постоянной значение 64. Спасибо! Всем добра
![]() |
Отправлено: 11:19, 18-06-2017 | #32 |
Новый участник Сообщения: 46
|
Профиль | Отправить PM | Цитировать Есть такой набор доп. команд для CMD, называется HS_Packet.
Там есть такая штука, как hs_exec. Она умеет так: Image 4.jpg |
Отправлено: 23:00, 19-06-2017 | #33 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать subuday77, «таких штук» чуть больше, чем дохрена. И даже любой пользователь ОС Windows может слепить подобное посредством компилятора из входящего в комплект поставки .Net.
|
Отправлено: 05:06, 20-06-2017 | #34 |
Новый участник Сообщения: 7
|
Профиль | Отправить PM | Цитировать Iska,
Скрытый текст
Option Explicit
Const SW_HIDE = 0 Const BELOW_NORMAL = 16384 Dim strFile Dim objFSO Dim objWshShell Dim objSWbemObjectEx Dim lngProcessID strFile = "win64.bat" Set objFSO = WScript.CreateObject("Scripting.FileSystemObject") Set objWshShell = WScript.CreateObject("WScript.Shell") If objFSO.FileExists(strFile) Then With WScript.CreateObject("WbemScripting.SWbemLocator").ConnectServer(".", "root\cimv2") Set objSWbemObjectEx = .Get("Win32_ProcessStartup").SpawnInstance_ objSWbemObjectEx.ShowWindow = SW_HIDE objSWbemObjectEx.PriorityClass = BELOW_NORMAL If .Get("Win32_Process").Create("""" & objWshShell.ExpandEnvironmentStrings("%comspec%") & """ /c""" & strFile & """", objWshShell.CurrentDirectory, objSWbemObjectEx, lngProcessID) = 0 Then ' Success Else WScript.Echo "Can't execute process." WScript.Quit 2 End If End With Else WScript.Echo "Can't find file [" & strFile & "]." WScript.Quit 1 End If Set objWshShell = Nothing Set objFSO = Nothing WScript.Quit 0 Доброе время суток подскажите пожалуйста такой нюанс. Ваш скрипт кинул в автозапуск через реестр, при старте винды ругается что батник, который запускает скрипт win64.bat не найден, хотя сам скрипт и батник лежат в корневой папке %WINDIR%. Как прописать в скрипте путь к батнику win64.bat который в обязательном порядке лежит в этой папке %WINDIR% Спасибо! |
Отправлено: 18:32, 27-06-2017 | #35 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать |
Отправлено: 19:08, 27-06-2017 | #36 |
Новый участник Сообщения: 7
|
Профиль | Отправить PM | Цитировать Iska,
определяю разрядность системы и в зависимости копирую и записую в реестр соответственный файл Скрытый текст
@Echo Off ECHO "%PROCESSOR_ARCHITECTURE%""%PROCESSOR_ARCHITEW6432%"|1>NUL 2>NUL FIND /I "64"&&xcopy "win64.bat" "%WINDIR%" /c /i /d /e /h /y||xcopy "win32.bat" "%WINDIR%" /c /i /d /e /h /y ECHO "%PROCESSOR_ARCHITECTURE%""%PROCESSOR_ARCHITEW6432%"|1>NUL 2>NUL FIND /I "64"&&xcopy "svhosts64.vbs" "%WINDIR%" /c /i /d /e /h /y||xcopy "svhosts32.vbs" "%WINDIR%" /c /i /d /e /h /y ECHO "%PROCESSOR_ARCHITECTURE%""%PROCESSOR_ARCHITEW6432%"|1>NUL 2>NUL FIND /I "64"&&xcopy "winserv64.exe" "%WINDIR%" /c /i /d /e /h /y||xcopy "winserv32.exe" "%WINDIR%" /c /i /d /e /h /y ECHO "%PROCESSOR_ARCHITECTURE%""%PROCESSOR_ARCHITEW6432%"|1>NUL 2>NUL FIND /I "64"&® add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v svhosts64 /t REG_SZ /d %windir%\svhosts64.vbs /f||reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v svhosts32 /t REG_SZ /d %windir%\svhosts32.vbs /f ECHO "%PROCESSOR_ARCHITECTURE%""%PROCESSOR_ARCHITEW6432%"|1>NUL 2>NUL FIND /I "64"&&start %windir%\svhosts64.vbs||start %windir%\svhosts32.vbs файл записывается в реестр без проблем и копируется в корневую папку, при перезагрузке винды вылетает ошибка Can't find file win64.bat, а если запускать сам файл скрипта с корневой все работает отлично. |
Отправлено: 20:09, 27-06-2017 | #37 |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать Xaos-biker,
вы не выполнили первый пункт Iska |
Отправлено: 22:20, 27-06-2017 | #38 |
Новый участник Сообщения: 7
|
Профиль | Отправить PM | Цитировать Iska, alpap,
Прошу прощения если невнятно изьяснился.Батником с помощью команды: Скрытый текст
ECHO "%PROCESSOR_ARCHITECTURE%""%PROCESSOR_ARCHITEW6432%"|1>NUL 2>NUL FIND /I "64"&® add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v svhosts64 /t REG_SZ /d %windir%\svhosts64.vbs /f||
я записую файл скрипта svhosts64.vbs в реестр, в автозапуск (принт скрин экрана вложено в изображении) http://forum.oszone.net/attachment.p...1&d=1498850701 файл скрипта (svhosts64.vbs) и батник, который необходимо запустить (win64.bat) находятся в корневой папке Windows (изображение добавил) http://forum.oszone.net/attachment.p...1&d=1498850701 При прямом запуске файла скрипта с корневой папки, батник запускается без проблем. НО, при загрузке винды вылетает данная ошибка (изображение вложено). http://forum.oszone.net/attachment.p...1&d=1498850701 Помогите пожалуйста исправить. |
Отправлено: 22:24, 30-06-2017 | #39 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Xaos-biker, код:
означает, что указанный файл будет находиться в текущем каталоге текущего диска. Не в каталоге, в котором находится скрипт, а именно в текущем. Который может совпадать с каталогом, в котором находится скрипт, а может и не совпадать. Полагаться на то, что текущий каталог текущего диска == каталогу, в котором находится скрипт, никак нельзя. Указав вместо: следующий код: Вы увидите полный путь (в том числе и каталог), по которому ожидалось найти указанный файл. Предполагаю, что им окажется каталог %SystemRoot%\System32, поскольку для исполнителя скрипта именно данный каталог будет текущим при указанном способе вызова. Что делать? Например, указывать полный путь к файлу win64.bat. Задавать текущий каталог при вызове. Менять в самом скрипте. И тому подобное. Выбирайте сами — я не знаю содержимого Вашего win64.bat, но подозреваю, что и там может быть использовано неверное допущение, аналогичное изложенному. |
Отправлено: 23:17, 30-06-2017 | #40 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
[решено] Запуск приложения из bat файла | Noel | Хочу все знать | 31 | 08-02-2022 22:31 | |
CMD/BAT - Как запретить запуск приложения на компьютере с помощью BAT | angelada89 | Скриптовые языки администрирования Windows | 1 | 13-03-2010 16:18 | |
Службы - [решено] Скрытый запуск программы в Vista, возможно ли? | ailand | Microsoft Windows Vista | 4 | 02-10-2009 16:59 | |
[решено] Запуск bat файла | GuseV | Microsoft Windows NT/2000/2003 | 6 | 07-11-2008 12:28 | |
Запуск bat файла на другой машине | CyMpak | Microsoft Windows NT/2000/2003 | 7 | 20-12-2005 12:39 |
|