Yönetici Olmayan Kullanıcıların Windows'u Yeniden Başlatmasına/Kapatmasına İzin Verme veya Engelleme


Bu makalede, Windows iş istasyonlarını veya sunucularını yeniden başlatmak veya kapatmak için yönetici olmayan kullanıcı izinlerini yönetmenin birkaç yolunu inceleyeceğiz. Varsayılan olarak, ayrıcalıklı olmayan kullanıcılar yalnızca Windows'un masaüstü sürümlerini yeniden başlatabilir ve kapatabilir ve bir Windows Server ana bilgisayarını yeniden başlatamaz (kapatma ve yeniden başlatma düğmeleri Başlat Menüsünde yoktur). Yerel yönetici ayrıcalıklarına sahip olmayan bir kullanıcının Windows Server'ı yeniden başlatmasına izin vermek mümkün müdür? Ters bir görev de vardır - kullanıcıların bir bilgi noktası, dağıtım konsolu vb. olarak kullanılan Windows 10 veya 11 yüklü bir bilgisayarı yeniden başlatmalarının nasıl önleneceği.

GPO aracılığıyla Windows'ta Kapatma/Yeniden Başlatma Seçeneğine Nasıl İzin Verilir veya Engellenir?

GPO bölümünde Bilgisayar Yapılandırması -> İlkeler -> Windows Ayarları -> Güvenlik Ayarları -> Yerel İlkeler -> bölümündeki Sistemi kapat parametresini kullanarak Windows'u yeniden başlatma veya kapatma izinlerini ayarlayabilirsiniz. Kullanıcı Hakları Ataması. Bu GPO seçeneği, hangi yerel olarak oturum açmış kullanıcıların bir işletim sistemini kapatabileceğini belirtmenize olanak tanır.

Windows 10/11 masaüstü sürümleri ve Windows Server sürümleri için varsayılan yeniden başlatma/kapatma izinlerinin farklı olduğunu lütfen unutmayın.

Yerel Grup İlkesi Düzenleyicisini (gpedit.msc) açın ve yukarıda belirtilen bölüme gidin. Gördüğünüz gibi, Yöneticiler, Kullanıcılar ve Yedekleme Operatörleri yerel gruplarının üyeleri, çalışan bir bilgisayarı kapatma/yeniden başlatma izinlerine sahiptir. Windows 10 veya 11.

Windows Server 2022/2019/2016'da yalnızca Yöneticiler veya Yedekleme Operatörleri sunucuyu kapatabilir veya yeniden başlatabilir. Çoğu durumda yönetici olmayan bir kullanıcının bir sunucuyu kapatma ayrıcalıklarına sahip olmaması gerektiğinden (yanlışlıkla bile olsa) bu mantıklıdır. Kullanıcılar yanlışlıkla Başlat menüsündeki "Kapat" düğmesine tıkladıkları için sık sık kapanan bir RDS grubu ana bilgisayarı hayal edin...

Active Directory etki alanı denetleyicilerinde, Windows'u kapatma hakları şu kişilere verilir:

  • Yöneticiler

  • Yedekleme Operatörleri

  • Sunucu Operatörleri

  • Yazdırma Operatörleri

Kullanıcının işletim sistemini yeniden başlatma/kapatma izinleri yoksa, aşağıdaki komutu çalıştırırken bir hata görünecektir:

shutdown -r -t 0
Access is denied.(5)

Belirli bir kullanıcının (yönetici hakları olmadan) Windows Server'ınızı yeniden başlatmasına izin vermek istiyorsanız, hesabını bu ilkeye eklemeniz ve bilgisayardaki GPO ayarlarını güncellemeniz gerekir.

Windows Server 2003 Resource Kit'teki eski ntrights aracını kullanarak bilgisayarı yerel olarak kapatma izinlerini el ile verebilirsiniz:

ntrights +r SeShutdownPrivilege -u a-d\j.smith

