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

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Microsoft Windows 2000/XP (http://forum.oszone.net/forumdisplay.php?f=6)
-   -   [решено] Назначение заданий в домене (http://forum.oszone.net/showthread.php?t=233485)

dartne 25-04-2012 11:12 1905555

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

schtasks /create /tn "task1" /s 127.0.0.1 /u Администратор /p пароль /tr "%systemroot%/system32/shutdown /s" /sc once /st 10:01:00 

но как его заставить выполняться от имени локального администратора?

не принимает русскую учетку подскажите как написать правильно?

DmitriiV 25-04-2012 16:00 1905731

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

exo 25-04-2012 16:29 1905744

Цитата:

Цитата dartne
требуется на всех ПК настроить выключение ПК в заданное время, для этого решил использовать планировщик заданий »

пишите батник (или cmd файл, я сейчас уже не помню) "shutdown /s /t 00" или "shutdown /s /t 00 /m:namecomp"
первый размещаете в локальном планировщике.
второй размещаете в планировщике на сервере. задача выполняется естественно от доменного админа.

я делал через второй вариант. для каждого помпа по заданию.

Iska 25-04-2012 16:42 1905752

Цитата:

Цитата dartne
не принимает русскую учетку подскажите как написать правильно? »

Сохраняйте пакетный файл в кодировке OEM/866.

dartne 26-04-2012 09:02 1906018

Цитата:

"shutdown /s /t 00" или "shutdown /s /t 00 /m:namecomp
это не удобно т.к. пользователь не может отменить выключение, разве что может дату поменять, если есть права, а их у него нет.
Сделал немного иначе , GPO со скриптом на логон:
Код:

REM
at /delete /yes
REM
at 22:00 /interactive \\domenname.local\NETLOGON\Scripts\shutdown\shutdown.js

в shutdown.js:
Код:

// Определяем, в какую из групп входит пользователь
// и если он входит в группу администраторов - завершаем работу скрипта
var WshNetwork = WScript.CreateObject("WScript.Network");
var UserObj,E,GroupObj;



// Создание диалогового окна и команды на выключение ПК
var obj = GetObject("winmgmts:{impersonationLevel=impersonate," + "(Shutdown)}//./root/cimv2").ExecQuery ("SELECT * FROM Win32_OperatingSystem" + " WHERE Primary=true");
var e = new Enumerator(obj);

function kill_comp(){
for (;!e.atEnd();e.moveNext()) {
 e.item().Win32Shutdown(8);
}}

// Задаем время для диалогового окна, в течении которого пользователь может выбрать один из вариантов работы,
// выключение ПК или продолжение работы. Если в течении заданного времени в MSG_Time (в секундах) ничего не произойдет,
// то автовыключение ПК
var MSG_Time= 900;
var vbOKCancel = 1;
var vbInformation = 64;
var vbCancel = 2;
var Message = "ВАШЕ РАБОЧЕЕ ВРЕМЯ ЗАКОНЧЕНО! Не забудьте выключить компьютер! Автовыключение через 15 мин., завершить работу сейчас!?";
var Title  = "Автозавершение работы системы!";


// Вызываем диалоговое окно
dialog_msg()

function dialog_msg()
{var WSHShell = WScript.CreateObject("WScript.Shell");   
var intDoIt;   
intDoIt =  WSHShell.Popup(Message, MSG_Time, Title, vbOKCancel + vbInformation );
if (intDoIt == vbCancel) {        WScript.Quit();    }}
// Вырубаем машину - спать!
kill_comp();


DmitriiV а как поместить скрипт в стартап сценарий а не логон через GPO?

Petya V4sechkin 26-04-2012 09:07 1906020

Цитата:

Цитата dartne
а как поместить скрипт в стартап сценарий а не логон через GPO

В предыдущей теме вы так и не смогли этого сделать.

dartne 26-04-2012 09:18 1906027

Вот только проблема с этим скриптом должны быть админские права у пользователя :(

Petya V4sechkin 26-04-2012 09:22 1906030

Цитата:

Цитата dartne
должны быть админские права у пользователя

Не должны быть.
Если задать политику в "Конфигурация компьютера\Конфигурация Windows\Сценарии".

Сможете? :)

dartne 26-04-2012 09:23 1906031

Почему то если делаю как вы говорите, то не появляется у пользователя в планировщике задача, нормально ли это , не проверял работоспособность самого скрипта, но он не видеться в планировщике :(

Petya V4sechkin 26-04-2012 09:26 1906032

Цитата:

Цитата dartne
если делаю как вы говорите

Не получается у вас применить политику к компьютерам.

dartne 26-04-2012 09:33 1906034

Так работает если у пользователя админ права:

а так не работает (не отображается в планировщике у пользователя)

Petya V4sechkin 26-04-2012 09:36 1906038

dartne, вкладку Scope нажмите.

dartne 26-04-2012 09:38 1906039


Petya V4sechkin 26-04-2012 09:43 1906041

dartne, что в контейнере OU Computers And Users содержится?

dartne 26-04-2012 09:45 1906043

Цитата:

что в контейнере OU Computers And Users содержится?
Компьютера и учетки пользователей.


Name OU (на него применена политика Global-shutdown-PC-at-22:00)
Computers (компьютеры зарегистрированные в AD)
Users (пользователи работающие на этих компьютерах)
т.е. политика Global-shutdown-PC-at-22:00 выше Computers и выше Users

или нужно политику Global-shutdown-PC-at-22:00 назначить именно на OU Computers?

Petya V4sechkin 26-04-2012 09:54 1906045

dartne, в контейнере должны быть учетные записи компьютеров.

dartne 26-04-2012 10:06 1906049

Добавил на контейнер с компьютерами, все равно у пользователя он не отображается в планировщике, только у пользователя с админскими правами.

Если под пользователем просто запустить
Код:

REM
at /delete /yes
REM
at 22:00 /interactive \\domenname.local\NETLOGON\Scripts\shutdown\shutdown.js


пишет
C:\Documents and Settings\user>at /delete /yes
Отказано в доступе.

подскажите как добавить пользователю возможность добавлять задания в планировщик?

exo 26-04-2012 10:36 1906063

Цитата:

Цитата dartne
т.к. пользователь не может отменить выключение »

у меня задача была - выключать "нарушителей" в 22:00. Когда в офисе не спит только охрана.

Petya V4sechkin 26-04-2012 11:10 1906082

Цитата:

Цитата dartne
у пользователя он не отображается в планировщике

Пользователю ничего не нужно ни видеть, ни запускать.
Политика применилась? Задание добавлено?

dartne 26-04-2012 11:17 1906086

Цитата:

Политика применилась?
в gpresult с учетки пользователя присутствует политика

Код:

Конфигурация компьютера
  ---------------------------------------
      Global-shutdown-PC-at-22:00

Если зайти в планировщик под пользователем, задания не видно.

Под пользователем с правами администратора gpresult выдает тоже самое , но в планировщике заданий видно задание.

Проблема с правами на выполнение команды at под пользователем, а не политикой.

Petya V4sechkin 26-04-2012 13:25 1906153

Цитата:

Цитата dartne
в gpresult с учетки пользователя присутствует политика

Значит, все в порядке.

Цитата:

Цитата dartne
Если зайти в планировщик под пользователем, задания не видно

Цитата:

Цитата Petya V4sechkin
Пользователю ничего не нужно ни видеть, ни запускать

Цитата:

Цитата dartne
Проблема с правами на выполнение команды at под пользователем

Никакой проблемы нет.
Задание, созданное командой AT, выполняется от имени системной учетной записи. Пользователь ей по барабану.

dartne 26-04-2012 13:45 1906163

Огромное спасибо, действительно все работает , запускается под системным процессом , при этом у пользователя нет никаких заданий в планировщике, но главное что запускается :)

exo 26-04-2012 14:14 1906178

Цитата:

Цитата dartne
при этом у пользователя нет никаких заданий в планировщике »

Цитата:

Цитата dartne
пользователь не может отменить выключение »

а как он тогда его отменить может? если задания не видит... или это будет в появляющемся окне.

dartne 26-04-2012 14:36 1906187

exo, если через shutdown /s , то выскочит окно и 30 секунд ожидания, можно сменить дату системную на год назад тогда 365 дней до выключения будет )) так 100 лет назад боролись с трояном MsBlast , пока ждали заплатку на винду )))
А если через этот скрипт:
http://forum.oszone.net/post-1906018-5.html
то пользователю будет дана возможность выбрать выключать компьютер или не выключать, а если пользователь никак не прореагирует , то через 15 минут компьютер сам выключиться.

exo 26-04-2012 15:33 1906218

Цитата:

Цитата dartne
то выскочит окно и 30 секунд ожидания »

я писал с ключом /t 00 :)
просто зачем выключать компьютер, когда сотрудник работает. я выключал, когда они забывали выключать. Пару потерянных документов приучили их к порядку. Конечно метод жесткий, но подействовало.
Цитата:

Цитата dartne
можно сменить дату системную на год назад тогда 365 дней до выключения будет »

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

dartne 26-04-2012 15:46 1906228

Цитата:

ключом /t 00
согласен это совсем по злому :)
Цитата:

зачем выключать компьютер, когда сотрудник работает
ну анализировать работает ли он , или не работает на данный момент сложно, есть рабочий день когда общепринятый и его окончание, поэтому должна быть возможность пользователю поработать после работы , а отключить ПК с подтверждением, а еще лучше продублировать задание например в 12 ночи , когда уже обычно никто не задерживается, но тоже с подтверждением- так гуманнее. :)

Цитата:

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

clevergod 10-09-2012 12:58 1986082

dartne !

Ваш вариант оч хорош, только вот есть одна загвоздка, мне нужно чтобы был вывод в текстовик в некую сетевую папку файла с невыключенными ПК и отправки данного файла на мыло для проведения с оными некой работы по поднятию дисциплины по пожароопастности и отчета Шефу ежемесячно.... как данную операцию можно реализовать?

