Ru-Board.club
← Вернуться в раздел «В помощь системному администратору»

» Удаленное выключение компьютеров в домене AD 2003

Автор: Realgeek
Дата сообщения: 29.04.2010 03:57
Доброго времени суток
Подскажите, пожалуйста интересует вопрос
Есть домен с AD 2003 необходимо реализовать чтобы в указанный промежуток времени(на момент окончания рабочего дня) пользователю выдавалось окно с вопросом желает ли он продолжить работу, если он нажимает да,то такое же сообщение выскакивает через час вплоть до 24 00и выключается автоматически, иначе если он жмет нет , комп выключается и на сервере в файл пишется что во столько то был выключен такой то комп.
Автор: setwolk
Дата сообщения: 29.04.2010 06:07
Realgeek
А скрипт написать?
Автор: Realgeek
Дата сообщения: 29.04.2010 07:19
Вообще-то я имел ввиду пример скрипта кинуть

Добавлено:
Вообще-то я имел ввиду пример скрипта кинуть
Автор: FL0od13
Дата сообщения: 29.04.2010 10:59
Realgeek
Я использую такую схему.
1) Для запуска скриптов используется SMS 2003;
2) На компах в AD, в поле "Description" прописан признак, на выключение компа (SHUTDOWN=YES);
3) После 23:00 комп выключается без предупреждения (почти), если никто на нём не залогонен (определяется через SMS 2003);
4) После 23:00 комп выключается с предупреждением, если за ним в это время кто-то работает (предупреждение висит 30 минут и при нажатии "ОК" выключение отменяется);
5) Скрипт для пользователя (см. п.4) запускается через утилиту CPAU от имени спец. пользователя, у которого есть права на использование утилиты shutdown.exe (права спец. пользователю задавались через GPO);

[more=VB-скрипт на выключение компьютера, когда на нём никто не работает (запускается от имени SYSTEM)]
'Скрипт для выключения компьютера, когда никто не залогонен.
'Разработчик: ________ aka FL0od ______ 2008.
'Версия 1.03

On error resume next
If FormatNumber(time(),3)<FormatNumber("0,958",3) then wscript.quit 'проверяем, что сейчас больше 23-х часов, и что у SMS-а не снесло крышу.

Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run "cmd /c c:\windows\system32\shutdown.exe -s -f -c " & chr(34) & "Автоматическое выключение компьютера после 23:00" & chr(34) & " -t 30"
[/more]

[more=VB-скрипт на выключение компьютера, когда на нём залогонен пользователь]
'Скрипт для выключения компьютера, когда залогонен пользователь.
'Разработчик: ________ aka FL0od ______ 2008.
'Версия 1.03

On error resume next

If FormatNumber(time(),3)<FormatNumber("0,958",3) then wscript.quit 'проверяем, что сейчас больше 23-х часов, и что у SMS-а не снесло крышу.

If ShutPropAD = "True" then 'Смотрим, нужно ли выключать комп (проверяем description в AD)
    Shutdown
Else
    Wscript.quit
End if

Function ShutPropAD
    Dim objSysInfo, objComputer
    Dim strLocation
    Set objSysInfo = CreateObject("ADSystemInfo")
    strComputerDN = objSysInfo.ComputerName
    Set objComputer = GetObject("LDAP://" & strComputerDN)
    strLocation = Split(objComputer.Get("Description"),";")
    If strLocation(3)<>"SHUTDOWN=YES" then
        ShutPropAD = "False"
    Else
        ShutPropAD = "True"
    End if
End Function

Sub Shutdown
    Set WshShell = WScript.CreateObject("WScript.Shell")
    '''''''''''''''''''''''''' WshShell.Run "shutdown -s -f -c " & chr(34) & "Автоматическое выключение компьютера после 23:00" & chr(34) & " -t 1800"
    WshShell.Run "\\xx.loc\dfs\CorpSoft\Shutdown\CPAU.exe -dec -file \\xx.loc\dfs\CorpSoft\Shutdown\ShutdownUser.job -lwp",1,true
    test=Msgbox(" Внимание!" & vbNewLine &_
    "Ваш компьютер будет выключен через 30 минут." & vbNewLine &_
    "Чтобы отменить выключение компьютера нажмите OK." & vbNewLine &_
    "",4160,"Автоматическое выключение компьютера")
    
    '''''''''''''''''''''''''' WshShell.Run ("cmd /c C:\WINDOWS\system32\shutdown.exe -a")
    WshShell.Run "\\xx.loc\dfs\CorpSoft\Shutdown\CPAU.exe -dec -file \\xx.loc\dfs\CorpSoft\Shutdown\ShutdownUserAbort.job -lwp",1,true
End Sub
[/more]

[more=ShutdownUser.bat]
shutdown.exe -s -f -c "Ђўв®¬ вЁзҐбЄ®Ґ ўлЄ«озҐ-ЁҐ Є®¬ЇмовҐа  Ї®б«Ґ 23:00" -t 1800
[/more]

[more=ShutdownUserAbort.bat]
shutdown.exe -a
[/more]
Автор: vlary
Дата сообщения: 29.04.2010 12:15
Написать скрипт stop.vbs, поставить права, чтобы юзеры его не убили
Прописать его в шедулер под администратором на выполнение в 18-00, 19-00, 20-00
Если юзер нажимает Cancel, выполнение шатдауна прекращается, до следующего запуска

Цитата:
Dim vbOK,Inf,intDo, Cancel
Dim Message, Title
vbOK = 1
Inf = 64
Cancel = 2
Message = "Компьютер будет выключен через 5 минут. Выполнить?"
Title = "Подтвердите действие"
Set WSHShell = WScript.CreateObject("WScript.Shell")
WSHShell.Run("shutdown /s /d p:0:0 /t 300")
intDo = WSHShell.Popup(Message,0,Title,vbOK + Inf)
if intDo = Cancel Then
WSHShell.Run("shutdown /a")
WScript.Quit()
End if
Автор: Realgeek
Дата сообщения: 30.04.2010 01:27
Большое спасибо. А если вдпользователь уже ушел и комп залочен?

Страницы: 1

Предыдущая тема: MDaemon: ежедневная рассылка лога SMTP (out)


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.