Скрипт создания групп пользователей в AD (PoSh)

by Alexey Knyazev 14. мая 2009 19:06

Часто, в моей работе необходимо создавать группы пользователей в AD, добавлять туда десятки пользователей. А этим группам давать те или иные права на работу с серверами БД.

Для этого я написал небольшой скриптик на PowerShell, который создаёт в Active Directory группы из списка указанного в текстовом файле и заливает в эти группы пользователей, список которых так же подаётся на входе в виде текстового файла.

 

$Domain = Read-Host "Введите адресс контролера";

$User = Read-Host "Введите логин"; 

$Password = Read-Host "Введите пароль" -AsSecureString;

 

#Подключаемся к контроллеру

Connect-QADService -Service $Domain -ConnectionAccount $User  -ConnectionPassword $Password;

 

#Считываем список групп из текстового файла “C:\Groups.txt” 

$GrList = Get-Content "C:\Groups.txt"

foreach ($i in $GrList)

{

$gr=Get-QADGroup -DisplayName $i;

if ($gr  -eq  $null)

{

#Создаём группы в цикле, если их не было в AD. 

#Контейнер куда создаются группы=’DC=SQLServerGroups,DC=SERVERNAME,DC=COM’

New-QADGroup -ParentContainer "DC=SQLServerGroups,DC=SERVERNAME,DC=COM" -name $i -DisplayName $i -samAccountName $i;

"Создали новую группу="+$i;

}

else

{ 

"Группа была="+$i;

}

#Считываем список пользователей из текстовых файлов, где имя файла=”C:\имени группы”

$UserList = Get-Content "C:\$i.txt"

foreach ($j in $UserList)

{

#Так как у меня список юзеров хранится без указания домена, 

#то префикс подставляю к коде, где Domain - имя вашего домена

add-QADGroupMember -identity $i -member "Domain\$j"

}

}

#Отключаемся от контроллера

disconnect-QADService;

Tags: , ,

PowerShell | SQL Server

Комментарии (3) -

gray
gray Russia
20.10.2010 15:10:09 #

PowerGUI выдал ошибку:
----------------------------------------------------------------------------------------------
В экземпляре объекта не задана ссылка на объект.
В :строке:30 позиция:16
+ $gr=Get-QADGroup <<<<  -DisplayName $i;
----------------------------------------------------------------------------------------------
Хотя все txt файлы групп и пользователей этих групп созданы и заполнены.
В чем проблема?
P.S. Просьба не пинать.

Reply

Alexey Knyazev
Alexey Knyazev Russia
20.10.2010 19:27:33 #

Кодировка вашего текстового файла какая? ANSI? Попробуйте сохранить ваш текстовый файл в кодировке Юникод

Reply

gray
gray Russia
21.10.2010 17:09:46 #

Разобрался.
Дело не в юникоде, Алексей, просто напросто PGUI Script Editor записывает значения переменных после первого выполнения, и если певый запуск закончился с ошибкой (которые имеют место быть время от времени), она будет висеть пока переменные не скинешь.
Но все равно спасибо.

Reply

Добавить комментарий

  Country flag

biuquote
  • Комментарий
  • Предпросмотр
Loading