Cara memberikan hak pengguna biasa untuk memulai / menghentikan layanan di Windows

Secara default, pengguna reguler yang tidak memiliki hak administrator sistem tidak dapat mengelola layanan sistem Windows (dan sebagian besar aplikasi). Ini berarti bahwa mereka tidak dapat berhenti, memulai (restart), mengubah pengaturan dan izin layanan tersebut. Dalam beberapa kasus, masih diperlukan bahwa pengguna memiliki hak untuk memulai kembali dan mengelola layanan tertentu. Dalam artikel ini, kami akan memandu Anda melalui beberapa cara untuk mengelola hak Layanan Windows. Secara khusus, kami akan menunjukkan cara memberikan pengguna biasa, tanpa hak administrator Windows, hak untuk memulai, menghentikan, dan memulai kembali layanan tertentu.

Misalkan kita perlu menyediakan akun domain contoso\ tuser hak untuk memulai kembali layanan cetak (Print Spooler) dengan nama sistem Toleransi.

Tidak ada alat bawaan yang sederhana dan nyaman untuk mengelola izin layanan di Windows. Kami akan mempertimbangkan beberapa cara untuk memberikan hak pengguna ke layanan:

Konten:

  • Utilitas internal SC.exe (Pengontrol layanan)
  • SubInACL: Tetapkan Hak Layanan menggunakan Sysinternals
  • Process Explorer: Mengatur Izin Layanan
  • Template Keamanan
  • Manajemen Hak Layanan melalui Kebijakan Grup
  • Tetapkan Izin Layanan Menggunakan PowerShell

Mana yang lebih mudah dan lebih nyaman terserah Anda..

Utilitas internal SC.exe (Pengontrol layanan)

Metode standar Windows bawaan untuk mengelola hak atas layanan sistem melibatkan penggunaan utilitas sc.exe (Pengontrol Layanan).

Catatan. Contoh menggunakan sc.exe untuk secara manual menghapus layanan di Windows.

Masalah utama adalah sintaksis marah format untuk pemberian hak atas layanan (format SDDL).

Anda bisa mendapatkan hak saat ini untuk layanan seperti ini:

sc.exe sdshow Spooler

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

Apa arti semua simbol ini??

S: - Daftar Kontrol Akses Sistem (SACL)
D: - Discretionary ACL (DACL)

Huruf pertama setelah tanda kurung berarti: allow (A, Allow) atau deny (D, Deny).

Kumpulan karakter berikutnya - hak yang dapat ditentukan.
CC - SERVICE_QUERY_CONFIG (permintaan untuk pengaturan layanan)
LC - SERVICE_QUERY_STATUS (polling status layanan)
SW - SERVICE_ENUMERATE_DEPENDENTS (survei ketergantungan)
LO - SERVICE_INTERROGATE
CR - SERVICE_USER_DEFINED_CONTROL
RC - READ_CONTROL
RP - SERVICE_START (mulai layanan)
WP - SERVICE_STOP (berhenti layanan)
DT - SERVICE_PAUSE_CONTINUE (penangguhan, layanan lanjutan)

2 huruf terakhir, objek (grup pengguna atau SID) yang haknya diberikan. Ada daftar grup yang telah ditentukan.

Pengguna terotentikasi AU

Operator Akun AO
RU Alias ​​untuk mengizinkan Windows 2000 sebelumnya
Logon Anonim
Pengguna terotentikasi AU
Administrator built-in BA
BG tamu built-in
Bo operator cadangan
BU Pengguna yang terintegrasi
Administrator server Sertifikat CA
Grup Pencipta CG
Pemilik CO Creator
Administrator DA Domain
Komputer DC Domain
Pengontrol domain DD
Tamu Domain DG
Pengguna domain DU
Administrator EA Enterprise
Pengontrol domain ED Enterprise
Wd semuanya
Administrator Kebijakan Grup PA
IU Pengguna yang login secara interaktif
Administrator lokal LA
Tamu lokal LG
Akun layanan LS Lokal
Sistem SY lokal
Pengguna logon Jaringan NU
TIDAK ADA operator konfigurasi jaringan
Akun layanan NS Network
Operator printer PO
PS Pribadi sendiri
Pengguna PU Power
Grup server RS ​​RAS
Pengguna server RD Terminal
RE Replicator
Kode Terbatas RC
Administrator Skema SA
Operator server SO
Pengguna layanan log masuk SU

