@leitop2k

AD + PS — Задать всем пользователям в AD домашнюю папку?

Подскажите скрипт чтобы всем учеткам типа Users прописать в AD домашнюю папку по принципу \\server\share\%LOGIN%
  • Вопрос задан
  • 926 просмотров
Решения вопроса 1
@leitop2k Автор вопроса
Import-Module ActiveDirectory
#Указываем общий сетевой ресурс
$Dir = "\\share\folder\"
#Указываем доменный контроллер
$DC = "DC.comodo.com"
#Получаем в переменную $Users пользователей для которых необходимо провести модификацию
$Users = Get-ADUser -Filter * -SearchBase "OU=Users,DC=comodo,DC=com" -Server $DC
foreach ($User in $Users) {
# Складываем каждый необходимый параметр в переменную
$User = $User.sAMAccountName
#Создаем директорию с именем пользователя
$Path = $Dir + $User
#Применяем все изменения на пользователей
Set-ADUser -Identity $User -HomeDrive "Z:" -HomeDirectory "$Path" -Server $DC
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@dshumov
Олдскул - Фигурнов форева
Самый простой, и возможно топорный способ, это выбрать с shift-ом всех пользователей, потом ПКМ по ним, далее Properties, затем, вкладка Profile - поставить галочку в Home Folder и в поле вписать: \\server\share\%username%
5dc27c5f49ad0977363057.jpeg
Это самый простой, быстрый и тупой способ.
Ну или вот так, через PS:
$Dir = "\\server\share\"
$Users = Get-ADUser -Filter * -SearchBase "OU=OU,DC=domen,DC=ru" 
foreach ($User in $Users) {
	$User1 = $User.Name
	$Path = New-Item -ItemType Directory -Path $Dir -Name $User1
	$User = $User.sAMAccountName
	$Path1 = $Dir + "\" + $User1
    $Args = New-Object  system.security.accesscontrol.filesystemaccessrule($User,"Modify, Synchronize", "ContainerInherit, ObjectInherit", "None", "Allow")
    $ACL = Get-Acl $Path
    $ACL.SetAccessRule($Args)
    Set-Acl -Path $Path -AclObject $ACL
	Set-ADUser -Identity $User -HomeDrive "W:" -HomeDirectory "$Path1" -Server server
  	}
Ответ написан
Комментировать
SignFinder
@SignFinder
Wintel\Unix Engineer\DevOps
Делаете бекап данных, например через тот же Get-ADUser блабла | Export-CSV блабла

1. Формируете список пользователей, которых необходимо менять - например через через Get-ADUser -SearchBase и загоняете его в переменную, например так
$users_List = Get-ADUser -SearchBase "OU где лежат пользователи" -Filter 'enabled -eq $true' -Properties * |Select SamAccountName
2. Передаете список в ForEach и выполняете в цикле команду Set-ADUser с необходимыми ключами -HomeDrive и -HomeDirectory
ForEach ($userName in $users_List)
{
Set-ADuser -Identity $userName -HomeDrive "G:" -HomeDirectory блаблабла
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы