• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Не выполняется агент

  • Автор темы fvoice
  • Дата начала
F

fvoice

Создал агента, Shared, Trigger - On Sheldue, Run on behalf of - указал себя, Runtime security - 3, Default Access - All Readers and Above, в теле использую NotesSession и NotesDocumentCollection.

В результате агент должен удалить помеченные документы из БД.

Когда агент запускаю я он срабатывает и удаляет документы, а когда кто-то другой, документы не удаляются, хотя:
Код:
If Agent.Run = 0 Then
Print "Agent DelMarkedDocs run"
Else
Print "Agent DelMarkedDocs did not run"
End If
выводит "Agent DelMarkedDocs run"

Тело:
Код:
	Dim s As New NotesSession
Dim dc As NotesDocumentCollection

Set dc = s.CurrentDatabase.Search({form = "Deleted"},Nothing,0)

Call dc.RemoveAll(True)
 

Medevic

Что это ? :)
Green Team
10.12.2004
3 334
1
BIT
4
А ты имеешь право подписывать Run on behalf of агенты? Обычно при сохранении выдается предупреждение. Или нажми "Test" в списке агентов.
 
K

K-Fire

Так агент по расписанию выполняется, или его запускает руками юзер?
Если по расписанию - добавь в тело агента месседжбокс, лучше даже 2, типа что "агент запущен", "агент закончил работу". И смотри лог потом.

Если он не запускается вообще - то может быть такая проблема: в момент времени должно запускаться больше агентов чем на сервере запущено агент менеджеров, в результате какие-то агенты просто не стартуют. Надо либо поменять время первого запуска - например поставить не 7:00 а 7:24, или на сервере больше агент менеджеров пускать.
 
D

D!m@n

Очевидно, что агент запускается, но на удаление документов прав ему почему-то не хватает...
 
F

fvoice

А ты имеешь право подписывать Run on behalf of агенты? Обычно при сохранении выдается предупреждение. Или нажми "Test" в списке агентов.

Да имею, тест проходит нормально.

Для: K-Fire
Посмотрел лог, пишет "You are not authorized to perform this operation"

Как сделать что бы пользователь мог удалить документы, если у него нет на это прав, посредством запуска подписанного агента?
 

Medevic

Что это ? :)
Green Team
10.12.2004
3 334
1
BIT
4
Для: fvoice
Для верности подпиши сервером. И убери Run on behalf.
 
F

fvoice

Для: Medevic
А как подписать сервером?
 

Medevic

Что это ? :)
Green Team
10.12.2004
3 334
1
BIT
4
Для: fvoice
Запускаешь Администратор, ищешь базу и подписываешь. :)
 
F

fvoice

убрал Run on behalf, подписал, та же печенька вылазит :)

"You are not authorized to perform this operation"

сделал запуск от имени сервера, не помогает..
 

Medevic

Что это ? :)
Green Team
10.12.2004
3 334
1
BIT
4
Для: fvoice
В ACL у сервера, которым подписал, необходимые права есть?
 
F

fvoice

Для: Medevic
Да для этой БД, право удалаять документы есть только у меня и у сервера, остальные же пользователи не могут удалять документы.

Еще кое что: когда агент запускается по расписанию он без затруднений удаляет доки, может что то я не правильно в свойствах проставил?
 

Medevic

Что это ? :)
Green Team
10.12.2004
3 334
1
BIT
4
Для: fvoice
Запускай методом notesAgent.RunOnServer.
 
F

fvoice

Для: Medevic
Спасибо, теперь работает! +1

Если не тяжело что означает noteID$ в параметрах RunOnServer (Инглиш знаю, просто не пойму?
 

Medevic

Что это ? :)
Green Team
10.12.2004
3 334
1
BIT
4
<!--QuoteBegin-fvoice+3:09:2007, 15:38 -->
<span class="vbquote">(fvoice @ 3:09:2007, 15:38 )</span><!--QuoteEBegin-->Если не тяжело что означает noteID$ в параметрах RunOnServer (Инглиш знаю, просто не пойму?
[snapback]77111" rel="nofollow" target="_blank[/snapback]​
[/quote]
NoteID документа (notesDocument.NoteID). Потом в агенте можно получить этот документ методом notesDatabase.GetDocumentByID.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!