Tôi có tập lệnh JScript chạy bằng cscript.exe
. Nó tạo ra một shortcut trên desktop (và trong menu start) chạy cscript.exe
với các tham số để chạy một tập lệnh JScript khác. Có vẻ như, trong phần có liên quan, như sau:Làm cách nào để sử dụng JScript để tạo lối tắt sử dụng "Chạy với tư cách quản trị viên"
function create_shortcut_at(folder, target_script_folder)
{
var shell = new ActiveXObject("WScript.Shell");
var shortcut = shell.CreateShortcut(folder + "\\Run The Script.lnk");
shortcut.TargetPath = "cscript";
shortcut.Arguments = "\""+target_script_folder+"\\script.js\" /aParam /orTwo";
shortcut.IconLocation = target_script_folder+"\\icon.ico";
shortcut.Save();
}
Nó được gọi là create_shortcut_at(desktop_folder, script_folder)
.
Và điều đó hoạt động, theo như nó đi. Nó tạo ra biểu tượng máy tính để bàn, chỉ đúng vào kịch bản và chạy nó khi nhấp đúp. Vấn đề là nó thực sự cần phải chạy kịch bản "như quản trị viên".
Và tập lệnh thực sự cần chạy "với tư cách quản trị viên" - nó cài đặt các ứng dụng (cho tất cả người dùng) và khởi động lại máy tính. (Đối với những người quan tâm, kịch bản là wpkg.js. Việc sửa đổi nó thành tự nâng cao là không mong muốn.)
Vì mục tiêu của lối tắt thực sự là "cscript.exe", tôi không thể sử dụng tệp kê khai cho việc leo thang . Tôi có thể về mặt lý thuyết có thể cài đặt một cscript.exe.manifest trong thư mục cửa sổ, nhưng ngay cả khi đó làm việc, nó sẽ là một ý tưởng khủng khiếp vì lý do đó là hiển nhiên.
Tôi cũng không muốn sử dụng tập lệnh giả, vì đó là tệp phụ để xử lý và có một giải pháp khác, có vẻ hợp lý, trong tầm tay: chọn hộp "Chạy với tư cách quản trị viên" trên lối tắt.
Ba mươi giây điều tra cho thấy đối tượng ActiveX WScript.Shell không có giao diện cần thiết cho việc này. Điều tra bổ sung cho thấy rằng IShellLinkDataList hiện. Tuy nhiên, IShellLinkDataList là một giao diện COM chung. Tôi thấy một số ví dụ trên Internet, hầu hết liên kết here. Tuy nhiên, tất cả các ví dụ làm điều đó trong mã biên dịch (C++, C#, thậm chí JScript.NET). Tôi thích có thể làm điều đó trực tiếp trong JScript, chạy từ cscript.exe
.
Điều đó nói rằng, tôi tất cả vì những ý tưởng mà tôi không chiêm ngưỡng hoặc các giải pháp khác.
Để giúp mọi người trong tương lai, những người cần giải pháp này, các định dạng .lnk được quy định ở đây: http://msdn.microsoft.com/en-us/library/dd871305 (v = prot.13). Cụ thể, điều này sử dụng http://msdn.microsoft.com/en-us/library/dd891314(v=prot.13). Giải pháp rất thông minh, cảm ơn! – alficles