Переименование пользователя AD и изменение домашней папки 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
}

Оригинал статьи

Share Button
(Visited 278 times, 1 visits today)

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

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *