我有一个集成广告的计算机列表,我需要一个包含这些计算机上次重启时间的列表。我找到了一些命令,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 下为空。
答案1
Nixphoe 的答案肯定是正确的,但我想补充一下如何获取多台计算机的上次启动时间(如果需要,输出也可以重定向到文件):
获取多台机器的上次启动时间
$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
- 在此处连续输入计算机主机名
答案2
对我来说,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)}}
答案3
获取上次启动时间的方法有很多种:
systeminfo | find /i "Boot Time"
例如,可以达到目的(以人类可读的格式)。请注意这里的不同语言,例如在德国,您必须 grep 查找“Systemstartzeit”。
您还可以尝试(与语言无关)wmi:
wmic os get lastBootUpTime
它将以反向格式提供启动时间(例如 20150915100340.494919+120)
答案4
我总是用
systeminfo | find "Time"
输出
System Boot Time: 16/09/2015, 08:41:28 Time Zone: (UTC) Dublin, Edinburgh, Lisbon, London