Когда речь заходит о принтерах,
администратор сразу же уходит в серверную,
запирается там и медитирует на мигающие светодиоды.
Потому что принтеры - это скучно.

(с) Народное творчество


Допустим, есть задача. Расставить много-много принтеров для новоприбывающих сотрудников. А потом эти принтеры сделать доступными по сети через принт-сервер. А чтобы совсем весело было, добавим в эту задачку следующие условия:
- адреса этим принтерам должны прилетать от DHCP и быть там зарезервированными
- адресация принтеров начинается с 221-го номера соответствующего диапазона, заканчивается на 250-м. Если этой части диапазона не хватает (и только в этом случае), можно идти вниз от 220-го до 200-го включительно
- FQDN принтера должно равняться букве "p" c МАС-адресом и доменом: например - p112233445566.example.com
- отображаемое имя (то самое, под которым он будет виден клиентам) собирается из шаблона Город-номер_площадки-этаж-модель-индекс (индекс - если нужен): NSK-04-304-HP555 (Новосибирск, 4-й офис, 304 кабинет, модель HP LaserJet 555
- имя порта на принт-сервере должно равняться FQDN принтера.

Хорошая задачка? Вот и мне показалось, что хорошая. А уж сколько в ней оголтелого мышкокликерства, копипаста, нервов и еще чего похуже. Одним словом - так жить нельзя.
Install-Printer.ps1

Традиционно, как готовить. Из текста скрипта ясно, что он берет входные данные из csv-файла. Формат его таков:
Name,MAC,IP
Само собой, что эти данные у нас должны быть. Пример файла ниже:

Также скрипт подразумевает, что на принт-сервере уже установлены все необходимые драйверы.

Если используются другие принципы именования портов на принт-сервере и записей на DHCP - изменить логику работы скрипта не так уж сложно. Все в соответствующих переменных.
Можно его еще и расширить, чтобы он на основании имени выбирал, на какой сервер печати принтер устанавливать. Например, если на площадке с индексом 01 свой принт-сервер, и на 04 - тоже свой. C DHCP-сервером - ровно то же самое. В общем, возможностей по его изменению - достаточно.

И, наверное, стоит завести еще одну традицию - напоминание. Предварительное тестирование скрипта в лабораторных условиях - ОБЯЗАТЕЛЬНО. В нем нет никаких действий по удалению имеющихся объектов где-бы то ни было, но тем не менее.