我发现了一些脚本,但没有任何工作方法并试图将它们组合在一起,却惨遭失败。我找不到任何可以解释如何使找到的人做我想要的东西的东西,所以这是我的尝试,但是没有用,所以我想知道是否有人可以帮助我使它工作? 我删除了标识域信息
Get-ADComputer -Filter { Name -like "*" } -SearchBase "OU=OU,DC=DC,DC=DC" |
Select-Object -ExpandProperty Name |
Sort-Object |
Get-WmiObject -Class Win32_OperatingSystem
$wmi.ConvertToDateTime($wmi.LocalDateTime) - $wmi.ConvertToDateTime($wmi.LastBootUpTime)
答案 0 :(得分:2)
因此,您需要执行几个步骤:
获取机器列表
$list = Get-ADComputer -Filter 'Name -like "*"' -SearchBase 'OU=Computers,DC=example,DC=com'
遍历列表
$results = foreach ($pc in $list.Name)
{
获取WMI
信息
$wmi = Get-WmiObject -ComputerName $pc -Class Win32_OperatingSystem
计算正常运行时间
$uptime = $wmi.ConvertToDateTime($wmi.LocalDateTime) - $wmi.ConvertToDateTime($wmi.LastBootUpTime)
在您可以使用的集合中输出信息
[pscustomobject]@{
ComputerName = $pc
Uptime = $uptime.Hours
}
}
减去两个datetime
对象将为您提供timespan
,因此您需要弄清楚所需的信息(秒,分钟等)的粒度。此过程的最终结果是$results
中带有ComputerName
和Uptime
的对象数组。