Help us understand the problem. What is going on with this article?

PowerShellでWindows Serviceを起動する。

More than 1 year has passed since last update.

やりたいこと

Windowsで、サービス(Windows Service)をたくさん起動していると、だんだん動作が重くなってきます。
そこで、普段はサービスを停止しておき、必要な機会に手動で起動するようにします。

作るもの

Redmineの稼働に必要な4つのサービスをまとめて起動するスクリプトを作成します。

設計

  1. PowerShellでRedmineのサービスを起動するスクリプトを作成します。
  2. そのスクリプトをキックするbatファイル(Windows Batch File)を作成します。
  3. 「Redmineを使いたい」と思ったとき、batファイルを手動で実行し、Redmineを起動します。

ソースコード

サービス起動スクリプト

StartService_Redmine.ps1
### RedmineのServiceを全て起動する ###

# Redmineの稼働に必要なサービスの名前を配列で用意します。
$services = @("redmineApache","redmineMySQL","redmineThin1","redmineThin2")

# 上記サービスのうち、停止しているサービスを起動します。
foreach($service In Get-Service $services | Where-Object {$_.status -eq "stopped"}){
    Start-Service $service
}
# 現在のサービスの稼働状況をコンソール出力します。
# サービスの状態が全て「running」になっていれば、サービスの起動が成功しています。
echo "`r`n<<<  Redmine Service Status  >>>"
Get-Service $services | Format-Table -Property DisplayName, Status

スクリプトをキックするbatファイル

StartService_Redmine.bat
powershell -ExecutionPolicy RemoteSigned -File C:\Tool\StartService_Redmine.ps1
pause

使い方

1. 上記の2ファイルを以下のように配置します。

C:
└─Tool
    StartService_Redmine.ps1
    StartService_Redmine.bat

2. batファイルを管理者権限で実行します。
3. Redmineのサービスが起動されます。既にサービスが起動している場合は、何も起きません。

実行結果

C:\Tool>powershell -ExecutionPolicy RemoteSigned -File C:\Tool\StartService_Redmine.ps1

<<<  Redmine Service Status  >>>

DisplayName                        Status
-----------                        ------
redmineApache                     Running
redmineMySQL                      Running
redmineThin1 (managed by WinServ) Running
redmineThin2 (managed by WinServ) Running

C:\Tool>pause
続行するには何かキーを押してください . . .
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away