はじめに
指定したサーバのサービス状態を確認するスクリプトです。サーバとサービスは複数指定することができます。サーバごとに共通のサービスをチェックする時に使用します。
サーバ名とサービス名の組み合わせでチェックしたい場合は以下をご覧下さい。
複数のサーバと指定したサービスのセットでサービスの状態をチェックする
環境
OS:Windows10
.Net Framework:4.7
PowerShellのバージョン:5.1.17134.858
ソースコード
ServiceCheck.ps1
#######################################################################################
# 概要:複数のサーバで指定したサービスの状態をチェックします
# 作成者:ITStudy
# 作成日:2020/02/11
# 必要なファイル:ServiceCheck.ps1(このファイルです)
# ServersList.csv(対象サーバを記載したCSVファイルです)
# ServicesList.csv(チェックするサービスを記載したCSVファイルです)
#######################################################################################
$CurrentDir = $PSScriptRoot
$ServersList = "ServersList.csv"
$ServicesList = "ServicesList.csv"
$Report = "Report-$(Get-Date -f yyyyMMdd).csv"
$aryServicesList = @()
$Result = @()
$ErrorActionPreference = "SilentlyContinue"
try{
#指定したサービスを配列に格納
Import-Csv (Join-Path $CurrentDir $ServicesList) -Encoding Default | %{
$aryServicesList += $_.ServiceName
}
#複数のサーバから指定したサービスの状態を取得
Import-Csv (Join-Path $CurrentDir $ServersList) -Encoding Default | %{
#エラー配列を初期化
$error.Clear()
#ホスト名の取得(HostName)
$hn = $_.HostName
$sv = Get-Service -ComputerName $hn | ? {$_.DisplayName -in @($aryServicesList)} | select MachineName, DisplayName, Status, StartType, @{Name="ErrorMessage"; Expression = {$error[0]}}
$Result += $sv
#進行状態を表示
Write-Host($hn + "を処理中です。")
}
#結果表示
$Result | Format-Table -AutoSize -Wrap
#レポート出力
$Result | Export-Csv -NoTypeInformation (Join-Path $CurrentDir $Report) -Encoding Default
}Catch{
$Error
}
ServersList.csv
対象サーバのホスト名、もしくはIPアドレスを入力します。ヘッダーの「HostName」は削除しないで下さい。
HostName
windows2003
windows2008
windows2012
windows2016
windows2019
ServicesList.csv
確認したいサービス名(DisplayName)を入力します。ヘッダーの「ServiceName」は削除しないで下さい。
ServiceName
Computer Browser
Netlogon
Windows Update
結果
Report-YYYYMMDD.csv
指定したサーバのサービス状態が確認できます。Windows Server2003には「Netlogon」と「Windows Update」サービスがないので表示されません。
MachineName DisplayName Status StartType ErrorMessage
----------- ----------- ------ --------- ------------
windows2003 Computer Browser Running Automatic
windows2008 Computer Browser Stopped Disabled
windows2008 Netlogon Running Automatic
windows2008 Windows Update Running Automatic
windows2012 Computer Browser Stopped Disabled
windows2012 Netlogon Running Automatic
windows2012 Windows Update Stopped Manual
windows2016 Computer Browser Stopped Disabled
windows2016 Netlogon Running Automatic
windows2016 Windows Update Stopped Manual
windows2019 Computer Browser Running Manual
windows2019 Netlogon Running Automatic
windows2019 Windows Update Stopped Manual