Computer >> คอมพิวเตอร์ >  >> ระบบ >> Windows Server

การให้สิทธิ์การเข้าถึงระยะไกลบน SCManager แก่ผู้ใช้ที่ไม่ใช่ผู้ดูแลระบบ

ลองพิจารณาลักษณะเฉพาะของการให้สิทธิ์การเข้าถึงระยะไกลเพื่อระบุรายการบริการที่ทำงานบนเซิร์ฟเวอร์ระยะไกลให้กับผู้ใช้โดเมนโดยไม่มีสิทธิ์ของผู้ดูแลระบบในพื้นที่ อันที่จริง ภารกิจนี้มีขึ้นเพื่อให้การเชื่อมต่อระยะไกลกับ Service Control Manager (ผู้จัดการ SC ).

นี่คือลักษณะของปัญหา สมมติว่าเราต้องการให้ผู้ใช้ระยะไกลหรือระบบตรวจสอบสามารถสอบถามสถานะของบริการบนเซิร์ฟเวอร์บางเครื่องได้ ด้วยเหตุผลที่ชัดเจน ผู้ใช้ระยะไกลรายนี้จึงไม่มีสิทธิ์ของผู้ดูแลระบบและมีสิทธิ์เข้าถึงเซิร์ฟเวอร์ภายในเครื่อง

เมื่อพยายามเชื่อมต่อและรับรายการบริการบนคอมพิวเตอร์ระยะไกลโดยใช้คอนโซล services.msc ผู้ใช้จะเห็นข้อผิดพลาดต่อไปนี้:

Windows ไม่สามารถเปิดฐานข้อมูลตัวจัดการการควบคุมบริการบน computer_name

ข้อผิดพลาด 5:การเข้าถึงถูกปฏิเสธ

การให้สิทธิ์การเข้าถึงระยะไกลบน SCManager แก่ผู้ใช้ที่ไม่ใช่ผู้ดูแลระบบ

หากคุณพยายามรับรายการบริการบนเซิร์ฟเวอร์ระยะไกลโดยใช้ sc.exe ข้อผิดพลาดจะเป็นดังนี้:

C:\Windows\system32>sc \\lonts-01 query

[SC] OpenSCManager FAILED 5:
การเข้าถึงถูกปฏิเสธ

การให้สิทธิ์การเข้าถึงระยะไกลบน SCManager แก่ผู้ใช้ที่ไม่ใช่ผู้ดูแลระบบ

การเข้าถึงรายการบริการถูกควบคุมโดยตัวบอกเกี่ยวกับความปลอดภัยของฐานข้อมูล Service Control Manager ซึ่งการเข้าถึงระยะไกลของผู้ใช้จาก "ผู้ใช้ที่ตรวจสอบสิทธิ์" ถูกจำกัดใน Windows 2003 SP1 แล้ว (ซึ่งค่อนข้างสมเหตุสมผล) เฉพาะสมาชิกของกลุ่ม Local Administrators เท่านั้นที่มีสิทธิ์เข้าถึงบริการนี้จากระยะไกล

มาพิจารณาวิธีให้สิทธิ์เข้าถึง Service Control Manager จากระยะไกลเพื่อรับรายการบริการบนเซิร์ฟเวอร์และวิธีที่ผู้ใช้ทั่วไป (ไม่มีสิทธิ์ของผู้ดูแลระบบ) รับสถานะของบริการเหล่านี้ใน Windows Server 2012 R2

สามารถรับสิทธิ์ Service Control Manager (SCM) ปัจจุบันได้โดยใช้ sc.exe โดยการรันคำสั่งต่อไปนี้ใน command prompt ให้รันด้วยสิทธิ์ของแอดมิน:

sc sdshow scmanager

คำสั่งส่งคืนสตริง SDDL ที่คล้ายกัน:

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)

การให้สิทธิ์การเข้าถึงระยะไกลบน SCManager แก่ผู้ใช้ที่ไม่ใช่ผู้ดูแลระบบ

