2014/01/16

PowerShell 手動追加したサービスをリモートから再起動するスクリプト


約1年前に書いた記事「WHS2011 ScanSnapを接続してドキュメントサーバを構築してみた」ですが、稀にスキャン時にエラーが起きます。
エラーが起きた場合、手動でサービスの再起動を行っていましたが、PowerShellで確実にサービス再起動を行うようスクリプトを書いてみました。
再起動は、クライアントPCからリモートでPowerShellを実行します。

おさらい

今回の内容は下記ブログ記事がベースになっています。
WHS2011 ScanSnapを接続してドキュメントサーバを構築してみた

手動追加したサービスをリモートで再起動するスクリプト

今回のサンプルの概要は下記の通り。
  • クライアントPCからWHS2011に対しリモートで処理を行う
    クライアントPCからリモートでPowerShellを実行するためには、事前の設定が必要です。
    下記記事の最後尾に設定を書いておりますので、気になる方はお読みください。
    PowerShell サービス取得・変更を行うコマンドレットのまとめ
  • 2つのサービスを再起動する
  • パスワードの記述の有り・無しで処理が若干異なる
$adminPwdにパスワードを記述すれば資格情報の入力等が一切不要になります。


[string]$serverName = "サーバ名"
[string]$adminUser = "administrator"
[string]$adminPwd = ""

#資格認証
if($adminPwd -ne ""){
    $password = ConvertTo-SecureString $adminPwd -AsPlainText -Force
    $credential = New-Object System.Management.Automation.PSCredential("$serverName\$adminUser",$password)
}
else{
    $credential = "$serverName\$adminUser"
}

#サーバ接続
$pss = New-PSSession -ComputerName $serverName -Credential $credential

if($pss.id -eq $null){
    Write-Host "サーバ接続に失敗しました。"
}
else{

    #サービス再起動
    #--サービス名「PfuSsMon」および「PfuSsWiaChecker」は私が手動で追加したサービス名になります。
    Invoke-Command -Session $pss -ScriptBlock { Restart-Service "PfuSsMon" -Force }
    Invoke-Command -Session $pss -ScriptBlock { Restart-Service "PfuSsWiaChecker" -Force }

    #サーバ切断
    Remove-PSSession -Session $pss
}
スポンサーリンク

スポンサーリンク