Memberikan hak untuk terhubung dari jarak jauh ke Service Control Manager

Pertimbangkan fitur pemberian hak akses jarak jauh ke daftar layanan yang berjalan di server oleh pengguna domain yang tidak memiliki hak administrator lokal. Intinya, tugasnya adalah menyediakan akses ke koneksi jarak jauh ke antarmuka manajer kontrol layanan - Manajer kontrol layanan (SCmanager).

Seperti apa masalahnya. Misalkan kita menginginkan pengguna jarak jauh / atau sistem pemantauan untuk dapat menanyakan status layanan di server. Untuk alasan yang jelas, pengguna jarak jauh ini tidak memiliki hak administratif dan hak masuk lokal ke server.

Saat mencoba menyambungkan dan mendapatkan daftar layanan di komputer jarak jauh menggunakan konsol services.msc, pengguna menerima kesalahan:

Windows tidak dapat membuka database manajer kontrol layanan di computer_name

Kesalahan 5: Akses ditolak.

Jika Anda mencoba membuat daftar layanan di server jauh menggunakan utilitas sc.exe, kesalahannya adalah ini:

C: \ Windows \ system32> sc \\ obts-01 permintaan

[SC] OpenSCManager GAGAL 5:
Akses ditolak.

Kemampuan untuk mengakses daftar layanan dikontrol oleh deskriptor keamanan database Service Control Manager, akses jarak jauh yang untuk pengguna "Pengguna yang Diotentikasi" terbatas pada Windows 2003 SP1 (yang, pada umumnya, logis). Hanya anggota grup administrator lokal yang memiliki hak akses jarak jauh ke layanan ini.

Mari kita pertimbangkan bagaimana menyediakan akses jarak jauh ke Service Control Manager untuk mendapatkan daftar layanan server dan kemungkinan mendapatkan status mereka untuk pengguna biasa (tanpa hak administrator) menggunakan contoh Windows Server 2012 R2.

Izin Manajer Layanan Saat Ini (SCM) dapat diperoleh dengan menggunakan utilitas sc.exe, dengan mengeksekusi pada baris perintah yang diluncurkan sebagai administrator:

sc sdshow scmanager

Perintah akan mengembalikan sesuatu seperti baris SDDL ini:

D: (A ;; CC ;;; AU) (A ;; CCLCRPRC; ;; IU) (A ;; CCLCRPRC;; SU) (A ;; CCLCRPWPRC ;;; SY) (A ;; KA ;;;; BA) (A ;; CC ;;; AC) S: (AU; FA; KA ;;; WD) (AU; OIIOFA; GA ;;; WD)

Dalam hal ini, dapat dilihat bahwa secara default, grup Pengguna yang Diotentikasi (AU) hanya diizinkan untuk terhubung ke SCM, tetapi tidak untuk memberikan layanan polling (LC). Salin garis ke jendela editor tes apa pun.

Langkah selanjutnya adalah mendapatkan SID dari pengguna atau grup yang ingin kami sediakan akses jarak jauh ke SCM (Cara mendapatkan SID pengguna dengan nama). Sebagai contoh, kita mendapatkan SID AD dari grup msk-hd seperti ini:

Dapatkan-Grup Iklan -Identitas 'msk-hd' | pilih SID

SID
---
S-1-5-21-2470146451-3958456388-2988885117-23703978

Di editor teks di baris SDDL, Anda harus menyalin blok  (A ;;CCLCRPRC ;;;IU) - (IU - berarti Pengguna Interaktif)), ganti di blok IU yang disalin dengan SID pengguna / grup dan rekatkan baris yang diterima sebelum S:.

Dalam kasus kami, kami mendapat baris berikut:

D: (A ;; CC ;;; AU) (A ;; CCLCRPRC; ;; IU) (A ;; CCLCRPRC;; SU) (A ;; CCLCRPWPRC ;;; SY) (A ;; KA ;;;; BA) (A ;; CC ;;; AC) (A ;; CCLCRPRC ;;;S-1-5-21-2470146451-3958456388-2988885117-23703978)S: (AU; FA; KA ;;; WD) (AU; OIIOFA; GA ;;; WD)

Dan sekarang, menggunakan sc.exe, kami mengubah parameter deskriptor keamanan Service Control Manager:

sc sdset scmanager “D: (A ;; CC ;;; AU) (A ;; CCLCRPRC; ;; IU) (A ;; CCLCRPRC ;;; SU) (A ;; CCLCRPWPRC ;;; SY) (A ;; KA ;;; BA) (A ;; CC ;;; AC) (A ;; CCLCRPRC ;;; S-1-5-21-2470146451-3958456388-2988885117-23703978) S: (AU; FA; KA ;; ; WD) (AU; OIIOFA; GA ;;; WD) “

Tali [SC] SUKSES SetServiceObjectSecurity mengatakan bahwa pengaturan keamanan baru berhasil diterapkan, dan kami memberikan hak pengguna yang serupa dengan hak pengguna yang diautentikasi secara lokal: SC_MANAGER_CONNECT, SC_MANAGER_ENUMERATE_SERVICE, SC_MANAGER_QUERY_LOCK_STATUS dan STANDARD_RIGHTS_READ.

Periksa bahwa sekarang pengguna jarak jauh bisa mendapatkan daftar layanan dan statusnya menggunakan konsol manajemen layanan (services.msc) dan menggunakan kueri sc \\ server-name1 kueri

Secara alami, tidak ada hak untuk mengelola layanan yang berjalan, karena Akses ke setiap layanan dikendalikan oleh ACL individu. Untuk memberikan hak pengguna untuk memulai / menghentikan layanan server, seseorang harus menggunakan instruksi dari artikel Memberikan hak kepada pengguna untuk mengontrol (memulai, berhenti, mulai ulang) layanan Windows.

Kiat. Ketika menetapkan hak untuk SCManager selain standar, mereka disimpan dalam cabang HKLM \ SYSTEM \ CurrentControlSet \ Control \ ServiceGroupOrder \ Security. Dan jika ada kesalahan saat membuat garis SDDL, Anda dapat mengatur ulang izin default saat ini hanya dengan menghapus cabang ini dan me-reboot.