Запуск и работа nnCron в Win7

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

Re: Запуск и работа nnCron в Win7

Postby AlikasS » Fri, 17 Jun 2011, 16:38

офтоп
SeMa wrote:Всё никак не доберусь установить 7-ку.

я добрался до windows 7 .
с обновлениями + OSS 7.1 free (http://free.agnitum.com/)
+ nncron 1.93 b10 Build 1141 + некоторые модификации,
все довольно стабильно
User avatar
AlikasS
 
Posts: 1434
Joined: Wed, 28 Jun 2006, 05:39
Location: Khabarovsk

Re: Запуск и работа nnCron в Win7

Postby VictorVG » Wed, 22 Jun 2011, 15:25

Погляжу вечером на подобной ОС, но с другим набором - McAfee 8.8i EE + Win 7 SP1 с полным набором обновлений на сегодня. Тогда и отпишусь что у меня выйдет на стенде.
VictorVG
 
Posts: 4
Joined: Mon, 13 Jun 2011, 05:27

Re: Запуск и работа nnCron в Win7

Postby Aushkin » Mon, 12 Sep 2011, 21:33

Здравствуйте,
возник вопрос по-существу :D
У Вас при установке настраиваются следующие права на каталог:

echo setting secure option
cacls "%CD%" /g Все:F /e /c /t
cacls "%CD%" /g Everyone:F /e /c /t
cacls "%CD%" /g All:F /e /c /t
cacls "%CD%" /g Users:F /e /c /t

это обязательное условие?

Поясняю почему возник вопрос. Если установка прошла на машине, на которой в последствии будут работать ребята с правами простого юзера, то возможность угробить сам каталог с nnCron-ом со всем его содержимым не есть гуд, как мне кажется.
Может быть полный доступ для всех не обязательное условие?

Полный доступ возможен для системы, для группы Администраторов, а остальным только чтение и выполнение.
Пожалуйста, подскажите минимальный набор прав, требуемый для корректной работы Вашей сборки.
Опять же, может быть это добавлено в качестве фичи сборки, что-то вроде "установка только сервиса Home" и "установка только сервиса Corporate"(с минимальным необходимым набором прав).

Заранее спасибо.
Aushkin
 
Posts: 17
Joined: Mon, 12 Sep 2011, 21:22

Re: Запуск и работа nnCron в Win7

Postby AlikasS » Tue, 13 Sep 2011, 12:13

Aushkin wrote:Здравствуйте,
возник вопрос по-существу :D
У Вас при установке настраиваются следующие права на каталог:

echo setting secure option
cacls "%CD%" /g Все:F /e /c /t
cacls "%CD%" /g Everyone:F /e /c /t
cacls "%CD%" /g All:F /e /c /t
cacls "%CD%" /g Users:F /e /c /t

это обязательное условие?

Поясняю почему возник вопрос. Если установка прошла на машине, на которой в последствии будут работать ребята с правами простого юзера, то возможность угробить сам каталог с nnCron-ом со всем его содержимым не есть гуд, как мне кажется.
Может быть полный доступ для всех не обязательное условие?

Полный доступ возможен для системы, для группы Администраторов, а остальным только чтение и выполнение.
Пожалуйста, подскажите минимальный набор прав, требуемый для корректной работы Вашей сборки.
Опять же, может быть это добавлено в качестве фичи сборки, что-то вроде "установка только сервиса Home" и "установка только сервиса Corporate"(с минимальным необходимым набором прав).

Заранее спасибо.

в сборке два момента:
1 - по умолчанию она ставится и сервисом и приложением_от_пользователя в одну общую папку.
и крону-приложению необходимо создавать, модифицировать и удалять некоторые файлы в каталоге крона.
2 - установка только сервиса, т.е. даже если сборку просто распаковать
и откорректировать в части установки прав и запустить батник InstallOnlyService.bat,
для установки и запуска только сервиса,
но для интерактивности сервиса (взаимодействия с пользователем через плагин CronScript.spf)
так же необходим будет доступ к каталогу крона.

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

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

Re: Запуск и работа nnCron в Win7

Postby Aushkin » Tue, 13 Sep 2011, 15:08

Да, было бы не плохо проработать этот момент, иначе любой пользователь сам себе админ, либо сам себе "режиссер".
А пользователь ещё и с мозгом, то одно небольшое задание в кронтабе легко и непринужденно поднимет его привилегии, после первого же захода администратора ... :axe:
Aushkin
 
Posts: 17
Joined: Mon, 12 Sep 2011, 21:22

Re: Запуск и работа nnCron в Win7

Postby AlikasS » Tue, 13 Sep 2011, 15:16

Aushkin wrote:Да, было бы не плохо проработать этот момент, иначе любой пользователь сам себе админ, либо сам себе "режиссер".
А пользователь ещё и с мозгом, то одно небольшое задание в кронтабе легко и непринужденно поднимет его привилегии, после первого же захода администратора ... :axe:

даже без захода админа можно поднять ;-)
nncron это нечто!
User avatar
AlikasS
 
Posts: 1434
Joined: Wed, 28 Jun 2006, 05:39
Location: Khabarovsk

Re: Запуск и работа nnCron в Win7

Postby Aushkin » Wed, 14 Sep 2011, 00:12

Ещё раз здравствуйте.
Есть задачка.
1. Нужно запустить задачку от залогиневшегося юзера, при этом, зная что для nnCron много чего является "юзером", проверить, что эти "юзеры" не "SYSTEM", не "Local Service" и не "Network Service"
2. Проверить наличие доступа в Internet + проверить ОТСУТСТВИЕ доступа к локальному хосту + проверить отсутствие среди процессов нужной программы.
3. Если условия соблюдены, то нужно запустить определенное VPN-подключение.
4. Далее сбросить кэш сопоставителя DNS.
5. После минутной паузы запустить CMD-срипт, который прибёт сетевой диск на определенной букве, обновит групповую политику, а потом запустит VBS-скрипт, который подцепит сетевой диск и даст ему указанное имя.
Сразу оговорюсь, пытался использовать <VBScript> ... </SCRIPT> и <BATScript> ... </SCRIPT> в конструкции, но почему-то не работает.
6. Запустить определенное приложение.
7. Если условия перестали соблюдаться, то нужно:
8. Отключить VPN.
9. Сбросить кэш сопоставителя DNS.
10. Запустить батник из которого запускается VBS-скрипт прибивающий ранее назначенный диск(почему-то просто из батника прибиваться не хочет и висит с красным крестом, а VBS-скрипт прибивает на ура).
Сразу оговорюсь, пытался использовать <VBScript> ... </SCRIPT> и <BATScript> ... </SCRIPT> в конструкции, но почему-то не работает.
11. Прибить определенное приложение.
12. Скрыть окно передозвона VPN-подключения, которое не всегда прибивается и иногда пытается передозвониться.
13. Прибить сам процесс породивший это окно.
Примерно так.
Так вот, собственно сваялась вот такая конструкция:


Code: Select all
#( ONLINE
NoDel
ONLY_SYSTEM
AsLoggedUser
LoadProfile
Time: */1  * * * * *
: Inet?  ( -- ? )
HOST-EXIST: "google.com"
;
: Local?  ( -- ? )
HOST-EXIST: "тут имя нужного локального хоста, допустим X"

Rule: USERNAME S" SYSTEM" COMPARE
Rule: USERNAME S" Local Service" COMPARE
Rule: USERNAME S" Network Service" COMPARE
Action:
   PROC-EXIST: "MyProgramm.exe" 0=
IF
  Inet? 
IF
  Local? 0=
IF
    SWHide 
    START-APPW: %ComSpec% /c rasdial.exe "MyVPN"
    START-APPW: %ComSpec% /c ipconfig.exe /flushdns
    PAUSE: "00:01"
    START-APPW: "C:\nnСron\555.cmd"
    START-APP: "C:\Program Files (x86)\MyFolder\MyProgramm.exe.exe"
  THEN
