PowerShell Core достиг фазы Beta.1


Развитие PowerShell Core успешно продолжается. Продуктовая группа к началу конференции Build 2017 выпустила PowerShell Core Beta.1.

Эту версию вы можете свободно скачать, установить и даже применять на практике. Было бы даже очень полезно попробовать её в своей ежедневной работе и написать свои замечения разработчикам, или даже что-то исправить самому — проект же открытый!

Всё ещё существует множество проблем, которые нужно решить. Почитайте v6.0.0-beta.1 release of PowerShellCore.

Например, внезапно, Beta.1 не работает на Windows 7 SP1. Причина банальна: PowerShell Core был переведен на .Net Core 2.0, где большое количество устаревшего API просто нет.

.Net Core 2.0 также находится в стадии активной разработки, поэтому с каждым днём всё больше API портируется на Unix и добавляется в поддержку. Вы можете опробовать .Net Core 2.0 в своих проектах и написать разработчикам свои замечания или принять участие в исправлении проблем — проект .Net Core 2.0 также открытый.

Надо особо отметить, что перевод PowerShell Core на .Net Core 2.0 расширил совместимость со старыми модулями: некоторые из них могут, внезапно, начать работать в Beta.1.

Теперь стало возможно разрабатывать универсальные для всех поддерживаемых платформ модули. Те, кто ранее разрабатывал модули для Windows PowerShell, могут начать работы по «портированию» своих продуктов. Документация готовится.

Исправлено множество нюансов при работе с файловыми системами на разных платформах. Работа в этом направлении продолжается. Было бы прекрасно получить замечания от сообщества уже сейчас, потому что реального опыта использования PowerShell на различных платформах пока ещё очень мало — поделитесь своим опытом и своими потребностями с разработчиками PowerShell.

В Beta.1 вы также обнаружите, что поправлена кодировка при работе с консолью: на Windows это теперь работает точно также как в Windows PowerShell. На Unix используется Utf8 (без BOM). Это обеспечивает хорошую обратную совместимость на Windows, но оставляет открытым вопрос о будущем: например, команда разработки Windows Console проводит большую работу по развитию консоли Windows и поддержке unicode-ных приложений. В тоже время нужно обязательно сохранить обратную совместимость и обеспечить работу существующих приложений.

Открытым остаётся вопрос по использованию кодировок при работе с файлами. Windows давно и полностью использует вариант Unicode Utf16LE с BOM, в то время как Unix применяет Utf8 без BOM. Сейчас продолжается большая и важная дискуссия по поводу использования кодировок в PowerShell Core — примите участие! Вопрос не так прост, как кажется на первый взгляд, поэтому ваше мнение важно для разработчиков.

 

О пользе -noprofile в PowerShell


В PowerShell есть параметр командной строки «-noprofile», который исключает загрузку пользовательских конфигурационных файлов.

В некоторых случаях нам не следует забывать использовать этот параметр. Например, при запуске скриптов в планировщике. Даже для пользовательских скриптов плохо зависеть от внешних непредсказуемых настроек. Если же речь идет о системных скриптах, то использование параметра «-noprofile» становится критически важным: злоумышленник может внедриться в системные скрипты и натворить плохих дел.

Изменение порта RD Gateway


Если хотите сильно «зашифроваться», то в принципе возможно изменить рабочие порты (TCP и UPD) RD Gateway. Изменения придется внести на самом сервере RD Gateway, на шлюзе публикации и в клиенте (или на ферме, где динамически формируется rdp-файл. Как это сделать описано по ссылке.

 

Прощание с Outlook Anywhare


В этом году Office 2007 исполняется 10 лет и он выходит из фазы расширенной поддержки. Это означает, что для производителя он перестаёт существовать: больше не будет никаких обновлений, даже обновлений безопасности. Также все связанные продукты перестают обеспечивать совместимость с Office 2007.

В частности Office 365 забудет про Outlook 2007 к концу 2017 года. Более того Office 365 перестанет поддерживать Outlook Anyware, или RPC over HTTP, как его ещё называют.

В 2014 году Microsoft начала переход на новый протокол MAPI over HTTP, который является заменой Outlook Anyware и имеет множество преимуществ (более быстрый, легкий и безопасный). С окончанием времени жизни Outlook 2007 необходимость в поддержке Outlook Anyware пропадает: более новые версии Outlook 2010/2013/2016 поддерживают MAPI over HTTP.

Что касается корпоративных версий Exchange Server, то поддержка Outlook Anyware в них также заканчивается. (Кстати время расширенной поддержки Exchange Server 2007 также истекает.) Это конечно формально в том смысле, что Microsoft не будет принудительно блокировать RPC over HTTP в корпоративных версиях, и компании смогут эксплуатировать текущие версии без обновлений сколько угодно долго, пока не решат обновить своё ПО.

Полезная ссылка RPC over HTTP deprecated in Office 365 on October 31, 2017.

 

Быстрая загрузка обновлений в Windows 10


С выходом Windows 10 Creator компания Microsoft продолжила оптимизацию установки обнвлений и вернула быструю загрузку (Express download) обновлений.

Мы уже знакомы с ней — в WSUS быстрая загрузка поддерживалась многие годы. Суть быстрой загрузки в том, что клиент загружает не полный пакет обновления, а только нужную часть, которая может оказаться значительно меньше полного пакета. Это ускоряет загрузку и экономит место на диске. С учётом того, что сейчас обновления занимают по несколько гигабайт, «новшество» выглядит очень полезным. (Обновление до версии Creator с предыдущего preview у меня выглядело как перезагрузка вместо часовой переустановки системы. Если это станет правилом для последующих обновлений, то это будет замечательно.)

Теперь эта оптимизация работает не только на WSUS, но и на SCCM и Windows Update для последних версий Windows 10.

Корпоративные клиенты уже давно могут использовать преимущества BranchCache  для загрузки обновлений. В Windows 10 появилась Delivery Optimization, которая в отличие от Branch Cache позволила использовать внешние (находящиеся в Интернет) клиенты Windows 10 для загрузки обновлений.

Подробности в документации.

 

Проблемы Exchange Server 2016 на Windows Server 2016


Только продуктовая группа Exchange разобралась с проблемой краха IIS на Windows Server 2016 (исправление было для Windows Server 2016, смотрите тут), как им пришлось опубликовать предупреждение о новой проблеме — Exchange Server Edge Support on Windows Server 2016 Update.

Это говорит о том, что Windows Server 2016 не так прост как кажется: внутри было изменено много чего и существенно.

Напрашивается два вывода:

  1. Могут быть ещё сюрпризы с E16 на Win2016. С учётом новых циклов выпуска обновлений исправления получим в лучшем случае месяца через два, в худшем — через 7 месяцев. Это конечно не говорит о том, что E16 на Win2016 это ещё сыро — нет, уже вполне годно для эксплуатации.
  2.  В силу коренных изменений в Win2016 подобные проблемы могут быть с продуктами третьих фирм. Также мы можем увидеть задержки выпуска новых версий различных продуктов под Windows Server 2016.

Exchange 2013 — Authenticated SMTP relay


Редкая конфигурация, когда нужно пересылать в мир почту из небольших автономных офисов через центральный узел с использованием аутентификации на SMTP. Тем не менее кому-то может пригодится.

Суть в том, что в отличие от Exchange 2010 в Exchange 2013 не достаточно включить аутентификацию на коннекторе получения «Default Frontend» — нужно еще добавить права на коннекторе «Client Proxy», потому что подключения такого рода чудесным образом с первого коннектора направляются на второй!

Подробности Authenticated SMTP relaying in Exchange 2013