Назад | Перейти на главную страницу

Запуск / остановка службы на удаленном сервере

Я ищу способ запуска / остановки службы на удаленном сервере Windows 2003. Локально я знаю, что команда net работает, но есть ли способ сделать это по сети?

РЕДАКТИРОВАТЬ: если вы хотите сделать это в сценарии, внешние инструменты графического интерфейса не будут работать, если у них нет инструмента командной строки.

Используйте команду «sc.exe» из набора ресурсов Windows Server.

Например, чтобы настроить службу IIS на автозапуск, а затем запустить ее:

sc \\server1 config w3svc start= auto
sc \\server1 start w3svc

Есть бесплатные инструменты sysinternals под названием PsService что позволяет вам просматривать статус, запускать и останавливать службы локально и на других машинах.

Используйте команду sc:

sc [server] [command] [service name]

Вы можете использовать sc команда.

В принципе:

sc \\server stop wuauserv

sc \\server start wuauserv

Для получения дополнительной информации просто введите sc в командной строке.

Запустите инструмент администрирования служб на локальном компьютере, щелкните правой кнопкой мыши запись «Службы (локальные)» и подключитесь к удаленному компьютеру.

Это даст вам MMC с полным набором услуг для удаленного компьютера.

Если вы в душе UNIXy и работаете с серверами Windows, делайте то, что делаю я. Установите cygwin, настройте openssh и ssh для использования net start / net stop.

Очевидно, что слово `sc 'упоминалось довольно часто, вот вам альтернатива:

Есть ОТЛИЧНАЯ группа утилит, написанная Марком Руссиновичем, которая называется "PSTools" который имеет такую ​​возможность. В частности, psexec может сделать это за вас.

Еще я нашел в сети этот скрипт Powershell:

####################################################################################
#PoSH script to check if a server is up and if it is check for a service.
#If the service isn't running, start it and send an email
# JK - 7/2009
#Updated: 07/22/09 by Steven Murawski (http://blog.usepowershell.com)
#Changed the ping result comparison to use the .NET Enum
####################################################################################

$erroractionpreference = "SilentlyContinue"

$i = "testserver"   #Server Name
$service = "spooler"    #Service to monitor

 $ping = new-object System.Net.NetworkInformation.Ping
    $rslt = $ping.send($i)
        if ($rslt.status –eq [System.Net.NetworkInformation.IPStatus]::Success)
{
        $b = get-wmiobject win32_service -computername $i -Filter "Name = '$service'"

    If ($b.state -eq "stopped")
    {
    $b.startservice()

    $emailFrom = "services@yourdomain.com"
    $emailTo = "you@yourdomain.com"
    $subject = "$service Service has restarted on $i"
    $body = "The $service service on $i has crashed and been restarted"
    $smtpServer = "xx.yourdomain.com"
    $smtp = new-object Net.Mail.SmtpClient($smtpServer)
    $smtp.Send($emailFrom, $emailTo, $subject, $body)
    }

}