Custom ADMX/ADML Dosyalarını Intune’a Nasıl Aktarılır?
Group Policy’den gelen bir kurumda genelde şu soruyla karşılaşılıyor: on-premises Active Directory’de yıllardır kullanılan bir ADMX şablonu var, örneğin Firefox, Zoom veya iç geliştirilmiş bir uygulamanın kendi grup ilkesi ayarları. Cihazlar bulut tarafına taşındığında bu ayarların Intune’da bir karşılığı olması gerekiyor. Windows’un kendi ayarları için Settings Catalog zaten hazır bir kategori sunuyor, ama üçüncü parti veya özel ADMX dosyaları için önce onları Intune’a tanıtmak gerekiyor.
Bu yazıda custom ADMX/ADML dosyalarını Intune’a nasıl aktaracağınızı, bunları hangi profil tipiyle cihazlara dağıtacağınızı ve klasik Administrative Templates profil tipinin artık neden kullanılmaması gerektiğini anlatıyorum.
Administrative Templates Profil Tipine Ne Oldu?
Aralık 2024 (2412) sürümüyle birlikte Intune admin center’daki Templates > Administrative Templates profil tipi deprecated ve read-only duruma geçti. Bu profil tipiyle daha önce oluşturulmuş policy’ler cihazlarda çalışmaya devam ediyor, ama üzerlerinde değişiklik yapılamıyor ve yeni bir Administrative Templates profili oluşturulamıyor. Microsoft bu değişikliği Windows device configuration policy’lerini tek bir platform altında (unified settings platform) toplama çalışmasının bir parçası olarak yaptı.
Pratikte bunun anlamı şu: Windows’un kendi içinde barındırdığı ADMX tabanlı ayarlar (C:\Windows\PolicyDefinitions altındaki dosyalar) artık Settings Catalog üzerinden, Administrative Templates kategorisi altında yapılandırılıyor. Bu ayarlar CSP tabanlı olduğu için ayrıca bir dosya yüklemeye gerek yok, Settings Catalog içinde hazır geliyor.
Bu değişiklik custom ADMX dosyalarını etkilemiyor. Üçüncü parti veya özel ADMX/ADML dosyalarını içe aktarma akışı ayrı bir özellik olarak devam ediyor, konu başlığımız da bu.
Custom ADMX Import Neyi Çözüyor?
Windows’a yerleşik olmayan bir ADMX şablonunuz varsa (örneğin bir üçüncü parti uygulamanın kendi grup ilkesi dosyaları veya şirket içi geliştirilen bir ADMX), bu dosyayı önce Intune’a yüklemeniz gerekiyor. Yükleme tamamlandıktan sonra bu ayarlar Imported Administrative templates (Preview) adlı ayrı bir profil tipi üzerinden cihazlara dağıtılabiliyor.
Bu özellik şu an public preview aşamasında. Yani production ortamında kullanılabilir ama davranışın zaman içinde değişebileceğini göz önünde bulundurmak gerekiyor.
Bilinmesi Gereken Sınırlar
- En fazla 20 ADMX dosyası yüklenebiliyor, her dosya 1 MB veya altında olmalı.
- Her ADMX dosyası için sadece bir ADML dosyası yüklenebiliyor, yani bir ADMX yalnızca tek dilde geliyor.
- Sadece
en-usADML dosyaları destekleniyor. - Combo box (açılır kutu) türündeki ayarlar şu an desteklenmiyor; bu tür ayar içeren ADMX dosyaları import edilirken hata veriyor.
- Windows’a zaten yerleşik olan CSP tabanlı ayarları (yani
C:\Windows\PolicyDefinitionsaltında zaten bulunan dosyaları) tekrar yapılandırmak amacıyla import etmeyin. Bunlar için Settings Catalog kullanılmalı. Sadece başka bir ADMX’in bağımlılığı (parent namespace) olarak gerekiyorsa import edilmeli.
Bu işlemi yapabilmek için minimum gereken rol Policy and Profile Manager. Bir ADMX ayarını sonradan Not Configured durumuna çekmek isterseniz RBAC tarafında ayrıca Device configurations > Delete izni de gerekiyor; yerleşik Policy and Profile Manager rolü bu izni de içeriyor.
Namespace Bağımlılıklarını Kontrol Etme
Bazı ADMX dosyaları başka bir ADMX’e bağımlı. Bağımlı olduğu dosya önce yüklenmemişse import işlemi namespace hatasıyla başarısız oluyor. Bir ADMX dosyasının bağımlılığı olup olmadığını görmek için dosyayı bir metin editöründe açıp policyNamespaces düğümüne bakabilirsiniz; using prefix ile başlayan satırlar bağımlılıkları listeliyor.
<policyNamespaces>
<target prefix="kerberos" namespace="Microsoft.Policies.Kerberos" />
<using prefix="windows" namespace="Microsoft.Policies.Windows" />
</policyNamespaces>
Bu örnekte kerberos.admx dosyası Windows.admx‘e bağımlı; önce Windows.admx yüklenmeden kerberos.admx yüklenemiyor. Mozilla Firefox örneğinde de benzer bir durum var: önce mozilla.admx ve mozilla.adml yüklenip Available durumuna geçtiğini gördükten sonra firefox.admx ve firefox.adml yüklenmesi gerekiyor. Sıra tersine çevrilirse yükleme NamespaceMissing hatasıyla başarısız oluyor.
Bir bağımlılığı kaldırmak isterseniz sıralamayı da ters çevirmeniz gerekiyor: önce bağımlı olan dosyayı (firefox.admx) silin, sonra bağımlılığı (mozilla.admx) silin.
ADMX ve ADML Dosyalarını Intune’a Yükleme
ADMX dosyalarını genelde uygulamayı yayınlayan tarafın (üçüncü parti yazılım firması ya da kendi geliştirme ekibiniz) sitesinden indirip C:\ADMXTemplates gibi kolay erişilebilir bir klasöre koymak yeterli. Ardından yükleme adımları şöyle işliyor:
- Intune admin center > Devices > Manage devices > Configuration > Import ADMX sekmesine gidin.
- Import seçin.
- ADMX file alanında yükleyeceğiniz ADMX dosyasını seçin.
- ADML file for the default language alanında karşılık gelen ADML dosyasını seçin. Dil bilgisi otomatik olarak algılanıp gösteriliyor.
- Next ile devam edin, Review + create ekranında bilgileri kontrol edip Create deyin.
Yükleme tamamlandıktan sonra dosya listede görünüyor. Refresh ile durumu güncelleyebilir, gerekirse Delete ile kaldırabilirsiniz. Bağımlı dosyalar varsa önce bağımlılığın Available durumuna geçtiğini görmeden sıradaki dosyayı yüklemeyin; işlem asenkron çalıştığı için status hemen Available olmayabiliyor.
İçe Aktarılan ADMX ile Profil Oluşturma
Dosyalar yüklendikten sonra bu ayarları cihazlara dağıtmak için ayrı bir profil tipi kullanılıyor, klasik Settings Catalog’daki Administrative Templates kategorisinden farklı bir yer.
- Intune admin center > Devices > Manage devices > Configuration > Create > New policy yolunu izleyin.
- Platform olarak Windows 10 and later, Profile type olarak Templates > Imported Administrative templates (Preview) seçin.
- Create deyin.
- Basics sayfasında profile açıklayıcı bir isim verin, örneğin ADMX: Mozilla Firefox for Windows devices.
- Configuration settings sayfasında import ettiğiniz ADMX’ten gelen ayarları görüp yapılandırabilirsiniz.
- İsterseniz bir scope tag ekleyin.
- Assignments sayfasında hedef kullanıcı veya cihaz grubunu seçin.
- Review + create ile profili oluşturun.
Assignment tarafında dikkat edilmesi gereken nokta ayarın HKEY_LOCAL_MACHINE mi yoksa HKEY_CURRENT_USER mı hedeflediği. Profil kullanıcı grubuna atanmışsa ayar o kullanıcının oturum açtığı her cihazda uygulanıyor. Cihaz grubuna atanmışsa o cihaza oturum açan her kullanıcıyı etkiliyor. Bazı computer-configuration ayarları kullanıcı grubuna atansa bile aynı cihazdaki diğer kullanıcıları da etkileyebiliyor, bu yüzden shared cihaz senaryolarında assignment tipini seçerken bunu göz önünde bulundurmak gerekiyor.
Var Olan Bir ADMX Dosyasını Güncelleme
Aynı namespace’e sahip bir ADMX dosyasını tekrar yüklemeye çalışırsanız işlem namespace hatasıyla başarısız oluyor; Intune aynı ayarları içeren bir dosyayı üzerine yazmıyor. Güncel bir sürümü devreye almak için iki yol var.
Birinci yol, dosyayı gerçekten değiştirmek: önce bu ADMX’in ayarlarını kullanan tüm profilleri silin, ardından eski ADMX dosyasını silin, son olarak yeni ADMX ve ADML dosyalarını import edin. Bu yöntem profillerin silinmesini gerektirdiği için mevcut assignment’ları da yeniden kurmanız gerekiyor.
İkinci yol, namespace’i değiştirerek yeni bir dosya olarak eklemek: ADMX dosyasının namespace’ine bir sürüm numarası ekleyip yeni ayarları bu dosyaya koyabilir, eski dosyayla çakışmadan ayrı bir dosya olarak import edebilirsiniz. Bu yöntem eski profili bozmadan yeni ayarları eklemenize izin veriyor, ama iki farklı namespace’i yönetmek zorunda kalırsınız.
Microsoft Graph ile ADMX İçe Aktarma
Toplu ADMX yüklemesi yapacaksanız (örneğin CI/CD pipeline üzerinden birden fazla tenant’a aynı şablonları dağıtmak istiyorsanız) Microsoft Graph üzerinden otomasyon kurmak mantıklı. İşlemin Graph karşılığı groupPolicyUploadedDefinitionFile kaynağı, şu an sadece beta endpoint’te mevcut, v1.0 karşılığı yok.
Connect-MgGraph -Scopes "DeviceManagementConfiguration.ReadWrite.All"
$admlBytes = [System.IO.File]::ReadAllBytes("C:\ADMXTemplates\en-US\firefox.adml")
$languageFile = @{
FileName = "firefox.adml"
LanguageCode = "en-US"
Content = $admlBytes
}
New-MgBetaDeviceManagementGroupPolicyUploadedDefinitionFile `
-FileName "firefox.admx" `
-ContentInputFile "C:\ADMXTemplates\firefox.admx" `
-DefaultLanguageCode "en-US" `
-LanguageCodes @("en-US") `
-GroupPolicyUploadedLanguageFiles @($languageFile)
Bu cmdlet Microsoft.Graph.Beta.DeviceManagement.Administration modülünde geliyor, dolayısıyla Microsoft Graph PowerShell SDK’nın beta modülünü kurmuş olmanız gerekiyor. Yükleme işlemi asenkron çalışıyor; komut çalıştıktan hemen sonra dönen nesnenin status alanı genelde uploadInProgress geliyor. Dosyanın gerçekten kullanılabilir olduğunu doğrulamak için aynı ADMX’i tekrar sorgulayıp status değerinin available olduğunu görmek gerekiyor.
Get-MgBetaDeviceManagementGroupPolicyUploadedDefinitionFile -GroupPolicyUploadedDefinitionFileId "<dosya-id>"
groupPolicyUploadedDefinitionFile beta’da olduğu için üretim otomasyonunda kullanırken endpoint davranışının Microsoft tarafından değiştirilebileceğini akılda tutmakta fayda var; script’i çalıştırmadan önce test tenant’ında doğrulamak makul bir yaklaşım.
Import Sırasında Karşılaşılan Yaygın Hatalar
Bir ADMX dosyası import edilirken en sık karşılaşılan hata ADMX file referenced not found NamespaceMissing mesajı. Bu, dosyanın ihtiyaç duyduğu bir parent namespace’in (çoğu zaman Windows.admx) henüz yüklenmediğini gösteriyor; dosyayı silmeden önce eksik namespace’i yükleyip tekrar denemek yeterli.
Combo box türünde ayar içeren bir ADMX dosyası da import sırasında hata veriyor. Bu durumda dosyayı düzenleyip bu ayar tipini kaldırmadan (veya ADMX yayıncısının güncel bir sürümünü beklemeden) import işlemi tamamlanmıyor.
Bir diğer sık karışan nokta, zaten var olan ayarları içeren bir ADMX’i “güncelleme” niyetiyle doğrudan tekrar yüklemek. Yukarıda anlatıldığı gibi bu işlem namespace çakışması nedeniyle başarısız oluyor; önce eski profil ve dosyayı silmek ya da namespace’i değiştirmek gerekiyor.
Hangi Yolu Seçmeli?
Windows’un kendi ADMX tabanlı ayarları için (Internet Explorer, Windows Update, Start menu ve benzeri) Settings Catalog’daki Administrative Templates kategorisi zaten yeterli, ayrıca dosya yüklemeye gerek yok. Custom ADMX import özelliği yalnızca Windows’a yerleşik olmayan, üçüncü parti veya şirket içi geliştirilmiş ADMX şablonları için düşünülmeli. İki yolu karıştırıp Windows’a zaten yerleşik bir ayarı custom ADMX olarak tekrar import etmek gereksiz karmaşıklık yaratıyor ve önerilmiyor.



