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