Путь развития PowerShell Core


В настоящее время есть два PowerShell — Windows PowerShell и PowerShell Core. Сразу возникает вопросы: как они соотносятся? что будет в будущем с каждой версией?

PowerShell Core это «fork» или ответвление Windows PowerShell сделанное в определенный момент с целью портирования на Unix системы.

Windows PowerShell базируется на .Net Framework — внутренней реализации стандарта .Net Standard компанией Microsoft. Читать далее

Реклама

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


Уже в ближайшее время вы сможете загрузить и установить PowerShell Core 6.0 Beta.3.

Выполнено множество улучшений. В частности вы можете оценить скорость загрузки — она потрясающая! А повторные запуски практически мгновенны.

Главное новшество — добавлена поддержка модулей Windows PowerShell! Это открывает огромные возможности по использования PowerShell Core.

Не всё так гладко с этим. Во-первых, PowerShell Core не поддерживает PSSnaIn модули и не будет их поддерживать — они ушли в прошлое. Во-вторых, модули в формате PS1XML из-за проблем в .Net CoreFX пока не работают, но вскоре это будет исправлено.

Многие существущие модули созданы именно в формате PSSnaIn и должны быть переделаны. Например, один из самых востребованных модулей — ActiveDirectory. Как не печально, но мы не можем его загрузить в PowerShell Core, пока разработчики его не перепишут. Я проверил модули SCCM и SharePoint — они также не работают.

Тогда я провел простой тест и попробовал загрузить все доступные модули на Windows 10 с установленным RSAT. Результат был более чем позитивным: более половины из 120 модулей загрузились!

Самое время и вам загрузить PowerShell Core 6.0 Beta.3 и протестировать модули, которые вы разработали или которыми вы просто пользуетесь. Результаты нужно разместить в теме FullCLR modules not compatible with PSCore6. Не откладывайте это на потом: PowerShell Core является следующим поколением PowerShell и в скором времени заменит Windows PowerShell — вам будет досадно, если вы не сможете ео использовать на всю мощь из-за поздно обнаруженных проблем.

Exchange Server 2016 и Windows Server 2016


С выходом CU3 Exchange Server 2016 должна была появится поддержка установки на Windows Server 2016. Она и появилась. Только тут же выявилась проблема: IIS стал падать. В результате продуктовая группа рекомендовала отложить внедрение Exchange Server на Windows Server 2016 до выхода исправления.

Такое обновление для Windows Server 2016 выпущено и доступно KB3206632. Теперь мы можем внедрять Exchange на Windows Server 2016. Хотя для критически важных внедрений лучше не торопиться, помониторить форумы и подождать очередной волны обновлений.

Идентифицирована проблема с TMG 2010 киентом на Windows 10 1607


Наконец-то установили причину, почему не работает TMG 2010 клиент на Windows 10. Клиент пишет: «authentication error«.  Это началось примерно в феврале 2016 года в сборках Preview и проблема перешла в версию 1607. Теперь причина проблемы установлена » root cause to be due to a change in the negotiate/kerberos code with how callers provide credential handle or context handle for each call».

Обещан фикс в очередных сборках Windows 10 Preview RS1 (Redstone). Скорее всего уже после новогодних праздников.

Powershell 6 — новый командлет Get-Uptime


Да теперь моими усилиями в Powershell 6 есть командлет Get-Uptime, который, как можно легко понять, возвращает длительность работы ОС или время старта системы.

Как оказалось это нетривиальная задача. Основная проблема в том, что командлет должен работать на всех системах Windows, OSX и Linux. Например Windows мы можем получить зачение Uptime несколькими способами: 1. используя WMI класс Win32_OperatingSystem — это выполняется медленно и работает только на Windows, 2. используя счётчик производительности «System Uptime» — это наиболее правильный способ для Windows, но он не работает на других системах.

В конечном итоге оказалось возможным использовать класс .Net Stopwatch Class (System.Diagnostics). Это нецелевое использование этого класса. Тем не менее нашёлся хитрый вариант, который работает. Подробности можно найти по ссылке #2497.

Powershell 6 — изменения в Get-WinEvent Часть 2


Только я успел сообщить о том, что мне удалось устранить багу в Get-WinEvent, как была одобрена вторая часть моей работы Add support <Suppress> in Get-WinEvent -FilterHashtable в рамках проекта Open Powershell.

Теперь можно не только формировать запрос Select и выбирать события по нужным критериям, но добавлять фильтр для отсеивания событий:


$filterSuppress = @{ path = "$ystem";  SuppressHashFilter=@{Id=370}}

$resultsSuppress = Get-WinEvent -filterHashtable $filterSuppress

TMG 2010 и SSL 3.0


При публикации вэб-ресурсов TMG создаёт HTTPS подключения от своего имени. Таким образом TMG сервер может стать слабым звеном при атаке с использованием уязвимости SSL3.0, и требуется отключить SSL на TMG серверах.

Несмотрю на ожидания подвоха, TMG всё же использует системный Crypto-API (Crypto subsystem). Точнее даже SCHANNEL. Поэтому для выключения поддержки SSL 3.0 достаточно использовать стандартное решение с добавлением ключей реестра Enabled = 0

SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Server

SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Client

Для настройки множества серверов используем Group Policy Preferences. (Серверы 2008 R2 требуют перезагрузки для применения параметров).

Для контроля используем сервис  Qualys SSL Labs

Полезные ссылки:

https://support.microsoft.com/en-au/kb/245030

Mitigating the POODLE SSL 3 Vulnerability on Forefront TMG 2010