Аватарки пользователей Windows из Active Directory через GPO
Как сделать, чтобы фото пользователя из атрибута AD
thumbnailPhotoавтоматически становилось аватаркой на экране входа Windows и в системе. Применяется в связке с интеграцией Bitrix24 и AD, где аватарки загружаются в AD из портала.
Как это работает
- Фото хранится в AD в атрибуте thumbnailPhoto (JPEG, рекомендуется ≤ 100 КБ, 96×96 или крупнее).
- При входе пользователя скрипт выгружает фото из AD в
C:\Users\Public\AccountPictures\<SID>и прописывает пути в реестр. - 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
- Создаём GPO, привязываем к OU с компьютерами.
- User Configuration → Policies → Windows Settings → Scripts → Logon — добавляем PowerShell-скрипт
Set-UserAvatar.ps1. - Для быстрого применения на тестовой машине:
gpupdate /forceи перезаход.
Проверка
Get-ADUser i.ivanov -Properties thumbnailPhoto | Select -Expand thumbnailPhoto— атрибут заполнен (массив байт);- после входа: файлы в
C:\Users\Public\AccountPictures\<SID>и аватар на экране входа.