Perilaku yang berbeda saat menjalankan exe dari command prompt daripada di windows

0

Maafkan saya jika saya tidak menggunakan terminologi yang benar di sini, tetapi saya akan mencoba menjelaskan masalah yang saya miliki semampu saya!

Kami menggunakan program yang memungkinkan Anda untuk melihat rekaman video dari beberapa kamera, dan berfungsi sedemikian rupa sehingga ketika dibuka maka secara otomatis memuat beberapa file video dalam antarmuka-nya. File video ini disimpan dalam subfolder, mis. "Videos \ video1.asf", dll. Saya tidak membuat program jadi saya tidak bisa mengatakan metode apa yang digunakan untuk membuka file.

File-file tersebut disimpan di server jaringan dan sedang diakses melalui jalur share / UNC.

  • Ketika file dijalankan dari windows explorer (dengan menavigasi ke jaringan berbagi dan mengklik dua kali exe), itu berfungsi dengan baik.

  • Ketika file dijalankan melalui prompt perintah (ditinggikan) (misalnya dengan mengetikkan \ server \ path \ ke \ file.exe) file itu terbuka, tetapi file video yang sesuai tidak memuat.

Saya mencoba membuat skrip yang meluncurkan program melalui command prompt, jadi langkah pertama adalah mencari tahu mengapa dua tindakan di atas memiliki konsekuensi yang berbeda. Setiap saran tentang bagaimana menjalankan executable dari command prompt dapat menghasilkan hasil yang berbeda akan sangat dihargai.

valoukh
sumber
Kemungkinan besar masalah dengan direktori kerja. Pada prompt perintah, saya akan mencoba memetakan drive ke share kemudian mengubah direktori kerja Anda ke sana sebelum menjalankan exe.
EBGreen
Saya percaya (walaupun saya tidak bisa mengatakan dengan kepastian 100%) bahwa ketika Anda pergi ke jaringan berbagi, Anda menggunakan kredensial pengguna yang masuk saat ini untuk menghubungkan. Ketika Anda menjalankan melalui Command Prompt yang ditinggikan, Anda menjalankan sebagai Administrator alias pengguna lain, yang mungkin tidak memiliki akses ke file video - setidaknya tidak mengetahui hal itu. Coba jalankan program melalui windows explorer, tetapi klik kanan pada file.exe dan Jalankan sebagai Administrator dan lihat apakah Anda mendapatkan masalah yang sama.
Darius
@EBGreen - Saya sudah mencoba saran Anda tetapi tidak berhasil. Ini juga bukan solusi yang layak karena kita mungkin akhirnya menimpa drive yang dipetakan yang sedang digunakan.
valoukh
@Darius - itu masuk akal, tapi saya sudah mencoba melakukan apa yang Anda sarankan dan masih berfungsi sebagai Administrator!
valoukh
@valoukh - Sudahkah Anda mencoba membuat file .bat di lokasi yang sama dengan .exe yang meluncurkan cmd.exe yang ditinggikan dengan argumen untuk memulai proses yang dimaksud?
Ramhound

Jawaban:

1

Coba buat file batch yang berubah ke direktori yang benar dan kemudian jalankan aplikasi Anda, mis

pushd \\server\path\to
file.exe
popd

Jika ini tidak berhasil, maka coba jalankan file batch ini dari prompt perintah yang tidak ditinggikan untuk menentukan apakah masalah terkait dengan akun pengguna atau metode memulainya.

Jika ini berfungsi dalam mode non-tinggi, tetapi tidak ketika tinggi, maka unduh Proses monitor dari Sysinternals untuk memantau akses file dan menjalankan program secara normal untuk melihat apakah ia mencoba memuat file konfigurasi dari profil lokal Anda.

sgmoore
sumber
Kamu brilian! Saya membuat file batch seperti yang disarankan dan berfungsi dengan baik, jadi saya kemudian mentransfer logika ini ke skrip saya (yang menggunakan jscript / wscript.shell) dan membuatnya bekerja menggunakan var shell = new ActiveXObject("WScript.Shell"); shell.currentdirectory = \\server\directory\etc;Terima kasih!
valoukh