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

จะรัน CMD/Program ภายใต้ SYSTEM (LocalSystem) ใน Windows ได้อย่างไร?

ในการดำเนินการบางอย่างใน Windows การมีสิทธิ์ของผู้ดูแลระบบไม่เพียงพอ ตัวอย่างเช่น คุณไม่สามารถแทนที่หรือลบไฟล์ระบบและคีย์รีจิสทรีบางรายการ หยุดบริการของระบบ หรือดำเนินการอื่นๆ ที่อาจไม่ปลอดภัยที่อาจส่งผลต่อความเสถียรของระบบปฏิบัติการของคุณ ในกรณีเหล่านี้ ผู้ดูแลระบบสามารถเป็นเจ้าของไฟล์หรืออ็อบเจ็กต์อื่นๆ หรือดำเนินการในนามของบัญชีระบบ ในบทความนี้ เราจะมาดูวิธีเรียกใช้แอปหรือพรอมต์คำสั่งในฐานะ SYSTEM ที่มีสิทธิพิเศษ (LocalSystem ) บัญชีบน Windows 10

ข้อจำกัดความรับผิดชอบ . การเปลี่ยนแปลงอิมเมจ Windows ในนามของบัญชี SYSTEM เป็นการดำเนินการที่ไม่ได้มาตรฐาน โปรดทราบว่าการดำเนินการที่ไม่ถูกต้องกับสิทธิ์ NT AUTHORITY\SYSTEM อาจทำให้ Windows ของคุณเสียหาย ในทางปฏิบัติ กระบวนการที่ทำงานอยู่ในฐานะบัญชีระบบนั้นไม่ค่อยได้ใช้ ในกรณีส่วนใหญ่ คุณสามารถแก้ปัญหาได้โดยใช้วิธีมาตรฐาน:runas เรียกใช้แอปโดยไม่มีสิทธิ์ของผู้ดูแลระบบ และระงับข้อความแจ้ง UAC เป็นเจ้าของไฟล์/คีย์รีจิสทรี ปิดใช้งาน UAC สำหรับแอปทั้งหมดหรือเฉพาะบางแอป ให้สิทธิ์การจัดการบริการสำหรับแอปที่ไม่ใช่ - ผู้ใช้ผู้ดูแลระบบ

SCM (Service Control Manager) จะใช้บัญชี SYSTEM ในตัวเพื่อเรียกใช้และจัดการบริการของระบบ การใช้บัญชีระบบ (อาจเรียกอีกอย่างว่า NT AUTHORITY\SYSTEM , ระบบท้องถิ่น หรือ คอมพิวเตอร์\LocalSystem ) บริการและกระบวนการของระบบส่วนใหญ่จะรัน (รวมถึง NT OS Kernel) เปิดสแน็ปอิน mmc การจัดการบริการ (services.msc ) และสังเกตบริการที่มี Local System ใน LogOnAs คอลัมน์. บริการเหล่านี้ทำงานภายใต้บัญชี SYSTEM

จะรัน CMD/Program ภายใต้ SYSTEM (LocalSystem) ใน Windows ได้อย่างไร?

วิธีเรียกใช้ CMD ภายใต้บัญชี Local System ใน Windows (เวอร์ชันก่อน Vista)

ใน Windows XP และ Windows Server 2003 (ที่ไม่รองรับอีกต่อไป) มีเคล็ดลับที่น่าสนใจที่อนุญาตให้คุณเรียกใช้โปรแกรมหรือพรอมต์คำสั่งแบบโต้ตอบ (cmd.exe) ด้วยสิทธิ์ของระบบโดยใช้ Task Scheduler การเปิดพรอมต์คำสั่งภายใต้บัญชีผู้ดูแลระบบและเรียกใช้คำสั่งต่อไปนี้ก็เพียงพอแล้ว:

at 10:23 /interactive cmd.exe

โดยที่ 10:23 เป็นเวลาปัจจุบัน + หนึ่งนาที (ในรูปแบบ 24 ชั่วโมง)

เมื่อถึงเวลาที่กำหนด พรอมต์คำสั่งจะปรากฏขึ้นภายใต้บัญชีระบบภายใน หากคุณเรียกใช้คำสั่งนี้ในเซสชันเทอร์มินัล (RDP) บน Windows Server 2003/XP โปรดทราบว่าพรอมต์คำสั่งที่มีสิทธิ์ของระบบจะแสดงในเซสชันคอนโซลเท่านั้น (คุณสามารถเชื่อมต่อกับคอนโซลคอมพิวเตอร์ผ่าน mstsc /console หรือ mstsc /admin )

จะรัน CMD/Program ภายใต้ SYSTEM (LocalSystem) ใน Windows ได้อย่างไร?

Windows 10 ไม่รองรับการเรียกใช้พรอมต์คำสั่งแบบโต้ตอบโดยใช้ at สั่งการ. ขอแนะนำให้ใช้ schtasks.exe แทน

คำเตือน:เนื่องจากการปรับปรุงการรักษาความปลอดภัย งานนี้จะทำงานในเวลาที่คาดไว้แต่ไม่สามารถโต้ตอบได้ ใช้ยูทิลิตี้ schtasks.exe หากจำเป็นต้องใช้งานแบบโต้ตอบ ('schtasks /?' เพื่อดูรายละเอียด) คำขอไม่ได้รับการสนับสนุน 

จะรัน CMD/Program ภายใต้ SYSTEM (LocalSystem) ใน Windows ได้อย่างไร?

