Всем привет! Не так давно мне потребовалось создать коллекцию в SCCM по списку компьютеров. Список был совсем разных АРМ, поэтому критерии запроса, которые предлагает нам SCCM, не подходили, у меня был список в Excel, и мне надо было его загрузить в коллекцию. Рассмотрим создания коллекции компьютеров в SCCM через Power Shell.
Создания коллекции компьютеров в SCCM через Power Shell с текстового документа
- Для начала нам необходимо создать пустую коллекцию, как это сделать, я не буду показывать. Я создал коллекцию «TEST Drive» (рис. 1).

- Необходимо запустить консоль SCCM, запускаем SCCM, заходим в меню (Рис. 2) и запускаем Power Shell.

- Для добавления компьютеров в коллекцию посредством txt файла мы будем использовать команду ниже. В предоставленной команде необходимо заменить. E:\Sources\Import\List_computers.txt (Это путь к файлу в котором находится список компьютеров) и Computer List (Это названия вашей коллекции в SCCM) и нажанием кнопки Enter запускаем выполнение команды.
Get-Content "E:\Sources\Import\List_computers.txt" | foreach { Add-CMDeviceCollectionDirectMembershipRule -CollectionName "Computer List" -ResourceID (Get-CMDevice -Name $_).ResourceID } 
Если все сделано правильно, указанные в текстовом документе компьютеры добавятся в коллекцию.
Что говорит специалист
Олег Владимирович
Системный администратор с 10-летним опытом работы в управлении ИТ-инфраструктурой и автоматизации процессов.
Создавая коллекции компьютеров в SCCM через Power Shell, я столкнулся с несколькими нюансами, которые могут значительно упростить жизнь. Во-первых, всегда стоит проверить структуру исходного текстового документа, так как даже небольшая ошибка в формате может привести к сбоям в создании коллекции. Также рекомендую тщательно тестировать созданные скрипты в безопасной среде, чтобы избежать проблем на рабочем оборудовании. Наконец, полезно внедрить систему логирования, чтобы отслеживать выполнение скриптов и легче выявлять источники ошибок в будущем.
Вопрос эксперту
Какие основные шаги нужно выполнить для создания коллекции компьютеров в SCCM через PowerShell из текстового документа?

Первый шаг — подготовить текстовый документ, содержащий список компьютеров, например, в формате .txt, где каждый компьютер на новой строке. Затем в PowerShell нужно импортировать этот файл с помощью команды Get-Content, чтобы считать строки в массив. После этого создаем коллекцию, используя командлет New-CMDeviceCollection, и добавляем к ней компьютеры с помощью командлета Add-CMDeviceCollectionMember. Не забывайте проверять правильность вводимых данных, чтобы избежать ошибок.
Как обработать ошибки при создании коллекции, если в текстовом документе окажутся некорректные имена компьютеров?

Хорошая практика — использовать конструкцию try-catch в вашем PowerShell-скрипте. Вы можете обернуть командлеты создания коллекции и добавления компьютеров в блок try, а в блок catch записать код, который будет обрабатывать возможные ошибки, например, ведение логов. Также можно предварительно проверять доступность каждого компьютера с помощью Test-Connection перед попыткой добавления.
Каким образом можно автоматизировать процесс обновления информации о коллекции после добавления новых компьютеров?

Для автоматизации обновления коллекции можно использовать планировщик заданий Windows или встроенные функции SCCM. Создайте скрипт, который обновляет коллекцию с заданным интервалом, и планируйте его запуск для автоматического выполнения. Также можно использовать командлет Invoke-CMDeviceCollectionUpdate, чтобы инициировать обновление коллекции в SCCM сразу после добавления новых данных.
Как можно расширить функционал PowerShell-скрипта, чтобы не только создавать коллекции, но и управлять ими?

Чтобы расширить функционал, подумайте о добавлении параметров для управления коллекциями, такими как удаление или изменение существующих коллекций. Командлеты Remove-CMDeviceCollection и Set-CMDeviceCollection могут помочь в этом. Можно также добавить интерфейс для ввода данных, например, через параметры скрипта, что облегчит администрирование с разных компьютеров.
Какие наиболее распространенные ошибки возникают при работе с PowerShell и SCCM, и как их можно избежать?

Одной из распространенных ошибок является отсутствие необходимых прав на выполнение действий с коллекциями, поэтому убедитесь, что у вас есть соответствующие разрешения. Также часто возникают ошибки из-за неправильного формата данных в текстовом файле. Для предотвращения этого полезно написать функции для валидации данных перед их обработкой. Еще стоит обратить внимание на правильность написания команд и использование полных имен, чтобы избежать путаницы.
Интересная статья! Не думала, что так просто можно создать коллекцию с помощью Power Shell.
А кто-нибудь пробовал делать это на старых версиях SCCM? Интересно, есть ли какие-то особенности.
Отлично объяснено, но я бы хотела больше примеров кода. Это помогло бы начинающим лучше понять процесс.
Согласен с автором: использование Power Shell значительно упрощает жизнь системным администраторам. Раньше приходилось делать всё вручную, а теперь все операции автоматизированы.
Честно говоря, не совсем понимаю, как это работает. Может, кто-то расскажет поподробнее про структуру текстового документа?