Как стать автором
Обновить

Комментарии 18

Глядя на подобное феерическое убожество

foreach ($computer in $computers) { if (test-Connection -Cn $computer -quiet) { Copy-Item $source -Destination \\$computer\$dest -Recurse } else { "$computer is not online" } }

Я начинаю понимать почему наши тестировщики не хотят знать ничего кроме пайтона.

P.S. К автору по качеству кода претензий нет, претензии по адовому синтаксису PowerShell
НЛО прилетело и опубликовало эту надпись здесь
Было такое же впечатление до того как поработал с PS. Попробуйте сами, возможно поменяете мнение.
Ох уж эти длинные строки… :-)
Здесь код просто в кучу отображен, без отступов и строк.
Было бы интересно взглянуть на конкретный пример и сравнить. Попутно упростив код ТС до:

$computers | % { if (Test-Connection $_ -quiet) { cp $source \\$_\$dest -r } else { "$_ is not online" } }
Спасибо, буду осваивать.
Кстати, если приходится часто логи парсить, посмотрите на LogParser — очень мощная штука. Тут описание есть: http://habrahabr.ru/post/85758/
Ага, спасибо. Гляну
Послало меня, добра молодца, начальство аж за тридевять земель да не куда-нибудь, а в _____. Послало, да наказ дало — посмотри, говорит, как можно использовать PRTG в целях мониторинга состояния сетей. Взял я ноутбук добрый, да мануалов поболее и пошел с PRTG воевать.

Открыл я web-интерфейс PRTG, да задумался… Какие же задачи мониторинга реализовать-то. И захотелось мне ЛЮБЫЕ задачи реализовать. Вот открыл я мануал, а он и говорит мне «сила в PRTG сокрыта волшебная — скриптами задачи разные выполнять, да отчеты в виде графиков формировать». И принялся я на PowerShell-3 скрипты писать…

Быстро сказка сказывается, да не скоро дело делается. День пишу скрипты, другой… Наконец одолел я мониторинг состояния синхронизации времени при помощи скриптов. Стал я скрипт на сервере запускать, да не тут-то было. Не понимает сервер языка скриптового, на PowerShell-3 написанного. Открыл я панель управления, да так и ахнул — PowerShell первой версии только и установлен. Достал я тогда винт свой внешний USBовый. И попробовал с него PowerShell-3 установить, да не тут-то было — не ставится эта версия на Win Server 2003-й.

Осерчал я тогда, но не подвел меня винт верный, выручил в трудную минуту. Нашелся на нем змей искусный — дистрибутив Python 2.7.3. Поставил я его на сервер, да давай его с PRTG дружить — написал я bat-файл, который скрипт python запускает, да сам скрипт написал. Не успел я глазом моргнуть, как заработал мониторинг состояния синхронизации, да графики стал рисовать — один другого краше!

Сказка ложь, да в ней намёк — Python это хорошо, а PowerShell — плохо. :)

p.s. Было написано в декабре 2012 года.
Python хорош, не спорю. Сам его учу. Но на виндовых серверах Powershell стоит по умолчанию, что упрощает жизнь, если этих серверов много. Поэтому его и использовал.
Написание скриптов на PowerShell даже второй версии не самая лёгкая задача (IDE просто ужасна). А у меня получилось что Powershell на сервере стоит только первой версии, причем обновить до большей версии невозможно. Она вышла, вот только недоступна для данной версии ОС. Для WinServer это вызывает недоумение, поскольку стандартная консоль Windows — #$%%#$!, а продукт, который позиционируется как её замена (PowerShell) не ставится.
Простите, но «не ставится эта версия на Win Server 2003-й.» по одной простой причине — в мире Microsoft 2003 сервер, включая его R2 собрата перестал быть актуален еще с выходом 2008+R2 и весь бизнес, который понимает, чем чревато использование морально и физически устаревших 2003 + WinXP, давно с них смигрировал. А никто не будет писать свежие версии фреймворков .Net и Фреймворка управления WinRM под устаревшие и неподдерживаемые системы, на которые уже даже антивирусы не очень хотят ставиться.
Вместо изучения Powershell я бы рекомендовал перевод серверов на Linux.
Я конечно ничего не хочу сказать, но сенсор Time в PRTG есть из коробки.

И да, вы еще пожалуйстесь, что Powershell 3 на Windows NT не встает. Использовать систему, выпущенную 9 лет назад, и жаловаться — странно. Еще более странно использовать встроенный функционал системы, не убедившись, что он присутствует в целевой системе. Это как сделать виртуалку в Hyper-V и говорить что он плохой, потому что не ставится на 2003 сервер, а виртуалбокс хороший, потому что ставится.

IDE рекомендую PowerGUI, встроенная ISE действительно пока не особо удобная. Для Питона ведь тоже отдельная IDE нужна?

сенсор Time в PRTG есть из коробки


Он показывает только разницу во времени в системе с PRTG и системе для которой производится мониторинг. В сети используется NTP, мониторинг состояния которого при помощи указанного сенсора малоинформативен.

Жалуюсь:
Powershell 3 на Windows NT не встает
.

Приходится работать с разными Windows — вплоть до Windows 98 (по отделу ходят страшилки про Windows 3.11!). К сожалению у нашего заказчика нет денег на регулярное обновление версии Windows. Обслуживание Linux-машин более однотипное и пожалуй более удобное.

странно использовать встроенный функционал системы, не убедившись, что он присутствует в целевой системе


Иногда данных о том что предстоит обслуживать попросту нет.

Для Питона ведь тоже отдельная IDE нужна?


Конечно многие ставят отдельную IDE, но встроенная тоже пойдёт. IDE Powershell просто ужас — ощущение что студенты-практиканты писали.
Конечно, в этом смысл сенсора. Убедиться, что все сервера, которые мониторит PRTG и в том числе он сам — синхронизированы.

Питон, конечно же ставится на любые дистрибутивы любых версий линукса однотипно. И, конечно же, вы всегда пишете скрипты под самую свежую версию питона, не заботясь о том, что они могут не работать в версиях младше. И во всех стабильных версиях дистрибутива в репозиториях расположена именно последняя версия — не приходится ничего ставить из бэкпортов и собирать из исходников.

Заканчивая с сарказмом — вам просто следовало переписать свой скрипт под Powershell V2. Уверен, вы не использовали ничего из V3, что бы нельзя было переписать за 2 минуты.
Питон, конечно же...

Да, иногда приходится собирать из исходников, зато я могу это сделать, а PowerShell — нет.

вам просто следовало переписать свой скрипт

Инсталятора Powershell V2 под рукой не было. Под Powershell V1 переписать было невозможно.
Powershell ISE в Windows 8/2012R2 конечно хорош, но его конкурент гораздо приятнее PowerGUI Script Editor. Хотя, на вкус и цвет все фломастеры разные.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории