Запуск задачи от имени "бесправного" пользователя

Обсуждение программ nnCron и nnCron LITE

Запуск задачи от имени "бесправного" пользователя

Postby roan-jr » Wed, 27 Oct 2010, 09:42

Добрый день.
Пытаюсь решить, казалось бы, тривиальную задачу, однако успехов пока не достиг )
Поиск по форуму дал похожие темы, но конкретного ответа я не нашел
Запускаю задачу резервного копирования с помощью nnbackup:

Code: Select all
#( backup
User: backup Password: 123456
Time: 00 22 * * * *
Action: START-APP: c:\Progra~1\nnbackup\nnbackup.exe -c sync -i X:\data\ -o \\server\share\ -s -e -v -da -log \\serever\log\%YYYY%-%MM%-%DD%.log
)#

Задача нормально выполняется только в случае, когда пользователь backup обладает правами администратора.
В противном случае, nnbackup не запускается.
В логах крона код возврата "0":

Code: Select all
21:57:02 4012 TASK: backup
21:57:02 4012 Start: c:\Progra~1\nnbackup\nnbackup.exe -c sync -i X:\data\ -o \\server\share\ -s -e -v -da -log \\serever\log\2010-10-26.log
21:57:02 4012 Start result: 0

Если залогиниться пользователем "backup" и попытаться выполнить задачу из cmd - работает.
Если в строке "User: backup Password: 123456" ввести неверный пароль - крон выдает ошибку авторизации, но потом таки запускает задачу, и тогда уже nnbackup, ругается (что логично) на недостачу прав.

Убил на эту проблему кучу времени. Буду очень благодарен за любую помощь.

ЗЫ: win2k3 SP2, nncron v 1.91 Build 1083
roan-jr
 
Posts: 6
Joined: Wed, 27 Oct 2010, 08:59

Re: Запуск задачи от имени "бесправного" пользователя

Postby roan-jr » Thu, 28 Oct 2010, 10:16

Ребят, ну я понимаю, что вопрос не самый интересный, но все же очень хотелось бы разобраться.
Неужели все запускают задания только из-под админов?
Или просто это обсуждалось уже тысячу раз? Так дайте ссылочку.
Все еще надеюсь на вашу помощь.
roan-jr
 
Posts: 6
Joined: Wed, 27 Oct 2010, 08:59

Re: Запуск задачи от имени "бесправного" пользователя

Postby elos » Thu, 28 Oct 2010, 11:29

Как у меня сделано... Есть три машины, с которых надо сливать данные. На них стоит софт, который иначе как под админом, просто не устанавливался.
Аналогично тебе имею что-то вроде
Code: Select all
User: "elos" SecPassword: "iLa4iF==" LogonInteractive

Перед этим с бекапной машины просто зашел на все "сливаемые" машины и авторизовался. Получается винда это запомнила (до перезагрузки? дальше просто не задумывался ввиду малости количества машин). Авторизация задачи соответствует тому, что было сделано - ручной авторизации. Ах, да! На всех этих машинах у меня одинаковый аккаунт имеется - одинаковый пароль и логин... Вроде папки еще расшаривал (как давно это всё было - уже позабыл...)

Если машин много - получается, надо попробовать просто другой тип авторизации - ещё есть LogonNetwork и LogonBatch (все "спотыкачки" на этом пути описаны в помощи).Есть кнопочка для тестирования введённой авторизационной информации.

Более глубоко про сетевое взаимодействие, честно признаюсь, не задумывался.
elos
 
Posts: 664
Joined: Tue, 25 Apr 2006, 11:15

Re: Запуск задачи от имени "бесправного" пользователя

Postby roan-jr » Thu, 28 Oct 2010, 11:52

Спасибо за ответ.
Авторизироваться вручную, конечно, не выход.
С logon-ами уже игрался, правда через гуи – не помогло. (сегодня попробую еще прописать в кронтабе)
На всякий случай даже разрешил пользователю:
-Replace a process level token
-Act as part of the operating system
-Bypass traverse checking

хотя, насколько я понимаю, это нужно только для запуска крона как службы.
roan-jr
 
Posts: 6
Joined: Wed, 27 Oct 2010, 08:59

Re: Запуск задачи от имени "бесправного" пользователя

Postby roan-jr » Thu, 28 Oct 2010, 12:19

Методы авторизации LogonNetwork и LogonBatch приводят к кодам возврата 1349 (The type of the token is inappropriate for its attempted use. ERROR_BAD_TOKEN_TYPE) и 1385 (Не могу выполнить logon для пользователя. параметр задан неверно).
В случае LogonInteractive, код возврата – 0
roan-jr
 
Posts: 6
Joined: Wed, 27 Oct 2010, 08:59

Re: Запуск задачи от имени "бесправного" пользователя

Postby elos » Thu, 28 Oct 2010, 12:28

У тебя на всех машинах должен быть одинаковый пользователь. Они есть у тебя?
Это просто видно при нажатии на выпадающий список в logon-е при создании задачи через GUI. Есть такой же как и на удалённой машине?
По-моему, дело только в этом.
elos
 
Posts: 664
Joined: Tue, 25 Apr 2006, 11:15

Re: Запуск задачи от имени "бесправного" пользователя

Postby Kostya5 » Thu, 28 Oct 2010, 14:14

Если залогиниться пользователем "backup" и попытаться выполнить задачу из cmd - работает.


Возможно LoadProfile поможет?
Kostya5
 
Posts: 19
Joined: Wed, 25 Jul 2007, 13:50

Re: Запуск задачи от имени "бесправного" пользователя

Postby roan-jr » Thu, 28 Oct 2010, 14:56

elos wrote:У тебя на всех машинах должен быть одинаковый пользователь. Они есть у тебя?

Естественно. И все шары на принимающей машине для этого пользователя установлены в full.
И проблема, вероятнее всего не в этом, т.к.:
- Если залогиниться в системе под этим пользователем, то все ресурсы на принимающей машине доступны.
- Если выполнить задачу из cmd - задача выполняется
- Если дать права администратора пользователю, то задача выполняется и из крона.


Kostya5 wrote:Возможно LoadProfile поможет?

Я тоже мыслил в этом направлении.
Пробовал - не работает.
roan-jr
 
Posts: 6
Joined: Wed, 27 Oct 2010, 08:59

Re: Запуск задачи от имени "бесправного" пользователя

Postby roan-jr » Thu, 28 Oct 2010, 15:16

Я точно помню, что ставил птицу LoadProfile в гуе. Но, видимо, тогда еще что-то не учел.
Сейчас попробовал лоадпрофайл непосредственно в кронтабе - заработало!

Всем БОЛЬШОЕ СПАСИБО за советы и потраченное время!
Удачи и больших успехов всем проектам nnSoft.
roan-jr
 
Posts: 6
Joined: Wed, 27 Oct 2010, 08:59

Re: Запуск задачи от имени "бесправного" пользователя

Postby overwatch » Tue, 28 Feb 2012, 10:45

Есть почти такая же проблема, только под уже залогиненным пользователем.

При выполнении такого кода программа, указанная в START-APP не запускается, не выдаётся никаких ошибок, а сама задача срабатывает.
Code: Select all
#( ansys_user
User: yyyyyy Password: xxxxxx
NoActive
Action:
   START-APP: "C:\Program Files\ANSYS Inc\Shared Files\Licensing\win32\anslic_admin.exe"   
)#


В логах ошибка 1314 — недостаточно прав

Запуск происходит из-за под загруженного пользователя. Если убрать логин и пароль, то всё работает, но получается аналог run as administrator, а мне нужен аналог запуска двойным кликом. В крайнем случае можно конечно эмулировать клики мышкой по ярлычку (и работает), но очень хочется сделать по-человечески.
overwatch
 
Posts: 4
Joined: Tue, 28 Feb 2012, 09:58

Re: Запуск задачи от имени "бесправного" пользователя

Postby Morituruz » Tue, 28 Feb 2012, 11:26

overwatch wrote:Если убрать логин и пароль, то всё работает, но получается аналог run as administrator, а мне нужен аналог запуска двойным кликом.

из вашего сообщения не ясно, пробовали ли вы AsLoggedUser? Windows у вас какая?
Ещё было бы неплохо пользоваться словом StartIn: "dir_path"
User avatar
Morituruz
 
Posts: 725
Joined: Sun, 14 Oct 2007, 01:51

Re: Запуск задачи от имени "бесправного" пользователя

Postby overwatch » Tue, 28 Feb 2012, 11:42

Moriturus wrote:пробовали ли вы AsLoggedUser?

