Cho phép người dùng Standard chạy chương trình yêu cầu độ cao UAC


4

Tôi cần một người dùng Windows 7 tiêu chuẩn hoặc có giới hạn để có thể chạy một ứng dụng (Fallout Mod Manager) yêu cầu độ cao UAC. Tôi đã dùng thử Bộ công cụ tương thích ứng dụng, nhưng nó không hoạt động như dự định. Bất kỳ đề xuất? Tôi đang chạy Windows 7 Ultimate cục bộ, vì vậy các chính sách có thể được áp dụng.

Về cơ bản tôi muốn một cái gì đó giống như cờ setuid của unix.


Khi nào bộ công cụ bạn có thể nhấp vào 'Thay đổi cài đặt cho tất cả người dùng'?
Unundednut

Tôi đã sử dụng sdbinstall để triển khai các thay đổi và tôi đã xem qua các tài liệu MSDN / Technet. asAdmin hoặc asHestest không hoạt động vì chúng kích hoạt quảng cáo và asInvoker sẽ không hoạt động vì nó cần các đặc quyền
Thom Wiggers

Bạn đã có thể tìm ra lý do tại sao ứng dụng yêu cầu độ cao? Ví dụ, nếu nó cần quyền truy cập đọc / ghi vào một số thư mục nhất định, bạn có thể giải quyết điều đó bằng cách thay đổi quyền NTFS.
nhinkle

@nhinkle hook hook (về quá trình Fallout. (Fallout Script Extender))
Thom Wiggers 6/12/2016

Người dùng có thể chạy chương trình, nhưng sẽ phải nhập thông tin đăng nhập của tài khoản quản trị viên khi UAC nhắc nhở về độ cao. Nếu đó không phải là một giải pháp thỏa đáng, thật không may, tôi không biết đủ để giúp thêm nữa. :)
Ben Richards

Câu trả lời:


3

Điều đó có thể thực hiện được, nhưng không dễ để giải thích.

Chỉ có ba lý do tại sao một ứng dụng sẽ yêu cầu nâng cao khi khởi động:

  • các khả năng xử lí tab có "Chạy chương trình này như một quản trị viên"
  • ứng dụng có một bảng kê khai (được nhúng hoặc bên ngoài) được chỉ định requireAdministrator
  • có một bản cập nhật tương thích từ Microsoft đã đánh dấu nó là quản trị viên cần thiết

Giả sử bạn đã kiểm tra tab tương thích và ứng dụng không được đặt để yêu cầu quản trị viên:

nhập mô tả hình ảnh ở đây

Bước tiếp theo là kiểm tra một bảng kê khai tài nguyên nhúng. tôi sẽ không đi vào làm thế nào bạn có thể tìm ra điều đó. Nhưng bỏ qua để tạo một bản kê khai cho chính mình.

Tạo một tệp trong cùng thư mục với Fallout Mod Manager (tôi không biết cái gì exeđược gọi, nhưng tôi sẽ gọi nó FalloutModManager.exe:

FalloutModManager.exe FalloutModManager.exe.manifest

manifestTệp mới này bạn tạo là một tệp văn bản đơn giản, chứa xml, với một mục nhập bảng kê khai nói rằng chúng tôi muốn khởi chạy asInvoker , thay vì yêu cầuAdAd :

FalloutModManager.exe.manifest

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
   <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> 
      <assemblyIdentity 
           version="1.0.0.0"
           processorArchitecture="X86"
           name="client"
           type="win32" /> 

      <description>Poorly written Fallout Mod Manager fails on XP as standard user</description> 

      <!-- Disable file and registry virtualization, and don't require elevation -->
      <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
         <security>
            <requestedPrivileges>
               <requestedExecutionLevel level="asInvoker" uiAccess="false"/>
            </requestedPrivileges>
         </security>
      </trustInfo>
</assembly>

Có tệp này bên cạnh tệp thực thi của bạn được gọi là "bảng kê khai bên ngoài ". Cũng có thể thực thi có một tài nguyên được nhúng, mà bạn sẽ cần một công cụ như Resource Hacker để xem hoặc sửa đổi.


1
Không tạo ra một bảng kê khai không chạy quản trị viên chỉ hoạt động nếu chương trình được hiển thị không chính xác; Nhưng thất bại nếu chương trình thực sự làm một cái gì đó đòi hỏi độ cao? (Móc bộ nhớ.)
Dan Neely

Nếu có một bảng kê khai nội bộ, nó sẽ có giá trị trước một bảng kê khai bên ngoài. Trong đó bạn nên chỉnh sửa manfiest nội bộ để chỉ định asInvoker. Nếu chương trình đang làm một cái gì đó yêu cầu quyền truy cập của quản trị viên thì nó sẽ thất bại - nhưng sau đó nó cũng sẽ thất bại trên Windows XP với một người dùng chuẩn. Có một số cách giải quyết mà Microsoft đã thêm vào để cố gắng khắc phục các ứng dụng lỗi không thành người dùng chuẩn. Nhưng đặt cược tốt nhất là: Nếu bạn muốn tất cả người dùng có thể sửa đổi HKLMProgramFilessau đó cấp cho tất cả Người dùng toàn quyền HKLMProgramFiles.
Ian Boyd

Tôi sợ @DanNeely đúng, và điều này sẽ không hiệu quả. FOMM cố gắng chèn các DLL của riêng nó vào một ngoại lệ khác (Fallout3.exe)
Thom Wiggers

Tôi chắc chắn có những điều FOMM có thể làm mà không yêu cầu quyền truy cập quản trị. Bằng cách đánh dấu tệp thực thi, asInvokerbạn sẽ không còn phải nâng lên để chạy chương trình. Bạn có thể không thực hiện được tất cả những gì bạn muốn - nhưng ít nhất bây giờ bạn có thể chạy chương trình thực thi như một người dùng thông thường.
Ian Boyd

Điều gì sẽ xảy ra nếu bạn đã sao chép Fallout3.exe vào một thư mục bên ngoài% Tệp chương trình%, FOMM đã sửa đổi bản sao và sau đó khởi chạy Fallout bằng exe đó thay vì bên trong% Tệp chương trình%?
Dan Henderson
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.