2011-02-07 28 views
5

Tôi có dịch vụ (thường chạy dưới dạng NetworkService) để truy xuất thông tin quy trình bằng StartInfo. Nó hoạt động tốt.Quyền thay thế cho StartInfo

Nhưng khách hàng muốn chạy dịch vụ với tư cách người dùng bị hạn chế. (yêu cầu hợp lý)

Theo MS docs StartInfo chỉ có thể được sử dụng bởi người dùng "hoàn toàn đáng tin cậy". Có cách nào khác để nhận hầu hết thông tin từ StartInfo mà không bị "tin cậy hoàn toàn" hay cấu hình người dùng bị hạn chế "hoàn toàn đáng tin cậy" đối với thông tin quy trình không?

Trả lời

0

Về cơ bản, mọi thứ liên quan đến quy trình đều đòi hỏi sự tin cậy hoàn toàn.
Vì vậy, không, không có cách nào để nhận thông tin về quy trình mà không có sự tin cậy đầy đủ.

Sử dụng Code Access Security Policy Tool gán đầy đủ niềm tin

2

Có vẻ như bạn đang nhầm lẫn hai hệ thống an ninh trực giao: Windows an ninh bảo mật người dùng và mã NET truy cập (CAS). Trong khi sử dụng lớp System.Diagnostics.Process yêu cầu sự tin cậy đầy đủ CAS, nó không yêu cầu quyền người dùng quản trị viên, và khá khả thi đối với người dùng không quản trị/hạn chế để chạy một ứng dụng hoàn toàn tin cậy (wrt CAS).

Điều đó nói rằng, hệ điều hành cũng áp đặt giới hạn về những gì người dùng không quản trị có thể thực hiện với quy trình, đặc biệt là các quy trình không chạy trong tài khoản của riêng họ. Tùy thuộc vào những gì mã của bạn đang cố gắng làm với các quá trình, nó có thể hoặc không thể khả thi để chạy dịch vụ của bạn dưới một tài khoản mà không có quyền quản trị hiệu quả.