bir .bat dosyasını admin yetkilerinde çalıştıralım


bir bat dosyasını admin yetkilerinde çalıştıralım

Bazen oluşturacağımız bir .bat scriptindeki komutlar admin yetkisi olmadan bir işe yaramaz , internette oldukça sıkça sorulan sorulardan biri de bir .bat dosyasının admin yetkilerinde nasıl çalıştırılacağıdır

, bu yazımızda bu konuda neler yapılabilir , pratik bir çözümü varmidir gibi bazı önemli noktaların üzerinde durmaya çalışacağız

1. bat scriptini bir kısayol üzerinden Admin yetkilerinde çalıştırmak

Burada faydalanılan yöntem kısayolların admin yetkilerinde çalıştırılmasına olanak veren seçenektir , bir örnekle açıklayacak olursak ; gelin komut istemini (cmd) admin yetkilerinde çalıştıracak bir .bat scripti oluşturalım hem böylece .bat scriptini admin yetkilerinde çalıştırıp çalıştıramadığımız da kolayca anlaşılır , normal .bat scriptimiz en yalın hali ile aşağıda

@echo off
cmd

bnu bir not defterine yapıştırıp farklı kaydet diyelim ve bir isim verip (run_cmd.bat) uzantısı .bat olacak şekilde kaydedelim ,çalıştırdığımda açılan Komut isteminde admin yazmıyor (Aşağıdaki resim)

cmd normal yetki

Oluşturduğumuz run_cmd.bat dosyasına sağ tıklayalım ve Gönder deyip Buradan da masa üstü (Kısayol oluştur) diyelim

.bat masaüstü kısayol

masaüstünde oluşan kısayolu sağ tıklayalım ve özellikler diyelim ,sonrasında da kısayol tabı altındaki gelişmiş e tıklayalım

kısayol gelismis seçenekleri

buraya tıkladığımızda Gelişmiş özellikler açılacaktır burada yeralan Yönetici olarak çalıştır a tik koyup tamam diyelim

gelişmiş özellikler altında yönetici olarak çalıştır

Bu sadece .bat scripti için değil tüm kısayollarda uygulanabilecek bir yöntemdir ve genelde en sık kullanılanıdır, bu işlemlerden sonra kısayola tıkladığımızda komut isteminin yönetici olarak çalıştığına şahit olacağız

yönetici yetkilerinde cmd

Cmd yi admin yetkilerinde nasıl çalıştırırız konusunda daha önce birçok defa bilgiler vermiştik lakin burada .bat dosyasını admin yetkileri ile çalıştırıyoru cmd sadece örneğin anlaşılması içindir.

2. Bir .vbs script yardımı ile .bat scriptini admin yetkilerinde çalıştırmak

Bu yöntemde .vbs script yardımı ile .bat scriptimizi admin yetkilerinde çalıştıracağız , öncelikle üstte oluşturduğumuz run_cmd.bat dosyasına sağ tıklayıp özellikler diyelim ve konum kısmından bulunduğu yolu kopyalayalım , bendeki : C:\Users\velociraptor\Documents\run_cmd.bat (yani belgelerimde) , o halde oluşturacağımız .vbs nin içindeki yol parametresini bulmuş olduk mesela isim olarak admini kullanırsak admin.vbs isminde dosyamızın içine aşağıdaki kodu yapıştıralım

Set objShell = CreateObject("Shell.Application")
objShell.ShellExecute "C:\Users\velociraptor\Documents\run_cmd.bat", "", "", "runas", 1

Şimdi bu admin.vbs yi çalıştırdığımızda komut istemimizin admin yetkilerinde açıldığını göreceğiz

3. Geçici bir .vbs script ile tek dosyada .bat scriptini admin yetkilerinde çalıştıralım

Üstteki kodun kötü tarafı iki farklı dosya olmasında eğer bunları birleştirirsek daha kullanışlı bir hale gelecektir , bunun için aşağıdaki kodu herhangi bir .bat scriptinin en üstüne yapıştırırsak o .bat scripti admin yetkilerinde çalışacaktır

@echo off
:: BatchGotAdmin (Run as Admin code starts)
REM --> Check for permissions
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
REM --> If error flag set, we do not have admin.
if '%errorlevel%' NEQ '0' (
echo Requesting administrative privileges...
goto UACPrompt
) else ( goto gotAdmin )
:UACPrompt
echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
echo UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\getadmin.vbs"
"%temp%\getadmin.vbs"
exit /B
:gotAdmin
if exist "%temp%\getadmin.vbs" ( del "%temp%\getadmin.vbs" )
pushd "%CD%"
CD /D "%~dp0"
:: BatchGotAdmin (Run as Admin code ends)
:: Your codes should start from the following line

Bir önceki yöntemdekinden farklı birşey yok aslında , temp dosyasında bir .vbs oluşturup .bat dosyamızı bunun yardımı ile admin yetkilerinde başlatıp geçici oluşturduğumuz .vbs dosyasını sildiriyoruz.

4. powershell den faydalanarak bir .bat dosyasını admin yetkilerinde çalıştırmak

Admin yetkisiz çalışan herhangi bir kodun üst kısmına (@echo off tan hemen sonra) tek atırlık bir powershell scripti kullanıp .bat dosyasının admin yetkilerinde çalışmasını sağlayabiliriz mesela aşağıdaki kod ilk kodumuz olan cmd yi admin yetkilerinde başlatacaktır

@echo off
net session >NUL 2>&1|| powershell Start-Process '%0' -Verb RunAs&& exit /b|| exit /b
cmd

Üstteki kod belkide kullanılanların arasında en kısa ve sade olanıdır

5. Diğer yöntemler

.bat scriptini herhangi bir yazılımla .exe haline getirirsek üstteki gibi admin olarak çalıştırmak için birsürü zahmete girmeyiz , eğerki bilgisyarda sürekli olarak tekrarlı şekilde çalışacak bir .bat scriptinin admin yetkilerinde çalışmasını istiyorsak en ideali bu .bat scriptini Görev Zamanlayıcısına eklmek ve görevin en yüksek ayrıcalıklarla çalıştığından emin olmaktır.



4 Yorum Var

Yorum Ekle

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

CAPTCHA