Alih-alih grup yang telah ditentukan, Anda dapat secara eksplisit menentukan pengguna atau grup dengan SID. Anda bisa mendapatkan SID pengguna untuk pengguna saat ini menggunakan perintah:

whoami / pengguna

atau untuk pengguna domain mana saja yang menggunakan PowerShell cmdlet Get-ADUser:

Dapatkan-ADUser -Identity 'iipeshkov' | pilih SID

Misalnya, hak pengguna untuk layanan spooler dapat diberikan dengan perintah berikut:

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

SubInACL: Tetapkan Hak Layanan menggunakan Sysinternals

Jauh lebih mudah untuk menggunakan utilitas konsol. Subinacl dari suite Sysinternals oleh Mark Russinovich (yang sekarang dimiliki Microsoft dengan penulisnya). Sintaks utilitas ini jauh lebih sederhana dan lebih nyaman untuk persepsi. Cara memberikan hak memulai kembali ke layanan menggunakan SubInACL:

  1. Unduh msi dari halaman (https://www.microsoft.com/en-us/download/details.aspx?id=23510) dan pasang di sistem target.
  2. Pada prompt perintah dengan hak administrator, buka direktori dengan utilitas: cd “C: \ Program Files (x86) \ Windows Resource Kit \ Tools \)
  3. Jalankan perintah: subinacl.exe / service Spooler / grant = contoso \ tuser = PTO Catatan. Dalam hal ini, kami memberi pengguna hak untuk menangguhkan (Jeda / Lanjutkan), memulai (Mulai) dan menghentikan (Menghentikan) layanan. Daftar lengkap izin yang tersedia:F: Kontrol Penuh
    R: Generic Read
    W: Generic Write
    X: Generik eXecute
    L: Baca controL
    T: Konfigurasi Layanan Permintaan
    S: Status Layanan Permintaan
    E: Enumerate Dependent Services
    C: Konfigurasi Ubah Layanan
    T: Mulai Layanan
    O: Hentikan Layanan
    P: Jeda / Lanjutkan Layanan
    I: Layanan Interogasi
    U: Layanan Perintah Kontrol Buatan Pengguna

    Jika Anda perlu memberikan hak ke layanan yang berjalan di komputer jarak jauh, sintaksnya adalah sebagai berikut:
    subinacl / SERVICE \\ msk-buh01 \ spooler / grant = contoso \ tuser = F

  4. Tetap masuk ke sistem ini di bawah akun pengguna dan mencoba memulai kembali layanan dengan perintah:
    net spooler berhenti
    spooler mulai bersih

Jika Anda melakukan semuanya dengan benar, layanan harus berhenti dan mulai ulang.

Process Explorer: Mengatur Izin Layanan

Cukup ubah izin untuk layanan menggunakan utilitas Sysinternals lain - Proses Penjelajah. Mulai Process Explorer dengan hak administrator dan temukan proses layanan yang Anda butuhkan dalam daftar proses. Dalam contoh kita, ini adalah spoolsv.exe (spooler cetak adalah C: \ Windows \ System32 \ spoolsv.exe). Buka properti proses dan pergi ke tab Layanan.

Klik tombol Izin dan di jendela yang terbuka tambahkan pengguna atau grup yang Anda butuhkan untuk memberikan hak atas layanan dan tingkat otoritas.

Template Keamanan

Cara grafik yang lebih visual (tetapi juga membutuhkan lebih banyak tindakan) untuk mengelola hak atas layanan adalah dengan menggunakan templat keamanan. Untuk mengimplementasikan, buka konsol mmc.exe dan tambahkan snap Keamanan Templat.

Buat template baru (Template Baru).

Beri nama template baru dan buka Sistem Layanan. Dalam daftar layanan, pilih layanan Anda Print spoler dan buka propertinya.

Setel jenis startup (Otomatis) dan tekan tombol Edit keamanan.

Menggunakan tombol Tambah Tambahkan akun pengguna atau grup yang ingin Anda berikan haknya. Dalam kasus kami, kami punya cukup hak Mulai, Berhenti dan jeda.

Simpan templat (Simpan).

Catatan. Isi template keamanan disimpan dalam file inf di direktori C: \ Users \ username \ Documents \ Security \ Templates

Jika Anda membuka file ini, Anda dapat melihat bahwa data hak akses disimpan dalam format SDDL yang disebutkan sebelumnya. String yang diperoleh dapat digunakan sebagai argumen untuk perintah sc.exe..

[Unicode] Unicode = yes [Versi] tanda tangan = "$ CHICAGO $" Revisi = 1 [Pengaturan Umum Layanan] "Pengumpul Informasi", 2, "D: AR (A ;; CCDCLCSWRPWPDTLOCRSDRCWDWO ;;; SY) (A ;; CCDCLCSWRPWPDTLOCODRWW ;; BA) (A ;; CCLCSWLOCRRC ;;; IU) (A ;; RPWPDTRC ;;; S-1-5-21-3243688314-1354026805-3292651841-1127) S: (AU; FA; CCDCLCSWRPWPDTLOCRSDRCW ;; ) "

Kiri dengan snap Konfigurasi dan analisis keamanan buat database baru (Buka Database) dan impor templat keamanan kami dari file Pengguna Spooler Rights.inf.

Kami menerapkan templat dengan memanggil perintah dari menu konteks Konfigurasikan Komputer Sekarang.

Sekarang Anda dapat memverifikasi sebagai pengguna bahwa ia memiliki hak untuk mengelola layanan Print Spooler.

Manajemen Hak Layanan melalui Kebijakan Grup

Jika Anda perlu memberi pengguna hak untuk memulai / menghentikan layanan segera di banyak server atau komputer domain, cara termudah adalah dengan menggunakan kemampuan kebijakan grup (GPO).

  1. Buat yang baru atau edit GPO yang ada, tetapkan ke wadah yang diperlukan dengan komputer di Active Directory. Buka bagian kebijakan Konfigurasi komputer -> Pengaturan Windows -> Pengaturan Keamanan -> Layanan Sistem.
  2. Temukan layanan Spooler dan, mirip dengan metodologi yang dibahas sebelumnya, berikan hak kepada pengguna. Simpan perubahan.Catatan. Sebelumnya kami menunjukkan bagaimana menggunakan GPO serupa Anda dapat menyembunyikan layanan Windows dari semua pengguna sistem.
  3. Tetap menunggu penerapan kebijakan pada komputer klien dan memverifikasi penerapan pengaturan hak layanan.

Tetapkan Izin Layanan Menggunakan PowerShell

TechNet Gallery memiliki modul PowerShell tidak resmi terpisah untuk mengelola izin untuk berbagai objek Windows - Modul PowerShellAccessControl (Anda dapat mengunduhnya di sini). Modul ini memungkinkannya untuk mengelola hak layanan. Impor modul ke sesi Anda:

Impor-Modul PowerShellAccessControl

Anda dapat memperoleh izin yang efektif untuk layanan tertentu dari PowerShell seperti ini:

Dapatkan-Layanan spooler | Dapatkan-EffectiveAccess -Principal corp \ tuser

Untuk memberikan pengguna biasa hak untuk memulai dan menghentikan layanan, lakukan:

Dapatkan-Layanan spooler | Add-AccessControlEntry -ServiceAccessRights Mulai, Berhenti -Principal corp \ tuser

Jadi, kami telah memeriksa beberapa cara untuk mengelola hak atas layanan Windows, memungkinkan Anda untuk memberikan hak apa pun kepada pengguna untuk layanan sistem. Dalam hal pengguna memerlukan akses jarak jauh ke layanan, tanpa memberinya hak masuk lokal, Anda harus mengizinkan pengguna untuk polling jarak jauh Manajer Layanan Kontrol.