Есть минимум четыре способа подсчитать в Powershell время выполнения скриптов и команд.
Первый способ самый простой, через получение истории:
Get-History | select *
Мы увидим время старта и конца работы скрипта:
Если запускать не из редактора Powershell, а например в консоли, то у нас будет считаться как 2 разные команды.
Можно сразу получить время выполнения последней команды:
Get-History | select -Last 1 -Property *
Второй способ через Measure-Command. Разница со способом выше в том, что мы измерим время и в миллисекундах тоже. Кроме этого команды исполняются в блоке и время выполнения считается для всех вместе:
Measure-Command {Get-Event
1..30 | % {Get-Date -Day $_}}
Третий способ через объект даты. Мы фиксируем дату до выполнения скрипта и после, а затем вычитаем одно значение из другого:
$start_time = Get-Date
$command = Get-ADUser -Filter *
$end_time = Get-Date
$result = $end_time - $start_time
$result
Вывод будет аналогичным Measure-Command:
Четвертый способ через объект .Net. Плюсы в том, что такие классы доступны почти во всех версиях Powershell:
# Объявление переменной хранящую начало отсчета времени.
$start_time = [System.Diagnostics.Stopwatch]::StartNew()
Get-ADUser -Filter *
# Проверка, что таймер еще работает
$start_time.IsRunning
# Вывод времени на экран
$start_time.Elapsed
# Остановка таймера
$start_time.Stop()
У этого командлета есть больше десятка методов, которые мы можем применять.
[System.Diagnostics.Stopwatch] | Get-Member
...
Подписывайтесь на наш Telegram канал
Теги: #powershell