ELSE
  Inet? 0= 
IF
  Local? 0=
IF
    SWHide
    START-APPW: %ComSpec% /c rasdial.exe "MyVPN" /DISCONNECT
    START-APPW: %ComSpec% /c ipconfig.exe /flushdns
    START-APPW: "C:\nnСron\777.cmd"
    START-APPW: %ComSpec% /c taskkill.exe /IM "MyProgramm.exe" /F /T
    PAUSE: 45000 TRAY-REFRESH
    WIN-HIDE: "0x3804D8"
    WIN-HIDE: "0x1507B6"
    WIN-TERMINATE: "0x3804D8"
    WIN-TERMINATE: "0x1507B6"
THEN
)#


Соответственно в батнике 555:
Code: Select all
@ECHO OFF
net use X: /delete /yes
gpupdate /force
cscript 111.vbs
exit


В батнике 777:
Code: Select all
@ECHO OFF
cscript 222.vbs
exit


В VBS соответственно в 111:
Code: Select all
On Error Resume Next

Set objWshNetwork = CreateObject( "WScript.Network" )
Set objShell = CreateObject("Shell.Application")


MapDrive "X:", "\\шара\папка", "НазваниеДиска"

Sub MapDrive(strDrive, strPath, strName)
   On Error Resume Next
   objWshNetwork.RemoveNetworkDrive strDrive, vbTrue, vbTrue
   objWshNetwork.MapNetworkDrive strDrive, strPath
   objShell.NameSpace(strDrive).Self.Name = strName
End Sub


в 222:
Code: Select all
Set objNetwork = CreateObject("WScript.Network")
objNetwork.RemoveNetworkDrive "X:"


И всё работает, но только как только я убираю с задачи NoActive и она начинает работать, процесс nnCron(Ваша сборка) начинает стремительно нагружать процессор, постепенно доводя загрузку до 96%Ю система естественно с таким положением вещей мириться не хочет и начинает тупо тормозить.
И вроде то что нужно по задаче всё выполняется, но и работать невозможно :-) Может подскажете каким молотком и по каким пальцам постучать, где я намутил? :prayer:

Нужно было ещё одно условие, нужно было проверять где комп находится, в локалке(офис) или вне офиса, юзая просто доступ в инет. Так вот при простом доступе в инет вне офиса задача вроде бы соответствует требованиям и выполняется, хотя почему-то и нагружает машину по самые уши, а вот при работе внутри офиса(а там тоже есть доступ в инет и локалка соответственно) VPN подключаться не должно, а остальные условия сохраняются. Как это в одной задаче совместить - мозг сломал, не знаю как чинить :rolleyes:

Заранее благодарю, если тыкнете носом в ошибку или подскажете решение поэлегантнее.
Aushkin
 
Posts: 17
Joined: Mon, 12 Sep 2011, 21:22

Re: Запуск и работа nnCron в Win7

Postby Wyz » Wed, 14 Sep 2011, 07:47

Aushkin wrote:1. Нужно запустить задачку от залогиневшегося юзера, при этом, зная что для nnCron много чего является "юзером", проверить, что эти "юзеры" не "SYSTEM", не "Local Service" и не "Network Service"

Rule: объединяются с помощью логического "ИЛИ"

И всё работает

С двумя THEN на кучу IF?

WIN-HIDE: "0x3804D8"

У окон правда такие заголовки? При следующем запуске хэндлы изменятся.

Как это в одной задаче совместить

IF :-)
мозг сломал

Ну сделай задачу для офиса; когда заработает, оберни перезапуск VPN в IF..THEN - будет и дома работать.

Добавь еще SingleInstance.
Wyz
 
Posts: 389
Joined: Tue, 11 Dec 2007, 01:42

Re: Запуск и работа nnCron в Win7

Postby Aushkin » Wed, 14 Sep 2011, 08:27

