Roaming Profile, kullanıcı profilinin bir dosya sunucusunda tutulmasını ve kullanıcının Domain'deki hangi bilgisayarda oturum açarsa açsın aynı masaüstü, belge ve ayarlarla çalışmasını sağlar. Kullanıcı oturum açtığında profil sunucudan bilgisayara kopyalanır, oturum kapandığında değişen dosyalar sunucuya geri yazılır. Profil merkezi olarak tutulduğu için bilgisayar değiştiğinde ya da arızalandığında kullanıcının ayarları kaybolmaz.
Bu yazıda bir dosya sunucusunda Roaming Profile paylaşımını hazırlıyor, Active Directory'de bir kullanıcıya Profile Path tanımlıyor ve profilin iki farklı bilgisayar arasında taşındığını test ediyorum. Folder Redirection yapılandırması kapsam dışında.
Bu makaledeki adımlar, Windows Server sürümüne bağlı değildir. Profil klasörüne eklenen sonek ise istemci sürümüne göre değişir: Windows 10 sürüm 1607 ve sonrası, Windows 11 ile Windows Server 2016 ve sonrası .V6 kullanır, kullanılan sonek sunucudaki klasör adından görülebilir.
1- Roaming Profile Nasıl Çalışır?
Kullanıcı oturum açtığında Windows, Active Directory'deki Profile Path değerine bakar ve profili sunucudan istemcinin C:\Users klasörüne kopyalar. Oturum boyunca kullanıcı bu yerel kopyayla çalışır, sunucuyla sürekli bağlantı gerekmez. Oturum kapanırken değişen dosyalar ve kullanıcının Registry Hive'ı (NTUSER.DAT) sunucuya geri yazılır. Yerel kopya varsayılan olarak bilgisayarda kalır ve bir sonraki oturumda yalnızca değişen dosyalar kopyalanır.
Windows, profil klasörünün adına istemci sürümüne göre bir sonek ekler. Profile Path \\SRV001\RoamingProfiles$\User5 olarak tanımlansa da Windows 10 sürüm 1607 ve sonrası istemciler profili User5.V6 klasöründe tutar. Farklı sürümdeki istemciler aynı kullanıcı için farklı sonekli klasörler kullanır, bu yüzden ayarlar sürümler arasında taşınmaz. Her sürüm için ayrı Profile Path tanımlamaya gerek yoktur.
Oturum açılırken sunucuya ulaşılamazsa kullanıcı bilgisayardaki yerel kopyayla açılır. Yerel kopya da yoksa Windows kullanıcıya bir Temporary Profile verir ve bu profilde yapılan değişiklikler oturum kapanınca silinir.
Roaming Profile'ın en çok karşılaşılan sorunu, profil büyüdükçe oturum açma ve kapama sürelerinin uzamasıdır. Bunu çözmek için profili büyüten klasörler profil dışına alınır:
|
Sorun |
Çözüm |
|
Documents, Desktop gibi klasörler profili büyütüyor |
Folder Redirection ile bu klasörleri doğrudan sunucuda tutmak |
|
Uygulamaların önbellek klasörleri profille taşınıyor |
Exclude directories in roaming profile Group Policy ayarıyla bu klasörleri dışlamak |
|
Profil boyutu kontrolsüz büyüyor |
Limit profile size Group Policy ayarı ya da sunucuda FSRM kotası |
|
Paylaşılan bilgisayarlarda yerel kopyalar birikiyor |
Delete cached copies of roaming profiles Group Policy ayarı |
Microsoft, DFS Replication ile çoğaltılan Roaming Profile verisinin DFS Namespaces üzerinden birden fazla hedefe dağıtılmasını desteklemez. Ayrıntısını
DFS makalemde anlattım.
2- Ön Kontrol
Başlamadan önce şu maddeleri doğruluyorum:
|
Kontrol |
Beklenen Durum |
|
Domain ortamı |
Dosya sunucusu ve istemciler Domain üyesi |
|
Dosya sistemi |
Profil klasörünün oluşturulacağı disk NTFS |
|
Kullanıcı grubu |
Roaming Profile kullanacak kullanıcılar bir güvenlik grubunda toplanmış (üretim yapısı için) |
|
Yetki |
Dosya sunucusunda yönetici, Active Directory'de kullanıcı özelliklerini düzenleyebilen bir hesap |
3- Profil Klasörünün ve İzinlerinin Hazırlanması
1- Dosya sunucusunda tüm kullanıcıların profillerini barındıracak RoamingProfiles adında tek bir kök klasör oluşturuyorum. Kullanıcı klasörlerini burada elle açmıyorum, Windows her kullanıcının klasörünü ilk oturumda kendisi oluşturur.

