Батник на выключение компьютеров по сети.
Доброго времени суток!
Я не силен в этих вещах, поэтому прошу помощи. Подскажите как написать батник для принудительного выключения нескольких компьютеров в локальной сети (если это конечно возможно), при помощи команды shutdown /m \\10.x.x.x Спасибо за помощь! |
Hrust2010,
Выключить все станции в домене: Код:
Echo on& Chcp1251 & CLS Код:
Echo on& Chcp1251 & CLS Код:
Dim OpSysSet, Flags http://gallery.technet.microsoft.com...1-eace6ff99bcd http://gallery.technet.microsoft.com...1-7c30388c1adb |
Попробовал второй скрипт. Работает. Только есть один ньюанс.
Когда компьютер из списка станций уже рание выключен, батник на нем останавливается и долго обрабатывает. Можно ли избежать этого? Спасибо! |
Hrust2010,
Вариант для расположения все станций в одном домене: Код:
Echo off & Chcp 866 & CLS применить ключ /Network |
Что - то не так.
Домен я свой указал. после запуска выводит сообщение machine "pc1" powered off machine "pc1" powered off machine "pc1" powered off machine "pc1" powered off ........................................ machine "pc2" powered off machine "pc2" powered off machine "pc2" powered off ................................. Хотя кокраз эти машины были включены. И после отработки батника машины продолжают работать |
А чем тебе не нравится команда "shutdown"?
shutdown -s -f -m \\"Имя 1-ого компа, можно IP" -t 03 shutdown -s -f -m \\"Имя 2-ого компа" -t 03 shutdown -s -f -m \\"Имя 3-ого компа" -t 03 |
как можно удаленно перевести компьютеры в спящий режим?
|
Цитата:
Код:
psshutdown.exe \\имя_или_IP-адрес -d -t 0 Код:
psshutdown.exe \\имя_или_IP-адрес -h -t 0 |
дело в том что этой командой необходимо гасить 4 компьютера при отключении электричества. программа гасит компьютеры по очереди.
когда один из компьютеров уже выключен, то программа пытается к нему подключится 1 минуту, при этом другие компьютеры не выключаются. в этом случает теряется слишком много времени. как написать батник так чтобы команды на выключения выдавались всем компьютерам одновременно? |
Цитата:
Цитата:
|
Petya V4sechkin, я не против того чтоб минуту таймаут был) я хотел бы, чтоб задание на выключение подавалось всем компьютерам одновременно
|
Hrust2010,
открываете блокнот, туда вставляете: Код:
shutdown -s -f -m \\10.0.0.1 -t 03 |
одновременный переход в спящий режим 4х компьютеров я сделал следующим образом:
основной файл: Код:
start hibernate-1.bat Код:
"C:\Program Files\PsShutdown\psshutdown.exe" \\192.168.1.X -h -t 0 |
Код:
start "" "C:\Program Files\PsShutdown\psshutdown.exe" -s -f -m \\10.0.0.1 -t 03 |
Осмелюсь продолжить данную тему.
Решил использовать следующий скрипт Код:
shutdown -f -t 120 -s -m \\PC1 Почитал по поводу psshutdown.exe. Заинтересовался. Назрел вопрос. Мне необходимо выключать избранные ПК в определенное время. К примеру компьютеры с именами PC1, PC2 и PC3. Выключить их надо в 18.30. При этом желательно, чтоб: 1. скрипт срабатывал в 18.00; 2. на рабочем столе пользователя появлялось уведомление о том, что ПК будет выключен через 30 минут; 3. время ожидания подключения к компьютеру было не более 10 секунд. Если я правильно понимаю, то следует разместить psshutdown.exe на сервере. Например, в папке C:\Program Files\PsShutdown\. Сам скрипт тоже поместить на сервер и будет выглядеть он следующим образом: Код:
start "Shutdown" "C:\Program Files\PsShutdown\psshutdown.exe" \\PC1 -s -f -t 1800 -n 10 -m "Компьютер будет выключен через 30 минут" Или я чет путаю? |
Зачем «-s»?
Код:
-m "Компьютер будет выключен через 30 минут" Я бы сделал несколько иначе: запускал скрипт (с отправкой уведомления посредством «msg.exe») из Планировщика в 18:00, 18:10, 18:20. А скрипт на выключение — за минут пять до часа «X». Пяти минут должно быть вполне достаточно, чтобы сохранить все изменения и даже выключить машину самостоятельно. |
Можно и так, но на предприятии планируется поделить компы на три группы. первая группа - это ПК, которые будут принудительно выключаться в 18.30 (пользователи этих ПК по графику работают до 18.00). Вторая группа - ПК выключается в 21.00 (пользователи этой группы ПК работают по графику да 20.00). Третья группа - ПК, которые не отключаются.
Посему, думаю, что выскочившее окно будет напрягать не часто :). Хотя... Все же Вы правы. Для часа Х в 18.30 лучше сделать уведомление в 18.00 через msg. А в 18.25 уже выполнить скрипт с ключом -m и сообщением. Я, правда, не совсем понимаю, почему все же, написанный мною скрипт, не работает :(. Полночи убил, а как-то не хочет. Нет сообщения и ПК не выключается :( Пробовал пока локально все сделать на домашнем. |
Цитата:
Код:
start "Shutdown" "C:\Program Files\PsShutdown\psshutdown.exe" \\PC1 -s -f -t 1800 -n 10 -m "Компьютер будет выключен через 30 минут" |
ага. он самый.
когда тестил его на работе - он исправно считал 10 секунд, когда натыкался на предварительно выключенный ПК и все. это единственный результат, которого мне удалось добиться :( |
Если убрать имя машины:
Код:
start "Shutdown" "C:\Program Files\PsShutdown\psshutdown.exe" Точно ли указан путь: Код:
"C:\Program Files\PsShutdown\psshutdown.exe" Код:
C:\Program Files\PsTools\psshutdown.exe |
Убрал имя ПК, код не сработал. Ни уведомления, ни отключения нету.
Путь указан верно. Проверил только-что. Нет. Не весь. Исключительно psshutdown.exe. Успел заметить, что при обработке, в окне командной строки появляется куча каких-то знаков вопроса. |
Понял, в чем проблема. Утилита, походу, не работает под Windows 7. С ХР-юши запустил код:
start "Shutdown" "C:\Program Files\PsShutdown\psshutdown.exe" \\PC1 -s -f -t 1800 -n 10 -m "Компьютер будет выключен через 30 минут". Все сработало. Сообщение было показано, комп выключился. Осталось решить проблему с Win7 ((( Как быть? |
Цитата:
Пример |
Задал этот параметр в реестре. Проверил, все ли сделал правильно. После чего попробовал запустить скрипт:
Код:
start "Shutdown" "C:\PsShutdown\psshutdown.exe" -u USERNAME -p PASSWORD -s -f -t 20 -m "Компьютер будет выключен через 30 минут" Код:
start "Shutdown" "C:\PsShutdown\psshutdown.exe" -s -f -t 20 -m "Компьютер будет выключен через 30 минут" |
Muslitel, а чего вы в предыдущем посте запускаете для удаленного компьютера PC1, а сейчас на локальном?
Выполните от имени Администратора. Параметр LocalAccountTokenFilterPolicy для запуска на удаленном компьютере с Windows 7 (там его и надо выставить). |
Petya V4sechkin, дело в том, что локальный ПК - это мой рабочий. Он на Win7. Вот я на нем и тестирую все по возможности. А удаленный - это соседний комп с ХР. Пардон, что голову морочу :).
На ХР все работает не зависимо от того, запускаю я скрипт локально или с удаленного ПК. На 7ке - только локально и только через командную строку, запущенную под локальным админом (учетка доменного админа не помогает). BAT-ник на 7ке отказывается работать. Petya V4sechkin, благодаря Вам я понял, как потушить свой комп с помощью psshutdown, локально. Но тут же возникло несколько НО, касательно его выключения, когда скрипт запускается с удаленного компа. В моем случае это будет сервер. Я пытаюсь с компа под управлением Windows XP выключить удаленный комп с Windows 7. Имеется код: Код:
start "Shutdown" "C:\PsShutdown\psshutdown.exe" \\PC-Win7 -s -f -t 60 -m "Your computer will be shut down after 1 minute" |
Цитата:
Статью Упрощаем запуск приложений в Windows 7 от имени администратора без отключения UAC читали? Цитата:
Цитата:
Код:
C:\PsShutdown\psshutdown.exe \\PC-Win7 -s -f -t 60 -m "Your computer will be shut down after 1 minute" |
Цитата:
Цитата:
Т.е. у меня получилось запустить таймер выключения компа с Window 7 непосредственно с этого же компа - локально. А вот сделать это удаленно не получается. :( |
Muslitel, как уже было сказано, LocalAccountTokenFilterPolicy влияет только на удаленные подключения.
Цитата:
А до тех пор можем погадать на кофейной гуще. Например, убедиться в корректности имени и пароля учетной записи. Проверить настройки встроенного брандмауэра Windows 7, а также антивируса/файрвола (если установлен). |
Petya V4sechkin, я разобрался. Вам спасибо огромное!
Когда с другого компа (Windows XP) запустил CMD от имени администратора и попробовал запустить код: Код:
C:\PsShutdown\psshutdown.exe \\PC-Win7 -s -f -t 60 -m "Your computer will be shut down after 1 minute" Код:
C:\WINDOWS\system32>C:\PsTools\psshutdown.exe \\wks778k -s -f -t 40 -m "Your PC 1. LocalAccountTokenFilterPolicy добавил. 2. Брандмауэр отключен. 3. Анивирус Nod отключил вообще. А потом понял, что рабочие станции находятся в домене. Попробовал запустить командную строку на компьютере с Windows XP от имени доменного админа. Попробовал тот же код: Код:
C:\PsShutdown\psshutdown.exe \\PC-Win7 -s -f -t 60 -m "Your computer will be shut down after 1 minute" |
Цитата:
Цитата:
Цитата:
|
Цитата:
Спасибо Вам еще раз :) |
Эмм... Рискну продолжить тему, так как возникли снова вопросы. В домене все работает исправно, как часики. Но есть беда. У меня пару машину находятся вне домена - workgroup. Вот к ним я достучаться не могу. Пробовал в скрипте указывать данные учетной записи админа - не помогло.
Откровенно говоря, я не совсем соображаю, как вообще к ним достучаться по удаленке, а тем более через скрипт :(. Помогите, пожалуйста. |
А если на ПК закрыт доступ через все кроме телнет? То как выключить ПК?
Код:
set sh=WScript.CreateObject("WScript.Shell") HTML код:
sh.SendKeys "shutdown -r -t 10"&vbcr Запускаю так Код:
TST10.exe /r:reboot.txt /o:output.txt /m Код:
192.168.2.2 979 |
####################################################
# Shutdown_Night.ps1 27/05/2015 PowerShell v3-4 made by ®clevergod and ToSHa # Скрипт выключения ПК с отправкой отчета на мыльники. # Данный скрипт собирает все ПК с домена, фильтрует исключения групп, пингует на доступность,тушит ПК и отправляет отчет на указанные емэйл # учите PowerShell ребята! #################################################### Скрытый текст
# Собираем ПК и фильтруем (править по себя)(добавлены 3 группы исключения Admins Servers и ЕЩЕ одна для допустим руководства)
$comps = Get-ADObject -LDAPFilter '(&(objectCategory=computer)(!memberOf=CN=Исключение,DC=company,DC=local)(!memberOf=CN=Admins,OU=Gro ups,DC=company,DC=local)(&(!memberOf=CN=Servers,OU=Servers,DC=company,DC=local)))' | Select -Expand Name # Файл выгрузки (править по себя) $file = New-Item -itemtype file "\\server\LOGS\TurnOff_Computers\Computers_ON.html" -Force # Туловище HTML Add-Content $file '<html><head> <meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-8"> <title>System Status Report</title> <style type="text/css"> <!-- BODY{background-color:#FFFFFF;} TABLE{border-width: 1px;border-style: solid;border-color: black;} TH{border-width: 1px;padding: 1px;border-style: solid;border-color: black;background-color:#1D92DC} TD {border-width: 1px;padding: 2px;border-style: solid;border-color: black;background-color:#94BFE4} TR {color:#000000;font-family:Tahoma;font-size:10pt;} } --> </style> <h2>Server Status</h2> <p>The following report was run on $(get-date).</p> <table> <tr><th> Имя: </th><th>Статус компьютера:</th></tr> ' # Цикл выключения ПК домена с пингом с подкрашиванием HTML nf,kbws foreach ($comp in $comps) {$ON = Get-WmiObject Win32_PingStatus -filter "Address=""$comp""" if ($ON.StatusCode -eq 0) {$desc = Get-ADObject -LDAPFilter "(cn=$comp)" -Properties Description | Select -Expand Description | Out-String Add-Content $file "<tr><td>$desc</td><td style='background-color:red; color:Yellow;'><strong>$comp Включен!</strong></td></tr>" | Stop-Computer -cn $comp -force } Else {$desc = Get-ADObject -LDAPFilter "(cn=$comp)" -Properties Description | Select -Expand Description | Out-String Add-Content $file "<tr><td>$desc</td><td style='background-color:green; color:#FFFFFF;'>$comp выключен</td></tr>"} } Add-Content $file "</html>" # Вложение тела HTML файла $html = Get-Content '\\server\LOGS\TurnOff_Computers\Computers_ON.html' -raw # мЁльнер (править по себя) Send-MailMessage -smtpServer mail.company.kz -UseSSL -from 'Shutdown@company.kz' -to 'stanislav@company.kz' -subject "PoweredON" -body $html -Encoding UTF8 -BodyAsHTML #-Attachment $file #Раскоментить -Attachment $file если нужно вложение файла к письму |
shutdown -r -t с Вин 2к не работает! какие команды для Вин 2000?
p.s. разобрался. |
Ребят помогите, я не рублю особо в командной строке кому не сложно напишите как сделать чтоб при нажатие на батник открывалась командная строка с введенной командой "shutdown /s /t ***" что бы оставалось только время дописать?
|
Код:
@echo off |
Спасибо большое!
|
Время: 11:38. |
Время: 11:38.
© OSzone.net 2001-