@shmelfrol
Системный администратор, веб-программист junior

Как через powershell задать программу во вкладке среда пользователя AD?

Вот скрипт по созданию новых пользователей:

$template = Get-AdUser -Identity "student"
$org="OU=K218_USERS,OU=K218,OU=K5,DC=Classes,DC=kubstu,DC=edu"
$username="kst218-"
$count=1..15
$prefix=""
foreach ($i in $count)
{ 
if($i -lt 10){$prefix="0"}else{$prefix=""}
$login=$username+$prefix+$i
Write-Host $login
Write-Host $template

New-AdUser -Name $login -UserPrincipalName $login -Path $org -Instance $template -Enabled $True -ChangePasswordAtLogon $false -CannotChangePassword $true -PasswordNeverExpires $true -AccountPassword (ConvertTo-SecureString $login -AsPlainText -force) -passThru 
}

В переменной template - пользователь с заданными настройками во вкладке "Среда", но к создаваемым пользователям они не применяются. Помогите, пожалуйста, разобраться в вопросе, как добавить настройки с помощью powershell во вкладку среда пользователя AD.
63732f46bdbdb310512789.png
  • Вопрос задан
  • 72 просмотра
Решения вопроса 2
@NortheR73
системный инженер
Эти параметры относятся только к службам удаленных рабочих столов (RDS, Terminal Services). По умолчанию они не работают, начиная с Windows Server 2016. Эти настройки доступны через ADSI и интерфейс IADsTSUserEx, т.к. управляющих атрибутов для них нет.
Как-то так:
$userDN = (Get-ADUser -Identity username -Properties DistinguishedName).DistinguishedName
$user = [ADSI]"LDAP://$userDN"
# Get Property Value
$user.InvokeGet('ConnectClientDrivesAtLogon')
...
# Set Property Value
$user.InvokeSet('ConnectClientDrivesAtLogon',0)
$user.CommitChanges()

P.S. раньше AD-командлеты от Quest умели эти параметры менять...
Ответ написан
Комментировать
@MaxKozlov Куратор тега PowerShell
Содержимое этой вкладки зашифровано в атрибуте
userParameters
Расшифровывать/Зашифровывать его муторно, поэтому если вам надо просто устанавливать его всем одинаковым, проще один раз его заполнить вручную, потом считать из AD, записать результат в файлик и впоследствии просто из файлика его присваивать. Или из другого юзера, как в примере.
$referenceUser = Get-ADUser refuser -Property userParameters
Set-ADUser targetUser -Replace @{
    userParameters = $referenceUser.userParameters
}


Для New-ADUser можно использовать -OtherAttributes
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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