Computer >> Máy Tính >  >> Hệ thống >> máy chủ Windows

Làm thế nào để Cho phép Người dùng Không phải Quản trị viên Khởi động / Dừng Dịch vụ Windows?

Theo mặc định, người dùng thông thường (không phải quản trị viên) không thể quản lý các dịch vụ Windows. Điều này có nghĩa là người dùng không thể dừng, bắt đầu, khởi động lại hoặc thay đổi cài đặt / quyền của các dịch vụ Windows. Trong một số trường hợp, người dùng cần có quyền khởi động lại hoặc quản lý các dịch vụ nhất định. Trong bài viết này, chúng ta sẽ xem xét một số cách để quản lý quyền đối với các dịch vụ Windows. Đặc biệt, chúng tôi sẽ chỉ cho bạn cách cho phép người dùng không phải quản trị viên bắt đầu, dừng và khởi động lại một dịch vụ Windows cụ thể bằng cách cấp các quyền thích hợp.

Giả sử, bạn cần cấp tài khoản miền contoso \ tuser quyền khởi động lại Print Spooler dịch vụ (tên dịch vụ - bộ đệm) . Khi người không phải quản trị viên cố gắng khởi động lại dịch vụ, một lỗi sẽ xuất hiện:

 Đã xảy ra lỗi hệ thống 5. Quyền truy cập bị từ chối. 

Làm thế nào để Cho phép Người dùng Không phải Quản trị viên Khởi động / Dừng Dịch vụ Windows?

Không có công cụ tích hợp nào đơn giản và thuận tiện để quản lý quyền các dịch vụ trong Windows. Chúng tôi sẽ xem xét một số cách để cấp quyền cho người dùng quản lý dịch vụ:

Đặt Quyền Dịch vụ của Windows Sử dụng Công cụ SC.exe (Bộ điều khiển Dịch vụ)

Phương pháp Windows tích hợp sẵn tiêu chuẩn để quản lý quyền dịch vụ hệ thống sử dụng sc.exe (Bộ điều khiển dịch vụ). Vấn đề chính khi sử dụng tiện ích này là cú pháp phức tạp của định dạng quyền dịch vụ ( SDDL định dạng - Ngôn ngữ Định nghĩa Mô tả Bảo mật).

Bạn có thể nhận các quyền hiện tại cho dịch vụ Windows dưới dạng chuỗi SDDL như sau:

sc.exe sdshow Spooler

Làm thế nào để Cho phép Người dùng Không phải Quản trị viên Khởi động / Dừng Dịch vụ Windows?

D:(A;;CCLCSWLOCRRC;;;AU)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)
(A;;CCLCSWRPWPDTLOCRRC;;;SY)S:(AU;FA;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;WD)

Tất cả những biểu tượng này có nghĩa là gì?

 S:- Danh sách kiểm soát truy cập hệ thống (SACL) D:- ACL tùy ý (DACL) 

Chữ cái đầu tiên sau dấu ngoặc có nghĩa là:allow ( A ) hoặc từ chối ( D ).

Bộ ký hiệu tiếp theo là các quyền có thể chuyển nhượng.

 CC - SERVICE_QUERY_CONFIG (yêu cầu cài đặt dịch vụ) LC - SERVICE_QUERY_STATUS (thăm dò trạng thái dịch vụ) SW - SERVICE_ENUMERATE_DEPENDENTSLO - SERVICE_INTERROGATECR - SERVICE_USER_DEFINED_CONTROLRC - READ_CONTROLRP - SERVICE_STARTOPDTP - SERVICE_STARTWhi 

