{"id":393,"title":"Active Directory'de \"User Must Change Password at Next Logon\" Se\u00e7ene\u011fini De\u011fi\u015ftirememe Sorunu ve AdminSDHolder Etkisi","content":"<p>Active Directory Users and Computers (ADUC) konsolunda bir kullan\u0131c\u0131 hesab\u0131n\u0131n &ouml;zelliklerini d&uuml;zenlemeye &ccedil;al\u0131\u015f\u0131rken,&nbsp;<strong>\"User must change password at next logon\"<\/strong> se&ccedil;ene\u011finin i\u015faretini kald\u0131ramama veya de\u011fi\u015ftirememe durumu ile kar\u015f\u0131la\u015fabilirsiniz. Bu sorun genellikle yetki eksikli\u011finden kaynaklan\u0131r, ancak arka planda &ccedil;ok daha karma\u015f\u0131k bir g&uuml;venlik mekanizmas\u0131 &ccedil;al\u0131\u015f\u0131yor olabilir.<\/p>\n<p>Bu yaz\u0131da, b&ouml;yle bir sorunla kar\u015f\u0131la\u015ft\u0131\u011f\u0131m\u0131zda nas\u0131l te\u015fhis edece\u011fimizi ve &ccedil;&ouml;zece\u011fimizi ad\u0131m ad\u0131m inceleyece\u011fiz.<\/p>\n<h2>\u0130lk Te\u015fhis: PowerShell ile Deneme<\/h2>\n<p>GUI &uuml;zerinden de\u011fi\u015fiklik yapamad\u0131\u011f\u0131n\u0131zda, PowerShell kullanarak sorunu daha detayl\u0131 te\u015fhis edebilirsiniz:<\/p>\n<pre><code class=\"language-powershell\">Set-ADUser -Identity \"jdoe\" -ChangePasswordAtLogon $false\n<\/code><\/pre>\n<p>Bu komutu &ccedil;al\u0131\u015ft\u0131rd\u0131\u011f\u0131n\u0131zda \u015fu hatay\u0131 al\u0131yorsan\u0131z, sorun yetki eksikli\u011fidir:<\/p>\n<pre><code>Set-ADUser : Insufficient access rights to perform the operation\nAt line:1 char:1\n+ Set-ADUser -Identity \"jdoe\" -ChangePasswordAtLogon $false\n+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n    + CategoryInfo          : NotSpecified: (jdoe:ADUser) [Set-ADUser], ADException\n    + FullyQualifiedErrorId : ActiveDirectoryServer:8344,Microsoft.ActiveDirectory.Management.Commands.SetADUser\n<\/code><\/pre>\n<h2>Derin Te\u015fhis: AdminCount Kontrol&uuml;<\/h2>\n<p>\"Insufficient access rights\" hatas\u0131 ald\u0131\u011f\u0131n\u0131zda, kullan\u0131c\u0131n\u0131n &ouml;zel bir koruma alt\u0131nda olup olmad\u0131\u011f\u0131n\u0131 kontrol etmelisiniz. Bunun i&ccedil;in a\u015fa\u011f\u0131daki komutu kullan\u0131n:<\/p>\n<pre><code class=\"language-powershell\">Get-ADUser -Identity \"jdoe\" -Properties ProtectedFromAccidentalDeletion, adminCount\n<\/code><\/pre>\n<p>&Ouml;rnek &ccedil;\u0131kt\u0131:<\/p>\n<pre><code>adminCount                      : 1\nDistinguishedName               : CN=John Doe,OU=IT,OU=Headquarters,DC=company,DC=local\nEnabled                         : True\nGivenName                       : John\nName                            : John Doe\nObjectClass                     : user\nObjectGUID                      : c70338ac-0a5e-4f12-8852-d56596ccdb57\nProtectedFromAccidentalDeletion : False\nSamAccountName                  : jdoe\nSID                             : S-1-5-21-938383202-2505302177-1015948312-13583\nSurname                         : Doe\nUserPrincipalName               : jdoe@company.local\n<\/code><\/pre>\n<h3>Kritik Nokta: adminCount = 1<\/h3>\n<p>E\u011fer <code>adminCount : 1<\/code> de\u011ferini g&ouml;r&uuml;yorsan\u0131z, <strong>i\u015fte sorunun as\u0131l kayna\u011f\u0131 budur!<\/strong><\/p>\n<h2>AdminSDHolder Nedir?<\/h2>\n<p><strong>AdminSDHolder<\/strong>, Active Directory'de ayr\u0131cal\u0131kl\u0131 (privileged) kullan\u0131c\u0131lar\u0131 ve gruplar\u0131 korumak i&ccedil;in tasarlanm\u0131\u015f otomatik bir g&uuml;venlik mekanizmas\u0131d\u0131r.<\/p>\n<h3>Nas\u0131l &Ccedil;al\u0131\u015f\u0131r?<\/h3>\n<ol>\n<li><strong>Korunan Gruplar<\/strong>: Domain Admins, Enterprise Admins, Schema Admins, Backup Operators gibi kritik gruplar<\/li>\n<li><strong>SDProp (Security Descriptor Propagator)<\/strong>: Her 60 dakikada bir &ccedil;al\u0131\u015fan bir i\u015flem<\/li>\n<li><strong>\u0130zin S\u0131f\u0131rlama<\/strong>: Bu gruplar\u0131n &uuml;yelerinin izinlerini AdminSDHolder nesnesindeki \u015fablona g&ouml;re s\u0131f\u0131rlar<\/li>\n<li><strong>adminCount Bayra\u011f\u0131<\/strong>: Bir kullan\u0131c\u0131 bu gruplara eklendi\u011finde <code>adminCount = 1<\/code> olarak i\u015faretlenir<\/li>\n<\/ol>\n<h3>Sorun Neden Olu\u015fuyor?<\/h3>\n<p>AdminSDHolder mekanizmas\u0131, korumal\u0131 kullan\u0131c\u0131lar\u0131n izinlerini k\u0131s\u0131tlar ve <strong>sadece Domain Admin gibi en y&uuml;ksek yetkili hesaplar\u0131n<\/strong> bu kullan\u0131c\u0131lar &uuml;zerinde de\u011fi\u015fiklik yapmas\u0131na izin verir. Bu, g&uuml;venlik i&ccedil;in tasarlanm\u0131\u015f bir &ouml;zelliktir, ancak bazen istenmeyen sonu&ccedil;lar do\u011furabilir.<\/p>\n<h2>Sorunun &Ccedil;&ouml;z&uuml;m&uuml;<\/h2>\n<h3>&Ccedil;&ouml;z&uuml;m 1: Domain Admin Hesab\u0131yla \u0130\u015flem Yap\u0131n<\/h3>\n<p>En basit ve en g&uuml;venli &ccedil;&ouml;z&uuml;m, <strong>tam yetkili bir Domain Admin hesab\u0131<\/strong> kullanmakt\u0131r:<\/p>\n<pre><code class=\"language-powershell\"># Domain Admin hesab\u0131yla oturum a&ccedil;\u0131n ve tekrar deneyin\nSet-ADUser -Identity \"jdoe\" -ChangePasswordAtLogon $false\n<\/code><\/pre>\n<h3>&Ccedil;&ouml;z&uuml;m 2: Kullan\u0131c\u0131n\u0131n Grup &Uuml;yeliklerini Kontrol Edin<\/h3>\n<p>Kullan\u0131c\u0131n\u0131n hangi ayr\u0131cal\u0131kl\u0131 gruplarda oldu\u011funu kontrol edin:<\/p>\n<pre><code class=\"language-powershell\">Get-ADUser -Identity \"jdoe\" -Properties MemberOf | Select-Object -ExpandProperty MemberOf\n<\/code><\/pre>\n<p>E\u011fer kullan\u0131c\u0131 art\u0131k kritik gruplardan birinde de\u011filse (&ouml;rne\u011fin daha &ouml;nce Domain Admins'te iken &ccedil;\u0131kar\u0131lm\u0131\u015fsa) ancak <code>adminCount<\/code> hala 1 ise, manuel d&uuml;zeltme yapabilirsiniz.<\/p>\n<h3>&Ccedil;&ouml;z&uuml;m 3: adminCount De\u011ferini S\u0131f\u0131rlay\u0131n (D\u0130KKATL\u0130!)<\/h3>\n<p>\u26a0\ufe0f <strong>UYARI<\/strong>: Bu i\u015flemi yapmadan &ouml;nce mutlaka kullan\u0131c\u0131n\u0131n ger&ccedil;ekten ayr\u0131cal\u0131kl\u0131 bir grupta olup olmad\u0131\u011f\u0131n\u0131 kontrol edin!<\/p>\n<pre><code class=\"language-powershell\"># adminCount de\u011ferini temizle\nSet-ADUser -Identity \"jdoe\" -Clear adminCount\n\n# Varsay\u0131lan DACL'i geri y&uuml;kle\ndsacls \"CN=John Doe,OU=IT,OU=Headquarters,DC=company,DC=local\" \/resetDefaultDACL\n<\/code><\/pre>\n<p>Bu i\u015flemlerden sonra tekrar deneyin:<\/p>\n<pre><code class=\"language-powershell\">Set-ADUser -Identity \"jdoe\" -ChangePasswordAtLogon $false\n<\/code><\/pre>\n<h3>&Ccedil;&ouml;z&uuml;m 4: Kimlik Do\u011frulama ile PowerShell Kullan\u0131m\u0131<\/h3>\n<p>E\u011fer farkl\u0131 kimlik bilgileri kullanman\u0131z gerekiyorsa:<\/p>\n<pre><code class=\"language-powershell\">$cred = Get-Credential\nSet-ADUser -Identity \"jdoe\" -ChangePasswordAtLogon $false -Credential $cred\n<\/code><\/pre>\n<h2>Yetki Kontrol&uuml; Nas\u0131l Yap\u0131l\u0131r?<\/h2>\n<p>Mevcut oturumunuzun yetkilerini kontrol etmek i&ccedil;in:<\/p>\n<pre><code class=\"language-powershell\"># Hangi hesapla oturum a&ccedil;t\u0131\u011f\u0131n\u0131z\u0131 g&ouml;ster\nwhoami\n\n# Domain Admins grubunda olup olmad\u0131\u011f\u0131n\u0131z\u0131 kontrol et\nwhoami \/groups | findstr \"Domain Admins\"\n\n# T&uuml;m grup &uuml;yeliklerinizi listele\nwhoami \/groups\n<\/code><\/pre>\n<h2>En \u0130yi Uygulama &Ouml;nerileri<\/h2>\n<h3>1. <strong>Least Privilege Prensibi<\/strong><\/h3>\n<p>Normal kullan\u0131c\u0131lar\u0131 gereksiz yere ayr\u0131cal\u0131kl\u0131 gruplara eklemeyin. Ge&ccedil;ici yetki gerekiyorsa, i\u015flem bitti\u011finde gruptan &ccedil;\u0131kar\u0131n.<\/p>\n<h3>2. <strong>adminCount Temizli\u011fi<\/strong><\/h3>\n<p>Ayr\u0131cal\u0131kl\u0131 gruplardan &ccedil;\u0131kar\u0131lan kullan\u0131c\u0131lar\u0131n <code>adminCount<\/code> de\u011ferlerini periyodik olarak kontrol edin ve temizleyin:<\/p>\n<pre><code class=\"language-powershell\"># adminCount = 1 olan ancak ayr\u0131cal\u0131kl\u0131 grupta olmayan kullan\u0131c\u0131lar\u0131 bul\n$protectedGroups = @(\n    \"Domain Admins\",\n    \"Enterprise Admins\",\n    \"Schema Admins\",\n    \"Administrators\",\n    \"Account Operators\",\n    \"Server Operators\",\n    \"Print Operators\",\n    \"Backup Operators\",\n    \"Replicator\"\n)\n\n$users = Get-ADUser -Filter {adminCount -eq 1} -Properties adminCount, MemberOf\n\nforeach ($user in $users) {\n    $isProtected = $false\n    foreach ($group in $user.MemberOf) {\n        $groupName = (Get-ADGroup $group).Name\n        if ($protectedGroups -contains $groupName) {\n            $isProtected = $true\n            break\n        }\n    }\n    \n    if (-not $isProtected) {\n        Write-Host \"Kullan\u0131c\u0131 art\u0131k korunmuyor: $($user.SamAccountName)\" -ForegroundColor Yellow\n        # \u0130sterseniz burada adminCount'u temizleyebilirsiniz\n        # Set-ADUser -Identity $user -Clear adminCount\n    }\n}\n<\/code><\/pre>\n<h3>3. <strong>Delegated Permissions Kullan\u0131m\u0131<\/strong><\/h3>\n<p>Her durumda Domain Admin yetkisi kullanmak yerine, belirli OU'lar i&ccedil;in delegate edilmi\u015f yetkiler kullan\u0131n:<\/p>\n<ul>\n<li>Active Directory Users and Computers'da ilgili OU'ya sa\u011f t\u0131klay\u0131n<\/li>\n<li><strong>Delegate Control<\/strong> se&ccedil;ene\u011fini se&ccedil;in<\/li>\n<li>Gerekli izinleri ilgili IT personeline verin<\/li>\n<\/ul>\n<h3>4. <strong>Audit ve Dok&uuml;mantasyon<\/strong><\/h3>\n<ul>\n<li>Ayr\u0131cal\u0131kl\u0131 grup de\u011fi\u015fikliklerini audit edin<\/li>\n<li>adminCount de\u011fi\u015fikliklerini logla<\/li>\n<li>D&uuml;zenli olarak ayr\u0131cal\u0131kl\u0131 grup &uuml;yeliklerini g&ouml;zden ge&ccedil;irin<\/li>\n<\/ul>\n<h2>&Ouml;zet ve Kontrol Listesi<\/h2>\n<p>Bir kullan\u0131c\u0131 hesab\u0131nda \"User must change password at next logon\" se&ccedil;ene\u011fini de\u011fi\u015ftiremiyorsan\u0131z:<\/p>\n<ul>\n<li>[ ] PowerShell ile <code>Set-ADUser<\/code> komutunu deneyin<\/li>\n<li>[ ] Hata mesaj\u0131n\u0131 kontrol edin (Insufficient access rights?)<\/li>\n<li>[ ] <code>adminCount<\/code> de\u011ferini kontrol edin (<code>Get-ADUser -Identity \"kullanici\" -Properties adminCount<\/code>)<\/li>\n<li>[ ] <code>adminCount = 1<\/code> ise, kullan\u0131c\u0131n\u0131n grup &uuml;yeliklerini kontrol edin<\/li>\n<li>[ ] Domain Admin hesab\u0131yla i\u015flemi deneyin<\/li>\n<li>[ ] Kullan\u0131c\u0131 ayr\u0131cal\u0131kl\u0131 grupta de\u011filse <code>adminCount<\/code> de\u011ferini temizleyin<\/li>\n<li>[ ] DACL'i s\u0131f\u0131rlay\u0131n (<code>dsacls ... \/resetDefaultDACL<\/code>)<\/li>\n<li>[ ] De\u011fi\u015fikli\u011fi tekrar deneyin<\/li>\n<\/ul>\n<h2>&nbsp;<\/h2>\n<p>Active Directory'deki AdminSDHolder mekanizmas\u0131, kritik hesaplar\u0131 korumak i&ccedil;in tasarlanm\u0131\u015f g&uuml;&ccedil;l&uuml; bir g&uuml;venlik &ouml;zelli\u011fidir. Ancak, yanl\u0131\u015f yap\u0131land\u0131rma veya ge&ccedil;mi\u015f grup &uuml;yelikleri nedeniyle bazen beklenmeyen sorunlara yol a&ccedil;abilir. <code>adminCount = 1<\/code> de\u011ferini g&ouml;rd&uuml;\u011f&uuml;n&uuml;zde, kullan\u0131c\u0131n\u0131n neden korundu\u011funu anlamak ve uygun &ccedil;&ouml;z&uuml;m&uuml; uygulamak &ouml;nemlidir.<\/p>\n<p>Bu sorunu &ccedil;&ouml;zerken her zaman g&uuml;venlik ve least privilege prensiplerine sad\u0131k kal\u0131n. Gerekmedik&ccedil;e kullan\u0131c\u0131lar\u0131 ayr\u0131cal\u0131kl\u0131 gruplardan &ccedil;\u0131kar\u0131n ve periyodik olarak <code>adminCount<\/code> de\u011ferlerini temizleyin.<\/p>\n<hr>\n<p><strong>Faydal\u0131 Kaynaklar:<\/strong><\/p>\n<ul>\n<li>Microsoft Docs: AdminSDHolder ve Protected Groups<\/li>\n<li>Active Directory Security Best Practices<\/li>\n<li>PowerShell Active Directory Module Documentation<\/li>\n<\/ul>\n<p><strong>Yazar Notu:<\/strong> Bu yaz\u0131da ele al\u0131nan senaryolar ger&ccedil;ek production ortamlar\u0131ndan al\u0131nm\u0131\u015ft\u0131r. &Uuml;retim ortam\u0131nda de\u011fi\u015fiklik yapmadan &ouml;nce mutlaka test ortam\u0131nda deneyin ve gerekli backup'lar\u0131 al\u0131n.<\/p>","excerpt":"Active Directory Users and Computers (ADUC) konsolunda bir kullan\u0131c\u0131 hesab\u0131n\u0131n \u00f6zelliklerini d\u00fczenlemeye \u00e7al\u0131\u015f\u0131rken,\u00a0\"User must change password at next logon\" se\u00e7ene\u011finin i\u015faretini kald\u0131ramama veya de\u011fi\u015ftirememe durumu ile kar\u015f\u0131la\u015fabilirsiniz","created_at":"2026-02-04 22:25:30","updated_at":"2026-09-07 15:20:40","category_id":6,"view_count":583,"reading_time":7,"status":"published","editor_choice":0,"is_editor_choice":0,"published_at":"2026-02-04 19:25:30","featured_image":"\/uploads\/images\/2026\/02\/69839d2774f62_1770233127.jpg","slug":"active-directory-de-user-must-change-password-at-next-logon-secenegini-degistirememe-sorunu-ve-adminsdholder-etkisi","category_name":"Sistem","category_slug":"sistem","category_color":"#3b82f6"}