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


Bir bat dosyasını Yönetici (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ü varmıdır gibi bazı önemli noktaların üzerinde durmaya çalışacağız

1. Bat scriptini bir kısayol üzerinden Admin (Yönetici) yetkilerinde çalıştırın

Burada faydalanılan yöntem kısayolların yönetici 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

bunu 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)

Normal yetkili bat veya Cmd dosyası

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

Masaüstüne kısayol oluştur

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 gelişmiş 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 .vbscript yardımı ile .bat scriptini admin yetkilerinde çalıştırın

Bu yöntemde .vbs script yardımı ile .bat scriptimizi Admin (Yönetici) 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 .vbscript ile tek dosyada .bat scriptini admin yetkilerinde çalıştırın

Ü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ırın

Admin yetkisiz çalışan herhangi bir kodun üst kısmına (@echo off tan hemen sonra) tek satı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.

3 Mart 2015 Tarihli başlık güncellendi


10 Yorum Var
  1. Avatar for salih01
  2. Avatar for Uygar
  3. Avatar for Velociraptor
  4. Avatar for Sayim
  5. Avatar for Velociraptor
  6. Avatar for Esat
  7. Avatar for Velociraptor
  8. Avatar for Umut
  9. Avatar for Velociraptor
  10. Avatar for artem

Yorum Ekle

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Captcha