Saya perlu menjalankan file batch yang perlu mendaftarkan DLL. Registrasi DLL gagal karena file Batch tidak memulai command prompt sebagai "administrator &".
Apakah ada cara untuk memulai "Command Prompt" sebagai administrator melalui file batch.
Lingkungan: Win7/Vista
Anda mungkin harus menggunakan file batch lain terlebih dahulu untuk meluncurkan file kedua dengan hak admin.
Dalam penggunaan pertama
runas /noprofile /user:mymachine\administrator yourbatchfile.bat
Setelah membaca lebih lanjut, Anda harus dapat mengetikkan kata sandi pada prompt. Anda tidak dapat memasukkan kata sandi karena fitur ini dikunci untuk alasan keamanan.
Anda mungkin lebih beruntung dengan psexec.
(Ini berdasarkan jawaban @DarkXphenomenon'1, yang sayangnya memiliki beberapa masalah).
Anda perlu menyertakan kode Anda di dalam wrapper ini:
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
Ini membuat berkas batch berjalan sendiri sebagai pengguna yang ditinggikan. Ini menambahkan dua parameter ke kode yang diistimewakan:
kata payload
, untuk mengindikasikan bahwa ini adalah panggilan payload, yaitu sudah ditinggikan. Jika tidak
jika tidak, ia hanya akan membuka proses baru berulang-ulang.
jalur direktori tempat skrip utama dipanggil. Karena fakta bahwa Windows selalu memulai cmd.exe yang ditinggikan di "%windir% \ system32 &", tidak ada cara mudah untuk mengetahui apa yang jalur aslinya (dan mempertahankan kemampuan untuk menyalin skrip Anda tanpa menyentuh kode)
Catatan: Sayangnya, untuk beberapa alasan shift
tidak bekerja untuk %*
, jadi jika Anda perlu
untuk meneruskan argumen aktual, Anda harus menggunakan notasi jelek yang saya gunakan
dalam contoh (%1 %2 %3 %4 %5 %6 %7 %8 %9
), yang juga membawa batas
maksimum 9 argumen
Anda dapat menggunakan shortcut yang terhubung ke file batch. Cukup masuk ke properti untuk shortcut dan pilih advanced, lalu "run as administrator".
Kemudian buatlah file batch tersembunyi, dan jalankan shortcutnya.
Dengan cara ini, Anda bahkan dapat mengatur ikon Anda sendiri untuk shortcut.