Я могу создать CSV из следующего кода, однако он не дает подробных сведений о «времени работы системы» в течение нескольких дней.
Он отображает часы и минуты без проблем, но вместо предоставлениячисло перед днями, просто выводит слово days.
Server Last Rebooted System Up Time
Srv1 25/07/2018 20:49 Days 12 Hours 37 Minutes
PC1 04/02/2019 15:55 Days 17 Hours 31 Minutes
Я пытался заключить переменную $Uptime
в круглые скобки, но безрезультатно.Я также пытался $_.Days
получить информацию без удачи.
$Path = "C:\Temp\Manual_Servers"
$Tx = "\Servers.txt"
$CS = "\Res.csv"
$File = $Path + $tx
$Server = GC $File
$Np = "\Res.txt"
$Res = $Path + $Np
$Res2 = $Path + $CS
function Uptime2 {
$Server | ForEach-Object {
$SF = $_
$os = Get-WmiObject Win32_OperatingSystem -ComputerName $_ -ErrorAction SilentlyContinue
$uptime = (Get-Date) - $os.ConvertToDateTime($os.LastBootUpTime)
$OS |
Select-Object @{Name="Server";Expression={$SF}},
@{Name="Last Rebooted";Expression={($_.ConvertToDateTime($os.LastBootUpTime)).DateTime}},
@{Name="System Up Time";Expression={$_.$uptime.Days + "Days " + $uptime.Hours + " Hours " + $uptime.Minutes + " Minutes" }} |
Export-Csv $Res2 -NoClobber -NoTypeInformation -Append
}
}
Uptime2
Желаемый результат:
Server Last Rebooted System Up Time
Srv1 25/07/2018 20:49 200 Days 12 Hours 37 Minutes
PC1 04/02/2019 15:55 9 Days 17 Hours 31 Minutes