Kullanıcının Windows'u kapatmasını veya yeniden başlatmasını önlemek için:

ntrights -r SeShutdownPrivilege -u a-d\j.smith

Ya da tam tersi, masaüstü Windows 10/11 sürümünü çalıştıran iş istasyonu kullanıcılarının bir tür sunucu işlevi gerçekleştiren bilgisayarı yeniden başlatmasını engelleyebilirsiniz. Bu durumda, Kullanıcılar grubunu Sist down the system yerel politikasından kaldırmanız yeterlidir.

Aynı şekilde, bir etki alanı GPO'su kullanarak, bir Active Directory etki alanının belirli bir Organizasyonel Birimindeki (OU) tüm bilgisayarlarda, yönetici olmayan kullanıcıların kapatma/yeniden başlatma işlemlerini engelleyebilir (veya izin verebilirsiniz).

  1. AD'de, bilgisayarları yeniden başlatma izinlerini vermek istediğiniz grpAllowRestartComputers kullanıcı grubunu oluşturun. ADUC ek bileşenini kullanarak yeni bir grup oluşturabilirsiniz (

    dsa.msc

    ) veya New-ADGroup PowerShell cmdlet'i. Gruba kullanıcı ekleyin;

  2. Etki alanı Grup İlkesi Yönetim Konsolu'nu açın (

    gpmc.msc

    ). İlkeyi uygulamak istediğiniz bilgisayarların bulunduğu kuruluş birimini seçin ve Bu etki alanında bir GPO oluştur ve buraya bağla'yı seçin;

  3. GPO adını (gpoAllowReboot) ayarlayın ve düzenleyin;

  4. Bilgisayar Yapılandırması -> İlkeler -> Windows Ayarları -> Güvenlik Ayarları -> Kullanıcı Hakları Ataması'na gidin;

  5. Kapat seçeneğini açın, politikayı etkinleştirin ve hedef grubunuzu ekleyin (

    grpAllowRestartComputers

    ) ve yerleşik

    Administrators

    grup;

  6. Hedef bilgisayarlardaki GPO ayarlarını güncelleyin ve ortaya çıkan GPO ayarlarını kontrol edin.

    rsop.msc

    ek bileşen. Grubunuzdaki kullanıcılar artık bu ana bilgisayarı kapatabilir veya yeniden başlatabilir;

  7. İşletim sistemini kapatma ve yeniden başlatma seçenekleri, kullanıcının Başlat Menüsünde görünecektir.

Yönetici olmayan kullanıcılar için hizmetleri başlatma/durdurma/yeniden başlatma izinlerini de verebilirsiniz.

Yönetici İzinleri Olmadan Uzaktan Kapatmaya/Yeniden Başlatmaya İzin Ver

Bazı yönetici olmayan kullanıcıların Windows Sunucunuzu uzaktan yeniden başlatmasına izin verebilirsiniz.

shutdown

yerel yönetici ayrıcalıkları, Uzak Masaüstü (RDP) üzerinden oturum açma izni veya yerel oturum açma izinleri (bu oturum açma yöntemine izin verilmiyorsa) vermeden komut verebilirsiniz.

Bunu yapmak için, aynı GPO bölümündeki (Kullanıcı Hakları Ataması) Uzak sistemden zorla kapatma Grup İlkesi seçeneğine bir kullanıcı hesabı ekleyin.

Varsayılan olarak, yalnızca yöneticiler sunucuyu uzaktan kapatabilir/yeniden başlatabilir. İlkeye bir kullanıcı hesabı ekleyin.

SeRemoteShutdownPrivilege'i ntrights komut satırı aracını kullanarak da verebilirsiniz:

ntrights +r SeRemoteShutdownPrivilege -u a-d\j.smith

Bundan sonra, kullanıcı SeRemoteShutdown ayrıcalığına sahip olacak ve şu komutu kullanarak sunucuyu uzaktan yeniden başlatabilecektir:

shutdown -m \\hamb-rds01 -r -f -t 0

Veya Restart-Computer PowerShell cmdlet'ini kullanarak:

Restart-Computer -ComputerName hamb-rds01 -Force
VERBOSE: Performing the operation "Enable the Remote shutdown access rights and restart the computer." on target ...

Uzak bilgisayarda WinRM (Windows Uzaktan Yönetim) etkinleştirilmişse, bağlanmak için WMI yerine WSman'ı kullanabilirsiniz:

Restart-Computer -ComputerName hamb-rds01 -Protocol WSMan

Kullanıcının WMI ad alanına bağlanma izni yoksa bir hata görüntülenir:

Restart-Computer : Failed to restart the computer srv-rds1 with the following error message: The WS-Management servicecannot process the request. The WMI service returned an 'access denied' error. .

Ayrıca, bir kullanıcının uzak bir ana bilgisayarda yalnızca belirli komutları çalıştırmasına izin vermek için Windows PowerShell Just Enough Administration'ı (JEA) kullanabilirsiniz.

Windows'tan Kapatma veya Yeniden Başlatma Seçenekleri Devre Dışı Bırakılsın mı (Gizlensin)?

Kapatma, Yeniden Başlatma, Uyku ve Hazırda Bekleme seçeneklerini oturum açma ekranından ve Başlat Menüsünden gizlemek için Grup İlkesini kullanabilirsiniz. Bu GPO seçeneğine Kapat, Yeniden Başlat, Uyku ve Hazırda Beklet komutlarına Erişimi Kaldır ve Engelle adı verilir ve Kullanıcı Yapılandırması -> Yönetim Şablonları -> Başlat Menüsü ve Görev Çubuğu altında yer alır. >

Bu politikayı etkinleştirdikten sonra, bir kullanıcı yalnızca mevcut oturumun bağlantısını kesebilir veya

logoff

emretmek. Kapat, Uyut ve Yeniden Başlat düğmeleri kullanılamaz hale gelir.

Windows'ta Güç/Kapatma menüsünden yalnızca belirli bir öğeyi gizlemek için bazı kayıt defteri ayarlamalarını kullanabilirsiniz. Örneğin, Başlat menüsünde yalnızca "Kapat" seçeneğini gizlemek, ancak "Yeniden Başlat" seçeneğini korumak istiyorsunuz.

  1. Kayıt Defteri Düzenleyicisini açın (

    regedit.exe

    );

  2. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PolicyManager\default\Start\HideShutDown konumuna gidin;

  3. Değer seçeneğini 1 olarak değiştirin;

  4. Bu, Windows Başlat Menüsünden yalnızca "Kapat" seçeneğini gizleyecektir.

Bu kayıt defteri seçeneğini komut isteminden ayarlayabilirsiniz:

REG ADD "HKLM\SOFTWARE\Microsoft\PolicyManager\default\Start\HideShutDown" /v "value" /t REG_DWORD /d 1 /f

Veya PowerShell kullanarak:

Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\PolicyManager\default\Start\HideShutDown" -Name "value" -Value 1

Ayrıca Başlat Menüsü ve Windows oturum açma ekranındaki diğer seçenekleri de gizleyebilirsiniz:

  • Windows'ta yalnızca Yeniden Başlat seçeneğini gizle:

    REG ADD "HKLM\SOFTWARE\Microsoft\PolicyManager\default\Start\HideRestart " /v "value" /t REG_DWORD /d 1 /f
  • Hazırda Beklet seçeneğini Windows'ta Başlat Menüsünden gizleyin: R

    EG ADD "HKLM\SOFTWARE\Microsoft\PolicyManager\default\Start\HideHibernate" /v "value" /t REG_DWORD /d 1 /f
  • Başlat Menüsünden Uyku'yu gizleyin:

    REG ADD "HKLM\SOFTWARE\Microsoft\PolicyManager\default\Start\HideSleep" /v "value" /t REG_DWORD /d 1 /f
  • Güç düğmesini tamamen devre dışı bırakmak ve WinX menüsünden "Kapat veya oturumu kapat" seçeneğini kaldırmak için:

    REG ADD "HKLM\SOFTWARE\Microsoft\PolicyManager\default\Start\HidePowerButton" /v "value" /t REG_DWORD /d 1 /f

Bu ayarlar bilgisayarınızda çalışmazsa, HKLM\SOFTWARE\Microsoft\PolicyManager\current\device\Start\ altındaki benzer kayıt defteri anahtarlarını kontrol edin.

Lütfen Windows Server 2019/2022'de bir kullanıcıya yeniden başlatma izni atadıktan sonra bir hatanın görünebileceğini unutmayın:

You don’t have permission to shutdown or restart this computer.

Bu durumda, GPO'da "Kullanıcı Hesabı Denetimi: Tüm yöneticileri Yönetici Onay Modunda çalıştır" UAC parametresini etkinleştirmeniz gerekir:

Bir Windows Sunucusunu Kimin Yeniden Başlattığı/Kapattığı Nasıl Anlaşılır?

Yönetici olmayan bir kullanıcı için bir bilgisayarı yeniden başlatma izni verdiyseniz, bir Windows Sunucusunu kimin yeniden başlattığını bilmek isteyebilirsiniz: bir kullanıcı veya yöneticilerden biri.

Olay Görüntüleyiciyi kullanın (

eventvwr.msc

) Windows'ta kapatma günlüklerini aramak için. Windows Günlükleri -> Sistem'e gidin ve mevcut günlüğü Olay Kimliği 1074'e göre filtreleyin.

RDP bağlantı günlüklerini görüntülemek için Olay Görüntüleyicideki olay filtrelerini de kullanabilirsiniz.

Gördüğünüz gibi, günlükte kronolojik sırada sunucu yeniden başlatma olayları var. Olay açıklaması, yeniden başlama zamanını, sebebini ve ana bilgisayarı yeniden başlatan kullanıcı hesabını içerir.

Log Name:SystemSource: User32
EventID: 1074
The process C:\Windows\system32\shutdown.exe (BE-BAK01) has initiated the restart of computer MUN-BAK01 on behalf of user corp\jsmith for the following reason: No title for this reason could be foundReason Code: 0x800000ff
Reason Code:  0x500ff
Shutdown Type: restart
Comment:

Aynı Olay Kimliğini 1076 kullanarak son Windows kapatma olayları hakkında bilgi alabilirsiniz:

The process C:\Program Files\VMware\VMware Tools\vmtoolsd.exe (MUN-BAK1) has initiated the shutdown of computer MUN-BAK1 on behalf of user NT AUTHORITY\SYSTEM for the following reason: Legacy API shutdown
Reason Code: 0x80070000
Shutdown Type: shutdown
Comment:

Son on bilgisayar yeniden başlatma ve kapatma olayını listelemek için aşağıdaki basit PowerShell betiğini kullanın. Bu liste, yeniden başlatmanın başlatıldığı kullanıcıların ve işlemlerin adlarını içerir.

Get-EventLog -LogName System |
where {$_.EventId -eq 1074} |select-object -first 10 |
ForEach-Object {
$rv = New-Object PSObject | Select-Object Date, User, Action, process, Reason, ReasonCode
if ($_.ReplacementStrings[4]) {
$rv.Date = $_.TimeGenerated
$rv.User = $_.ReplacementStrings[6]
$rv.Process = $_.ReplacementStrings[0]
$rv.Action = $_.ReplacementStrings[4]
$rv.Reason = $_.ReplacementStrings[2]
$rv
}
} | Select-Object Date, Action, Reason, User, Process |ft

İlgili makaleler