Войти

Показать полную графическую версию : Батник на выключение компьютеров по сети.


Страниц : 1 [2]

Muslitel
15-12-2011, 13:34
Убрал имя ПК, код не сработал. Ни уведомления, ни отключения нету.
Путь указан верно. Проверил только-что.
Нет. Не весь. Исключительно psshutdown.exe.

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

Muslitel
15-12-2011, 15:41
Понял, в чем проблема. Утилита, походу, не работает под Windows 7. С ХР-юши запустил код:
start "Shutdown" "C:\Program Files\PsShutdown\psshutdown.exe" \\PC1 -s -f -t 1800 -n 10 -m "Компьютер будет выключен через 30 минут".
Все сработало. Сообщение было показано, комп выключился. Осталось решить проблему с Win7 (((
Как быть?

Petya V4sechkin
15-12-2011, 16:42
не работает под Windows 7
Обычно требуется задать параметр LocalAccountTokenFilterPolicy (http://support.microsoft.com/kb/947232).
Пример (http://forum.oszone.net/thread-189877.html)

Muslitel
15-12-2011, 18:10
Задал этот параметр в реестре. Проверил, все ли сделал правильно. После чего попробовал запустить скрипт:
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 минут"
Тоже глухо :(

Petya V4sechkin
15-12-2011, 18:33
Muslitel, а чего вы в предыдущем посте запускаете для удаленного компьютера PC1, а сейчас на локальном?
Выполните от имени Администратора (http://oszone.net/4331/#5).

Параметр LocalAccountTokenFilterPolicy для запуска на удаленном компьютере с Windows 7 (там его и надо выставить).

Muslitel
15-12-2011, 19:39
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"
Я запускаю его и как bat-ник, и через командную строку, запущенную от имени администратора, а результата никакого. В открывающемся окне CMD запускается процесс подключения к компьютеру PC-Win7, потом окно закрывается и все.

Petya V4sechkin
15-12-2011, 20:03
На 7ке - только локально и только через командную строку, запущенную под локальным админом (учетка доменного админа не помогает). BAT-ник на 7ке отказывается работать.
Что, в контекстном меню CMD-файла нет пункта "Запуск от имени администратора"?
Статью Упрощаем запуск приложений в Windows 7 от имени администратора без отключения UAC (http://oszone.net/10594) читали?

выключить удаленный комп с Windows 7
LocalAccountTokenFilterPolicy в Windows 7 выставьте.

потом окно закрывается и все
Не делайте так, чтобы оно закрывалось. Если хотите увидеть и прочитать сообщение об ошибке. Запустите cmd.exe ("от имени" не надо, если в XP) и выполните:
C:\PsShutdown\psshutdown.exe \\PC-Win7 -s -f -t 60 -m "Your computer will be shut down after 1 minute"

Muslitel
15-12-2011, 23:22
Что, в контекстном меню CMD-файла нет пункта "Запуск от имени администратора"? »
Это есть. И за эту подсказку Вам благодарочка.
LocalAccountTokenFilterPolicy в Windows 7 выставьте. »
И это тоже сделал. Именно после того, как добавил запись в реестр, у меня получилось, запустив CMD от имени администратора, запустить успешно скрипт.
Т.е. у меня получилось запустить таймер выключения компа с Window 7 непосредственно с этого же компа - локально. А вот сделать это удаленно не получается. :(

Petya V4sechkin
16-12-2011, 08:14
Muslitel, как уже было сказано, LocalAccountTokenFilterPolicy влияет только на удаленные подключения.

А вот сделать это удаленно не получается.
Как уже было сказано, вам необходимо увидеть и прочитать сообщение об ошибке.
А до тех пор можем погадать на кофейной гуще. Например, убедиться в корректности имени и пароля учетной записи. Проверить настройки встроенного брандмауэра Windows 7, а также антивируса/файрвола (если установлен).

Muslitel
16-12-2011, 12:07
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
will be shut down after 40 seconds"

PsShutdown v2.52 - Shutdown, logoff and power manage local and remote systems
Copyright (C) 1999-2006 Mark Russinovich
Sysinternals - www.sysinternals.com

Couldn't access WKS778K:
Tїюф т ёшёЄхьє эх яЁюшчтхфхэ: шь яюы№чютрЄхы шыш ярЁюы№ эх юяючэрэv.

При этом проверил:
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"
и комп выключился через 40 секунд. :) Все проверил еще раз. Эврика!

Petya V4sechkin
16-12-2011, 17:42
Couldn't access WKS778K:
Tїюф т ёшёЄхьє эх яЁюшчтхфхэ: шь яюы№чютрЄхы шыш ярЁюы№ эх юяючэрэv
Что означает: "Вход в систему не произведен: имя пользователя или пароль не опознаны".

А потом понял, что рабочие станции находятся в домене.
А в домене LocalAccountTokenFilterPolicy не нужен (http://support.microsoft.com/kb/951016/en-us) :)

Попробовал запустить командную строку на компьютере с Windows XP от имени доменного админа.
Зачем, ведь можно указать учетные данные в опциях PsShutdown.

Muslitel
16-12-2011, 17:58
А в домене LocalAccountTokenFilterPolicy не нужен :) »
чьёрт побьери. ну ничего. зато запомнил, как это делается )))
Спасибо Вам еще раз :)

Muslitel
05-01-2012, 15:35
Эмм... Рискну продолжить тему, так как возникли снова вопросы. В домене все работает исправно, как часики. Но есть беда. У меня пару машину находятся вне домена - workgroup. Вот к ним я достучаться не могу. Пробовал в скрипте указывать данные учетной записи админа - не помогло.
Откровенно говоря, я не совсем соображаю, как вообще к ним достучаться по удаленке, а тем более через скрипт :(.
Помогите, пожалуйста.

voler
02-03-2012, 16:50
А если на ПК закрыт доступ через все кроме телнет? То как выключить ПК?
set sh=WScript.CreateObject("WScript.Shell")
sh.run "telnet 192.168.2.2 2323"
WScript.Sleep 500
sh.SendKeys "n"&vbcr
WScript.Sleep 500
sh.SendKeys "voler"&vbcr
WScript.Sleep 150
sh.SendKeys "pass"&vbcr
WScript.Sleep 150
sh.SendKeys "shutdown -r -t 10"&vbcr
Только вот это не отрабатывает - sh.SendKeys "shutdown -r -t 10"&vbcr

Решил вопрос, проще скачал Telnet Script Executor (http://http://www.petri.co.il/software/tst10.zip)
Запускаю так TST10.exe /r:reboot.txt /o:output.txt /m
Конфиг такой
192.168.2.2 979
WAIT "Welcome to Microsoft Telnet Service "
SEND "n"
WAIT "login:"
SEND "voler\m"
WAIT "password:"
SEND "pass\m'
SEND "\m"
WAIT "C:\Documents and Settings\voler>"
SEND "shutdown -r -t 5\m"
SEND "\m"

clevergod
27-05-2015, 10:03
####################################################
# 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=Groups ,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 если нужно вложение файла к письму

comsun
24-11-2015, 15:25
shutdown -r -t с Вин 2к не работает! какие команды для Вин 2000?

p.s. разобрался.

cold123
13-10-2016, 01:52
Ребят помогите, я не рублю особо в командной строке кому не сложно напишите как сделать чтоб при нажатие на батник открывалась командная строка с введенной командой "shutdown /s /t ***" что бы оставалось только время дописать?

Iska
13-10-2016, 05:17
@echo off

set /p sTimeout=Enter timeout:
if defined sTimeout shutdown.exe /s /t %sTimeout%

cold123
13-10-2016, 14:18
Спасибо большое!




© OSzone.net 2001-2012