ในกรณีนี้ คุณจะเห็นว่าโดยค่าเริ่มต้น กลุ่มผู้ใช้ที่พิสูจน์ตัวตน (AU) ได้รับอนุญาตให้เชื่อมต่อโดยใช้ SCM เท่านั้น แต่ไม่สามารถสำรวจบริการ (LC) ได้ คัดลอกสตริงนี้ไปยังโปรแกรมแก้ไขข้อความใดๆ

ขั้นตอนต่อไปคือการรับ SID ของผู้ใช้หรือกลุ่มที่เราต้องการให้สิทธิ์ในการเข้าถึง SCM จากระยะไกล (วิธีรับ SID ของผู้ใช้ด้วยชื่อผู้ใช้) ตัวอย่างเช่น รับ SID ของกลุ่ม AD lon-hd:

Get-ADgroup -Identity lon-hd | select SID
SID
---
S-1-5-21-2470146451-39123456388-2999995117-23338978

คัดลอกบล็อก (A;;CCLCRPRC;;;IU) – (IU หมายถึงผู้ใช้เชิงโต้ตอบ) จากสตริง SDDL ในโปรแกรมแก้ไขข้อความของคุณ แทนที่ IU ในบล็อกที่คัดลอกด้วย SID ของผู้ใช้/กลุ่ม แล้ววางสตริงที่คุณได้รับก่อน ส:

ในกรณีของเราเราได้สตริงต่อไปนี้:

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-39123456388-2999995117-23338978)S:(AU;FA;KA;;;WD)(AU;OIIOFA;GA;;;WD)

ตอนนี้ มาเปลี่ยนพารามิเตอร์ของตัวบอกเกี่ยวกับความปลอดภัยของตัวบอกเกี่ยวกับความปลอดภัยของ 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-39123456388-2999995117-23338978)S:(AU;FA;KA;;;WD)(AU;OIIOFA;GA;;;WD)“

การให้สิทธิ์การเข้าถึงระยะไกลบน SCManager แก่ผู้ใช้ที่ไม่ใช่ผู้ดูแลระบบ

สตริง [SC] SetServiceObjectSecurity SUCCESS แจ้งว่ามีการใช้พารามิเตอร์ความปลอดภัยใหม่สำเร็จแล้ว และผู้ใช้ได้รับสิทธิพิเศษที่คล้ายกับของผู้ใช้ที่ตรวจสอบสิทธิ์ในเครื่อง:SC_MANAGER_CONNECT, SC_MANAGER_ENUMERATE_SERVICE, SC_MANAGER_QUERY_LOCK_STATUS และ STANDARD_RIGHTS_READ

ตรวจสอบให้แน่ใจว่าผู้ใช้ระยะไกลสามารถรับรายการบริการและสถานะจากคอนโซล services.msc โดยใช้แบบสอบถาม sc \\srv-name1

การให้สิทธิ์การเข้าถึงระยะไกลบน SCManager แก่ผู้ใช้ที่ไม่ใช่ผู้ดูแลระบบ

โดยปกติ คุณไม่มีสิทธิ์ในการจัดการบริการ เนื่องจากการเข้าถึงแต่ละบริการจะถูกควบคุมโดย ACL ส่วนบุคคล หากต้องการให้สิทธิ์ในการเริ่ม/หยุดบริการเซิร์ฟเวอร์แก่ผู้ใช้ ให้ทำตามคำแนะนำในบทความวิธีให้สิทธิ์ในการจัดการ (เริ่ม หยุด หรือรีสตาร์ท) บริการ Windows แก่ผู้ใช้

เคล็ดลับ . หากคุณกำหนดสิทธิ์ SCManager ที่แตกต่างจากสิทธิ์ทั่วไป สิทธิ์เหล่านั้นจะถูกบันทึกไว้ใน HKLM\SYSTEM\CurrentControlSet\Control\ServiceGroupOrder\Security สาขาของสำนักทะเบียน และหากคุณทำผิดพลาดขณะเตรียมสตริง SDDL คุณสามารถลบสาขานี้และรีสตาร์ทคอมพิวเตอร์ของคุณเพื่อรีเซ็ตการอนุญาตปัจจุบันเป็นค่าเริ่มต้น การให้สิทธิ์การเข้าถึงระยะไกลบน SCManager แก่ผู้ใช้ที่ไม่ใช่ผู้ดูแลระบบ