PowerShell Core 6.1 Preview1


Уже пару недель как вышла первая предварительная версия PowerShell Core 6.1.

Приглашаю всех попробовать её в деле, если вы ещё не сделали это. Конечно это лучше делать осмысленно: погонять свои скрипты и поискать баги, попробовать новые фичи.

Список изменений огромный https://github.com/PowerShell/PowerShell/releases/tag/v6.1.0-preview.1

Самое примечательное на мой взгляд:

Add ForEach and Where methods to PSCustomobject (#5756)

Add Count and Length properties to PSCustomobject (#5745)

Add -settingsfile to pwsh to support loading a custom powershell config file. (#5920)

Enable conversions from PSMethod to Delegate (#5287)

Add lambda support to -replace operator (#6029)

Set pipeline thread stack size to 10MB (#6224)

Множество дополнений в Web Cmdlets

Add standard deviation implementation on Measure-Object (#6238)

Реклама

PowerShell Core — улучшения в операторе диапазонов


Теперь вы можете делать:

'A'..'B' | ForEach-Object { $_ }

Особенность в том, что  "0".."9" ( ‘0’..’9′) будет по-прежнему возвращать числа как в Windows PowerShell — это более ожидаемое поведение, которое широко используется.

Первоисточник.

Новый Add-Type


Да, он готов. PowerShell Core 6.0 GA вышел с обрезанной версией. Сейчас ситуация улучшается. Главное изменение — Add-Type использует Roslyn со всеми его возможностями. Восстановлена работа всех параметров. Расширена функциональность: теперь можно откомпилировать не только один файл, как раньше, а любое количество файлов за один раз. Улучшена производительность: устранен один баг (повторная обработка исходного кода), добавлен контроль изменений исходного кода, т.е. командлет не будет второй раз компилировать и загружать код, если исходный код не изменился. Улучшены сообщения об ошибках возвращаемых компилятором.

Работа фактически завершена. Но! Возник один вопрос: с добавлением поддержки VisualBasic размер дистрибутива вырос сразу на 5МБ — это относительно много, и это беспокоит команду разработчиков. MSFT хочет получить обратную связь от пользователей: хотите ли вы иметь поддержку Visual Basic в Add-Type? Этот вопрос они будут задавать на всех ближайших конференциях.

Скажите нам, что вы думаете. Вы можете написать свое мнение прямо по ссылке. Кроме того, некоторые пользователи уже попросили добавить поддержку F# (что технически не сложно) и вернуть поддержку JS (пока не ясно, как это сделать). Выскажете своё мнение об этом тоже.

Test-Connect — нужна обратная связь


PowerShell Core 6.0 GA вышел без командлета Test-Connection. Причина была банальна: предыдущая реализация работала только на Windows, её удалили, а работу над новой, портированной, версией завершить не успели.

На днях новая версия Test-Connection была добавлена в основную ветку. В описании вы увидите, что это не только ping. Если будет интерес от пользователей, то продолжу добавлять новые возможности в этот командлет.

Вы можете (и сделайте это!) загрузить ночную сборку для Windows и попробовать командлет в действии (и другие новые фичи). Либо ждите Preview2, которая скоро должна выйти. Свои замечания оставляйте в обсуждении.

Нужно проверить дизайн и функиональную часть (работа в скрипте), а также высказать своё мнение, какой должен быть вывод на экран: должны ли мы использовать прогресс-бар или только текстовый вывод, какой должен быть текстовый вывод, должен ли он эмулировать вывод Windows команд, выводить шапку и завершающую статистику.

Должен отметить, что из-за ограничений в .Net Core версия командлета на Unix-ах работает пока с ограниченной функциональностью.

 

PowerShell Core — голосуем за портирование модулей


После выхода в январе этого года PowerShell Core 6.0 многие его уже опробовали в деле и обнаружили, что некоторые привычные и очень нужные модули не работают. Одна из причин в том, что эти модули написаны в основе PSSnapin, который был безвозвратно удален из PowerShell.

Возникает вопрос, что с этим теперь делать? Читать далее

Процент выполнеия команды сжатия базы данных


Запустил сжатие MS SQL базы данных SharePoint на днях и наблюдал долгое время «рюмку». Обычно эта операция занимала секунды, но тут по-видимому большой размер и наличие партиций сказались. Отсутствие индикации процесса несколько беспокоило. Оказывается процент выполнения можно посмотреть простой командой:


SELECT percent_complete FROM sys.dm_exec_requests WHERE command = 'DbccFilesCompact'

Странный Range оператор


В PowerShell Core оператор Range был расширен и поддерживает диапазоны не только для чисел, но и для символов: вы можете сделать так ‘A’..’Z’ или так “A“..“Z“. Последний пример это по сути строки. Недавно Jason Shirk обратил внимание, что “0“.. “9“ работает иначе, чем в Windows PowerShell — возвращает объекты типа Char вместо Int. Было решено устранить эту несовместимость и в PowerShell Core 6.1 “0“.. “9“ будет возвращать Int как прежде.

Вот такой теперь «странный» Range оператор. :-) Если вам это кажется неоправданным, то создавайте Issue на GitHub.

В работе этого оператора вы можете найти другие странности. Пишите на GitHub — будет обсуждать. У меня, например, была идея добавить поддержку для любых типов, которые имеют Enumerator. Сходу идею не поддержали. Если это вам кажется полезным, также пишите на GitHub.