Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Планировщик Win от имени другого пользователя (http://forum.oszone.net/showthread.php?t=356220)

daledale 02-04-2025 15:34 3036937

Планировщик Win от имени другого пользователя
 
Доброго. Ситуация. Есть батник, со следующим содержимым, например:
Код:

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 3036947

daledale, флажок "Выполнить с наивысшими правами" пробовали?

daledale 03-04-2025 01:01 3036949

Спасибо за ответ. Да, разумеется пробовал, причём даже если второй пользователь с правами администратора - всё равно не работает. В общем много чего пересмотрел по вопросу в интернете. В ряде мест описана похожая как у меня ситуация, решения нет. Видимо какая-то особенность работы планировщика win.
Вот похожие вопросы, решения нет.
stackoverflow, microsoft.

Petya V4sechkin 03-04-2025 11:15 3036961

Цитата:

Цитата daledale
Вручную запускаем задание в планировщике/тоже самое и при автоматическом запуске - запускается* только notepad с правами текущего пользователя admin, но не запускается с правами user1

Код ошибки пишет в Планировщике? По идее, runas должен код ошибки возвращать.

daledale 03-04-2025 15:58 3036973

Цитата:

Цитата Petya V4sechkin
Код ошибки пишет в Планировщике? По идее, 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 не висит.

ShaddyR 04-04-2025 00:54 3036985

а если убрать "/savecred" - остановится с запросом пароля? А если сделать через "cmd /c" ?

Sham 04-04-2025 12:20 3036993

runas интерактивная, и /savecred не гарантирует отсутствие запроса пароля. Лучше запускать от какой-нибудь группы без runas.

daledale 04-04-2025 17:16 3037003

Та же самая штука с программой cpau, кто в курсе.
Интересный факт - проблема происходит, если в планировщике стоит галка "Выполнять вне зависимости от регистрации пользователя".
Если же поставить на верхний пункт "Выполнять от имени текущего пользователя" - всё отлично.
Но мне нужен именно вариант "Выполнять вне зависимости от регистрации пользователя", т.к. только с ним возможно выполнение планировщика без входа в систему.
Скрытый текст

Кто успел увидеть моё предыдущее сообщение, цитата:
"Короче я, похоже, тупанул. Висит cmd процесс в диспетчере задач, точнее после старта вручную задачи в планировщике появляется в диспетчере задач notepad+cmd, оба от имени admin запущены. И т.к., повторяюсь, задача запускается не интерактивно, ГУЮ я не вижу, но скорее всего там висит запрос пароля. Странно, конечно, ведь в акке admin пароль для user1 через /savecred при предыдущем запуске уже сохранён и при ручном старте батника пароль не запрашивается. Но в планировщике при запуске с пользователем admin, похоже что, запрашивается."
----
Я его удалил. Поясню.
Начал разбираться, выяснил. cmd - это родительский процесс notepad, который был запущен от имени admin. Грохнул в процессах notepad (аналогично тому что закрыл его) - удалился и cmd
Более того, оставил в батнике только один runas и запустил. Ни cmd, ни notepad в диспетчере задач не появились.
Короче от имени user1 нет запуска вообще.

Sham 04-04-2025 21:08 3037007

psexec например позволяет и пароль указать psexec -u user1 -p pass notepad

daledale 04-04-2025 22:09 3037008

Цитата:

Цитата Sham
psexec например позволяет и пароль указать psexec -u user1 -p pass notepad »

cpau - тоже самое. В общем всё равно попробовал psexec. При ручном запуске батника работает, в планировщике - нет. Прям игнорируется строка запуска от имени другого пользователя и всё тут.

Sham 04-04-2025 23:38 3037010

Есть вариант с локальными политиками. Назначение прав пользователя / вход в качестве пакетного задания. Такое ощущение, что аккаунт user1 должен иметь эти права (должен быть в списке в этой политике).

daledale 05-04-2025 00:30 3037011

Цитата:

Цитата Sham
Есть вариант с локальными политиками. Назначение прав пользователя / вход в качестве пакетного задания. Такое ощущение, что аккаунт user1 должен иметь эти права (должен быть в списке в этой политике). »

Сделано. Сделано было ранее, ибо Windows предупредил об этом при создании задания. Пользователь User1 именно пользователь явно, а не группа в которую он входит, явно разрешена в политиках вход в качестве пакетного задания (secpol.msс - локальные политики - назначение прав пользователя - вход в качестве пакетного задания). Более того, если создать задание явно с правами запуска от имени User1 и, запустить, его из акка admin, например, вручную - оно, это самое задание, выполняется без проблем.

Sham 05-04-2025 11:59 3037015

Можно попробовать создать задачу в планировщике от User1 и запускать её schtasks /run /tn "имя". Служба seclogon (вторичный вход) по-умолчанию вручную стоит, можно на автомат поставить. Скорее всего в режиме без регистрации есть ограничения на вторичные логоны.

daledale 05-04-2025 12:25 3037016

Цитата:

Цитата Sham
Можно попробовать создать задачу в планировщике от User1 и запускать её schtasks /run /tn "имя". Служба seclogon (вторичный вход) по-умолчанию вручную стоит, можно на автомат поставить. Скорее всего в режиме без регистрации есть ограничения на вторичные логоны. »

Спасибо за ответ, но я ранее писал - цель как раз запускать задачу от имени только одного пользователя, т.к. если теоретически, пользователей будет много - глупо создавать задачу для запуска из под каждого пользователя.
Цитата:

Цитата Sham
Скорее всего в режиме без регистрации есть ограничения на вторичные логоны. »

Очень похоже на это.
ps Мне интересно, а как реализуется схема применения политик для такого случая, в т.ч. запуска приложений и батников в домене для множества пользователей администратором домена/в домене? Может с этой стороны зайти? Только у меня не домен.

Sham 05-04-2025 13:05 3037017

schtasks /create /np и /delete (создал, запустил, удалил или флаг /z при создании)
Цитата:

Цитата daledale
как реализуется схема применения политик для такого случая »

Есть какие-то средовые требования приложений, без которых они не работают корректно. Видимо это и касается режима "вне зависимости от регистрации пользователя".

daledale 05-04-2025 13:53 3037018

Цитата:

Цитата Sham
schtasks /create /np и /delete (создал, запустил, удалил или флаг /z при создании) »

Честно не совсем понял.
В целом я остановился на том, что всё таки создал задачи под каждого пользователя, у меня их 4, не считая admin. Да, это костыль, но других вариантов для своей ситуации не нашёл. Можно, конечно, сделать автологон и запускать задачу от имени текущего пользователя, в т.ч. с runas батниками внутри - всё работает в таком случае, но это дыра дырявая в плане безопасности и не вариант.
Можно ещё поиграться со сторонним софтом - сторонними шедуллерами, которые работают, как служба, например, и запускать батники через них до логона. Возможно взлетит, не пробовал.


Время: 00:03.

Время: 00:03.
© OSzone.net 2001-