Показать полную графическую версию : Планировщик Win от имени другого пользователя
daledale
02-04-2025, 15:34
Доброго. Ситуация. Есть батник, со следующим содержимым, например:
notepad
runas /user:user1 /savecred notepad.exeЗакидывается в планировщик, с параметрами запуска: "Выполнять вне зависимости от регистрации пользователя" и далее указывается пользователь с правами администратора + его пароль (пусть будет Admin).
Пароль пользователя user1 - ранее сохранён в системе (/savecred)
1. Собственно запускаем батник вручную из акка Admin - notepad от имени admin и user1 - успешно запускается, т.е. две копии notepad открываются.
2. Вручную запускаем задание в планировщике/тоже самое и при автоматическом запуске - запускается* только notepad с правами текущего пользователя admin, но не запускается с правами user1.
* - не интерактивно, но для моей задачи не критично.
Вопрос, как заставить запускаться приложение от имени другого пользователя ч-з планировщик?
ps Комментарии вида - создай задание в планировщике для запуска приложения от имени нужного пользователя - не вариант, ибо пользователей мб 100500, не создавать же теперь для каждого пользователя отдельное задание.
Petya V4sechkin
03-04-2025, 00:31
daledale, флажок "Выполнить с наивысшими правами" пробовали?
daledale
03-04-2025, 01:01
Спасибо за ответ. Да, разумеется пробовал, причём даже если второй пользователь с правами администратора - всё равно не работает. В общем много чего пересмотрел по вопросу в интернете. В ряде мест описана похожая как у меня ситуация, решения нет. Видимо какая-то особенность работы планировщика win.
Вот похожие вопросы, решения нет.
stackoverflow (https://ru.stackoverflow.com/questions/706177/%D0%9F%D1%80%D0%BE%D0%B1%D0%BB%D0%B5%D0%BC%D0%B0-%D1%81-%D0%B7%D0%B0%D0%BF%D1%83%D1%81%D0%BA%D0%BE%D0%BC-%D0%BF%D1%80%D0%BE%D1%86%D0%B5%D1%81%D1%81%D0%B0-%D0%B7%D0%B0%D0%BF%D1%83%D1%81%D0%BA%D0%B0%D1%8E%D1%89%D0%B5%D0%B3%D0%BE-%D0%B4%D1%80%D1%83%D0%B3%D0%B8%D0%B5-%D0%BF%D1%80%D0%BE%D1%86%D0%B5%D1%81%D1%81%D1%8B-%D0%BE%D1%82-%D0%B8%D0%BC%D0%B5%D0%BD%D0%B8-%D0%B4%D1%80%D1%83%D0%B3%D0%BE%D0%B3%D0%BE-%D0%BF%D0%BE%D0%BB%D1%8C), microsoft (https://answers.microsoft.com/en-us/windows/forum/all/task-in-task-scheduler-not-working-for-different/4df23860-7162-4d6e-9388-8c5fde7f25a8).
Petya V4sechkin
03-04-2025, 11:15
Вручную запускаем задание в планировщике/тоже самое и при автоматическом запуске - запускается* только notepad с правами текущего пользователя admin, но не запускается с правами user1
Код ошибки пишет в Планировщике? По идее, runas должен код ошибки возвращать.
daledale
03-04-2025, 15:58
Код ошибки пишет в Планировщике? По идее, runas должен код ошибки возвращать. »
1. Что касается кода ошибки runas - тут такая взаимоисключающая штука. Чтобы написать какую-либо ошибку, этот runas должен запуститься. Но он не запускается, вообще.
2. Журнал событий Windows же, под спойлером. Хронология -снизу вверх.
Ключевые слова Дата и время Источник Код события Категория задачи
***********************
Аудит успеха 03.04.2025 15:32:13 Microsoft-Windows-Security-Auditing 4634 Выход из системы "Выполнен выход учетной записи из системы.
Субъект:
ИД безопасности: WINDOWS-PC\User1
Имя учетной записи: User1
Домен учетной записи: WINDOWS-PC
Код входа: 0x104e5d
Тип входа: 2
Данное событие возникает при уничтожении сеанса входа. Его можно однозначно связать с событием входа с помощью значения ""Код входа"". Коды входа остаются уникальными после перезагрузки, но они уникальны только на одном компьютере."
***********************
Аудит успеха 03.04.2025 15:32:13 Microsoft-Windows-Security-Auditing 4624 Вход в систему "Вход с учетной записью выполнен успешно.
Субъект:
ИД безопасности: WINDOWS-PC\Admin
Имя учетной записи: Admin
Домен учетной записи: WINDOWS-PC
Код входа: 0x93c80
Тип входа: 2
Новый вход:
ИД безопасности: WINDOWS-PC\User1
Имя учетной записи: User1
Домен учетной записи: WINDOWS-PC
Код входа: 0x104e5d
GUID входа: {00000000-0000-0000-0000-000000000000}
Сведения о процессе:
Идентификатор процесса: 0x388
Имя процесса: C:\Windows\System32\svchost.exe
Сведения о сети:
Имя рабочей станции: WINDOWS-PC
Сетевой адрес источника: ::1
Порт источника: 0
Сведения о проверке подлинности:
Процесс входа: seclogo
Пакет проверки подлинности: Negotiate
Промежуточные службы: -
Имя пакета (только NTLM): -
Длина ключа: 0
Данное событие возникает при создании сеанса входа. Оно создается в системе, вход в которую выполнен.
Поля ""Субъект"" указывают на учетную запись локальной системы, запросившую вход. Обычно это служба, например, служба ""Сервер"", или локальный процесс, такой как Winlogon.exe или Services.exe.
В поле ""Тип входа"" указан тип выполненного входа. Самыми распространенными являются типы 2 (интерактивный) и 3 (сетевой).
Поля ""Новый вход"" указывают на учетную запись, для которой создан новый сеанс входа, то есть на учетную запись, с которой выполнен вход.
В полях, которые относятся к сети, указан источник запроса на удаленный вход. Имя рабочей станции доступно не всегда, и в некоторых случаях это поле может оставаться незаполненным.
Поля сведений о проверке подлинности содержат подробные данные о конкретном запросе на вход.
- GUID входа - это уникальный идентификатор, который позволяет сопоставить данное событие с событием KDC.
- В поле ""Промежуточные службы"" указано, какие промежуточные службы участвовали в данном запросе на вход.
- Поле ""Имя пакета"" указывает на подпротокол, использованный с протоколами NTLM.
- Поле ""Длина ключа"" содержит длину созданного ключа сеанса. Это поле может иметь значение ""0"", если ключ сеанса не запрашивался."
***********************
Аудит успеха 03.04.2025 15:32:13 Microsoft-Windows-Security-Auditing 4648 Вход в систему "Выполнена попытка входа в систему с явным указанием учетных данных.
Субъект:
ИД безопасности: WINDOWS-PC\Admin
Имя учетной записи: Admin
Домен учетной записи: WINDOWS-PC
Код входа: 0x93c80
GUID входа: {00000000-0000-0000-0000-000000000000}
Были использованы учетные данные следующей учетной записи:
Имя учетной записи: User1
Домен учетной записи: WINDOWS-PC
GUID входа: {00000000-0000-0000-0000-000000000000}
Целевой сервер:
Имя целевого сервера: localhost
Дополнительные сведения: localhost
Сведения о процессе:
Идентификатор процесса: 0x388
Имя процесса: C:\Windows\System32\svchost.exe
Сведения о сети:
Сетевой адрес: ::1
Порт: 0
Данное событие возникает, когда процесс пытается выполнить вход с учетной записью, явно указав ее учетные данные. Это обычно происходит при использовании конфигураций пакетного типа, например, назначенных задач, или выполнении команды RUNAS."
***********************
Аудит успеха 03.04.2025 15:32:13 Microsoft-Windows-Security-Auditing 4776 Проверка учетных данных "Компьютер попытался проверить учетные данные учетной записи.
Пакет проверки подлинности: MICROSOFT_AUTHENTICATION_PACKAGE_V1_0
Учетная запись входа: User1
Исходная рабочая станция: WINDOWS-PC
Код ошибки: 0x0"
Есть предположение, т.к. действо происходит не интерактивно - несмотря на то, что при обычном запуске сохраненный ранее пароль с ключом /savecred - успешно извлекается и вводится автоматически, то при запуске ч-з планировщик, пароль не извлекается, а запрашивается, только окно мы это не видим. Хотя, теория такая себе, ибо в диспетчере задач процесс cmd не висит.
а если убрать "/savecred" - остановится с запросом пароля? А если сделать через "cmd /c" ?
runas интерактивная, и /savecred не гарантирует отсутствие запроса пароля. Лучше запускать от какой-нибудь группы без runas.
daledale
04-04-2025, 17:16
Та же самая штука с программой cpau, кто в курсе.
Интересный факт - проблема происходит, если в планировщике стоит галка "Выполнять вне зависимости от регистрации пользователя".
Если же поставить на верхний пункт "Выполнять от имени текущего пользователя" - всё отлично.
Но мне нужен именно вариант "Выполнять вне зависимости от регистрации пользователя", т.к. только с ним возможно выполнение планировщика без входа в систему.
Кто успел увидеть моё предыдущее сообщение, цитата:
"Короче я, похоже, тупанул. Висит cmd процесс в диспетчере задач, точнее после старта вручную задачи в планировщике появляется в диспетчере задач notepad+cmd, оба от имени admin запущены. И т.к., повторяюсь, задача запускается не интерактивно, ГУЮ я не вижу, но скорее всего там висит запрос пароля. Странно, конечно, ведь в акке admin пароль для user1 через /savecred при предыдущем запуске уже сохранён и при ручном старте батника пароль не запрашивается. Но в планировщике при запуске с пользователем admin, похоже что, запрашивается."
----
Я его удалил. Поясню.
Начал разбираться, выяснил. cmd - это родительский процесс notepad, который был запущен от имени admin. Грохнул в процессах notepad (аналогично тому что закрыл его) - удалился и cmd
Более того, оставил в батнике только один runas и запустил. Ни cmd, ни notepad в диспетчере задач не появились.
Короче от имени user1 нет запуска вообще.
psexec например позволяет и пароль указать psexec -u user1 -p pass notepad
daledale
04-04-2025, 22:09
psexec например позволяет и пароль указать psexec -u user1 -p pass notepad »
cpau - тоже самое. В общем всё равно попробовал psexec. При ручном запуске батника работает, в планировщике - нет. Прям игнорируется строка запуска от имени другого пользователя и всё тут.
Есть вариант с локальными политиками. Назначение прав пользователя / вход в качестве пакетного задания. Такое ощущение, что аккаунт user1 должен иметь эти права (должен быть в списке в этой политике).
daledale
05-04-2025, 00:30
Есть вариант с локальными политиками. Назначение прав пользователя / вход в качестве пакетного задания. Такое ощущение, что аккаунт user1 должен иметь эти права (должен быть в списке в этой политике). »
Сделано. Сделано было ранее, ибо Windows предупредил об этом при создании задания. Пользователь User1 именно пользователь явно, а не группа в которую он входит, явно разрешена в политиках вход в качестве пакетного задания (secpol.msс - локальные политики - назначение прав пользователя - вход в качестве пакетного задания). Более того, если создать задание явно с правами запуска от имени User1 и, запустить, его из акка admin, например, вручную - оно, это самое задание, выполняется без проблем.
Можно попробовать создать задачу в планировщике от User1 и запускать её schtasks /run /tn "имя". Служба seclogon (вторичный вход) по-умолчанию вручную стоит, можно на автомат поставить. Скорее всего в режиме без регистрации есть ограничения на вторичные логоны.
daledale
05-04-2025, 12:25
Можно попробовать создать задачу в планировщике от User1 и запускать её schtasks /run /tn "имя". Служба seclogon (вторичный вход) по-умолчанию вручную стоит, можно на автомат поставить. Скорее всего в режиме без регистрации есть ограничения на вторичные логоны. »
Спасибо за ответ, но я ранее писал - цель как раз запускать задачу от имени только одного пользователя, т.к. если теоретически, пользователей будет много - глупо создавать задачу для запуска из под каждого пользователя.
Скорее всего в режиме без регистрации есть ограничения на вторичные логоны. »
Очень похоже на это.
ps Мне интересно, а как реализуется схема применения политик для такого случая, в т.ч. запуска приложений и батников в домене для множества пользователей администратором домена/в домене? Может с этой стороны зайти? Только у меня не домен.
schtasks /create /np и /delete (создал, запустил, удалил или флаг /z при создании) как реализуется схема применения политик для такого случая »
Есть какие-то средовые требования приложений, без которых они не работают корректно. Видимо это и касается режима "вне зависимости от регистрации пользователя".
daledale
05-04-2025, 13:53
schtasks /create /np и /delete (создал, запустил, удалил или флаг /z при создании) »
Честно не совсем понял.
В целом я остановился на том, что всё таки создал задачи под каждого пользователя, у меня их 4, не считая admin. Да, это костыль, но других вариантов для своей ситуации не нашёл. Можно, конечно, сделать автологон и запускать задачу от имени текущего пользователя, в т.ч. с runas батниками внутри - всё работает в таком случае, но это дыра дырявая в плане безопасности и не вариант.
Можно ещё поиграться со сторонним софтом - сторонними шедуллерами, которые работают, как служба, например, и запускать батники через них до логона. Возможно взлетит, не пробовал.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.