Как вычислять uptime компьютеров в домене?

Есть необходимость собирать uptime компьютеров в домене. Не всех, а желательно из списка и импортировать их в файл, желательно в exel. У меня уже есть скрипт js который может узнать uptime определенного компа, но в нем приходится перед каждой проверкой вводить имя компьютера, что утомительно если их больше 100. Возможно можно что-то придумать на PowerShell?
  • Вопрос задан
  • 2470 просмотров
Решения вопроса 1
Black_beard_ast
@Black_beard_ast
Sysadmin/Ops engineer.

$scriptBlock={
$wmi = Get-WmiObject -Class Win32_OperatingSystem
($wmi.ConvertToDateTime($wmi.LocalDateTime) – $wmi.ConvertToDateTime($wmi.LastBootUpTime)).TotalHours
}

$UpTime = @()

Import-Module ActiveDirectory
Get-ADComputer -Filter 'ObjectClass -eq "Computer"' -SearchBase "OU=someOu,DC=someDomain,DC=someTld" -SearchScope Subtree `
| % { $Uptime += `
(New-Object psobject -Property @{
"ComputerName" = $_.DNSHostName
"UpTimeHours" = (Invoke-Command -ComputerName $_.DNSHostName -ScriptBlock $scriptBlock)
}
)
}

$UpTime | Where-Object {$_.UpTimeHours -ne ""} | sort-object -property @{Expression="UpTimeHours";Descending=$false} | `
Select-Object -Property ComputerName,@{Name="UpTimeHours"; Expression = {$_.UpTimeHours.ToString("#.##")}} | `
Format-Table -AutoSize
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
@kkt
создать список из компов
в цикле бегать по списку получать wmi объект
дальше делать что хочется
Ответ написан
rus0nix
@rus0nix
Admin
Если не хочется использовать скрипты - есть программа softperfect network scanner, которая может определять Uptime компьютеров при сканировании сети. Старые версии программы (<= 6) бесплатны.
Ответ написан
Комментировать
@Sergey_abakan
Можно использовать powershell модуль
https://m.habr.com/post/357974/
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы