Войти

Показать полную графическую версию : [решено] Запуск программы через Планировщик заданий


The_Immortal
09-10-2016, 20:55
Всех приветствую!

Т.к. вопрос у меня более познавательный и не относится к конкретной ОС, решил запостить в соответствующем разделе.

Итак. Имеем клиентскую ОС Windows NT версии 6.0 и далее (по поводу XP некоторых нюансов уже не вспомню). Через Планировщик заданий создаем задачу со следующими параметрами:

- выполнять от локальной учетной записи User для всех пользователей;
- выполнять при включении компьютера;
- процесс для выполнения, скажем, mspaint.exe.

Т.е. предположим, что есть некоторая программа (mspaint.exe чисто для примера), которая должна запускаться до входа пользователя в систему от имени локально пользователя User. И она действительно запускается. А теперь предположим, что пользователь User решил всё же войти в систему и получить доступ к этой самой программе (естественно, не перезапуская её). Но, увы, GUI программы (в данном случае Paint'а) будет недоступно. Т.е. даже нету "окна" для взаимодействия с программой.

Если говорить в терминах Диспетчера задач Windows 8/8.1/10, то в случае вышеописанного метода запуска программы Paint она попадает в Фоновые процессы, где нет "окон". При нормальном же запуске программы (уже после входа в систему) она попадает в Приложения, где уже возможно дальнейшее взаимодействие с программой.

Соответственно, вопрос: почему программа помещается в фоновые процессы и как можно решить подобную задачу, пользуясь исключительно Планировщиком заданий?


Благодарю!

dascon
09-10-2016, 21:57
Попробуй с помощью start: start mspaint.exe

Vadikan
09-10-2016, 23:02
The_Immortal, пример теоретический, а с практической точки зрения непонятно, зачем запускать до входа пользователя программу, с которой он потом будет взаимодействовать интерактивно.

The_Immortal
10-10-2016, 00:50
Vadikan, есть программа, которая должна работать именно до входа в систему. Позже, возможно, потребуется лицезреть её интерактивно, т.к. таким образом можно будет увидеть возможные ошибки (логов программа не пишет).

dascon, туплю. Указал в качестве самой программы cmd.exe, в качестве её аргументов start mspaint.exe. mspaint вообще не запускается :-|

Amigos
10-10-2016, 08:57
есть программа, которая должна работать именно до входа в систему. Позже, возможно, потребуется лицезреть её интерактивно »разделить программу на две части - "рабочую" - запускается через планировщик или как служба и не имеет интерфейса и "интерактивную" - запускается пользователем, имеет интерфейс и управляет "рабочей частью"

The_Immortal
10-10-2016, 11:00
Amigos, будь я разработчиком, то обязательно прислушался :) Я же пользователь и довольствуюсь лишь одним экземпляром программы. В связи с этим мне надо как-то заставить программу впоследствии быть интерактивной с предварительным запуском через Планировщик.

Друзья, подскажите, пожалуйста, что там насчет варианта со start?

Charg
10-10-2016, 11:23
Чтоб получить решение проблемы (или убедиться в его невозможности) нужно оперировать не гипотетическими примерами, а реальными.

The_Immortal
10-10-2016, 11:29
Charg, я обрисовал задачу: заставить программу (Paint, к примеру) впоследствии быть интерактивной с предварительным запуском через Планировщик (подразумевается работа с одним и тем же экземпляром процесса).
Реальным примером я поделиться физически не могу, т.к. он недоступен в публичном виде.

P.S. Paint (mspaint.exe) - достаточно реальная программа :)

Amigos
10-10-2016, 12:10
я обрисовал задачу: заставить программу (Paint, к примеру) впоследствии быть интерактивной с предварительным запуском через Планировщик (подразумевается работа с одним и тем же экземпляром процесса). »1 настроить автоматический логон выбранного пользователя.
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon]
"AutoAdminLogon"="1"
"DefaultUserName"="domain\\user"
"DefaultPassword"="userpassword"

2 в автозагрузку пользователя кинуть батник
echo проверка повторного запуска
tasklist | find "mspaint" > NUL
if %errorlevel%==0 goto povtor
start "mspaint" "c:\Windows\System32\mspaint.exe"
ping -n 5 localhost
rundll32.exe USER32.DLL LockWorkStation


:povtor который
при первом запуске запускает mspaint и блокирует компьютер (если не наблюдать за компом, то можно не заметить автологона из пункта 1)
при повторном запуске (пользователь входит уже сам) при наличаи в памяти mspaint - ничего не делает.

рецепт, естественно, хоронит все дефолтные средства безопасности - тут тебе и пароль в открытом виде в реестре тут тебе и нулевая защита от неавторизованного доступа.

The_Immortal
10-10-2016, 12:14
Amigos, спасибо за гибкость мысли! Настолько зациклился на Планировщике, что в другие стороны даже не смотрел.

P.S. Конечно, автологон бы лишний раз использовать не хотелось (именно по указанным Вами причинам), но, видимо, иначе никак. Хотя попробую поискать ещё решения.
В любом случае благодарю!




© OSzone.net 2001-2012