Fotografiju iz AD-a koristimo za korisnički profil sustava Windows 10

Outlook, SharePoint, Office365 i Skype for Business omogućuju vam da koristite fotografiju trenutno prijavljenog korisnika iz Active Directory-a (Azure AD) kao avatare korisnika u njihovom sučelju. U ovom ćemo članku pokazati kako korisničku sliku aktivnog direktorija koristiti kao sliku korisničkog profila sustava Windows 10 pomoću grupnih politika i PowerShell-a koji se pojavljuju na pozdravnom zaslonu, zaključanom zaslonu, u početnom izborniku itd..

Naša će skripta funkcionirati na sljedeći način: kada se korisnik prijavi u sustav, mora se pokrenuti skripta koja prima fotografiju korisnika iz atributa thumbnailPhoto u Active Directoryu, spremite slikovnu datoteku na disk i instalirajte ovu datoteku kao profilnu sliku korisničkog profila sustava Windows. Rješenje treba raditi jednako na svim podržanim klijentima: Windows 10 (8.1 / 7) i na RDSH poslužiteljima sa sustavom Windows Server 2016/2012 R2.

sadržaj:

  • Uvozite korisničke fotografije u Active Directory
  • Korisnicima pružamo pravo na promjenu ikone profila
  • Skripta PowerShell da biste dobili korisnikovu fotografiju iz AD-a i instalirali ikonu Windows profila
  • Pokretanje skripte PowerShell za povezivanje fotografija s profilom putem GPO-a

Uvozite korisničke fotografije u Active Directory

Prije svega, potrebno je da AD korisnici postave fotografije tako da ih dodaju u posebnu sličicu atributaFoto na računu. Fotografije možete postaviti korisnicima putem programa treće strane ili pomoću modula ActiveDirectory za Windows PowerShell (veličina datoteke uz fotografiju ne smije biti veća od 100 Kb, a rezolucija do 96 × 96 piksela):

$ photo = [bajt []] (Nabavite sadržaj C: \ PS \ divanov_photo.jpg - kodiranje bajta)
Set-ADUser divanov -Replace @ thumbnailPhoto = $ photo

Pojedinosti o korištenju PowerShell-a za upravljanje fotografijama u AD-u potražite u članku: Učitavanje korisničke fotografije u Active Directory.

Korisnicima pružamo pravo na promjenu ikone profila

U sustavu Windows 10 informacije o slici računa (put do slike koja se koristi za korisnički profil) pohranjuju se u ogranku registra sustava HKLM\ SOFTVER\ Microsoft\ Windows\ CurrentVersion\ AccountPicture\ Korisnici. Kako bi korisnici bez administratorskog prava mogli vršiti izmjene, morate im pružiti dozvole za pisanje u ovaj ključ registra.

  1. Najlakši način je distribucija prava registra kroz grupna pravila. Da biste to učinili, kreirajte novu politiku i vežite je na OU s računalima korisnika;
  2. Zatim idite na odjeljak Konfiguracija računala -> Pravila -> Postavke sustava Windows -> Sigurnosne postavke -> Registar i stvoriti novi ključ registra (Dodajte ključ) sa stazom MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ AccountPicture \ Users;
  3. Zatim karticu sigurnosti treba odobriti puni kontrola za sve korisnike domene (grupa [DomainName] \ Users) i kliknite OK;
  4. U sljedećem dijaloškom okviru odaberite Zamijenite postojeće dopuštenje za sve potključeve s nasljeđenim dozvolama, u protivnom korisnici neće imati prava na ugniježđene podružnice registra;

Skripta PowerShell da biste dobili korisnikovu fotografiju iz AD-a i instalirali ikonu Windows profila

Zatim nam treba skripta PowerShell koja bi trebala dobiti fotografiju trenutnog korisnika iz Active Directory-a, spremiti je u jpg datoteku i postaviti je kao ikonu korisničkog profila. Postoje dvije mogućnosti za dobivanje fotografija iz AD-a: korištenje cmdleta Get-ADUser iz modula ActiveDirectory (ovaj modul mora biti instaliran na sva računala preko RSAT-a ili samo kopirati potrebne datoteke modula RSAT-AD-PowerShell bez instaliranja RSAT-a). Da bi skripta bila univerzalna i ispravno radila, uključujući Windows 7, nećemo koristiti RSAT-AD-PowerShell modul, već ćemo AD pristupiti putem klase ADSISearcher.