2 ký tự cuối cùng là các đối tượng (người dùng, nhóm hoặc SID) được cấp quyền. Có một danh sách các nhóm được xác định trước.

 AU Người dùng được xác thựcAO Người điều hành tài khoảnRU Bí danh để cho phép Windows 2000AN trước đó Đăng nhập Ẩn danhAU Người dùng được xác thựcBA Quản trị viên tích hợpBG Khách tích hợpBO Người điều khiển sao lưuBU Người dùng tích hợpCA Quản trị viên máy chủ chứng chỉCG Người tạo nhómCO Người tạo chủ sở hữuDA Quản trị viên miền DC Máy tính miềnDD Bộ điều khiển miềnDG Khách miềnDU Người dùng miềnEA Doanh nghiệp Quản trị viênED Bộ điều khiển miền doanh nghiệpWD Mọi ngườiPA Quản trị viên chính sách nhómIU Người dùng đăng nhập tương tácLA Quản trị viên cục bộLG Khách cục bộLS Tài khoản dịch vụ cục bộSY Hệ thống cục bộNU Người dùng đăng nhập mạngNO Nhà khai thác cấu hình mạngNS Tài khoản dịch vụ mạngPO Nhà điều hành máy inPS Cá nhânPU Người dùng nguồn RS Máy chủ RAS nhómRD Người dùng máy chủ đầu cuốiRE ReplicatorRC Mã hạn chếSA Người quản trị lược đồSO Người điều hành máy chủSU Người dùng đăng nhập dịch vụ 

Thay vì một nhóm được xác định trước, bạn có thể chỉ định rõ ràng một người dùng hoặc một nhóm bằng SID. Để lấy SID cho người dùng hiện tại, bạn có thể sử dụng lệnh:

whoami /user

Hoặc bạn có thể tìm thấy SID cho bất kỳ người dùng miền nào bằng lệnh ghép ngắn Get-ADUser:

Get-ADUser -Identity 'sadams' | select SID

Bạn có thể lấy SID của nhóm bảo mật AD bằng lệnh ghép ngắn Get-ADGroup:

Get-ADGroup -Filter {Name -eq "ny-ithelpdesk"} | Select SID

Để chỉ định chuỗi quyền SDDL cho một dịch vụ cụ thể, bạn có thể sử dụng sc sdset yêu cầu. Ví dụ:quyền có thể được cấp cho người dùng bằng lệnh sau:

sc sdset Spooler "D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;IU)(A;;CCLCSWLOCRRC;;;SU)(A;;RPWPCR;;;S-1-5-21-2133228432-2794320136-1823075350-1000)S:(AU;FA;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;WD)"

Sử dụng SubInACL để Cho phép Người dùng Bắt đầu / Dừng / Khởi động lại Dịch vụ