Сейчас пользуюсь:

1. на сервере в шедулере запуск TurnOff_Computers.cmd в 21:00

TurnOff_Computers.cmd:
Код:

FOR /F "eol=; tokens=1" %%i in (\\server\Soft\Scripts\Computer_Shutdown\ComputerList.txt) do ping -n 1 %%i | find "TTL=" && echo %%i >> \\server\Soft\LOGS\TurnOff_Computers\%date%_Computers_ON.txt
FOR /F "eol=; tokens=1" %%i in (\\server\Soft\LOGS\TurnOff_Computers\%date%_Computers_ON.txt) do shutdown -s -f -m \\%%i

2. на сервере в шедулере запуск send_mail.vbs в 22:30

send_mail.vbs:

Код:

Set objEmail = CreateObject("CDO.Message")

Dim MyTime
MyTime = Now

Dim Temp
Dim MyDate
Temp = Day(Now)
if (Temp < 10) then MyDate = "0"
MyDate = MyDate & Temp & "."
Temp = Month(Now)
if (Temp < 10) then MyDate = MyDate & "0"
MyDate = MyDate & Temp & "." & Year(Now)

objEmail.From = "administrator@company.com"
objEmail.To = "it@company.com"
objEmail.Subject = "Computers turned on " & MyTime
objEmail.Textbody = ""
objEmail.Addattachment "\\server\Soft\LOGS\TurnOff_Computers\" & MyDate & "_Computers_ON.txt"

objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "192.168.1.x"
objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
objEmail.Configuration.Fields.Update
objEmail.Send

Так все работает на ура, но вот пополнять новыми пк файл ComputerList.txt для пинга пк - напрягает.
Ваш вариант напрягает еще больше, т.е. на всех ПК нужно включить нужно то, что любит больше всего вирус KIDO - ну это ладно не беда, больше напрягает что ПК тушатся, а инфы нету кто когда и во сколько.


Время: 15:38.

Время: 15:38.
© OSzone.net 2001-