2- Klasörün Properties penceresinde Security sekmesine geçip Edit... butonuna tıklıyorum. Bu ekranda klasörün NTFS izinlerini düzenliyorum.

3- Kullanıcıların kök klasörde kendi profil klasörlerini oluşturabilmesi ve profillerini okuyup yazabilmesi için NTFS'te yetki gerekir. Paylaşım izni tam olsa bile NTFS izni yoksa erişim reddedilir ve profil yüklenemez. Lab ortamında bu yetkiyi kısa yoldan vermek için Add... butonuyla Everyone grubunu ekliyorum.

4- Lab ortamında Everyone grubuna Full Control veriyorum.


NTFS'te Everyone grubuna Full Control verildiğinde her kullanıcı kök klasörde başka bir kullanıcının adıyla klasör oluşturabilir, başkalarının klasörlerini silebilir ya da yeniden adlandırabilir. Bu izin üretim ortamında kullanılmaz.
Üretim ortamında kök klasörün kalıtımını (Inheritance) kapatıp Microsoft'un Roaming User Profiles için önerdiği şu izinleri uyguluyorum:
|
Hesap |
İzin |
Uygulandığı Yer |
|
CREATOR OWNER |
Full Control |
Subfolders and files only |
|
SYSTEM |
Full Control |
This folder, subfolders and files |
|
Administrators |
Full Control |
This folder only |
|
Roaming Profile kullanıcılarının güvenlik grubu |
List folder / read data, Create folders / append data |
This folder only |
Bu izinlerle kullanıcı kök klasörde yalnızca kendi profil klasörünü oluşturabilir. CREATOR OWNER satırı sayesinde oluşturduğu klasörde tam yetkiye sahip olur, diğer kullanıcıların klasörlerini ise açamaz.
4- Klasörün Paylaşıma Açılması
1- Klasörün Sharing sekmesinde Advanced Sharing... butonuna tıklıyorum.

2- Share this folder seçeneğini işaretleyip paylaşım adının sonuna $ ekliyorum. $ ile biten paylaşımlar ağda gözatılırken listelenmez, yalnızca UNC yolu bilinerek erişilir. Ardından Permissions butonuna tıklıyorum.

3- Lab ortamında paylaşım izninde Everyone grubuna Full Control veriyorum. Ağdan gelen bir erişimde paylaşım izni ve NTFS izni birlikte değerlendirilir ve ikisinin kesişimi geçerli olur. Bu tasarımın ayrıntısını Share Permissions makalemde anlattım.

Üretim ortamında paylaşım izninden Everyone grubunu kaldırıp yalnızca Roaming Profile kullanıcılarının güvenlik grubuna Full Control veriyorum. Ayrıntılı kısıtlamayı 3. bölümdeki NTFS izinleri yapar.
4- Klasör paylaşıma açıldı.

5- Klasörün içi şu an boş. Kullanıcı klasörleri ilk oturumlarda oluşacak.

6- Paylaşım gizli olduğu için ona doğrudan UNC yoluyla, \\SRV001\RoamingProfiles$ adresinden erişiyorum.

Microsoft, profil paylaşımında Offline Files önbelleğinin kapatılmasını önerir. Profil zaten istemcide yerel olarak tutulduğu için Offline Files ikinci bir önbellek oluşturur ve eşitleme sorunlarına yol açabilir. Ayrıca paylaşımda Access-Based Enumeration açarak kullanıcıların kök klasörde yalnızca erişebildikleri klasörleri görmesini sağlıyorum. Her iki ayarı dosya sunucusunda yönetici olarak açtığım PowerShell oturumunda yapıyorum.
Set-SmbShare -Name "RoamingProfiles$" -CachingMode None -FolderEnumerationMode AccessBased -Force
Get-SmbShare -Name "RoamingProfiles$" | Select-Object Name, Path, CachingMode, FolderEnumerationMode
Kontrol Noktası
Çıktıda CachingMode değeri None, FolderEnumerationMode değeri AccessBased olmalı.
5- Kullanıcıya Profile Path Tanımlanması
1- Active Directory Users and Computers konsolunda User5 kullanıcısının Properties penceresini açıyorum.

2- Profile sekmesindeki Profile path alanına \\SRV001\RoamingProfiles$\%username% yazıyorum. Active Directory Users and Computers, kullanıcı özelliklerini kaydederken %username% değişkenini kullanıcının oturum açma adıyla değiştirir. Birden fazla kullanıcı seçilip toplu düzenleme yapıldığında da her kullanıcıya kendi adıyla doğru yol yazılır.

