Active Directory'de PowerShell ile Grup İlkelerini (GPO) Yönetme


Bir Active Directory etki alanındaki Grup İlkesi Nesnelerini (GPO'lar) yönetmek için birincil araç, grafik Grup İlkesi Yönetim Konsolu'dur (

GPMC.msc

). Active Directory'deki bazı GPO yönetim görevlerinin performansını otomatikleştirmek ve iyileştirmek için birden çok GPO yönetim özelliği sağlayan PowerShell'i kullanabilirsiniz.

Grup İlkesi Yönetimi PowerShell Modülü Nasıl Kurulur?

Etki alanı GPO'sunu yönetmek için GroupPolicy modülünün bilgisayarınızda yüklü olması gerekir. Bu modül, Grup İlkesi Yönetimi özelliği yüklendikten sonra Windows Server'da kullanılabilir. Bu özelliği Sunucu Yöneticisi konsolunu kullanarak veya PowerShell ile yapabilirsiniz:

Install-WindowsFeature GPMC -IncludeManagementTools

GPO'ları masaüstü Windows 10 veya 11 sürümünü çalıştıran bir iş istasyonundan yönetmek istiyorsanız, Grup İlkesi modülünü RSAT aracılığıyla yükleyin:

Add-WindowsCapability -Online -Name Rsat.GroupPolicy.Management.Tools~~~~0.0.1.0

Şu komutu kullanarak GroupPolicy modülünde PowerShell cmdlet'lerinin tam listesini görüntüleyebilirsiniz:

Get-Command -Module GroupPolicy

GroupPolicy PowerShell modülünü kullanarak şunları yapabilirsiniz:

  • GPO oluşturun ve kaldırın;

  • GPO'yu bir OU'ya/OU'dan bağlama/bağlantısını kaldırma;

  • GPO'yu yedekleyin ve geri yükleyin;

  • GPO izinlerini ayarlayın veya devralmayı yapılandırın.

PowerShell ile GPO Oluşturma ve Yönetme

Grup İlkelerini yönetmek için PowerShell'i kullanabileceğiniz bazı tipik yönetim görevlerine göz atalım.

Yeni bir boş GPO oluşturmak için şu komutu kullanın:

New-GPO -Name munTestGPO -Comment "My First GPO with PowerShell"

Etki alanınızda Başlangıç GPO'ları oluşturulduysa, şablonlardan birini (örneğin, belirli Güvenlik Temeli ayarları) kullanarak yeni bir Grup İlkesi oluşturabilirsiniz:

New-GPO -Name munTestGPO2 -StarterGPOName "Windows 10 Security Baseline"

Bir Grup İlkesi nesnesini bir kuruluş birimine bağlamak için New-GPLink cmdlet'ini kullanın:

Get-GPO munTestGPO | New-GPLink -Target "ou=test,ou=munich,dc=a-d,dc=com"

Bir GPO'nun bir OU ile olan bağlantısını kaldırmak için:

Remove-GPLink -Name munTestGPO -Target "ou=test,ou=munich,dc=a-d,dc=com"

Bir bağlantıyı kaldırmadan GPO'yu devre dışı bırakmak istiyorsanız Set-GPLink cmdlet'ini kullanın:

Set-GPLink -name munTestGPO -Target "ou=test,ou=munich,dc=a-d,dc=com" -linkenabled no

GPO artık OU için geçerli değildir, ancak bağlantılı kalır.

Bir GPO'yu zorla uygulamak istiyorsanız, -Zorlanmış Evet seçeneğini ekleyin.

Aşağıdaki PowerShell tek satırı, bir kayıt defteri parametresini değiştirmek (otomatik sürücü güncellemesini devre dışı bırakır), ilkeyi belirli bir güvenlik grubuyla sınırlamak ve bunu Kuruluş Birimi'ne bağlamak için yeni bir GPO oluşturur:

$key = 'HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\DriverSearching'
New-GPO 'munDisableDriverUpdate' | Set-GPRegistryValue -Key $key `
-ValueName 'SearchOrderConfig' -Type DWORD -Value 0 | Set-GPPermissions -Replace `
-PermissionLevel None -TargetName 'Authenticated Users' -TargetType group | `
Set-GPPermissions -PermissionLevel gpoapply -TargetName 'mun_admins' `
-TargetType group | New-GPLink -Target "ou=test,ou=munich,dc=a-d,dc=com" -Order 1

PowerShell modülü, GPO yönetim şablonlarından (ADMX) GPO seçeneklerinin değerini değiştirmenize izin vermez. Yalnızca Grup İlkesi Tercihleri aracılığıyla dağıtılan kayıt defteri ayarlarını düzenleyebilirsiniz.

Belirli bir GPO veya etki alanınızdaki tüm politikalar hakkındaki bilgileri görüntülemek için Get-GPO cmdlet'ini kullanabilirsiniz. Cmdlet, bir ilke GUID'si (genellikle GPO uygulamasını teşhis etmek veya Active Directory durumunu kontrol ederken GPO çoğaltma sorunlarını çözmek için gereklidir), GPO oluşturma/değiştirme zamanı ve uygulanan GPO WMI filtreleri döndürür.

Get-GPO -Domain a-d.site -All

Bir GPO'ya bağlı bir WMI filtresinin ayarlarını görüntüleyebilirsiniz (ancak filtre ayarlarını değiştiremezsiniz):

(Get-GPO munWin10Settings).WmiFilter

Uzak bilgisayarlarda Grup İlkesi ayarlarını güncellemek için Invoke-GPUpdate cmdlet'i kullanılır. GPO'yu belirli bir bilgisayarda güncelleyebilirsiniz:

Invoke-GPUpdate -Computer "corp\wks-mn0223" -Target "User"

Veya bir kuruluş birimindeki tüm bilgisayarlarda:

Get-ADComputer -filter * -Searchbase "ou=Computes,OU=MUNICH,dc=a-d,dc=com" | foreach{ Invoke-GPUpdate -computer $_.name -force}

Get-GPOReport cmdlet'i, politika ayarlarıyla birlikte HTML/XML raporunu almak için kullanılır:

Get-GPOReport -name mun-BitlockerEncryption -ReportType HTML -Path "C:\ps\bitlocker_policy.html"

Bu durumda, AD'de BitLocker anahtarlarını otomatik olarak kaydetmek için ilkenin tüm ayarlarını görüntüledik.

Get-GPResultantSetofPolicy cmdlet'i, belirtilen kullanıcı ve/veya bilgisayara uygulanan Grup İlkeleri hakkında bir sonuç raporu (RSoP — İlke Sonuç Kümesi) oluşturmanıza olanak tanır. Bu rapor, gpresult aracı (

GPResult /h c:\ps\gp-report.html /f

). Cmdlet, uzak bir bilgisayardan elde edilen bir GPO raporunun alınmasına izin verir:

Get-GPResultantSetOfPolicy -user m.muller -computer corp\wks-mn0223 -reporttype html -path c:\ps\gp_rsop_report.html

PowerShell Kullanarak GPO'ları Yedekleme ve Geri Yükleme Nasıl Yapılır?

PowerShell'i kullanarak Active Directory etki alanınızdaki GPO'ları yedekleyebilir ve geri yükleyebilirsiniz.

Tüm Grup İlkesi Nesnelerini belirtilen klasöre yedeklemek için:

Backup-GPO -All -Path C:\Backup\GPOs\

Veya yalnızca bir GPO:

Backup-GPO -Name munWin10Settings -Path C:\Backup\GPOs -Comment "Backup GPO with PowerShell 2022/28/03"

Bir GPO'yu geri yüklemek için aşağıdaki komut kullanılır:

Restore-GPO -Name munWin10Settings -Path C:\Backup\GPOs\

Bazı GPO yedekleme sürümlerini tek bir klasörde tutabilirsiniz. Belirli bir GPO sürümünü geri yüklemek için yedek kimliğini (32 bit tanımlayıcı) belirtmeniz gerekir:

Restore-GPO -Path ″C:\GPO Backups″ -BackupID 7654321-4321-4321-CCC-1234567890

İlgili makaleler