約1年前に書いた記事「WHS2011 ScanSnapを接続してドキュメントサーバを構築してみた」ですが、稀にスキャン時にエラーが起きます。
エラーが起きた場合、手動でサービスの再起動を行っていましたが、PowerShellで確実にサービス再起動を行うようスクリプトを書いてみました。
再起動は、クライアントPCからリモートでPowerShellを実行します。
おさらい
今回の内容は下記ブログ記事がベースになっています。
WHS2011 ScanSnapを接続してドキュメントサーバを構築してみた
手動追加したサービスをリモートで再起動するスクリプト
今回のサンプルの概要は下記の通り。- クライアントPCからWHS2011に対しリモートで処理を行う
クライアントPCからリモートでPowerShellを実行するためには、事前の設定が必要です。
下記記事の最後尾に設定を書いておりますので、気になる方はお読みください。
PowerShell サービス取得・変更を行うコマンドレットのまとめ - 2つのサービスを再起動する
- パスワードの記述の有り・無しで処理が若干異なる

[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
}