Cara Memperbaiki Group Policy Tidak Diterapkan di Windows 11: Panduan Diagnosis untuk Helpdesk 2026

Group Policy yang tidak diterapkan di Windows 11 hampir selalu berasal dari security filtering, konflik MDM Intune, atau replikasi AD. Panduan diagnosis dengan gpresult, Event Viewer, dan script PowerShell untuk helpdesk 2026.

Group Policy Windows 11 Tidak Jalan (Fix 2026)

Diperbarui: 2 Agustus 2026

Group Policy yang tidak diterapkan di Windows 11 hampir selalu disebabkan salah satu dari tiga masalah: replikasi Active Directory yang tertinggal, security filtering yang salah pada GPO, atau konflik prioritas dengan kebijakan MDM Intune di lingkungan co-managed. Setelah bertahun-tahun menutup tiket bertema "GPO saya tidak jalan", saya bisa katakan lebih dari 80% kasus terpecahkan dengan urutan diagnosis yang sama. Jalankan gpresult /h, cek Event Viewer di channel GroupPolicy, lalu verifikasi security filtering di GPMC. Panduan ini menuntun tim helpdesk melewati proses tersebut untuk Windows 11 24H2 dan 25H2.

  • Jalankan gpresult /h laporan.html /f terlebih dahulu. Ini menunjukkan GPO mana yang berhasil diterapkan, mana yang diblokir, dan alasannya dalam satu file.
  • Untuk perangkat Windows 11 24H2 co-managed dengan Intune, kebijakan MDM secara default menang atas Group Policy sejak MDMWinsOverGP aktif.
  • Security filtering wajib menyertakan grup Authenticated Users dengan permission Read setelah patch KB4571744. Banyak GPO gagal senyap karena admin menghapus grup ini.
  • Klien membutuhkan koneksi ke Domain Controller di site yang sama. DNS lookup _ldap._tcp.dc._msdcs yang gagal berarti GPO tidak akan pernah sampai.
  • Perintah gpupdate /force /boot /logoff mengatasi masalah GPO yang memerlukan restart atau logoff seperti software installation dan folder redirection.
  • Event Viewer di Applications and Services Logs → Microsoft → Windows → GroupPolicy → Operational mencatat setiap kegagalan CSE (Client-Side Extension) dengan Event ID spesifik untuk root cause analysis cepat.

Penyebab umum Group Policy tidak diterapkan di Windows 11

Kalau Anda bekerja di service desk, "Group Policy saya tidak jalan" itu keluhan mingguan. Sebelum menyalahkan tim AD, mari kita bereskan penyebab paling sering dulu. Berdasarkan pengalaman menutup ratusan tiket serupa (saya pernah menutup 12 dalam satu minggu setelah rollout Windows 11 25H2 di kantor cabang), distribusi root cause di Windows 11 24H2 dan 25H2 cukup konsisten.

Penyebab paling umum yang saya lihat, diurutkan berdasarkan frekuensi:

  1. Security filtering yang rusak. Grup Authenticated Users dihapus, atau device object tidak ada di grup target. Ini paling sering muncul setelah admin "membersihkan" GPO warisan.
  2. MDMWinsOverGP aktif di lingkungan co-managed. Perangkat terdaftar di Intune dan kebijakan yang sama diatur di dua tempat. GPO diterapkan lalu langsung ditimpa oleh MDM CSP dalam hitungan menit.
  3. Perangkat tidak bisa mencapai Domain Controller. VPN split-tunnel, DNS ke resolver publik seperti 1.1.1.1, atau site link yang salah. Klien tidak akan mengunduh GPO yang tidak bisa dia temukan.
  4. WMI filter yang salah query. Filter Select * from Win32_OperatingSystem where Version like "10.0.22%" tidak cocok untuk Windows 11 25H2 karena versinya 10.0.26100 atau lebih tinggi.
  5. Item-level targeting Preferences yang tidak match. Filter berbasis OU membership sering salah setelah komputer dipindah OU.
  6. Konflik loopback processing. User Configuration diterapkan berdasarkan lokasi komputer, membingungkan admin yang berasumsi GPO mengikuti user object.
  7. ADMX template hilang di Central Store, setting tampil di GPO editor pengelola tapi tidak dikenali klien.

