Bazen registry anahtarları ile işlem yapmamız gerekir , mesela Windows defenderi kaldırma konulu başlığımızda bir registry anahtarını silmemiz icabediyordu fakat sahipliğini almadan bunu yapmaya
kalkarsak hata verecek ve kaydı sildirmeyecektir Burada , bizde sahipliği alma konusunda birkaç yazılım paylaşmış ve kolayca bir registry anahtarının sahipliği nasıl alınır açıklamaya çalışmıştık Burada , peki hiçbir yazılım kullanmadan bu işi yapamazmıyız ? diye sorarsanız elbette yapabiliriz ve bu yazı konumuzda tam olarak bu , gelelim ayrıntılara:
REGINI
İşletim sistemi ile birlikte gelen ve Kayıt defteri Anahtar izinlerini düzenlemeye yardımcı olan bir komuttur , komutu kullanmak oldukça kolaydır ;
1. Öncelikle Not defteri ile gerekli parametreleri içeren bir script hazırlıyoruz ve bunu .txt şeklinde kaydediyoruz.
2. REGINI komtunu gerekli parametrelerle çalıştırıp ilgili registry anahtarının full izinlerini alıyoruz
Uygulama
Örnek olması açısından aşağıdaki anahtar izinlerini değiştireceğim (Sahipliğini alacağım)
HKEY_CLASSES_ROOT\AppID\{000C101C-0000-0000-C000-000000000046}
1. Not defterini açıyorum ve Key_name [ACL] yani: anahtar ismi (Erişim kontrol Listesi) formatında olacak şekilde anahtarları giriyorum (Aşağıdakiler gibi olacak)
\Registry\machine\software\classes - (for HKEY_CLASSES_ROOT key)
\Registry\machine - ( for HKEY_LOCAL_MACHINE key)
\Registry\user\user_sid - (for HKEY_CURRENT_USER key)
\Registry\user - (for HKEY_USERS key)
İlk başta verdiğim ve izinlerini alacağım anahtarı düzenliyorum :
\Registry\machine\software\classes\AppID\{000C101C-0000-0000-C000-000000000046}
Mavi ile yazılı fomülümüzde sadece ACL yani Erişim kontrol Listesi parametresi eksik kaldı , Önce ACL listemizi görelim:
1 (Yöneticilere tam erişimi sağlar)
2 (Yöneticilere Okuma erişimi sağlar)
3 (Yöneticilere Okuma ve yazma erişimi sağlar)
4 (Yöneticilere Okuma ve yazma ve silme erişimi sağlar)
5 (Oluşturan/sahip Tam erişim)
6 (Oluşturan/sahip Okuma ve yazma erişimi)
7 (Herkese tam erişimi sağlar)
8 (Herkese Okuma erişimi sağlar)
9 (Herkese Okuma ve yazma erişimi sağlar)
10 (Herkese Okuma ve yazma ve silme erişimi sağlar)
17 (Sisteme tam erişimi sağlar)
18 (Sisteme Okuma ve yazma erişimi sağlar)
19 (Sisteme Okuma erişimi sağlar)
Üsttekiler ışığında Not defterime aşağıdakini son halini veriyorum
\Registry\machine\software\classes\AppID\{000C101C-0000-0000-C000-000000000046} [1 6 9 17]
üstteki kodları yazdığım not defteri sayfasını sordum.txt olarak D:\ dizinime kaydediyorum şimdi Cmd (Komut istemini yönetici yetkilerinde çalıştırıp REGINI script yolu şeklinde çalıştırıyorum
Bu konuda bir vbs scripti de yardımcı olacaktır
' Create temp file with the script that regini.exe will use ' set oFSO = CreateObject("Scripting.FileSystemObject") strFileName = oFSO.GetTempName set oFile = oFSO.CreateTextFile(strFileName) oFile.WriteLine "HKEY_CLASSES_ROOT\AppID\{000C101C-0000-0000-C000-000000000046} [1 5 10]" oFile.Close ' Change registry permissions with regini.exe ' set oShell = CreateObject("WScript.Shell") oShell.Run "regini " & strFileName, 8, true ' Delete temp file ' oFSO.DeleteFile strFileName WScript.Echo "Done!"
SetACL Utility ile registry izinlerini düzenleme
Eğer herhangi bir nedenle üstteki yöntem işe yaramıyorsa SetACL Utility kesin işinize yarayacaktır
1. Buradan exe versionunu indirelim ve zipten çıkartıp C:\Windows\System32 nin içerisine atalım sırada komutu düzenlemek var bunun için aşağıdaki formatı kullanıyoruz
SetACL -on name -ot type -actn action
-on : Tam ismi ve yolu
-ot : türü nedir doya ise file , registry ise reg kulanılmalıdır
-actn: Hangi eylem yapılacak , mesela sahiplik ve tam yetki alacağımız için setowner ve ace yi kullanacağız
İlk baştaki örneğimize dönersek aşağıdaki Komut isteminden (Cmd) aşağıdaki komutşları veriyorum
SetACL.exe -on "HKEY_CLASSES_ROOT\AppID\{000C101C-0000-0000-C000-000000000046}" -ot reg -actn setowner -ownr "n:Administrators" SetACL.exe -on "HKEY_CLASSES_ROOT\AppID\{000C101C-0000-0000-C000-000000000046}" -ot reg -actn ace -ace "n:Administrators;p:full"
ve aşağıdaki resimde de gördüğünüz gibi komut başarılı şekilde uygulandı mesajı alıyorum , kaydı artık silip değiştirebiliyorum (hernedense REGINI metodu bende başarılı olmadı ama bu çalıştı)
setACL parametre ve sytaxları için Bakınız
Sağolasın Mehmet
Bütün anlatımlarınız gibi bu da çok güzel.
Teşekkür ederim.
Teşekürler , evet program bize ait , dil çevirileri yabancı takipçilerimizden geliyor , selamlar
o zaman harika abi tam istediğim gibi. böyle bir program olduğunu ilk defa öğrendim,galiba sizin zaten bu program güzel iş çıkarmışsınız elinize sağlık. ayrıca türkçe dil desteği olmasıda harika,çince bile var abi onu nasıl çevirdiniz 🙂
Onunla registry i açtığın anda registry system yetkileri ile çalışır işin püf noktası da bu zaten sonra git istediğin anahtarı sil , sahiplik almaya bile gerek bırakmıyor çünkü bütün anahtarların sahibi sen oluyorsun 🙂
abi sen beni yanlış anladın galiba. bu programa biraz baktım bunda sahiplik alma falan yokki sadece istediğin yeri açtırıyorsun o kolaylığı var. windows'ta normal bat dosyası oluşturarak bir reg anahtarının sahipliğini alamazmıyız??
Registry anahtar izinleri konusunda önereceğim program Powerrun dur üzerindeki registry ikonuna tıkla istediğin anahtarda işlem yap 🙂
Web Link ...
merhaba abi çok güzel bir paylaşım teşekkürler. yukarda HKEY_CLASSES_ROOT\AppID\{000C101C-0000-0000-C000-000000000046} konumundaki reg anahtarının sahipliğini alacaktınız neden \Registry\machine\software\classes\AppID\{000C101C-0000-0000-C000-000000000046} [1 6 9 17] diye bir regini dosyası oluşturdunuz ,yanlışlıklı yaptınız benim kafam karıştı orda,çünkü machine\software yazıyorda sizin oluşturduğunuzda. birde bu yukarda oluşturduğunuz regini dosyası doğruysa bir örneğini bir yere yüklermisiniz indirip bakmak istiyorum böyle bakarak baya kafam karıştı.
birde abi bunu direkt bir bat dosyası oluşturarak yapamıyormuyuz, mesela " icacls" komutları falan var onun gibi komutlarla bat dosyası oluşturup direkt yapma imkanımız falan yokmu regeditten sahiplik almak için.