Rule: объединяются с помощью логического "ИЛИ"

т.е. ошибка номер раз. Надо так:

Rule: USERNAME S" SYSTEM" COMPARE OR
Rule: USERNAME S" Local Service" COMPARE OR
Rule: USERNAME S" Network Service" COMPARE

?

С двумя THEN на кучу IF?


Да, текущий вариант работает. С двумя THEN на кучу IF. Поправьте, если не затруднит.

А можно немного подробнее для чайников. THEN - просто конец конструкции или ... я что-то пропустил? Сколько IF, столько и THEN или больше или меньше? Часть перед ELSE, остальное в конце? Можно с примером?

У окон правда такие заголовки? При следующем запуске хэндлы изменятся.


Что тогда использовать? Заголовок(имя) окна?

Ну сделай задачу для офиса; когда заработает, оберни перезапуск VPN в IF..THEN - будет и дома работать.


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

Добавь еще SingleInstance.


Это уже сам сделал, загрузка проца nnCron-ом упала до 25%, но всё равно это жирнова-то.
Aushkin
 
Posts: 17
Joined: Mon, 12 Sep 2011, 21:22

Re: Запуск и работа nnCron в Win7

Postby Wyz » Wed, 14 Sep 2011, 09:47

Aushkin wrote:
Rule: объединяются с помощью логического "ИЛИ"

т.е. ошибка номер раз. Надо так:

Нет, надо читать документацию :-)

С двумя THEN на кучу IF?

Да, текущий вариант работает. С двумя THEN на кучу IF. Поправьте, если не затруднит.

На каждый IF должен быть закрывающий THEN. Примерчик в справке.

У окон правда такие заголовки? При следующем запуске хэндлы изменятся.

Что тогда использовать? Заголовок(имя) окна?

Да, заголовок.

Но вот домашний вариант проверяет наличие инета и отсутствие внутреннего хоста, запускает VPN и ... соответственно внутренний доступен

Может проверять COMPUTERNAME или положить где-нить файл-флаг?
Wyz
 
Posts: 389
Joined: Tue, 11 Dec 2007, 01:42

Re: Запуск и работа nnCron в Win7

Postby Aushkin » Wed, 14 Sep 2011, 10:23

Wyz wrote:Нет, надо читать документацию :-)

Читаю, но там не все ситуации и не всегда понятно с первого захода, когда есть пример с конкретной ситуацией, тогда и справка на практику ложится нормально.

Вот так:
если И
Rule: USERNAME S" SYSTEM" COMPARE USERNAME S" Local Service" COMPARE USERNAME S" Network Service" COMPARE AND AND
или так:
Rule: USERNAME S" SYSTEM" COMPARE USERNAME S" Local Service" COMPARE USERNAME S" Network Service" COMPARE OR OR
если ИЛИ
поправьте пожалуйста в примере если опять ошибся.


Wyz wrote:На каждый IF должен быть закрывающий THEN. Примерчик в справке.

Про "каждый" не встречал, и в справке примеры без ELSE в задаче плюс там IF - действие - THEN, опять же, куда ставить THEN при иной конструкции ...
так что тыкать носом в RTFM оно конечно правильно, но можно и правильный вариант показать :D

Wyz wrote:Да, заголовок.

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

Wyz wrote:Может проверять COMPUTERNAME или положить где-нить файл-флаг?

В моём варианте наличие локалки проверяется как раз по обращению к хосту по имени. Вот вариант с проверкой по наличию файла ... опять же, он станет доступным как только зацепится VPN ... уф.
Я вот мыслю в сторону отдельного задания с проверкой на наличие локального хоста и ОТСУТСТВИЕ VPN-подключения, тогда действие.
По идее условия двух задач взаимоисключающие, там где по условиям не сработает одна, сработает другая, если я чего-то опять не упустил ... эммм ... :rolleyes:
Aushkin
 
Posts: 17
Joined: Mon, 12 Sep 2011, 21:22

