SCCM; SUG; RCT; для работы с обновлениями; Часть 2
Продолжаем развивать RCT (Right Click Tools) для работы с обновлениями.
Что доступно на текущий момент
Для одиночного устройства или коллекции:
- Получить статистику по требуемым обновлениям (“Requred”, “Installed”);
- Создать SUG (Software Update Group) из обновлений которые требуются (required) для членов коллекции.
Для одиночного обновления: Тег «Далее»
SCCM; SUG; RCT; Обновления, требуемые для устройств в коллекции и Статус обновления для устройств
Несколько скриптов RCT (Right Click Tools) для работы с обновлениями: “New-RCTSUGByCollection” и “Get-RCTUpdateSystemCompliance”.
Update 2018-07-20: Добавил 3-й скрипт “Remove-RCTUpdateFromSUG” удаляет выбранное обновление из всех SUG.
New-RCTSUGByCollection
Создаёт Группу (SUG) обновлений, которые требуются на членах коллекции устройств. Выбираем группу, правой кнопкой / “Create SUG for Collection”:
Получаем Группу обновлений…
SCCM; PS; И очень медленная работа Add-CMDeviceCollectionDirectMembershipRule
… или простая задача но много букв.
Время от времени возникает вопрос — «Надо добавить в коллекцию пару сотен девайсов, а командлет Add-CMDeviceCollectionDirectMembershipRule делает это ну оооочень медленно». И приводят пример вроде этого:
$Names = "a*" $CollName = "Test collection" Get-CMDevice -Name $Names | Foreach-Object { Add-CMDeviceCollectionDirectMembershipRule -CollectionName $CollName -ResourceId $_.ResourceID }
Смотрим описание командлета:
SCCM; OSD; Windows 10; Порядок языков, язык в LogonScreen и локализованные ярлыки приложений в "Пуск"
Время от времени на профильных ресурсах обсуждается вопрос – «Как задать языковые параметры ОС при установке?». Классический, правильный ответ — с помощью Unattend.xml или в MDT — с помощью CustomSettings.ini (что на самом деле тоже ведёт к формированию Unattend.xml). Но не все параметры удаётся задать через него, особенно специфические. Особенно часто этот вопрос начал возникать с появлением Windows 10, так как заданный порядок языков влияет на отображение ярлыков приложений в меню «Пуск». Вокруг этого сразу возникает множество советов по исправлению параметров реестра, не обращая внимания на способ предложенный MS уже более 10-ти лет назад – «Command Line Configuration of International Settings«.
В SCCM 1910 добавили возможность более гибко управлять языками в Task Sequence.
SCCM; SSRS; Часть 1: Скачать отчёты? Что может быть проще!
… и пара базовых отчётов для примера CPU & RAM has changed.
Попросили сделать отчёт об изменениях RAM/CPU. Кстати, про RAM уже есть в комплекте, называется: «Оборудование — Память > Компьютеры с измененной физической памятью». Только он — яркий пример издевательства над арифметикой, потому что сравнивать значения по ROUND(x, -3), это какое-то “параллельное” представление о процессах происходящих в мире ИТ. Однако, встроенные отчёты, пожалуй, основной источник информации о том, где брать эти самые данные (вьювки/таблицы/фукции/хранимки) из базы CCM, так что за это — отдельное спасибо разработчикам.
В этой части два простых отчёта, без перевода, без ресурсов, без нормального именования, не учитывающий наличия нескольких процессоров и т.п., но с поддержкой RBAC (Да, кстати, все эти понты с — «Мы поддерживаем RBAC» — ничего кроме названия и замены вьювок на одноимённые функции не означает. Продукт-группа о нас позаботилась). Основная цель этих простеньких отчётов – сразу показать изменения, подсветить знаковые показатели. Т.е. созданы они для подписки по e-mail. В параметрах – “коллекция устройств”, возможность исключить виртуальные машины, и показывать только изменённые в меньшую сторону показатели (память уменьшилась, частота CPU/кол-во ядер — упало).
Попутно убедился, что ресурсный файл русского языка не поправили, и то, что называется — “PreviousPhysicalMemoryMB”, так и указано, по-русски – “Предыдущий объем физической памяти (КБ)”.
Буду докидывать отчёты в этот пост
Некоторые отчёты которые делал для себя или комьюнити:
- Get Computers by HDD Model.rdl – Поиск компьютеров по модели диска (SMS_G_System_DISK.Model);
- Software 02E — Installed software on a specific Collection – Копия отчёта «Asset Intelligence/Software 02E — Installed software on a specific computer» с фильтром по коллекции;
- AI-SM-main.rdl и AI-SM-device.rdl – Сводка и подробная информация по отслеживаемым приложениям (Software Metering).
- AI-SM-devices-by-rules.rdl – Подробный отчёт по устройствам и пользователям по отслеживаемым приложениям (Software Metering) за день. Требуется настройка инфраструктуры и параметров по умолчанию.
- Antivirus from root_SecurityCenter2.rdl – Список, статистика и статус установленного антивируса (Диаграмма кликабельная). Требуется включить инвентаризацию (hinv) класса: ROOT\SecurityCenter2:AntiVirusProduct.
- Серийные номера компьютеров и их пользователи — с историей.rdl – Отчёт для КРО — поиск компьютера и пользователя по серийному номеру. Поиск по v_GS* и v_HS*. Осторожнее на больших базах с «не-конкретным» фильтром. Требуется включить инвентаризацию (hinv) классов, параметров:
— Win32_ComputerSystem;
— Win32_ComputerSystemProduct:Identifying Number;
— Win32_BIOS:Serial Number;
— Win32_BaseBoard:Serial Number;
— Win32_SystemEnclosure:Serial Number. - Серийные номера компьютеров и мониторов — с историей.rdl — тоже что предыдущий плюс серийные номера мониторов. Оригинальный запрос взят тут: SCCM — Инвентаризация мониторов, переделан под работу на любой версии SQL («fn_SplitString»).
К предыдущему списку требуется включить инвентаризацию (hinv) класса:
— WmiMonitorID. - Программное обеспечение в меню установки и удаления программ в определенной коллекции.rdl — Список компьютеров из коллекции и все ПО на этом компьютере (по умолчанию сразу запускается на All Systems)
- Управление питанием — активность компьютеров по коллекции — Требуется добавить ф-ю (в аттаче, не забудьте правильно указать базу <CM_COD>)
- (14B) Office license and usage info — пример использования Software TAG (SWIDTAG), Licensing product и Recently Used (Asset Intelligence & Software Metering)
Далее “Step-By-Step” о том как загрузив отчёт *.rdl, запустить его в своём окружении, и на что ещё ОБЯЗАТЕЛЬНО надо обратить внимание.
- Скачиваем *.rdl;
- Загружаем *.rdl на “Report Point”;
- Проверяем, что делает отчёт;
- Меняем “Data Source”.
SCCM; OSD; WDS; PXE; UEFI & BIOS & DHCP options 66, 67. Часть 2: Vendor Classes
С периодичностью в неделю на профильных ресурсах возникает один и тот же вопрос – “У меня появилось устройство, загружающееся по UEFI и вот оно не загружается, в DHCP опцию 067 меняю, теперь UEFI — работает, а BIOS (legacy) нет”.
В первой части – “Часть 1: DHCP Relay Agent”, мы разбирались как с наименьшими трудозатратами поддерживать сразу все текущие платформы загрузки клиента (UEFI и BIOS) с помощью возможности WDS-сервера прикидываться DHCP-сервером и отдавать PXE-клиенту необходимый загрузчик.
Но что делать если мы не можем обеспечить возможность получать широковещательные запросы клиента (DHCP Discover) — WDS сервером? Например, для каждой подсети (домена широковещания) — настроен отдельный DHCP-сервер, который как бы, не желает делиться запросом PXE-клиента с WDS-сервером. Еще вариант, когда WDS-сервер и DHCP-сервер находятся на одном сервере, т.е. WDS не может прослушивать 67 порт, т.к. он занят DHCP.
Ответ простой — использовать возможность DHCP сервера — фильтровать запросы клиентов по “Option 60 — Vendor class identifier” (DHCP-Сервер на Windows Server начиная с версии 2012) или “Option 93 — Client System Architecture” (например, “ISC DHCP”). Кстати PXE-сервер тоже ориентируется именно на архитектуру клиента в Option 93) и в зависимости от них предоставлять клиенту разные ответы (DHCP Offer) с DHCP-опциями 66, 67 для поддержки каждой из платформ.
Vendor Classes Filtering
SCCM; OSD; WDS; PXE; UEFI & BIOS & DHCP options 66, 67. Часть 1: DHCP Relay Agent
С периодичностью в неделю на профильных ресурсах возникает один и тот же вопрос – “У меня появилось устройство, загружающееся по UEFI и вот оно не загружается, в DHCP опции 67 меняю, теперь UEFI — работает, а BIOS (legacy) нет”.
Давайте разбираться.
Есть два способа правильно обрабатывать запрос клиента и выдавать ему правильный загрузчик.
- “DHCP Relay Agent” — когда WDS Сервер сам определяет архитектуру загрузчика клиента и отправляет клиенту информацию с правильным загрузчиком;
- “Vendor Classes Filtering” — т.е. продолжать использовать DHCP Options 66, 67, но с дополнительной фильтрацией клиентского запроса по “Vendor class identifier”.
DHCP Relay Agent
SCCM; Ошибка установки Клиента: Silverlight.exe returned failure exit code 1612
Ошибка в ccmsetup.log
C:\Windows\ccmsetup\Silverlight.exe is Microsoft trusted. Installing file 'C:\Windows\ccmsetup\Silverlight.exe' with options '/q'. File 'C:\Windows\ccmsetup\Silverlight.exe' returned failure exit code 1612. Fail the installation. InstallFromManifest failed 0x8007064c Failed to connect to policy namespace. Error 0x8004100e Failed to revoke client upgrade local policy. Error 0x8004100e CcmSetup failed with error code 0x8007064c
SCCM; TS; Drivers by categories; in «Control freak» mode;
Или как «объяснить» Task Sequence-у, что предыдущий поиск драйверов по категориям не был успешным.
Пожалуй, лучший доклад, который я видел на тему управления драйверами, это доклад Johan Arwidmark (@jarwidmark) — <A Drivers Saga: Mastering Windows Deployment>. Крайне рекомендую.
OSDPreStartTool; OSD Pre Check; ZTIGather.wsf & UserExit script; Несколько предварительных проверок;
* 2018-08-18 Добавлена ф-я «WarnValidateNetworkConnectivity», которая ожидает когда сетевой интерфейс инициализируется. Проверяет это заданное кол-во раз, через заданный промежуток. Теперь ф-ии «SleepMSeconds» и «WarnIPNotPresent», не нужны.
* 2018-08-14 Перезалил проект на GitHub. В последнем релизе был найден досадный баг, который по сути, не позволял использовать OSDPreStartTool. За сообщение спасибо “p g”.
+ обновил файлы MDT от 8450.
Пролог
Традиционные проблемы возникающие при установке ОС из SCCM/MDT, на этапе загрузки по PXE можно определить, как:
- Отсутствует сеть, после загрузки по PXE;
- Отсутствует сторадж;
- Неправильное время в CMOS.
Ну и более экзотические:
- USB флешка или прочий внешний диск подключен как устройство №0;
- Возможность подключаться к консоли до запуска TaskSequence.
Однако визуально определить их на этапе загрузки не всегда представляется возможным, особенно не искушённому инженеру.
Вот эти и прочие недочеты я пытался обойти. Пособирав некоторое время наиболее часто возникающие проблемы в своем окружении, я написал скрипт для их локализации и добавил дополнительные функции, постаравшись сделать этот инструмент максимально прозрачным для понимания и легким для расширения.
Решив поделиться своими наработками хотелось бы получить и фидбек. Может быть будут новые идеи, предложения, пожелания. А также указания на ошибки.
- Как работает
- Как включить
- Как тестировать
- Как добавить в boot-образ
- Реализованные функции
- Как выглядит
- Эпилог
Недавние комментарии