Не работают отчёты в WSUS 2019


После обновления до Windows Server 2019 перестали работать отчёты в WSUS.

Лечение простое.

  1. Удалить установленные MICROSOFT® REPORT VIEWER 2012 RUNTIME и Microsoft® System CLR Types for Microsoft® SQL Server® 2012
  2. Скачать по ссылкам их же и установить
    MICROSOFT® REPORT VIEWER 2012 RUNTIME
    Microsoft® System CLR Types for Microsoft® SQL Server® 2012

Не ставьте более новые версии — они не будут работать.

PowerShell 7.0 Preview5


Начинаю привыкать писать PowerShell 7.0 без Core. Это уже официальное имя. Да и намерение Microsoft сделать этот продукт полноценной заменой Windows PowerShell 5.1 уже не выглядит фантастичным.

Чем же нас порадует и удивит очередная предварительная версия?

Прежде чем рассмотреть новшества, стоит отметить ближайшие планы. Очередная предварительная версия Preview6 выйдет в ноябре. Затем в декабре будет RC на базе .Net Core 3.1. И релиз в январе 2020 года. Это будет LTS версия, что означает поддержку в течение 3 лет. Как я уже писал, выпуски PowerShell будут следовать в русле версий .Net Core. Так .Net Core 3.1 является LTS версией, и, соответственно, PowerShell на её базе также будет LTS. Через пару лет выйдет .Net Core 5.0, которая по всей видимости заменит .Net Framework, и, соответственно, мы можем предположить, что PowerShell на её основе заменит Windows PowerShell.

Теперь о Preview5. Конечно в ней есть всё что появилось в предыдущих предварительных версиях, и об этом смотрите в предыдущих постах.

1. Get-Hotfix теперь снова работает, но только на Windows. Постепенно возвращаются командлеты, которые невозможно портировать. Ранее правило было жёстким: в PowerShell Core должны быть только портированные командлеты, т.е. только те, которые работают на всех поддерживаемых платформах. Но курс на замену Windows PowerShell гнёт в свою сторону.

2. Select-String научился делать выделение найденных фрагментов.

Пишите отзывы, пока есть время до релиза.

3. Операторы && и || для цепочек команд

Это работает точно также как языках программирования: && — последующая команда выполняется только если предыдущая завершилась успешно, || — выполнение команд в цепочке завершается на первой команде, которая выполнилась успешно.

4. Операторы ?? и ??=

Это так называемые Null-coalescing operators. Работают точно также как в языках программирования: вернуть значение переменной, если это не null, иначе правую часть.

5. IntelliSense работает для Enum типов и атрибутов (type constraints)

Попробуйте:

$ErrorActionPreference = <tab>

[ValidateSet(1, 2)][int]$a= <tab>

6. Format-Hex значительно улучшен. Разнородные объекты выводятся в более удобном виде. Примеры можно посмотреть тут.

7. Изменен формат вывода ошибок в консоли. Он стал более дружественным и лаконичным. Для вывода полной информации об ошибке теперь есть новый командлет Get-Error. Посмотрите, попробуйте и напишите отзывы, пока есть время до релиза.

ПопробуйтеЖ

1/0

Get-Error

8. При запуске интерактивной сессии вы теперь можете получить уведомление о наличии новой версии. Не знаю насколько это нужно. Оповещение можно отключить переменной окружения POWERSHELL_UPDATECHECK_OPTOUT = 0 или запустив pwsh -NoLogo.

9. PSReadLine 2.0.0-beta6

Скачивайте и работайте. Обратная связь.

10. Ternary Operator

Это оператор «?». Работает точно также как в языках программирования.

Попробуйте:

$IsWindows ? «Yes» : «No»

Полный список изменений в Release Notes

Установка .Net Framework 3.5 на Windows 10


Собственно речь об установке .Net Framework 3.5 на корпоративные компьютеры Windows 10 с помощью SCCM.

Изначально .Net Framework 3.5 на Windows 10 отключен, а приложений его использующих ещё полно, и время от времени пользователям нужно установить этот пакет. Желательно удаленно и желательно в фоновом режиме.

Для этого потребуется ISO файл с Windows 10 нужной версии/редакции.

При тестировании выяснилась засада. Если групповыми политиками настроен WSUS, то большинство команд установки компонент будут делать запрос на WSUS, и результате получаем ошибку установки. В большинстве случаев рекомендуют временно отключить WSUS в реестре.

Оказывается не всё так плохо. Есть команда которая позволяет установить нужный компонент в фоне без обращений куда бы то ни было.

Там образом, берем диск ISO, находим файл microsoft-windows-netfx3-ondemand-package~31bf3856ad364e35~amd64~~.cab с нужным компонентом, копируем в папку, для которой создаем Application с командой:

dism /online /enable-feature /featurename:NetFX3 /all /Source:.\ /LimitAccess

Параметры All и LimitAccess отключают проверки и попытки обращения в Интернет.

Вместо параметра Enable-Feature можно использовать параметер Add-Package, особенно если требуется импортировать пакет в образ для разливки системы.

Лог установки C:\Windows\Logs\DISM\dism.log

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

1. https://blogs.technet.microsoft.com/mniehaus/2015/08/31/adding-features-including-net-3-5-to-windows-10/

2. https://docs.microsoft.com/en-us/windows-hardware/manufacture/desktop/deploy-net-framework-35-by-using-deployment-image-servicing-and-management—dism