Re: Запуск и работа nnCron в Win7

Postby Wyz » Wed, 14 Sep 2011, 10:51

Aushkin wrote:Вот так:
если И
Rule: USERNAME S" SYSTEM" COMPARE USERNAME S" Local Service" COMPARE USERNAME S" Network Service" COMPARE AND AND AND

Да, только последний AND (и OR) лишний, будет ошибка: после 3 COMPARE на стеке 3 числа, AND снимает 2 верхних и кладет одно: последний снимет лишнее.

Aushkin wrote:
Wyz wrote:На каждый IF должен быть закрывающий THEN. Примерчик в справке.

Про "каждый" не встречал,

"THEN - пpосто обозначает конец констpукции."
и в справке примеры без ELSE

"ELSE - необязательная часть"

куда ставить THEN при иной конструкции ...

Какой еще "иной конструкции"? В справке только 2 варианта:
Code: Select all
<условие> IF <действие_если_TRUE> THEN
<условие> IF <действие_если_TRUE> ELSE <действие_если_FALSE> THEN

<условие> - число 0 или -1 (можно любое не нулевое, но лучше -1 - для логических/побитовых операций)
Скажем можно проверить существование 2 файлов и "обединить" результаты логическим И - если оба существуют, будет -1:
Code: Select all
S" c:\file1" EXIST? S" c:\file2" EXIST? AND


Можно делать вложенные IF со своими THEN

так что тыкать носом в RTFM оно конечно правильно, но можно и правильный вариант показать :D

Правильный вариант из доки чем-то не устраивает?

Wyz wrote:Может проверять COMPUTERNAME или положить где-нить файл-флаг?

В моём варианте наличие локалки проверяется как раз по обращению к хосту по имени. Вот вариант с проверкой по наличию файла ... опять же, он станет доступным как только зацепится VPN ... уф.

Так ведь нужно отличать дом от работы? И файл для этого нужно класть на локальный винт. Или еще-как-нить.
Wyz
 
Posts: 389
Joined: Tue, 11 Dec 2007, 01:42

Re: Запуск и работа nnCron в Win7

Postby Aushkin » Wed, 14 Sep 2011, 11:56

Я запутался с этими THEN, в моей конструкции можно показать где они должны находиться и сколько их должно быть?
Есть три IF до ELSE и два IF после ELSE, если исходить из того, что на каждый IF должен быть THEN, то в конструкции должно быть всего 5(два плюс три) THEN-ов?
Их местоположение в конструкции, три перед ELSE и два в конце конструкции, либо все пять в конце конструкции? Либо я опять что-то не понял?
Эмм ... и наверное надо перебраться в другую тему отсюда, а то как-то не вписываюсь в тематику ...
Aushkin
 
Posts: 17
Joined: Mon, 12 Sep 2011, 21:22

Re: Запуск и работа nnCron в Win7

Postby Wyz » Wed, 14 Sep 2011, 12:05

Aushkin wrote:Я запутался с этими THEN, в моей конструкции можно показать где они должны находиться

После кода выполняющегося по условию соответствующего IF.
и сколько их должно быть?

Сколько IF.
Wyz
 
Posts: 389
Joined: Tue, 11 Dec 2007, 01:42

Re: Запуск и работа nnCron в Win7

Postby AlikasS » Wed, 14 Sep 2011, 15:40

связка
Code: Select all
ONLY_SYSTEM
AsLoggedUser

ONLY_SYSTEM обозначает, что задача будет выполняться кроном-сервисом ( кроном запущенным от имени SYSTEM)
но
AsLoggedUser задача будет выполняться в контексте вошедшего с консоли пользователя,
т.е. от его имени
и следовательно проверка от кого запущена задача не нужна
User avatar
AlikasS
 
Posts: 1434
Joined: Wed, 28 Jun 2006, 05:39
Location: Khabarovsk

PreviousNext

Return to nnCron forum (Russian)

Who is online

Users browsing this forum: No registered users and 3 guests

cron