Chạy tác vụ lập lịch tác vụ theo yêu cầu từ tài khoản người dùng hạn chế trong windows 7


7

Mục tiêu của tôi là để giới hạn được sử dụng để có thể chạy tập lệnh Netsh yêu cầu đặc quyền quản trị:

netsh wlan stop hostednetwork
netsh wlan start hostednetwork

Từ tài khoản quản trị của mình, tôi đã tạo một tác vụ lập lịch tác vụ chạy tập lệnh này với các đặc quyền nâng cao và lưu mật khẩu quản trị viên của tôi trong đó. Nó đã làm việc. Nhưng tác vụ không thể nhìn thấy từ tài khoản người dùng hạn chế.

Tôi đã thử tạo cùng một tác vụ từ bộ lập lịch tác vụ người dùng hạn chế - không xảy ra, nó cho tôi biết người dùng không có quyền tạo tác vụ.

Đã thử scht task.exe từ người dùng hạn chế, nó cũng không hiển thị tác vụ tôi muốn chạy.

Có cách nào để chia sẻ tác vụ tôi đã tạo từ tài khoản quản trị với một người dùng hạn chế để anh ta có thể chạy nó theo yêu cầu không? Hoặc cho anh ta đặc quyền để tự tạo ra nhiệm vụ?


Lưu ý: Không giống như startlệnh, stoplệnh không yêu cầu quyền quản trị viên.
fefrei

Câu trả lời:


17

Truy cập C: \ Windows \ System32 \ Nhiệm vụ tìm nhiệm vụ liên quan và gán quyền "đọc và thực thi" cho người dùng mà bạn muốn có thể truy cập. Hãy chắc chắn chỉ định cho "đối tượng hiện tại." Sau đó, tác vụ sẽ hiển thị và có thể chạy được từ người dùng bị giới hạn và nó sẽ hoạt động nếu bạn đã lưu thông tin đăng nhập của mình trong đó và kiểm tra "chạy xem người dùng có đăng nhập hay không."


Alos hoạt động trên Server 2008 R2
Jonathan

1
làm việc cho tôi trong Windows 8/8 / 8.1, nhưng không hoạt động trong Windows 10 [1607]. Tệ hơn nữa: nếu tôi tạo tác vụ với tư cách là người dùng bị giới hạn, sau đó chỉnh sửa nó dưới dạng quản trị viên và từ chối tất cả các quyền của người dùng đối với tác vụ, anh ta vẫn có thể chạy nó. Và theo cách khác - nếu tôi tạo tác vụ với tư cách quản trị viên, sau đó cung cấp cho người dùng quyền truy cập đầy đủ và thậm chí thay đổi quyền sở hữu, anh ta vẫn không thể thấy nó cũng không thể chạy.
LogicDaemon

1
@LogicDaemon Tương tự ở đây, không hoạt động trên 1607. Tôi đã thử cung cấp cho người dùng toàn quyền đối với tác vụ và toàn bộ thư mục và vẫn truy cập bị từ chối. Bạn đã bao giờ tìm thấy một giải pháp?
Jason

@jason tiếc là chưa. Cách duy nhất tôi biết là tạo tác vụ giả bằng cách chạy scht task với tư cách là người dùng phải chạy tác vụ, sau đó chỉnh sửa nó với tư cách quản trị viên. Cách này giúp người dùng giữ khả năng chạy tác vụ.
LogicDaemon

2

Đúng, đó là vấn đề khủng khiếp. Chosen trả lời không còn hoạt động. Tôi đang sử dụng Nhật ký sự kiện như một công việc xung quanh:

  1. Đăng ký kích hoạt 'trên một sự kiện' cho nhiệm vụ của bạn, ví dụ: "Ứng dụng", "Ứng dụng", 30204 (số ma thuật của bạn cho nhiệm vụ này)

  2. Đăng nhập một sự kiện với id này. Để làm điều đó từ dòng lệnh / đợt, tôi đã viết ứng dụng bảng điều khiển .Net 3 dòng giả.

    using (var eventLog = new EventLog("Application"))
    {
        eventLog.Source = "Application";
        eventLog.WriteEntry("EventLogTriggeer", EventLogEntryType.Information, int.Parse(args[0]));
    }

Trong trường hợp của tôi, tôi đã giải quyết bảo mật cho việc triển khai tự động trên môi trường dàn dựng. GitHub thực hiện yêu cầu POST cho phụ trợ node.js của tôi chạy trong IIS AppPool Identity với quyền truy cập r / o vào thư mục. Nó xác minh chữ ký băm và thực thi:

// delegate to priviledged task
exec('%SystemDrive%\\apps\\EventLogTrigger 30204', (err, stdout, stderr)=> /* ... */);

Phần còn lại được thực hiện thông qua tác vụ theo lịch trình chạy tập lệnh triển khai bên dưới người dùng có quyền sửa đổi các tệp trong inetpub. Các tác vụ được cấu hình riêng cho từng máy chủ và từng trang web trên chúng, do đó, đường dẫn được mã hóa cứng:

C:\inetpub\ta\autodeploy.cmd

Cách giải quyết thú vị. Có thể an toàn hơn khi sử dụng nhật ký sự kiện mới và mã cứng ID trong ứng dụng .Net: docs.microsoft.com/en-us/powershell/module/ Lỗi
Gremio
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.