Primjer skripte SetADPicture.ps1 Kako biste dobili korisnikovu fotografiju od AD-a i postavili je kao avatar vašeg Windows računa, pogledajte dolje:

[CmdletBinding (SupportsShouldProcess = $ true)] Param ()
funkcija Test-Null ($ InputObject) return! ([bool] $ InputObject)
$ ADuser = ([ADSISearcher] "(& (objectCategory = Korisnik) (SAMAccountName = $ env: korisničko ime))"). FindOne (). Svojstva
$ ADuser_photo = $ ADuser.thumbnailphoto
$ ADuser_sid = [System.Security.Principal.WindowsIdentity] :: GetCurrent (). User.Value
Ako je ((Test-Null $ ADuser_photo) -eq $ false)
$ img_size = @ (32, 40, 48, 96, 192, 200, 240. 448)
$ img_mask = "Slika 0 .jpg"
$ img_base = "C: \ Korisnici \ 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"
If ((Test-Path -Path $ reg_key) -eq $ false) Nova stavka-Put $ reg_key
Pokušajte
ForEach ($ veličina u $ img_s veličine)
$ dir = $ img_base + "\" + $ ADuser_sid
If ((Test-Path -Path $ dir) -eq $ false) $ (mkdir $ dir) .Attributes = "Skriven"
$ file_name = ([string] :: format ($ img_mask, $ size))
$ path = $ dir + "\" + $ file_name
Verbose za pisanje "spremanje: $ file_name"
$ ADuser_photo | Set-Content -Path $ path -Encoding byte -Force
$ name = [string] :: format ($ reg_value_mask, $ size)
$ value = Novo svojstvo svojstva-Put $ reg_key -Name $ name -Value $ path -Force


Uhvatite
Error pisanja "Provjerite dozvole za datoteke ili registar."

Skripta prima vrijednost atributa sličice trenutnog korisnika od Active Directory AD i sprema fotografiju u direktorij C: \ Users \ Public \ AccountPictures \ User SID. Katalog će sadržavati grafičke datoteke različitih razlučivosti (od 32 × 32 do 448 × 448 piksela) za različite formate elemenata sučelja sustava Windows 10: image32.jpg, image40.jpg, itd..

Vezivanje fotografija na korisnički profil vrši se u poslovnici registra HKLM \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ AccountPicture \ Users \ User SID.

Pokretanje skripte PowerShell za povezivanje fotografija s profilom putem GPO-a

Sada nam je potrebna skripta SetADPicture.ps1 za pokretanje kada se korisnik prijavi na Windows. Najlakši način je implementirati ovu skupinu pravila putem skripte za prijavu..

Da biste to učinili, u prethodno kreiranim pravilima u odjeljku korisnik konfiguracija -> Politike -> Windows postavke -> Skripte (Prijava/ Odjava), stvorite novu skriptu za prijavu koja pokreće vašu PowerShell skriptu:

Izvrsna datoteka: % windir% \ System32 \ WindowsPowerShell \ v1.0 \ powershell.exe

Parametri skripte: -Noninteractive -ExecutionPolicy Bypass -Noprofile -File% logonserver% \ netlogon \ script \ SetADPicture.ps1

Važno je. Skripta SetADPicture.ps1 mora se prethodno kopirati u direktorij Netlogon \ script \ na kontroleru domene.

Ostaje dodijeliti pravilo potrebnom OU s računalima, izvršiti odjava i prijavu korisnika.

U postavkama pravila omogućite način obrade povratne kopije GPO (Konfiguracija računala -> Administrativni predlošci -> Sustav -> Grupna pravila -> Konfigurirajte način obrade petlje s povratkom pravila grupe = Spajanje). U ovom načinu pravila možete primijeniti na OU s korisnicima.

Za dijagnosticiranje upotrebe GPO-a na ciljanim računalima upotrijebite uslužni program gpresult i članak "Zašto se GPO ne koristi?".

Nakon toga korisniku sustava Windows 10 bit će dodijeljen avatar iz AD-a i on će se ispravno pojavljivati ​​kao slika korisničkog računa u startnom izborniku, na zaslonu za prijavu i drugim prozorima. Uputa za dodjeljivanje finog rada profilu i testirana na Windows 10 LTSC (1809).