จะเรียกใช้ CMD/Process เป็น SYSTEM บน Windows 10 โดยใช้ PSExec ได้อย่างไร

ใน Windows 7 หรือสูงกว่า พรอมต์คำสั่งแบบโต้ตอบไม่สามารถเรียกใช้ภายใต้บัญชีระบบโดยใช้ Task Scheduler ในการรันคำสั่งเป็น NT Authority\ System คุณสามารถใช้ PSExec.exe ยูทิลิตี้โดย Sysinternals

คุณสามารถดาวน์โหลดเครื่องมือ PSExec.exe ได้จากเว็บไซต์ของ Microsoft:https://docs.microsoft.com/en-us/sysinternals/downloads/psexec ผู้ดูแลระบบ Windows ทุกคนคุ้นเคยกับ PSExec ในกรณีส่วนใหญ่ จะใช้ในการจัดการ Windows จากระยะไกล และยังมีคุณลักษณะที่เป็นประโยชน์สำหรับการเรียกใช้กระบวนการในนามของบัญชีระบบ แอนตี้ไวรัสบางตัวอาจระบุ PSExec.exe ว่าเป็นโปรแกรมที่อาจเป็นอันตราย (อย่างไรก็ตาม มันคือ psexec ที่ใช้ในการแจกจ่ายไวรัส notpetya ที่โด่งดัง)

ไม่จำเป็นต้องติดตั้ง PSExec เปิดพรอมต์คำสั่งที่ยกระดับ (“เรียกใช้ในฐานะผู้ดูแลระบบ”) ไปที่โฟลเดอร์ที่มี PSexec.exe และเรียกใช้คำสั่งต่อไปนี้:

psexec -i -s cmd.exe

-ฉัน – อนุญาตให้เริ่มกระบวนการ/แอปในโหมดโต้ตอบ (ผู้ใช้สามารถโต้ตอบกับแอปบนเดสก์ท็อปได้ หากคุณไม่ใช้พารามิเตอร์นี้ กระบวนการจะเริ่มในเซสชันคอนโซล)

s – หมายความว่าต้องเรียกใช้กระบวนการ (ในกรณีนี้คือพรอมต์คำสั่ง) เป็นบัญชีระบบ

ในการรัน PsExec ครั้งแรก คุณจะได้รับแจ้งให้ยอมรับข้อตกลงใบอนุญาต

จะรัน CMD/Program ภายใต้ SYSTEM (LocalSystem) ใน Windows ได้อย่างไร?

หลังจากรันคำสั่ง หน้าต่างพรอมต์คำสั่งใหม่จะปรากฏขึ้นภายใต้ NT Authority\System บัญชีผู้ใช้. ตรวจสอบให้แน่ใจว่าเป็นจริง โดยเรียกใช้คำสั่งนี้:

whoami

จะรัน CMD/Program ภายใต้ SYSTEM (LocalSystem) ใน Windows ได้อย่างไร?

ดังนั้น คุณสามารถเรียกใช้โปรแกรม คำสั่ง หรือสคริปต์ใดๆ ก็ได้ในฐานะบัญชีระบบ เพียงพอที่จะแทนที่ cmd.exe ในพารามิเตอร์ PsExec ด้วยชื่อของแอปที่เรียกใช้งานได้ที่คุณต้องการเรียกใช้

ในหน้าต่างพรอมต์คำสั่งที่ปรากฏขึ้น คุณสามารถเรียกใช้คำสั่งใดๆ ในรูปแบบ SYSTEM ตอนนี้คุณสามารถเปลี่ยน เปลี่ยนชื่อ หรือลบไฟล์ระบบ/คีย์รีจิสทรีที่เป็นของ TrustedInstaller หรือ SYSTEM โปรแกรมหรือกระบวนการทั้งหมดที่คุณเริ่มในหน้าต่างนี้จะทำงานด้วยสิทธิ์ LocalSystem ที่ยกระดับ ตัวอย่างเช่น คุณสามารถหยุดบริการของระบบหรือปิดไฟล์ที่เปิดโดยกระบวนการของระบบ

เมื่อใช้ PSExec คุณสามารถเปิดพร้อมท์คำสั่งแบบโต้ตอบด้วยสิทธิ์ NT AUTORITY\SYSTEM บนคอมพิวเตอร์ระยะไกล โดยจะใช้คำสั่งต่อไปนี้:

psexec -s \\mun-b21pc12 cmd.exe

หาก “Couldn’t install PSEXESVC service ” ปรากฏขึ้น ตรวจสอบให้แน่ใจว่า:

  • พรอมต์คำสั่งทำงานในฐานะผู้ดูแลระบบ
  • อินสแตนซ์บริการ PSEXESVC อื่นไม่ทำงาน จะรัน CMD/Program ภายใต้ SYSTEM (LocalSystem) ใน Windows ได้อย่างไร?

นอกจากนี้ยังมีเครื่องมือของบุคคลที่สามจำนวนหนึ่งในการเรียกใช้แอปเป็นบัญชีระบบ (AdvancedRun , RunAsSystem , PowerRun ) แต่ฉันไม่เห็นจุดใดในการใช้งานเลย ก่อนอื่น พวกเขาเป็นบุคคลที่สาม และคุณไม่สามารถแน่ใจได้ว่าไม่มีโค้ดที่เป็นอันตรายอยู่ในนั้น ประการที่สอง ยูทิลิตี้ PsExec อย่างเป็นทางการของ Microsoft ทำงานได้ดีมาก