複数のサーバで自動サービスを開始する

はじめに

指定したサーバで自動サービスを開始するスクリプトです。複数のサーバや除外したいサービスを指定することができます。

環境

OS:Windows10
.Net Framework:4.7
PowerShellのバージョン:5.1.17134.858

ソースコード

AutoServiceStart.ps1

#######################################################################################
# 概要:複数のサーバで自動サービスを開始します。
# 作成者:ITStudy
# 作成日:2020/02/16
# 必要なファイル:AutoServiceStart.ps1(このファイルです)
#                 ServersList.csv(対象サーバを記載したCSVファイルです)
#                 SkipService.csv(スキップするサービスを記載したCSVファイルです)
#######################################################################################

$CurrentDir      = $PSScriptRoot
$ServersList     = "ServersList.csv"
$SkipServiceList = "SkipServiceList.csv"
$Result          = "Result.csv"

#指定したサービスを配列に格納
$aryServicesList=@()
Import-Csv (Join-Path $CurrentDir $SkipServiceList) -Encoding Default | %{
    $aryServicesList += $_.ServiceName
}

Import-Csv (Join-Path $CurrentDir $ServersList) -Encoding Default | %{
    $oServiceData  = ""
    $oServiceData = Get-Service -ComputerName $_.HostName | ? {$_.StartType -eq "Automatic" -and $_.Status -ne "Running" -and $_.DisplayName -notin @($aryServicesList)}
    $oServiceData | Start-Service

    #画面出力
    $oServiceData = $oServiceData | select MachineName, DisplayName, Status, StartType, Name
    $oServiceData | Format-Table -AutoSize -Wrap

    #CSV出力
    $oServiceData | Export-Csv -NoTypeInformation (Join-Path $CurrentDir $Result) -Encoding Default -Append
}

ServersList.csv

対象サーバのホスト名、もしくはIPアドレスを入力します。ヘッダーの「HostName」は削除しないで下さい。

HostName
windows2019
windows2016
windows2012
windows2008
windows2003

SkipServiceList.csv

除外したいサービス名(DisplayName)を入力します。ヘッダーの「Service」は削除しないで下さい。

Service
Performance Logs and Alerts
Diagnostic Policy Service
Shell Hardware Detection
Software Protection
Downloaded Maps Manager
Google Update サービス (gupdate)
Microsoft .NET Framework NGEN v4.0.30319_X86
Microsoft .NET Framework NGEN v4.0.30319_X64

結果

開始した自動サービスが表示されます。

MachineName DisplayName                Status StartType Name          
----------- -----------                ------ --------- ----          
windows2016 Remote Registry           Running Automatic RemoteRegistry
windows2016 Windows Biometric Service Running Automatic WbioSrvc     
タイトルとURLをコピーしました