HIRO's.NET

VB.NET, C#, PowerShell Tipsサイト

 VB.NET, C#, PowerShellを使用しているエンジニアのためのサイト。

 基本的な使用方法から開発で役立つTipsまで幅広く取り扱っています。

HIRO's.NET RSSHIRO's.NET RSS


PowerShellの開発でお困りのことはありませんか?
そんな悩みは当サイトで解決!!

HOME > PowerShell Tips > 自作関数 Tips メニュー

18.サービスのステータスごとに色をつける

 
UPDATE:2008/05/03    
 



Get-Serviceコマンドレットは、ローカル コンピュータ上のサービスを取得するコマンドレットです。
このコマンドレットの実行結果には、サービスのステータス情報("Stopped"か"Running")が含まれています。

"Stopeed"だったら文字色を赤で、"Running"だったらシアンでサービス名を表示する関数を作ってみました。

実行結果は下図のとおりです。

Color-SrvStatus.ps1

#===============================================================================
# Color-SrvStatus: サービスのステータス別に色を付ける
#
# 使用例
# PS > Color-SrvStatus
#
# copyright HIRO's.NET(http://hiros-dot.net/)
#===============================================================================
function global:Color-SrvStatus
{
#サービスを取得
$srv = get-service
#カウンタの初期化
$iCnt = 0

for ( $iCnt = 0; $iCnt -lt $srv.length; $iCnt++ )
{
#各サービスのステータスを判断して色を付ける
if ($srv[$iCnt].status -eq "running")
{write-host $srv[$iCnt].Name -foregroundcolor "cyan"}
elseif ($srv[$iCnt].status -eq "stopped")
{write-host $srv[$iCnt].Name -foregroundcolor "red"}
else
{write-host $srv[$iCnt].Name}
$iCnt++
}
}

使用方法は、List1のように関数名を入力するだけです。

ポイント

といっても、なんのことはありません。
取得結果のStatusを判断して、色を付けています。
この関数はサービス名しか表示しないので、用途に合わせて表示される情報を増やすことをおすすめします。

List1

PS > Color-SrvStatus