-Музыка

 -Поиск по дневнику

Поиск сообщений в it_is_it

 -Подписка по e-mail

 

 -Статистика

Статистика LiveInternet.ru: показано количество хитов и посетителей
Создан: 17.08.2005
Записей: 347
Комментариев: 103
Написано: 508


автоматизация в ад повершелл скаментами, что ценно

Понедельник, 16 Июня 2014 г. 00:02 + в цитатник

Переименование пользователя AD и изменение домашней папки PowerShell

/habrahabr.ru/images/posts/hub.icon.png" target="_blank">http://habrahabr.ru/images/posts/hub.icon.png) rgb(255,255,255) no-repeat 0px 0px; white-space: normal; word-spacing: 0px; border-bottom: 0px; text-transform: none; color: rgb(153,153,153); outline-width: 0px; padding-bottom: 2px; text-align: left; padding-top: 2px; font: 11px Verdana, sans-serif; outline-style: none; padding-left: 25px; margin: 0px 0px 15px; border-left: 0px; letter-spacing: normal; outline-color: invert; padding-right: 0px; text-indent: 0px; -webkit-text-stroke-width: 0px">  

 

Доброго времени суток всем!
По ходу внедрения новых сервисов появилась необходимость модифицировать учетные данные AD, пользователей в лесу порядка 500, поэтому для этих целей необходим исключительно PowerShell.
А именно задача была сделать следующее:
Было: Имя: Иван Иванович; Фамилия: Иванов
Надо: Имя: Иван; Фамилия: Иванов; Отчество: Иван. (4 первых символа отчества + ".")
А так же за одно, необходимо создать каждому пользователю домашнюю папку и дать ему туда полные права.

Для решения первой задачи в итоге написан следующий скрипт:

Import-Module ActiveDirectory
#Получаем в переменную $Users пользователей для которых необходимо провести модификацию 
$Users = Get-ADUser -Filter * -Server tul-dc01.pol.corp.kuzholding.ru -SearchBase "OU=users,"DC=corp,DC=domen,DC=ru"
foreach ($User in $Users) {
# Складываем каждый необходимый параметр в переменную
$UserName = $User.GivenName
$UserSAM = $User.sAMAccountName
$UserSurn = $User.Surname
#Если существует в имени пробел
if ($UserName.Contains(" ")){
#Удалить то что после пробела и поместить в $GUserName
$GUserName = $UserName -replace " \D*"
#Поместить в $IUserName 4 символа после пробела и поставить точку.
$IUserName = ($UserName -replace "\D* ").Substring(0,4) + "."
#Изменить имя, фамилию и инициалы
Set-ADUser -Server dc01.corp.domen.ru -Identity $UserSAM -GivenName $GUserName -Initials $IUserName -DisplayName $UserSurn" "$GUserName
#Переименовать обьект AD
Rename-ADObject -Server dc01.corp.domen.ru -Identity $User -NewName $UserSurn' '$GUserName
}}

С этим вроде все, если существует другой способ без использования регулярных выражений, буду рад узнать.

Добавляем домашнюю папку следующим скриптом
:
Import-Module ActiveDirectory
#Указываем общий сетевой ресурс
$Dir = "\\file.corp.domen.ru\common\"
#Получаем в переменную $Users пользователей для которых необходимо провести модификацию 
$Users = Get-ADUser -Filter * -SearchBase "OU=users,"DC=corp,DC=domen,DC=ru" -Server dc01.corp.domen.ru
#Указываем имя домена
$Domen = "corp\"
foreach ($User in $Users) {
# Складываем каждый необходимый параметр в переменную
    $User = $User.sAMAccountName
#Создаем директорию с именем пользователя
    $Path = New-Item -ItemType Directory -Path $Dir -Name $User
#Устанавливаем права на папку
    $ACL = Get-Acl $Path
    $Settings = "$Domen$User","Modify, Synchronize, FullControl", "ContainerInherit, ObjectInherit", "None", "Allow"
    $AccessRule = new-object System.Security.AccessControl.FileSystemAccessRule $Settings
    $ACL.SetAccessRule($AccessRule)
    Set-Acl -Path $Path -AclObject $ACL
#Применяем все изменения на пользователей
    Set-ADUser -Identity $User -HomeDrive "M:" -HomeDirectory "$Path" -Server dc01.corp.domen.ru
        }


В общем вот пару небольших скриптиков, может кому пригодится. В ближайшее время планируется создание пользователи в AD путем импорта данных из базы данных сотрудников в 1С, об этом обязательно будет пост.

жаль чувака не захабрили.  люблю тех кто пишет комментарии.  а то памяти уже нет никакой по правде говоря  http://habrahabr.ru/sandbox/83385/


 

Добавить комментарий:
Текст комментария: смайлики

Проверка орфографии: (найти ошибки)

Прикрепить картинку:

 Переводить URL в ссылку
 Подписаться на комментарии
 Подписать картинку