Powershell Pinger #2.1 - Разбор вывода итогов
В сегодняшнее дежурство заметил странное. Новая версия пингера в конце каждой итерации обхода всех хостов выводит итоговую таблицу. По идее, выводить она должна ее в следующем виде:
А на практике получается следующее:
Видим, что с какого-то перепуга поменялся формат вывода той несчастной конечной хэш-таблицы. Ночью сил разбирать все это не было, уволок весь скирпт домой. Убрал все лишние обвязки, оставил в новом файле только процедуру заполнения этой таблицы. Результат - тот же, неутешительный. Начинаю вспоминать, что ж было в скрипте изменено. Каково же было мое удивление, когда после комментирования командлета Get-Date все встало на свои законные места. Хохмы ради набросал простенькую конструкцию и посмотрел на результат:
Все как и должно быть. А теперь добавляем в самое начало этого скриптика всего одну строку - Get-date, которая всего лишь выведет первой строкой текущую дату и время. Вот что получаем:
Далее на ум приходят только слова из бессмертного филатовского Федота-стрельца: "Энто ж как же, вашу мать, извиняюсь, понимать?"
Как получилось так, что безобидный вывод времени напрочь меняет форматирование во всей консоли? И самое главное - где это описано? Может быть, я, конечно, плохо искал, но вот нигде не нашел никакой документации по подобному поведению. И, самое главное, проверил это во всех доступных мне на текущий момент версиях PSH - 2, 4, 5. Везде проявляется.
Ок, а если заменить Get-Date на [System.DateTime]::Now? Результат немного предсказуем - вывод будет ошибочным