PowerShellで前回起動日時と稼働時間の取得

by kusakari 6. 11月 2009 21:39

PowerShellでサーバーやクライアントの起動日時と、稼働している期間を取得してみたいと思います。


■前回起動した日時
Win32_OperatingSystem クラスの LastBootupTime プロパティを読むことで、前回起動した日時を取得することが出来ます。


■WMIでの日時データの型
WMIで、日時データの型は CIM_DATETIME という型で、フォーマットは次のようになっています。

yyyymmddHHMMSS.mmmmmmsUUU

詳しくは下記のMSDNをご覧ください。
http://msdn.microsoft.com/en-us/library/aa387237%28VS.85%29.aspx


ちなみに下記のコマンドレットを打ち込んで、確認することが出来ます。

gwmi Win32_OperatingSystem | select LastBootUpTime

200911620_275


ただ、このままの型だと日時の計算が出来ないので、WMIの SWbemDateTime の GetVarDate を利用します。

■SWbemDateTime
この CIM_DATETIME 扱うには、下記のような感じで、SWbemDateTime を作成して、Value プロパティに CIM_DATETIME を指定して GetVarDate で変換します。

New-Object -ComObject WbemScripting.SWbemDateTime



詳しくは下記のMSDNをご覧ください。
http://msdn.microsoft.com/en-us/library/aa393687.aspx



■サンプル1(前回起動日時の取得)

$wmi = gwmi Win32_OperatingSystem
$date = New-Object -ComObject WbemScripting.SWbemDateTime

$date.Value = $wmi.LastBootUpTime
$date.GetVarDate($true)


■サンプル1 結果
200911621_276




■サンプル2(稼働時間の取得)

$wmi = gwmi Win32_OperatingSystem
$date = New-Object -ComObject WbemScripting.SWbemDateTime

$date.Value = $wmi.LastBootUpTime
$date.GetVarDate($true)

New-TimeSpan $date.GetVarDate($true) (Get-Date)


■サンプル2 結果
200911621_277

 

コメントを書く


(アイコンを表示しますか Gravatar )

  Country flag

biuquote
  • コメント
  • プレビュー
Loading



Calendar

<<  9月 2010  >>
月曜火曜水曜木曜金曜土曜日曜
303112345
6789101112
13141516171819
20212223242526
27282930123
45678910

View posts in large calendar

RecentComments

Comment RSS