2009-03-20 61 views
6

Tôi có dự án thiết lập và triển khai studio trực quan. Tôi đã thêm một tập lệnh .cmd vào đó. Tập lệnh sẽ cần quản trị viên quản trị để chạy. Khi người dùng nhấp vào setup.exe, UAC sẽ nhắc người dùng cho quyền Quản trị viên. Vì vậy, tôi giả định rằng tất cả các quá trình tạo ra và được gọi trong setup.exe sẽ chạy trong khả năng quản trị. Vì vậy, tôi đã thực hiện các thiết lập gọi ứng dụng giao diện điều khiển của tôi có chứa các mã sau đây.lập trình chạy cmd.exe dưới dạng quản trị viên trong vista, C#

ProcessStartInfo p1 = new ProcessStartInfo(); 
p1.UseShellExecute = true; 
p1.Verb = "runas"; 
p1.FileName = "cmd.exe"; 
Process.Start(p1); 

Vì vậy, nó sẽ hoạt động khi nó chạy dưới không gian quản trị viên.

Tôi muốn chạy cmd.exe thông qua lớp C# quá trình với tư cách quản trị viên.Tôi đang chạy windows vista.

Tôi đã thử không hoạt động! Tôi có thể làm gì!

Trả lời

10

Hãy thử thực hiện các runaslệnh:

... 

using System.Diagnostics; 

... 

string UserName = "user name goes here"; 
ProcessStartInfo p1 = new ProcessStartInfo(); 
    p1.FileName = "runas"; 
    p1.Arguments = String.Format("/env /u:{0} cmd", UserName); 
Process.Start(p1); 

... 

(Và tôi không nghĩ rằng bạn cần một UseShellExecute rõ ràng)

+0

tôi muốn mạo danh người quản trị. Giống như nó xảy ra trong setup.exe tự động. Điều này yêu cầu mật khẩu! –

+4

Bạn có mong đợi một kết quả khác khi bạn cố mạo danh quản trị viên không? Nếu không thì bất kỳ ai thực hiện mã có thể là một quản trị viên mà không biết mật khẩu. Điều đó không đánh bạn như một nguy cơ bảo mật đáng kể? –

+0

i'l rephrase câu hỏi. xin vui lòng có một cái nhìn và bình luận về nó. –

6

Chỉ cần Hãy thử điều này, này đã làm việc cho tôi.

... 

using System.Diagnostics; 

... 

ProcessStartInfo startInfo = new ProcessStartInfo(); 
    startInfo.UseShellExecute = true;    
    startInfo.Verb = "runas"; 
    startInfo.Arguments = "/env /user:" + "Administrator" + " cmd"; 
Process.Start(startInfo); 

... 

Ashutosh

+0

hoạt động cho tôi .. thanx rất nhiều .. :) –

Các vấn đề liên quan