web-dev-qa-db-ja.com

最後の再起動タイムスタンプを取得するためのスクリプト(2008r2)

広告が統合されたコンピューターのリストがあり、最後に再起動した時刻のリストが必要です。 Get-WmiObject -ClassName win32_operatingsystem -ComputerName xxx | select csname, lastbootuptimeのようなコマンドをいくつか見つけましたが、それは私が必要としているものではありません。コンピュータがたくさんあるので、スクリプトが必要になります。

誰かが私にいくつかの提案を手伝ってくれるなら、私はPowerShellの経験がありません。

PS C:\Users\XxX> Get-wmiobject win32_operatingsystem -ComputerName LC006909 | select csname, @{label='LastRestart';expression={$_.ConverToDateTime($_.LastBootUpTime)}}

csname                                                      LastRestart
------                                                      -----------
LC006909

この出力が表示されます... LastRestartの下では空です。

4
Cranta Ionut

Nixphoe's答えは間違いなく正しいですが、複数のコンピュータのlastbootuptimeを取得する方法を追加したいと思います(必要に応じて、出力をファイルにリダイレクトすることもできます):

複数のマシンの最終ブート時間を取得

$compname = Get-Content -Path C:\computers.txt
foreach ($comp in $compname) {
    Get-WmiObject win32_operatingsystem -ComputerName $comp| select CSName, @{LABEL='LastBootUpTime';EXPRESSION={$_.ConverttoDateTime($_.lastbootuptime)}}

}

C:\computers.txt-コンピューターのホスト名をここに1行に配置します

4
Volodymyr M.

私にとって、systeminfoは本当に遅いです。あなたがpowershell 3を持っているなら、あなたは次のようなものを使うことができるはずです

Get-CimInstance -ComputerName $yourcomputerObj -ClassName win32_operatingsystem | select csname, lastbootuptime

または

Get-WmiObject win32_operatingsystem -ComputerName $yourcomputerObj | select csname, @{LABEL='LastBootUpTime';EXPRESSION={$_.ConverttoDateTime($_.lastbootuptime)}}

リンク

4
Nixphoe

前回の起動時間を取得するには、多くの方法があります。

systeminfo | find /i "Boot Time"

たとえば、(人間が読める形式で)トリックを行います。ここではさまざまな言語に注意してください。たとえば、ドイツ語では「Systemstartzeit」をgrepする必要があります。

(言語非依存)wmiを試すこともできます。

wmic os get lastBootUpTime

逆の形式で起動時間を提供します(20150915100340.494919 + 120など)

1
bjoster

いつも使う

_systeminfo | find "Time"
_

出力する

System Boot Time: 16/09/2015, 08:41:28 Time Zone: (UTC) Dublin, Edinburgh, Lisbon, London

1
Greg