Tech

リモートサーバのサービスをコマンドで再起動する

プリントサーバに何か問題がある度にログインして、ServicesのGUIから印刷(プリント)スプーラーを再起動するのが面倒だったので作ったバッチファイル。
どこかのサーバに置いとけば、複数のサーバの特定のサービスを一気に再起動できます。

前提条件

  • Windowsサーバ
  • 実行するユーザがそれぞれのサーバに対して管理者権限を持っていること
  • 実行元ホストから実行先ホストに対してポート445/tcpが開いていること

バッチファイル(.cmd or .bat)中身

ホスト名(またはIPアドレス)とサービス名を書き換えて使ってください。net useの後に/userを追記すればどこかのサーバにログインしたり、管理者で実行も特に必要なくなるかと。
そもそも管理者権限を持っているログインユーザで実行するならnet use必要ないです。

@echo off && setlocal

rem Server1
call :RestartService 192.168.0.1 "Spooler"

rem Server2
call :RestartService 192.168.0.2 "Spooler"

rem Server3
call :RestartService 192.168.0.3 "Spooler"

exit /b

rem Restart the service by the argument
rem %1: Remote Server
rem %2: Service Name
:RestartService
    net use \\%1\ipc$
    sc \\%1 stop %2
:DoWhile
    sc \\%1 query %2 | findstr STATE | findstr STOPPED
    if %ERRORLEVEL% EQU 0 goto DoWhileExit
    goto DoWhile
:DoWhileExit
    sc \\%1 start %2
    net use \\%1\ipc$ /delete
exit /b

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

x  Powerful Protection for WordPress, from Shield Security
このサイトは
Shield Security によって保護されています →