Bir DLL kaydetmesi gereken bir toplu iş dosyası çalıştırmam gerekiyor. Toplu iş dosyası komut istemini "administrator" olarak başlatmadığı için DLL kaydı başarısız oluyor.
Toplu iş dosyası aracılığıyla yönetici olarak "Command Prompt" başlatmanın herhangi bir yolu var mı?
Ortam Win7/Vista
İkincisini yönetici haklarıyla başlatmak için önce başka bir toplu iş dosyası kullanmanız gerekebilir.
İlk kullanımda
runas /noprofile /user:mymachine\administrator yourbatchfile.bat
Daha fazla okuma yaptıktan sonra, istemde şifreyi yazabilmeniz gerekir. Bu özellik güvenlik nedeniyle kilitlendiği için şifreyi yazamazsınız.
psexec]1 ile daha fazla şansınız olabilir.
(Bu, maalesef bazı sorunları olan @DarkXphenomenon'un cevabına dayanmaktadır).
Kodunuzu bu sarmalayıcı içine almanız gerekir:
if _%1_==_payload_ goto :payload
:getadmin
echo %~nx0: elevating self
set vbs=%temp%\getadmin.vbs
echo Set UAC = CreateObject^("Shell.Application"^) >> "%vbs%"
echo UAC.ShellExecute "%~s0", "payload %~sdp0 %*", "", "runas", 1 >> "%vbs%"
"%temp%\getadmin.vbs"
del "%temp%\getadmin.vbs"
goto :eof
:payload
echo %~nx0: running payload with parameters:
echo %*
echo ---------------------------------------------------
cd /d %2
shift
shift
rem put your code here
rem e.g.: perl myscript.pl %1 %2 %3 %4 %5 %6 %7 %8 %9
goto :eof
Bu, toplu iş dosyasının kendisini yükseltilmiş kullanıcı olarak çalıştırmasını sağlar. Ayrıcalıklı koda iki parametre ekler:
Bunun payload çağrısı olduğunu, yani zaten yükseltilmiş olduğunu belirtmek için payload
kelimesi. Aksi takdirde
sadece tekrar tekrar yeni süreçler açardı.
ana betiğin çağrıldığı dizin yolu. Windows'un her zaman "%windir%\system32" içinde yükseltilmiş cmd.exe'yi başlattığında, ne olduğunu bilmenin kolay bir yolu yoktur. orijinal yolun (ve komut dosyanızı kopyalama yeteneğini koruyarak) dokunma kodu)
Not: Ne yazık ki, bazı nedenlerden dolayı shift
%*
için çalışmaz, bu nedenle
gerçek argümanları aktarmak için, kullandığım çirkin gösterime başvurmanız gerekecektir
örneğinde (%1 %2 %3 %4 %5 %6 %7 %8 %9
), bu aynı zamanda
en fazla 9 argüman
Toplu iş dosyasına bağlanan bir kısayol kullanabilirsiniz. Kısayol için özelliklere gidin ve gelişmiş'i seçin, ardından "yönetici olarak çalıştır" seçeneğini seçin.
Ardından toplu iş dosyasını gizli hale getirin ve kısayolu çalıştırın.
Bu şekilde, kısayol için kendi simgenizi bile ayarlayabilirsiniz.