Пробовал. Выдаёт ошибку "Не могу получить токен текущего пользователя. Вызывающая сторона не обладает всеми необходимыми правами доступа". И сразу после неё ещё одну: "Не могу выполнить logon для пользователя. Вызывающая сторона не обладает всеми необходимыми правами доступа"
Windows у вас какая?

Windows 7 x32
Ещё было бы неплохо пользоваться словом StartIn: "dir_path"

Сделал через него, код стал такой :)
Code: Select all
#( ansys_user222
User: xxx Password: yyy
NoActive
Action:
   StartIn: "C:\Program Files\ANSYS Inc\Shared Files\Licensing\win32\"
   START-APP: anslic_admin.exe
)#


Всё так же.

PS: Извиняюсь, сначала неправильно версию windows указал. Исправил.
overwatch
 
Posts: 4
Joined: Tue, 28 Feb 2012, 09:58

Re: Запуск задачи от имени "бесправного" пользователя

Postby VoidVolker » Tue, 28 Feb 2012, 16:39

Под семеркой крон лучше запускать как приложение:
Code: Select all
nncron.exe -ns -dir d:\nncron

Тогда и все программы будут от имени текущего пользователя. Как вариант, можно еще попробовать вот так:
Code: Select all
AsLoggedUser
LoadProfile
95% вопросов уже обсуждались на форуме или ответы на них есть в мануале.        nnCron 1.93 b15.exe
Как правильно задавать вопросы.
User avatar
VoidVolker
Site Admin
 
Posts: 2898
Joined: Tue, 25 Apr 2006, 17:56

Re: Запуск задачи от имени "бесправного" пользователя

Postby AlikasS » Wed, 29 Feb 2012, 05:30

overwatch wrote:Есть почти такая же проблема, только под уже залогиненным пользователем.

При выполнении такого кода программа, указанная в START-APP не запускается, не выдаётся никаких ошибок, а сама задача срабатывает.
Code: Select all
#( ansys_user
User: yyyyyy Password: xxxxxx
NoActive
Action:
   START-APP: "C:\Program Files\ANSYS Inc\Shared Files\Licensing\win32\anslic_admin.exe"   
)#


В логах ошибка 1314 — недостаточно прав

Запуск происходит из-за под загруженного пользователя. Если убрать логин и пароль, то всё работает, но получается аналог run as administrator, а мне нужен аналог запуска двойным кликом. В крайнем случае можно конечно эмулировать клики мышкой по ярлычку (и работает), но очень хочется сделать по-человечески.


что за аналог двойного клика? :)
наверное просто не хватает загрузки профиля пользователя
Code: Select all
LoadProfile


или у тебя крон запущен под windows 7 приложением
и ты хочешь запустить кроновскую задачу от имени другого пользователя?
User avatar
AlikasS
 
Posts: 1434
Joined: Wed, 28 Jun 2006, 05:39
Location: Khabarovsk

Re: Запуск задачи от имени "бесправного" пользователя

Postby overwatch » Wed, 29 Feb 2012, 12:33

VoidVolker wrote:Тогда и все программы будут от имени текущего пользователя.

Дело в том что админские права тоже будут нужны. Часть по дефолту будет выполняться как надо, а другим всё равно придётся явно указывать те или иные права.
Как вариант, можно еще попробовать вот так:

Те же самые ошибки выдаёт.
AlikasS wrote:что за аналог двойного клика? :)

чтобы программа запускалась с теми же правами что и при
MOUSE-MOVE: x y
MOUSE-LBDCLK
:)
наверное просто не хватает загрузки профиля пользователя

Даже если пользователь залогинен? btw, LoadProfile я пробовал, эффекта не даёт (
ты хочешь запустить кроновскую задачу от имени другого пользователя?

Не хочу. Опишу всё же подробнее. Есть программа, которая ссылается на данные, расположенные локально. После размножения образа такой системы машины получают разные имена, а программа продолжает искать данные по исходному имени машины. Хочу скриптом эти настройки менять. Так вот при запуске "as administrator" и при запуске ЛКМ программка сохраняет информацию о местоположении данных отдельно. Мне нужно изменить тот путь, который она ищет при обычных правах, а крон по дефолту запускает от имени администратора. Но есть и задачи, которые требуют админских прав (их заметно больше), поэтому изменять способ запуска крона смысла, наверное, нет.
overwatch
 
Posts: 4
Joined: Tue, 28 Feb 2012, 09:58

Next

Return to nnCron forum (Russian)

Who is online

Users browsing this forum: No registered users and 4 guests