Sử dụng công cụ dòng lệnh SubInACL dễ dàng hơn từ Sysinternals (của Mark Russinovich) để quản lý các quyền của dịch vụ. Cú pháp của công cụ này dễ dàng và thuận tiện hơn nhiều. Đây là cách bạn có thể cấp quyền khởi động lại cho một dịch vụ bằng SubInACL:

  1. Tải xuống subinacl.msi từ trang web này (https://www.microsoft.com/en-us/download/details.aspx?id=23510) và cài đặt nó trên hệ thống đích; Làm thế nào để Cho phép Người dùng Không phải Quản trị viên Khởi động / Dừng Dịch vụ Windows?
  2. Trong dấu nhắc lệnh nâng lên, đi tới thư mục chứa công cụ:cd “C:\Program Files (x86)\Windows Resource Kits\Tools\"
  3. Chạy lệnh:subinacl.exe /service Spooler /grant=contoso\tuser=PTO
    Làm thế nào để Cho phép Người dùng Không phải Quản trị viên Khởi động / Dừng Dịch vụ Windows? Lưu ý . Trong trường hợp này, chúng tôi đã cấp cho người dùng quyền để tạm dừng (tạm dừng / tiếp tục), bắt đầu và dừng (khởi động lại) một dịch vụ. Danh sách đầy đủ các quyền dịch vụ hiện có:

     F:Full ControlR:Generic ReadW:Generic WriteX:Generic eXecuteL:Read ControlLQ:Cấu hình dịch vụ truy vấnS:Trạng thái dịch vụ truy vấnE:Liệt kê các dịch vụ phụ thuộcC:Cấu hình thay đổi dịch vụT:Khởi động dịch vụO:Dừng dịch vụP:Tạm dừng / Tiếp tục Dịch vụI:Dịch vụ truy vấnU:Lệnh điều khiển do người dùng xác định dịch vụ 

    Nếu bạn cần cấp quyền cho một dịch vụ chạy trên máy tính từ xa, hãy sử dụng cú pháp sau của lệnh subinacl:
    subinacl /SERVICE \\lon-prnt1\spooler /grant=contoso\tuser=F

  4. Bây giờ bạn chỉ phải đăng nhập máy tính bằng tài khoản người dùng và thử khởi động lại dịch vụ bằng các lệnh:
    net stop spooler
    net start spooler
    hoặc
    sc stop spooler && sc start spooler
    Làm thế nào để Cho phép Người dùng Không phải Quản trị viên Khởi động / Dừng Dịch vụ Windows?

Nếu bạn đã làm đúng mọi thứ, dịch vụ sẽ khởi động lại.

Để thu hồi các quyền dịch vụ được chỉ định, hãy sử dụng /revoke tùy chọn của công cụ subinacl.exe. Ví dụ:

subinacl.exe /service Spooler /revoke=contoso\tuser

Làm cách nào để thay đổi quyền dịch vụ của Windows bằng Process Explorer?

Bạn có thể thay đổi quyền dịch vụ Windows bằng một tiện ích khác của Sysinternals - Process Explorer . Chạy Process Explorer với tư cách quản trị viên và tìm quy trình của dịch vụ bạn cần. Trong ví dụ của chúng tôi, đây là spoolsv.exe (thực thi bộ đệm - C:\Windows\System32\spoolsv.exe ). Mở thuộc tính quy trình và nhấp vào Dịch vụ tab.

Làm thế nào để Cho phép Người dùng Không phải Quản trị viên Khởi động / Dừng Dịch vụ Windows?

Nhấp vào Quyền và thêm người dùng hoặc nhóm trong cửa sổ mở ra. Sau đó, chọn các quyền mà bạn muốn gán (Toàn quyền kiểm soát / Ghi / Đọc).

Làm thế nào để Cho phép Người dùng Không phải Quản trị viên Khởi động / Dừng Dịch vụ Windows?

Đặt Quyền Dịch vụ Windows bằng PowerShell

Trong thư viện TechNet có một mô-đun PowerShell không chính thức riêng để quản lý quyền cho các đối tượng Windows khác nhau - Mô-đun PowerShellAccessControl (bạn có thể tải về tại đây). Mô-đun này cũng cho phép bạn quản lý các quyền của dịch vụ. Cài đặt mô-đun này và nhập nó vào phiên PS của bạn:

Import-Module PowerShellAccessControl

Bạn có thể nhận các quyền hiệu quả cho một dịch vụ Windows cụ thể từ PowerShell như sau:

Get-Service spooler | Get-EffectiveAccess -Principal corp\tuser

Để cho phép người dùng không phải quản trị viên khởi động và dừng dịch vụ bộ đệm, hãy chạy lệnh:

Get-Service spooler | Add-AccessControlEntry -ServiceAccessRights Start,Stop -Principal corp\tuser

Sử dụng Mẫu bảo mật để quản lý quyền dịch vụ

Một cách đồ họa trực quan (nhưng yêu cầu nhiều hành động hơn) để quản lý quyền dịch vụ là sử dụng Mẫu bảo mật. Mở mmc.exe bảng điều khiển và thêm Mẫu bảo mật chụp nhanh.

Làm thế nào để Cho phép Người dùng Không phải Quản trị viên Khởi động / Dừng Dịch vụ Windows?

Tạo một mẫu bảo mật mới (New Template).

Làm thế nào để Cho phép Người dùng Không phải Quản trị viên Khởi động / Dừng Dịch vụ Windows?

Chỉ định tên cho mẫu mới và đi tới Dịch vụ hệ thống tiết diện. Trong danh sách các dịch vụ, hãy chọn dịch vụ Print Spooler và mở các thuộc tính của nó.

Chọn chế độ khởi động ( Tự động ) và nhấp vào Chỉnh sửa bảo mật .

Làm thế nào để Cho phép Người dùng Không phải Quản trị viên Khởi động / Dừng Dịch vụ Windows?

Sử dụng Thêm , thêm tài khoản người dùng hoặc nhóm để cấp quyền. Trong trường hợp của chúng tôi, Bắt đầu, dừng và tạm dừng sự cho phép là đủ.

Làm thế nào để Cho phép Người dùng Không phải Quản trị viên Khởi động / Dừng Dịch vụ Windows?

Lưu mẫu này.

Lưu ý . Nội dung của Mẫu bảo mật được lưu dưới dạng tệp INF trong thư mục C:\ Users \% username% \ Documents \ Security \ Templates.

Nếu bạn mở tệp này, bạn có thể thấy rằng thông tin về quyền được lưu ở định dạng SDDL, đã đề cập trước đó. Chuỗi có được theo cách này có thể được sử dụng làm đối số của lệnh sc.exe.

[Unicode]
Unicode=yes
[Version]
signature="$CHICAGO$"
Revision=1
[Service General Setting]
"Spooler",2,"D:AR(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;IU)(A;;RPWPDTRC;;;S-1-5-21-3243688314-1354026805-3292651841-1127)S:(AU;FA;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;WD)"

Làm thế nào để Cho phép Người dùng Không phải Quản trị viên Khởi động / Dừng Dịch vụ Windows?
Bây giờ bạn chỉ phải tạo cơ sở dữ liệu mới (Cơ sở dữ liệu mở) bằng cách sử dụng Bảo mật Cấu hình và phân tích snap-in và nhập Mẫu bảo mật của bạn từ tệp Spooler User Rights.inf.

Làm thế nào để Cho phép Người dùng Không phải Quản trị viên Khởi động / Dừng Dịch vụ Windows?

Áp dụng mẫu này bằng cách chọn Định cấu hình máy tính ngay bây giờ từ trình đơn ngữ cảnh.

Làm thế nào để Cho phép Người dùng Không phải Quản trị viên Khởi động / Dừng Dịch vụ Windows?

Bây giờ, bạn kiểm tra xem người dùng có thể cho phép quản lý dịch vụ Print Spooler trong tài khoản không phải quản trị viên hay không.

Làm cách nào để Cấp cho Người dùng Quyền Quản lý Dịch vụ bằng GPO?

Nếu bạn phải cấp quyền cho người dùng để khởi động / dừng một dịch vụ trên nhiều máy chủ hoặc máy tính miền, thì việc sử dụng các tính năng Chính sách nhóm (GPO) sẽ dễ dàng hơn:

  1. Tạo GPO mới hoặc chỉnh sửa GPO hiện có, liên kết nó với vùng chứa Active Directory (OU) cần thiết với các đối tượng máy tính. Đi tới phần chính sách Cấu hình máy tính -> Cài đặt Windows -> Cài đặt bảo mật -> Dịch vụ hệ thống ; Làm thế nào để Cho phép Người dùng Không phải Quản trị viên Khởi động / Dừng Dịch vụ Windows?
  2. Tìm dịch vụ Bộ đệm và cấp quyền cho người dùng như trong phương pháp được mô tả ở trên. Lưu các thay đổi; Lưu ý. Trước đó, chúng tôi đã chỉ ra rằng sử dụng cùng một GPO, bạn có thể ẩn bất kỳ dịch vụ Windows nào với tất cả người dùng.
  3. Chờ cho đến khi GPO được áp dụng trên các máy khách và đảm bảo rằng các quyền dịch vụ mới đã được chỉ định.
Các quyền bảo mật dịch vụ Windows được lưu trữ ở đâu?

Cài đặt bảo mật cho tất cả các dịch vụ mà bạn đã thay đổi quyền mặc định được lưu trữ trong khóa đăng ký của riêng chúng HKLM\System\CurrentControlSet\Services\<servicename>\Security trong Bảo mật tham số của loại REG_BINARY.

Điều này có nghĩa là một trong những cách để đặt quyền dịch vụ trên các máy tính khác là xuất / nhập thông số đăng ký này (bao gồm cả thông qua GPO). Làm thế nào để Cho phép Người dùng Không phải Quản trị viên Khởi động / Dừng Dịch vụ Windows?

Vì vậy, chúng tôi đã xem xét một số cách để quản lý các quyền dịch vụ Windows, cho phép bạn cấp bất kỳ quyền nào cho các dịch vụ hệ thống cho người dùng không phải là quản trị viên. Nếu người dùng yêu cầu quyền truy cập từ xa vào dịch vụ mà không cấp cho dịch vụ đó quyền đăng nhập cục bộ hoặc quyền truy cập RDP, bạn phải cho phép người dùng kết nối từ xa và liệt kê các dịch vụ thông qua Trình quản lý kiểm soát dịch vụ.