Saya selalu bilang ke tim tier 1: jangan pernah loncat langsung ke reboot atau gpupdate /force. Itu obat sakit kepala, bukan diagnosis. Kumpulkan bukti dulu, baru bertindak.

Cara mengecek apakah Group Policy berhasil diterapkan

Perintah pertama yang saya jalankan di setiap tiket GPO adalah gpresult /h. Perintah ini menghasilkan laporan HTML yang menunjukkan setiap GPO yang di-scan, mana yang berhasil, mana yang diblokir, dan alasan spesifiknya. Jauh lebih berguna daripada gpresult /r yang cuma menampilkan text mentah.

# Jalankan sebagai Administrator di sesi user yang bermasalah
# /h = output HTML, /f = force overwrite jika file sudah ada
gpresult /h C:\Temp\gpo-laporan.html /f

# Untuk cek policy user tertentu di komputer bersama
gpresult /h C:\Temp\gpo-user.html /user DOMAIN\namauser /f

# Cek hanya Computer Configuration
gpresult /scope computer /h C:\Temp\gpo-komputer.html /f

Buka file HTML tersebut dan scroll ke bagian Applied GPOs dan Denied GPOs. Kolom "Reason Denied" adalah tempat kebenaran tinggal. Alasan yang sering muncul:

  • Access Denied (Security Filtering): user atau computer object tidak lolos permission Read/Apply Group Policy pada GPO.
  • Empty: GPO tidak mengandung setting apapun di scope yang di-scan (misalnya semua setting ada di Computer Configuration tapi Anda scan User).
  • WMI Filter: query WMI di GPO mengembalikan false untuk perangkat ini.
  • Disabled Link: link GPO ke OU dinonaktifkan.
  • Not Applied (Unknown Reason): ini biasanya berarti error CSE, lanjut ke Event Viewer.

Diagnosis mendalam dengan gpresult dan Event Viewer

Setelah gpresult, tempat kedua yang wajib dicek adalah channel Event Viewer khusus Group Policy. Ini bukan Application log yang biasa dilihat orang. Banyak helpdesk melewatinya karena tidak tahu lokasinya.

Buka Event Viewer → Applications and Services Logs → Microsoft → Windows → GroupPolicy → Operational. Setiap siklus Group Policy processing tercatat di sini dengan timing detail per CSE (Client-Side Extension). Filter by Level: Error dan Warning.

Event ID yang paling sering saya cari:

  • 1058: error saat mengakses file gpt.ini. Biasanya masalah SYSVOL access atau DFS namespace tidak resolvable.
  • 1030: Group Policy processing gagal total. Cek DNS dan konektivitas ke Domain Controller.
  • 7016: timing detail per CSE. Kalau salah satu CSE (misalnya Security, Registry, Software Installation) memakan lebih dari 30 detik, ada masalah di CSE itu spesifik.
  • 4098: Preferences item gagal apply. Detail error ada di description, biasanya "The user does not have RSoP data" atau item-level targeting salah.
  • 1085: CSE spesifik gagal. Cari GUID CSE di description untuk tahu extension mana.

Untuk analisis lebih dalam, aktifkan gpsvc verbose logging. Ini biasanya diperlukan hanya untuk kasus rumit:

# Aktifkan verbose logging untuk Group Policy service
# Nilai 0x30002 = verbose ke file gpsvc.log
reg add "HKLM\Software\Microsoft\Windows NT\CurrentVersion\Diagnostics" /v GPSvcDebugLevel /t REG_DWORD /d 0x30002 /f

