Outlook, SharePoint, Office365 in Skype for Business omogočajo uporabo fotografije trenutno prijavljenega uporabnika iz Active Directory (Azure AD) kot avatarje uporabnikov v njihovem vmesniku. V tem članku bomo pokazali, kako uporabniško sliko Active Directory uporabiti kot sliko uporabniškega profila sistema Windows 10 z uporabo skupinskih politik in PowerShell, ki se prikaže na pozdravnem zaslonu, zaklenjenem zaslonu, v začetnem meniju itd..
Naš skript bo deloval na naslednji način: ko se uporabnik prijavi v sistem, se mora zagnati skript, ki prejme fotografijo uporabnika iz atributa thumbnailPhoto v aktivnem imeniku, shrani slikovno datoteko na disk in to datoteko namesti kot profilno sliko uporabniškega profila sistema Windows. Rešitev mora delovati enako na vseh podprtih odjemalcih: Windows 10 (8.1 / 7) in na RDSH-jevih strežnikih z Windows Server 2016/2012 R2.
Vsebina:
- Uvozite fotografije uporabnikov v Active Directory
- Uporabnikom ponujamo pravico do spremembe ikone profila
- Skript PowerShell, da se uporabniku prikaže fotografija uporabnika in namesti ikono profila Windows
- Zagon skripta PowerShell za vezavo fotografij na profil prek GPO
Uvozite fotografije uporabnikov v Active Directory
Najprej je potrebno, da uporabniki AD-ja postavijo fotografije tako, da jih naložijo na posebno sličico sličiceFoto računa. Fotografije lahko nastavite uporabnikom prek programov drugih proizvajalcev ali z modulom ActiveDirectory za Windows PowerShell (velikost datoteke s fotografijo ne sme biti večja od 100 Kb in ločljivost do 96 × 96 pik):
$ photo = [bajt []] (Pridobitev vsebine C: \ PS \ divanov_photo.jpg -baznacijski bajt)
Set-ADUser divanov-Zamenjaj @ thumbnailPhoto = $ photo
Uporabnikom ponujamo pravico do spremembe ikone profila
V sistemu Windows 10 se podatki o sliki računa (pot do slike, ki se uporablja za uporabniški profil) shranijo v podružnico sistemskega registra Hklm\ PROGRAMSKA OPREMA\ Microsoft\ Windows\ CurrentVersion\ AccountSlika\ Uporabniki. Če lahko uporabniki brez skrbniških pravic spreminjajo spremembe, jim morate zagotoviti dovoljenja za pisanje v ta registrski ključ.
- Najlažji način je distribucija pravic registra prek skupinskih pravilnikov. Če želite to narediti, ustvarite novo politiko in jo priklopite na OU z računalniki uporabnikov;
- Nato pojdite na razdelek Konfiguracija računalnika -> Politike -> Nastavitve sistema Windows -> Varnostne nastavitve -> Register in ustvarite nov registrski ključ (Dodaj ključ) s potjo STROJ \ PROGRAMSKA OPREMA \ Microsoft \ Windows \ CurrentVersion \ AccountPicture \ Uporabniki;
- Nato zavihek Varnost treba odobriti Polno Nadzor za vse uporabnike domene (združite [DomainName] \ Users) in kliknite OK;
- V naslednjem pogovornem oknu izberite Zamenjajte obstoječe dovoljenje za vse podključeve z dednimi dovoljenji, v nasprotnem primeru uporabniki ne bodo imeli pravic do ugnezdenih podružnic registra;
Skript PowerShell, da se uporabniku prikaže fotografija uporabnika in namesti ikono profila Windows
Nato potrebujemo skript PowerShell, ki bi moral iz Active Directory pridobiti fotografijo trenutnega uporabnika, jo shraniti v datoteko jpg in jo nastaviti kot ikono uporabniškega profila. Obstajata dve možnosti za pridobivanje fotografij iz AD-ja: uporaba cmdleta Get-ADUser iz modula ActiveDirectory (ta modul mora biti nameščen na vseh računalnikih prek RSAT ali pa samo kopirati potrebne datoteke modula RSAT-AD-PowerShell brez namestitve RSAT). Da bi bil skript univerzalen in pravilno deloval, tudi v sistemu Windows 7, ne bomo uporabljali modula RSAT-AD-PowerShell, ampak bomo do AD-ja dostopali prek razreda ADSISearcher.
Primer skripta SetADPicture.ps1 Če želite pridobiti fotografijo uporabnika iz AD-ja in ga nastaviti kot avatar vašega računa za Windows, glejte spodaj:
[CmdletBinding (SupportsShouldProcess = $ true)] Param ()
funkcija Test-Null ($ InputObject) return! ([bool] $ InputObject)
$ ADuser = ([ADSISearcher] "(& (objectCategory = Uporabnik) (SAMAccountName = $ env: uporabniško ime))"). FindOne (). Lastnosti
$ ADuser_photo = $ ADuser.thumbnailphoto
$ ADuser_sid = [System.Security.Principal.WindowsIdentity] :: GetCurrent (). User.Value
Če ((Test-Null $ ADuser_photo) -eq $ false)
$ img_size = @ (32, 40, 48, 96, 192, 200, 240, 448)
$ img_mask = "Slika 0 .jpg"
$ img_base = "C: \ Uporabniki \ Public \ AccountPictures"
$ reg_base = "HKLM: \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ AccountPicture \ Users \ 0"
$ reg_key = [string] :: format ($ reg_base, $ ADuser_sid)
$ reg_value_mask = "Slika 0"
Če ((Testna pot-Pot $ reg_key) -eq $ false) Nov element-Pot $ reg_key
Poskusite
ForEach (velikost $ v $ img_s veličine)
$ dir = $ img_base + "\" + $ ADuser_sid
If ((Test-Path -Path $ dir) -eq $ false) $ (mkdir $ dir) .Attributes = "Skrita"
$ file_name = ([string] :: format ($ img_mask, $ size))
$ path = $ dir + "\" + $ file_name
Pisno-dobesedno "varčevanje: $ file_name"
$ ADuser_photo | Set-Content -Path $ path -Encoding byte -Force
$ name = [string] :: format ($ reg_value_mask, $ size)
$ value = Lastnost novega izdelka-Pot $ reg_key -Ime $ name -Value $ path -Force
Ulov
Napaka pri pisanju "Preverite dovoljenja za datoteke ali registre."
Skript prejme vrednost atributa sličice trenutnega uporabnika iz Active Directory AD in fotografijo shrani v imenik C: \ Users \ Public \ AccountPictures \ User SID. Katalog bo vseboval grafične datoteke z različnimi ločljivostmi (od 32 × 32 do 448 × 448 slikovnih pik) za različne formate elementov vmesnika Windows 10: image32.jpg, image40.jpg itd..
Vezava fotografij na uporabniški profil poteka v podružnici registra HKLM \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ AccountPicture \ Uporabniki \ User SID.
Zagon skripta PowerShell za vezavo fotografij na profil prek GPO
Zdaj potrebujemo skript SetADPicture.ps1, ki se zažene, ko se uporabnik prijavi v sistem Windows. Najlažji način je izvajanje te skupine politik s pomočjo skripte za prijavo..
To storite v predhodno ustvarjenem pravilniku v razdelku Uporabnik Konfiguracija -> Politike -> Windows Nastavitve -> Skripti (PrijavaOdjava), ustvarite nov skript za prijavo, ki poganja vaš skript PowerShell:
Izvedljiva datoteka: % windir% \ System32 \ WindowsPowerShell \ v1.0 \ powershell.exe
Parametri skripta: -Neinteraktivni -ExecutionPolicy Bypass -Noprofile -File% logonserver% \ netlogon \ script \ SetADPicture.ps1
Ostaja še dodelitev pravilnika potrebnemu OU z računalniki, izvedba odjave in prijava uporabnika.
V nastavitvah pravilnika omogočite način obdelave povratne konfiguracije GPO (konfiguracija računalnika -> skrbniške predloge -> sistem -> skupinska politika -> Konfigurirajte način obdelave povratnih pravil za skupino uporabnikov = Združitev). V tem načinu lahko politiko uporabite za OU z uporabniki.Za diagnosticiranje uporabe GPO na ciljnih računalnikih uporabite pripomoček gpresult in članek "Zakaj se GPO ne uporablja?".
Po tem bo uporabniku sistema Windows 10 dodeljen avatar iz AD-ja in se bo začel pravilno prikazovati kot slika uporabniškega računa v začetnem meniju, na prijavnem zaslonu in drugih oknih. Navodila za dodelitev profilne fotografije v redu in preizkušena na Windows 10 LTSC (1809).