Тема: VBS: скрипт+XLSX для добавления машин пользователям по списку
Редко, но бывает просят добавить целому перечню пользователей в их "логонту", если он непустой, список новых машин. Может кому пригодится мой скрипт adding_hosts_2_Users_Workstations.vbs для этого действа.
Я его немного доработал, чтобы, кроме собственно добавления пользователям машин, можно было проверять - насколько корректны предоставляемые списки машин или пользователей и, например, нет ли среди них отключенных у/з.
------
Скрипт работает при наличии установленного MS Excel, т.к. исходные данные - перечни пользователей и машин - он берет из Excel-таблицы определенной структуры (имеются эталонные файлы в форматах .xls и.xlsx). Кроме самих списков, по ходу работы в этой же таблице и протоколируются результаты обработки.
Скрипт можно настроить (сменив значения на специальном листе таблицы) так, чтобы выполнялась только выборка данных без внесения изменений в у/з пользователей.
Что делает скрипт.
Каждая машина из ListWorkstations!A:A проходит контроль на корректность, на наличие ее в домене, на отключенность (при включеной настройке), на возможное дублирование имен в самом списке и проч. По ходу опросов домена в колонках B:C строк листа протоколируются результаты контроля и отображаются"distinguishedName" найденных машин.
Далее выполняются запросы к домену на поиск пользователей по каждой строке ListUsers!A:A. По найденным пользователям проверяется аттрибут "userWorkstations" и, если он содержит некое значение (т.е. у пользователя нет права на "All Computers"), то к нему добавляется подготовленный список машин с учетом возможных дублей. По ходу работы в колонках B:F листа протоколируются результаты контроля, теста на отключенность (при включеной настройке), успешности записи, отображаются значения "userWorkstations": полученные из домена и записываемые.
Действия настройки:
В колонку "A" листа "ListWorkstations" любым доступным способом заносим перечень машин по принципу "одна строка = одна машина".
В колонку "A" листа "ListUsers" заносим перечень пользователей по принципу "одна строка = один пользователь", допустимо указание аттрибутов: либо имейл пользователя (mail), либо логин (samAccountName).
На листе "Setup" смотрим описание - в каких ячейках указывать, если требуется, имя сервера доменадля запросов, режимы работы (только выборка или и запись), варианты контроля данных и проч.
Сохраняем, закрываем таблицу.
Запуск скрипта.
Скрипт принимает параметром имя подготовленного файла - можно с полным путем, а можно и без пути, но имя обязательно должно быть с расширением файла.
Если запускать без параметра, то скрипт просит ввести только имя файла - указать нужно имя безрасширения файла, предполагается, что файл находится в каталоге задачи (сначала ищется xlsx-файл, а потом xls, т.е. файл ненужного формата из каталога задачи желательно убрать).
Взять скрипт можно - https://code.google.com/p/small-scripts/downloads/list
Увидеть поясняющие скриншоты - https://sites.google.com/site/scripttoo … creenshots