# Buat folder log
mkdir C:\Windows\Debug\UserMode

# Trigger gpupdate lalu baca log
gpupdate /force
notepad C:\Windows\Debug\UserMode\gpsvc.log

# Setelah selesai, matikan verbose logging (jangan lupa!)
reg delete "HKLM\Software\Microsoft\Windows NT\CurrentVersion\Diagnostics" /v GPSvcDebugLevel /f

Security filtering, WMI filter, dan item-level targeting

Security filtering adalah pintu utama GPO. Kalau user atau computer object tidak punya permission Read dan Apply Group Policy, GPO tidak akan diterapkan. Sederhana, tapi ini adalah root cause dari mungkin 30% tiket GPO yang saya tangani.

Sejak Microsoft merilis patch untuk CVE-2020-1317 (Zerologon), grup Authenticated Users WAJIB punya permission Read di setiap GPO. Kalau tidak, GPO tidak bisa di-download oleh computer object. Banyak admin senior menghapus Authenticated Users dari Security Filtering dengan asumsi grup custom sudah cukup, dan itu memecahkan GPO.

Cara cek yang benar dari GPMC:

  1. Buka Group Policy Management Console, pilih GPO yang bermasalah.
  2. Tab Delegation, klik Advanced.
  3. Pastikan Authenticated Users ada dengan minimum Read permission (Allow).
  4. Tab Scope, di Security Filtering, pastikan grup target juga ada.

Kalau Anda ingin restrict GPO ke grup spesifik tanpa menghapus Authenticated Users, gunakan pola ini:

  • Di Security Filtering (Scope tab): grup target Anda saja, dengan Read dan Apply Group Policy.
  • Di Delegation, Advanced: tambahkan Authenticated Users dengan Read saja (jangan Apply).

Untuk WMI filter, cek query dengan wbemtest di klien:

# Buka wbemtest, connect ke root\CIMv2
# Contoh test query untuk WMI filter Windows 11 25H2
Select * from Win32_OperatingSystem where Version like "10.0.26%" and ProductType = "1"

# Atau via PowerShell, jauh lebih cepat
Get-WmiObject -Query 'Select * from Win32_OperatingSystem where Version like "10.0.26%"'

# Cek versi build persis
(Get-CimInstance Win32_OperatingSystem).Version

Kalau query return 0 rows, WMI filter gagal dan GPO tidak diterapkan. Yang paling sering kena: filter yang dibuat di era Windows 10 21H2 dengan pattern 10.0.19% yang tidak cocok untuk Windows 11 build 26100 ke atas. Update pattern-nya ke 10.0.2% atau lebih longgar.

Konflik Group Policy dengan MDM Intune di co-management

Ini masalah 2026 yang membuat helpdesk tradisional pusing. Perangkat hybrid-joined ke Entra ID juga terdaftar di Intune, dan setting yang sama diatur di dua tempat. Behavior default di Windows 11 24H2 dan 25H2 adalah MDM menang. Kalau CSP Intune mengatur setting yang overlap dengan ADMX, kebijakan MDM diterapkan dan GPO diabaikan setelah reboot berikutnya.

Kebijakan yang mengontrol ini adalah MDMWinsOverGP, sebuah CSP di path ./Device/Vendor/MSFT/Policy/Config/ControlPolicyConflict/MDMWinsOverGP. Nilai default sejak Windows 11 22H2 adalah 1 (MDM wins).

Cara cek apakah kebijakan Anda kena konflik ini:

# Cek MDM registration status
dsregcmd /status

# Cari baris berikut di output:
# AzureAdJoined : YES
# DomainJoined : YES        <-- ini artinya hybrid join
# MdmUrl : https://...      <-- ini artinya MDM (Intune) enrolled

# Cek policy MDM yang aktif via registry
Get-ChildItem 'HKLM:\SOFTWARE\Microsoft\PolicyManager\current\device' -Recurse |
    Select-Object PSChildName, Property

# Log MDM sync ada di Event Viewer:
# Applications and Services Logs > Microsoft > Windows > DeviceManagement-Enterprise-Diagnostics-Provider > Admin

Bahasan lengkap tentang integrasi Entra ID dan kebijakan identity ada di panduan kami tentang Microsoft Entra ID dan Conditional Access. Ini konteks penting sebelum melakukan perubahan pada MDMWinsOverGP.

Kalau Anda perlu GPO tetap menang untuk setting tertentu (misalnya karena legal compliance masih mengacu ke GPO template), aktifkan setting MDM Wins over GP ke 0 untuk device tersebut, atau exclude perangkat dari policy assignment Intune yang overlap. Referensi resmi Microsoft ada di Policy CSP - ControlPolicyConflict.

Loopback processing dan skenario user policy tidak jalan

Jujur, loopback processing adalah salah satu topik paling disalahpahami di Group Policy. Ini mengubah cara Windows menentukan User Configuration mana yang diterapkan. Alih-alih mengikuti lokasi user object di AD, User Configuration diterapkan berdasarkan lokasi computer object.

Ada dua mode:

  • Merge Mode: User Configuration dari GPO user ditambah User Configuration dari GPO computer (yang di-loopback). Kalau ada konflik, GPO computer menang.
  • Replace Mode: hanya User Configuration dari GPO computer yang diterapkan. GPO user object diabaikan total.

Ini berguna untuk kios, server RDS, atau lab komputer. User harus dapat pengalaman spesifik komputer terlepas dari siapa mereka. Tapi kalau helpdesk tidak tahu loopback aktif, mereka akan bingung kenapa user setting dari GPO A tidak jalan padahal user object ada di OU yang seharusnya kena GPO A.

Cara cek apakah loopback aktif di komputer:

# Cek registry key loopback
Get-ItemProperty 'HKLM:\Software\Policies\Microsoft\Windows\System' -Name UserPolicyMode -ErrorAction SilentlyContinue

# Nilai:
# 0 = Loopback disabled
# 1 = Merge mode
# 2 = Replace mode

# Atau lihat langsung di gpresult HTML report, bagian
# "Group Policy Objects applied" untuk User Configuration akan menunjukkan
# GPO yang di-link ke OU komputer, bukan OU user

Skenario umum: user X dari OU Marketing login ke laptop di OU Sales-Kiosks yang punya loopback Replace. GPO Marketing user (misalnya folder redirection OneDrive) tidak berjalan. Ini bukan bug, ini memang design. Solusinya: matikan loopback di OU Sales-Kiosks, atau tambahkan folder redirection setting di GPO yang di-link ke OU tersebut.

Masalah replikasi Active Directory dan DNS

GPO disimpan di dua tempat: metadata di partisi Active Directory (replikasi via AD), dan file (ADM/ADMX, registry.pol, scripts) di SYSVOL (replikasi via DFSR). Kalau kedua replikasi ini tidak sync, klien mengalami "GPO baru tidak muncul" atau "setting lama masih diterapkan".

Cek health replikasi dari server DC:

# Cek replikasi AD partition
repadmin /showrepl
repadmin /replsummary

# Cek DFSR health untuk SYSVOL
dfsrdiag ReplicationState /member:DC01

# Cek konsistensi SYSVOL antar DC
# Hash file GPT.INI untuk GPO tertentu harus sama di semua DC
$gpoId = "{31B2F340-016D-11D2-945F-00C04FB984F9}"  # Default Domain Policy
Get-FileHash "\\DC01\SYSVOL\domain.local\Policies\$gpoId\GPT.INI"
Get-FileHash "\\DC02\SYSVOL\domain.local\Policies\$gpoId\GPT.INI"

Dari sisi klien, cek DNS resolution. Klien harus bisa resolve _ldap._tcp.dc._msdcs.domain.local ke Domain Controller di site yang sama. Kalau tidak, klien akan connect ke DC di site remote, atau tidak connect sama sekali.

# Cek DC yang digunakan klien
nltest /dsgetdc:domain.local

# Cek DNS resolution untuk DC discovery
nslookup -type=SRV _ldap._tcp.dc._msdcs.domain.local

# Cek site membership klien, harus sesuai lokasi fisik
nltest /dsgetsite

# Kalau site salah, cek subnet-to-site mapping di AD Sites and Services
# Klien menentukan site berdasarkan IP-nya vs subnet yang terdaftar

Script PowerShell diagnosis untuk helpdesk tier 1

Berikut script yang saya berikan ke tim tier 1 untuk auto-diagnosis GPO. Berikan ini ke junior Anda, mereka bisa menutup tiket dalam 5 menit alih-alih eskalasi ke tier 2. Script harus dijalankan sebagai Administrator di perangkat yang bermasalah.

# Diagnose-GroupPolicy.ps1
# Script diagnosis Group Policy untuk helpdesk tier 1
# Jalankan sebagai Administrator: powershell -ExecutionPolicy Bypass -File .\Diagnose-GroupPolicy.ps1

param(
    [string]$OutputFolder = "C:\Temp\GPO-Diagnosis"
)

# Buat folder output kalau belum ada
if (-not (Test-Path $OutputFolder)) {
    New-Item -Path $OutputFolder -ItemType Directory -Force | Out-Null
}

$timestamp = Get-Date -Format "yyyyMMdd-HHmmss"
$logFile = Join-Path $OutputFolder "diagnosis-$timestamp.log"

# Fungsi helper untuk logging ke file dan console
function Write-Log {
    param([string]$Message, [string]$Level = "INFO")
    $line = "[$(Get-Date -Format 'HH:mm:ss')] [$Level] $Message"
    Write-Host $line
    Add-Content -Path $logFile -Value $line
}

Write-Log "===== Group Policy Diagnosis Started ====="
Write-Log "Komputer: $env:COMPUTERNAME | User: $env:USERNAME | Domain: $env:USERDNSDOMAIN"

# 1. Generate laporan gpresult HTML
Write-Log "Menjalankan gpresult /h..."
$gpresultFile = Join-Path $OutputFolder "gpresult-$timestamp.html"
gpresult /h $gpresultFile /f 2>&1 | Out-Null
Write-Log "Laporan HTML disimpan di: $gpresultFile"

# 2. Cek Domain Controller yang digunakan
Write-Log "Mengecek DC discovery..."
$dcInfo = nltest /dsgetdc:$env:USERDNSDOMAIN 2>&1
Write-Log "DC info: $($dcInfo -join ' | ')"

# 3. Cek site membership; GPO replication site-aware
$siteInfo = nltest /dsgetsite 2>&1
Write-Log "Site membership: $siteInfo"

# 4. Cek MDM enrollment (untuk deteksi konflik co-management)
Write-Log "Mengecek MDM enrollment status..."
$dsregOutput = dsregcmd /status 2>&1
$mdmUrl = $dsregOutput | Select-String "MdmUrl" | ForEach-Object { $_.Line.Trim() }
if ($mdmUrl) {
    Write-Log "PERINGATAN: Perangkat terdaftar di MDM. Konflik GPO/MDM mungkin: $mdmUrl" "WARN"
}

# 5. Ambil GPO event log 24 jam terakhir dari channel Operational
Write-Log "Mengumpulkan event GroupPolicy 24 jam terakhir..."
$events = Get-WinEvent -FilterHashtable @{
    LogName = 'Microsoft-Windows-GroupPolicy/Operational'
    Level = 2,3  # Error, Warning
    StartTime = (Get-Date).AddHours(-24)
} -ErrorAction SilentlyContinue

if ($events) {
    $eventFile = Join-Path $OutputFolder "gpo-events-$timestamp.csv"
    $events | Select-Object TimeCreated, Id, LevelDisplayName, Message |
        Export-Csv -Path $eventFile -NoTypeInformation
    Write-Log "Ditemukan $($events.Count) event error/warning. Disimpan di: $eventFile" "WARN"
} else {
    Write-Log "Tidak ada event error/warning 24 jam terakhir."
}

# 6. Cek versi GPT klien vs waktu terakhir Group Policy diterapkan
$lastApplied = Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\State\Machine' -Name 'Extension-List' -ErrorAction SilentlyContinue
$gpHistory = Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\History' -ErrorAction SilentlyContinue
Write-Log "Group Policy terakhir diproses: $($gpHistory.LastPolicyDownloadTime)"

# 7. Force update GPO dengan output detail
Write-Log "Menjalankan gpupdate /force..."
$gpupdateOutput = gpupdate /force 2>&1
Write-Log "Output gpupdate: $($gpupdateOutput -join ' | ')"

Write-Log "===== Diagnosis Selesai ====="
Write-Log "Kirim folder $OutputFolder ke tier 2 kalau masalah belum teratasi."

Simpan script ini di share network yang bisa diakses semua helpdesk. Tim tier 1 tinggal mengetik satu baris di RDP session pengguna dan mengumpulkan bukti lengkap untuk eskalasi. Untuk masalah spesifik printer yang sering bertumbukan dengan GPO printer deployment, lihat panduan kami tentang troubleshooting printer Windows 11.

Pertanyaan Yang Sering Diajukan

Bagaimana cara reset Group Policy ke default di Windows 11?

Hapus folder C:\Windows\System32\GroupPolicy dan C:\Windows\System32\GroupPolicyUsers, lalu jalankan gpupdate /force /boot. Ini menghapus cache local GPO dan memaksa klien mengunduh ulang dari DC. Jangan lakukan ini di perangkat yang tidak bisa reach DC, karena semua policy akan hilang sampai koneksi domain pulih.

Apa perbedaan gpupdate dan gpupdate /force?

gpupdate hanya memproses GPO yang berubah sejak siklus terakhir (delta). gpupdate /force memproses ulang semua GPO tanpa memandang perubahan. Gunakan /force hanya saat troubleshooting, karena di produksi ini menambah beban DC dan client processing time yang tidak perlu.

Kenapa Group Policy user tidak diterapkan meski computer policy jalan?

Tiga penyebab tersering: (1) loopback processing aktif di komputer sehingga user policy diambil dari OU komputer, bukan OU user; (2) user object tidak lolos security filtering atau ada di OU yang berbeda; (3) Fast Logon Optimization membuat user policy baru berlaku pada logon berikutnya. Cek dengan gpresult /scope user /h laporan.html untuk melihat scope user spesifik.

Kenapa GPO baru tidak muncul setelah beberapa jam menunggu?

GPO refresh interval default di client adalah 90 menit ditambah random 30 menit. Untuk DC, intervalnya 5 menit. Kalau setelah 2 jam GPO baru tidak muncul, cek replikasi AD dan SYSVOL dengan repadmin /showrepl dan dfsrdiag ReplicationState. Kemungkinan GPO belum ter-replicate ke DC yang klien contact.

Apakah Group Policy masih relevan di era Intune 2026?

Ya, terutama untuk on-prem AD environment dan lingkungan hybrid. Meski Microsoft mendorong migrasi ke Intune Settings Catalog, ribuan ADMX template legacy dan aplikasi enterprise masih bergantung pada GPO. Untuk perangkat co-managed, pahami MDMWinsOverGP agar tidak kaget saat setting GPO tiba-tiba di-override oleh policy Intune.

Tom Hanley
Tentang Penulis Tom Hanley

Service desk lead and unapologetic Windows expert. Has opinions about Group Policy that he will share at length.