Saya mencoba menulis file batch yang perlu menjalankan beberapa perintah menggunakan akun admin lokal (mulai / hentikan layanan) dan beberapa perintah menggunakan pengguna yang masuk (salin file dari direktori pengguna) dan saya menghadapi masalah. Saya sudah mencoba perintah berikut:
runa dengan / savecred
runas /user:(PC name)\(admin username) /savecred "net stop \"(service name)\""
runas /user:(PC name)\(admin username) /savecred "sc stop \"(service name)\""
Saat menggunakan /savecred
saya tidak dimintai kata sandi. Sebagai gantinya, jendela prompt perintah akan berkedip sebentar dan menghilang. Saya tidak dapat memberi tahu apa yang ada di jendela ini. Layanan tidak dihentikan.
runa tanpa / savecred
runas /user:(PC name)\(admin username) "net stop \"(service name)\""
runas /user:(PC name)\(admin username) "sc stop \"(service name)\""
Perintah-perintah ini meminta saya untuk kata sandi tetapi kemudian menunjukkan perilaku yang sama seperti perintah di atas - jendela prompt perintah muncul sebentar dan layanan tidak berhenti.
Idealnya saya ingin menyimpan kata sandi untuk sesi ini karena saya perlu menjalankan lebih banyak perintah dengan detail.
Apakah ini mungkin dan jika demikian, apa yang saya lakukan salah?
sumber
runas /user:(PC name)\(username) /savecred "net stop \"(service name)\"" >> log.txt
tidak ada output ke file log.LOGBATCH.BAT yourbatch.bat any_parameters_your_batch_needs
dan itu akan membuat file log yang berisi setiap perintah / tindakan yang dilakukan olehyourbatch.bat
Biarkan kami tahu apa yang Anda lihat di sana.Jawaban:
Anda dapat menambahkan berikut ini ke skrip Anda dan itu akan memaksanya untuk menjalankan yang ditinggikan. Tidak perlu mengunduh apa pun.
sumber
Requesting administrative privileges...
untuk mencetak ke layar sampai habis.pisahkan file batch Anda menjadi dua. Bagian yang ingin Anda jalankan sebagai paste admincmd ke system32. Bagian yang ingin Anda jalankan dalam cmd normal tempel di folder biasa, & dari sini panggil file batch kedua yang ada system32. Dengan cara ini bagian kedua selalu berjalan di admincmd. Saya sudah mencobanya & ini bekerja untuk saya.
sumber
Jika Anda tidak keberatan dengan perangkat lunak pihak ketiga, Anda dapat mencoba menjalankannya sebagai kata sandi runasspc. Ini akan menyimpan kata sandi Anda ke file terenkripsi. Kata sandi tidak perlu diekspos dalam file batch.
sumber
Perintah "Runas" tidak akan "sudo" perintah Anda.
Untuk melakukan ini dari file batch, Anda perlu "meninggikan" perintah yang Anda hasilkan. Unduh skrip Tinggikan Powertoy.
http://technet.microsoft.com/en-us/magazine/2008.06.elevation.aspx
Luncurkan perintah Anda sebagai:
atau
sumber
runas /user:$PcName\$Username /savecred "elevate.cmd sc stop \"$ServiceName\""
,runas /user:$PcName\$Username /savecred "elevate.cmd net stop \"$ServiceName\""
,runas /user:$PcName\$Username /savecred "elevate.cmd net stop $ServiceName"
dan masing-masing kembali kesalahan ini: runas ERROR: Tidak dapat menjalankan - elevate.cmd berhenti bersih alfrescoTomcat -2147467259: error UnspecifiedApa yang saya gunakan adalah kode berikut:
Tunda setelah @echo Anda off dan komentar.
sumber
Jawaban yang disederhanakan (tambahan untuk user325534) jika Anda hanya perlu mulai bekerja di beberapa direktori dengan akses yang lengkap:
sumber
Kode ini memungkinkan cmd untuk meminta kata sandi pengguna. Pengguna harus mengetikkan kata sandi mereka dan kemudian
executable.bat
akan dijalankan sebagai administratormain.bat
executable.bat
sumber