Вышел PowerShell 7.0 Preview4


Команда Microsoft определилась со сроками выпуска окончательной версии PowerShell 7.0 — в декабре RC и в январе окончательная версия на базе .Net Core 3.1. Это будет LTS версия с поддержкой на несколько лет. Собственно версии будут привязаны к выпускам LTS версий .Net Core.

PowerShell 7.0 Preview4 вполне стабильная версия и баризуется на одном из последних релизов .Net Core 3.0 Preview8.

Прямые ссылки можно найти на GitHub. Ниже только краткие комментарии об изменениях.

ForEach-Object стал заметно быстрее для большинства сценариев, включая параллелизм (параметер -Parallel). Рекомендую попробовать в реальных сценариях.

Кстати посмотрите статью PowerShell ForEach-Object Parallel Feature. Обратите внимание, что параллелизм имеет накладные расходы и не всегда приводит к ускорению.

Еще ранее появилась новая телеметрия New Telemetry in PowerShell 7 Preview 3. Надеюсь, Microsoft поделится новой статистикой. Кто ещё не видел Dashboard?

Появился Ternary Operator:

$var = $isWindows ? "Windows" : "Not Windows"

Некоторым очень хотелось это иметь в языке.

За несколько последних месяцев Кирк Манро внёс неколько улучшений в отладчик и продолжает эту работу. Если вы активно используете откладчик, то подключайтесь к процессу — обратная связь всегда полезна.

Добавлена поддержка групповых политик (GPO). Если нет политик для PowerShell Core, то будут использоваться политики от Windows PowerShell. Это большой шаг к использованию PowerShell Core в корпоративной среде.

Продолжаю работать на улучшениями в PowerShell Core. Уже целая пачкаа улучшений производительности добавлена. Несколько ожидают одобрения и в планах ещё несколько. Результатом должно стать ускорение запуска и создания runspace (что важно для параллелизма).

Убираем Persistent Chat


Собственно сам процесс простой: убрать всё касаемое Persistent Chat из топологии, применить её, запустить установщик на каждом сервере с Persistent Chat и удалить все компоненты.

После удаления Persistent Char из топологии и серверов, пользователи увидели в клиентах сообщение о том, что комнаты недоступны из-за сбоя. Пошли обращения в поддержку.

Лечение простое. В оснастке управления Skype for Business в разделе Persistent Chat нужно открыть политику и убрать галку Enable Persistent Chat.

Подробности в статье https://uclobby.com/2013/07/08/persistent-chat-your-chat-room-access-may-be-limited-due-to-an-outage/

Совместимость модулей с PowerShell Core


Этим летом мы могли убедиться, что в последних версиях Windows появился целый ряд модулей совместимых с PowerShell Core.

Их легко определить на наличию строки CompatiblePSEditions = @(‘Desktop’,’Core’) в файле манифеста. (Речь о модулях в папке C:\Windows\System32\WindowsPowerShell\v1.0\Modules\ )

Приближается время выпуска новой версии PowerShell Core 7.0, и самое время протестировать стандартные модули Windows, которыми вы пользуетесь? на совместимость с этой версией, тем более что только что появилась предварительная версия 7.0 Preview4.

Что делать, если выявлены проблемы совместимости? Создавайте обращение в репозитории https://github.com/PowerShell/WindowsCompatibility. Для модулей третьих лиц пишите разработчикам. Чем раньше, тем лучше.

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

Office 2019 — Установка обновлений 1


Никак не доходят руки опубликовать накопленный опыт по поддержке Office 2019. Поэтому буду публиковать маленькие заметки. Тем более что постоянно обнаруживается что-то новое.

В принципе схема устновки обновлений не особо изменилась глобально: всё также есть отдельный сервис (ClickToRunSvc или Служба Microsoft Office «Нажми и работай»). А вот в деталях изменения есть, и они не очень-то документированы. Так в Task Scheduler появились задачи связанные с обнаружением и установкой Office 2019. По сути они запускают пару утилит с недокументированными параметрами. Причём список задач может меняться в зависимости от настроек установки обновлений.

Этот стандартный механизм установки обновлений включен по умолчанию, но может быть выключен, если вы хотите управлять установкой обновлений самостоятельно, например, через установку пакетов или приложений SCCM, но при этом механизм установки обновлений SCCM (как и стандартный) уже не будет работать.

Включение (это по умолчанию включено, но лучше всегда использовать явные значения) осуществляется в XML файле опцией OfficeMgmtCOM=»False» или групповой политикой «Office 365 Client Management» -> Disable. Описание этой политики какое-то путанное и может ввести в заблуждение, так что будьте внимательны.

Так как мы не используем SCCM для установки обновлений ОС (мы используем WSUS, но, как известно, обновлений для Office 2019 на нём не бывает), то мы решили раскатывать новые версии Office 2019 через шару, и как раз OfficeMgmtCOM=»False» и «Office 365 Client Management» -> Disable это то, что нам нужно. Точнее при установке ОС Office 2019 накатывается в виде обновленного приложения, а уже последующие версии приезжают с шары (как раз срабатывают задачи в Task Scheduler).

Шара прописывается политикой Update Path. Также вы можете включить политику Update Deadline (например, дней на 5).

При этом SCCM прекрасно отображает Dashboard Office 365 Client Management с цифрами сколько и каких версий Office 2019 и Office 365 установлено. (Это собирается в Hardware Inventory.)

Продолжение следует.