用 Powershell 吧
1.在 DC 上,開個夾,建立一個檔,例如: C:\ps\Get_Uptime.ps1
2.執行 Powershell
3. cd c:\ps
4. .\Get_Uptime.ps1
5. 會得到 2 個 CSV 檔.
Get_Uptime.ps1 內容
#若有錯誤,略過,繼續
$ErrorActionPreference = 'SilentlyContinue'
#取出本網域間的所有電腦名稱
#若您沒安裝伺服器管理工具RSAT, 請在DC主機上執行.
$Name=Get-ADComputer -Filter 'Name -like "*"' | select -ExpandProperty Name
foreach ( $N in $Name)
{
#取電腦作業系統資訊
$OS = gwmi Win32_OperatingSystem -computerName $N
#取上次開機時間
$boottime = $OS.converttodatetime($OS.LastBootUpTime)
#折分日期
$bt3 = (Get-Date) - $OS.ConvertToDateTime($OS.LastBootUpTime)
#轉日期格式 "yyyy-MM-dd hh:mm:ss"
$boottime2 = $boottime | Get-Date -f "yyyy-MM-dd hh:mm:ss"
#取開機天數
$uptime = New-TimeSpan (get-date $boottime2)
$uptime_days = [int]$uptime.days
#輸出到CSV, 格式= 電腦名稱,上次開機時期,已開機 日數
$N+","+$boottime2+","+$uptime_days |OUT-FILE -Append data.csv
#輸出到CSV, 格式= 電腦名稱,上次開機時期,已開機 日,時,分
$N+","+$boottime2+","+$bt3.Days + " Days " + $bt3.Hours + " Hours " + $bt3.Minutes + " Minutes" |OUT-FILE -Append data2.csv
}