Ай Лайн
Связаться
Отдел продаж +7 (812) 385-74-84
Время работы пн-пт с 9:00 до 18:00

Аватарки пользователей Windows из Active Directory через GPO

Как сделать, чтобы фото пользователя из атрибута AD thumbnailPhoto автоматически становилось аватаркой на экране входа Windows и в системе. Применяется в связке с интеграцией Bitrix24 и AD, где аватарки загружаются в AD из портала.

Как это работает

  1. Фото хранится в AD в атрибуте thumbnailPhoto (JPEG, рекомендуется ≤ 100 КБ, 96×96 или крупнее).
  2. При входе пользователя скрипт выгружает фото из AD в C:\Users\Public\AccountPictures\<SID> и прописывает пути в реестр.
  3. Windows показывает аватар на экране входа и в меню «Пуск».

Загрузка фото в AD

$photo = [byte[]](Get-Content "C:\avatars\ivanov.jpg" -Encoding Byte)
Set-ADUser i.ivanov -Replace @{thumbnailPhoto=$photo}

Скрипт установки аватара (запускается при входе)

Сохраняем как \\ad.example.com\NETLOGON\Set-UserAvatar.ps1:

$user = [System.Security.Principal.WindowsIdentity]::GetCurrent()
$sid  = $user.User.Value
$searcher = [adsisearcher]"(&(objectClass=user)(objectSid=$sid))"
$photo = $searcher.FindOne().Properties.thumbnailphoto
if (-not $photo) { exit }

$dir = "C:\Users\Public\AccountPictures\$sid"
New-Item -ItemType Directory -Path $dir -Force | Out-Null
$sizes = 32, 40, 48, 96, 192, 240, 448
foreach ($s in $sizes) {
    [io.file]::WriteAllBytes("$dir\Image$s.jpg", $photo)
}
$reg = "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\AccountPicture\Users\$sid"
New-Item -Path $reg -Force | Out-Null
foreach ($s in $sizes) {
    Set-ItemProperty -Path $reg -Name "Image$s" -Value "$dir\Image$s.jpg"
}

Запись в ветку HKLM требует прав — даём пользователям право записи на ключ AccountPicture\Users через GPO (Computer Configuration → Policies → Windows Settings → Security Settings → Registry) либо запускаем скрипт как Scheduled Task от SYSTEM при событии входа.

GPO

  1. Создаём GPO, привязываем к OU с компьютерами.
  2. User Configuration → Policies → Windows Settings → Scripts → Logon — добавляем PowerShell-скрипт Set-UserAvatar.ps1.
  3. Для быстрого применения на тестовой машине: gpupdate /force и перезаход.

Проверка

  • Get-ADUser i.ivanov -Properties thumbnailPhoto | Select -Expand thumbnailPhoto — атрибут заполнен (массив байт);
  • после входа: файлы в C:\Users\Public\AccountPictures\<SID> и аватар на экране входа.
Оставить заявку