Varsayılan olarak, yönetici olmayan standart veya kısıtlı kullanıcılar Windows hizmetlerini durdurup yeniden başlatamaz veya ayarlarını ve izinlerini değiştiremezler. Gel gelelim bazen öylesi durumlar
vardırki bir kısıtlı kullanıcının bir windows servisini yeniden başlatma veya durdurma izninin olması gerekir, buna en güzel örnek Yazdırma Biriktiricisi hizmeti dir. Yazıcıya belge yollanan işyerlerinde en sık karşılaşılan sorunlardan biri bu işlerin birikip yazıcıdan çıktı alınamaması sorunudur. Bu durumda genellikle Yazdırma Biriktiricisi hizmeti durdurulup yeniden başlatılır. Sistem yöneticisine gerek kalmadan kısıtlı bir kullanıcıya yetki vererek ilgili serviste gerekli değişikliği yapmasını sağlayabilirsiniz. Normalde Kısıtlı kullanıcı altında yazdırma biriktiricisi hizmeti aşağıdaki şekilde görünecektir.
Komut istemi (Cmd) ile Windows servis izinlerini yönetin
Bir Windows hizmetinin izinlerini yönetmek için yerleşik sc.exe (Hizmet Denetleyicisi) konsol komutunu kullanabilirsiniz. Bu yöntemin temel dezavantajı, hizmete hakların verilmesine ilişkin formatın biraz karmaşık olmasıdır. Çünkü Güvenlik Açıklama Tanımlama Dili (SDDL) formatı kullanılmaktadır.
Kısıtlı kullanıcıda , hizmet izinlerini bir SDDL dizesi olarak almak için Cmd yi çalıştırıp aşağıdaki komutu verelim.
sc.exe sdshow Spooler
Üstteki komut karşımıza aşağıdaki çıktıyı getirdi.
Buradaki sembollerin anlamlarına gözatacak olursak :
S: — Sistem Erişim Kontrol Listesi (SACL)
D: – İsteğe bağlı ACL (DACL)
Parantez içindeki Harflere gelince ;
(A) - izin ver
(D) - Red det
Atanabilir izinler, bir sonraki karakter kümesidir.
CC — SERVICE_QUERY_CONFIG
LC — SERVICE_QUERY_STATUS
SW — SERVICE_ENUMERATE_DEPENDENTS
LO — SERVICE_INTERROGATE
CR — SERVICE_USER_DEFINED_CONTROL
RC — READ_CONTROL
RP — SERVICE_START
WP — SERVICE_STOP
CE — SERVICE_PAUSE_CONTINUE
Son 2 karakter, izinlerin verildiği nesnelerdir (kullanıcı, grup veya SID). Geçerli kullanıcının SID'sini almak için bir komut da kullanabilirdik fakat ilk komut zaten SID değerini de içermektedir o nedenle aşağıdaki komut sadece bilgilendirme amacıyla verilmiştir.
whoami /user
Komut aşağıdaki çıktıyı verecektir. Komut hem Powershell hemde Cmd de çalışır.
SID değerini ayrı olarak bulduysanız , Hizmet ACL'sine aşağıdaki satırı ekleyin.
(A;;RPWPCR;;;S-1-5-21-4040922635-3962639976-3147875963-1002)
Bu ek bilgilerden sonra Konumuza geri dönecek olursak.
Mevcut standart kullanıcıya Spooler hizmeti için izin verme komutu :
Aşağıdaki Komut sizin vereceğiniz "sc.exe sdshow Spooler" çıktısı farklı olacağından bire bir aynı olmayacaktır o sebeple lütfen komutu kopyalayamıyorum diye yazmayın.
sc sdset Spooler D:(A;;CCLCSWLOCRRC;;;AU)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;RPWPCR;;;S-1-5-21-4040922635-3962639976-3147875963-1002)
Böylece standart kullanıcı çalıştırdan services.msc komutunu verip yazdırma biriktirici hizmetini açarsa aşağıdaki gibi Durdurma ve yeniden başlatma yetkisinin olduğu görülecektir.
Mevcut standart kullanıcıdan Spooler hizmeti için izinleri geri alma yani Varsayılana geri döndürme komutu :
sc sdset Spooler D:(D;;CCLCSWLOCRRC;;;AU)(D;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(D;;CCLCSWRPWPDTLOCRRC;;;SY)(D;;RPWPCR;;;S-1-5-21-4040922635-3962639976-3147875963-1002)
Dilerseniz Process Explorer i Kullanılarak ta Hizmet izinlerini değiştirebilirsiniz. Lakin burada amacımız hiçbir ek yazılım kullanmadan Standart kullanıcıya bir servisi Durdurup - Başlatma yetkisi vermekti.
- PC nin SID ini Bulma Burada
- Bir Windows Bilgisayarın benzersiz kimliği Burada
Katılıyorum, Umarım faydalı olur.
Bilgisayarında Standart kullanıcı hesabı kullananlara son derece faydalı olacaktır