Profile Path: \\SRV001\RoamingProfiles$\%username%
Kaydedilen değer: \\SRV001\RoamingProfiles$\User5
Sunucudaki klasör: \\SRV001\RoamingProfiles$\User5.V6
SRV001 Dosya sunucusunun adı veya FQDN'i
RoamingProfiles$ Gizli paylaşım
.V6 Windows'un istemci sürümüne göre eklediği sonek
Kaydedilen yolu Active Directory PowerShell modülü yüklü bir sunucuda kontrol ediyorum.
Get-ADUser -Identity User5 -Properties ProfilePath | Select-Object Name, ProfilePath
6- İlgili Group Policy Ayarları
Roaming Profile'ı yönetmek için kullandığım Group Policy ayarları şunlar. Hepsi isteğe bağlıdır, ihtiyaca göre uygulanır.
|
Ayar |
Konum |
Ne Yapar |
|
Add the Administrators security group to roaming user profiles |
Computer Configuration\Administrative Templates\System\User Profiles |
Yeni oluşturulan profil klasörlerine Administrators grubunu ekler. Açılmazsa yöneticiler kullanıcı profil klasörlerine erişemez |
|
Delete cached copies of roaming profiles |
Computer Configuration\Administrative Templates\System\User Profiles |
Oturum kapanınca istemcideki yerel kopyayı siler. Sunucuya ulaşılamadığında kullanıcı Temporary Profile ile açılır |
|
Exclude directories in roaming profile |
User Configuration\Administrative Templates\System\User Profiles |
Belirtilen klasörleri profille birlikte sunucuya taşımaz |
|
Limit profile size |
User Configuration\Administrative Templates\System\User Profiles |
Profil boyutuna üst sınır koyar ve sınır aşılınca kullanıcıyı uyarır |
Add the Administrators security group ayarı yalnızca ayar uygulandıktan sonra oluşturulan profil klasörlerini etkiler. Mevcut klasörlerin izinleri değişmez.
Windows ayrıca profil klasörünün sahibinin kullanıcı ya da Administrators grubu olduğunu denetler. Sahip başka bir hesapsa profil yüklenmez. Bu yüzden profil klasörlerinin sahipliğini elle değiştirirken bu kuralı göz önünde bulunduruyorum.
7- Test ve Doğrulama
1- User5 ile PC10 bilgisayarında oturum açıyorum.


2- Paylaşımda User5'in profil klasörü .V6 sonekiyle oluştu.

3- Masaüstünde birkaç klasör ve dosya oluşturup oturumu kapatıyorum. Oturum kapanırken bu değişiklikler sunucudaki profile yazılıyor.

4- User5 ile bu kez PC20 bilgisayarında oturum açıyorum. PC10'da oluşturduğum klasör ve dosyalar PC20'nin masaüstünde de görünüyor.

Kontrol Noktası
PC10'da yapılan değişiklikler PC20'de görünmeli ve kullanıcıya Temporary Profile ile oturum açıldığını belirten bir uyarı gösterilmemeli.
Profil yükleme ve kaydetme sorunlarını istemcide Event Viewer'daki Application günlüğünde User Profile Service kayıtlarından izliyorum:
|
Olay Kimliği |
Anlamı |
|
1509 |
Profildeki bir dosya kopyalanamadı |
|
1511 |
Kullanıcı Temporary Profile ile oturum açtı |
|
1530 |
Oturum kapanırken kullanıcının Registry dosyası başka bir işlem tarafından açık tutuluyordu |
Roaming Profile'ı kaldırmam gerekirse kullanıcının Profile Path alanını boşaltıyorum. Kullanıcı bir sonraki oturumda bilgisayardaki yerel profiliyle devam eder, sunucudaki klasör ise elle silinene kadar kalır.
Yapılandırmanın tamamlandığını şu ölçütlerle anlıyorum: paylaşım gizli, Offline Files kapalı ve Access-Based Enumeration açık, kullanıcının Profile Path değeri doğru, sunucuda profil klasörü istemci sürümüne uygun sonekle oluşuyor ve bir bilgisayarda yapılan değişiklik diğer bilgisayarda görünüyor. Profil boyutunu kontrol altında tutmak için bir sonraki adım Folder Redirection'ı devreye almak.
Faydalı olması dileğiyle...
Makale ile ilgili düşüncelerinizi ve sorularınızı aşağıdaki yorum kısmında paylaşmaktan çekinmeyin. Her katkı, içeriğin daha fazla kişiye ulaşmasını ve daha faydalı bir tartışma ortamı oluşmasını sağlar.