ยกระดับโปรแกรมที่กำลังทำงานให้กับผู้ดูแลระบบ (Windows 7)


35

บางครั้งคุณอาจเปิดโปรแกรมที่คุณต้องการเรียกใช้ในฐานะผู้ดูแล แต่คุณอาจเปิดโปรแกรมนั้นไม่ได้ในฐานะผู้ดูแลระบบ เป็นไปได้หรือไม่ที่จะยกระดับสิทธิ์ของโปรแกรมที่รันอยู่แล้วใน Windows 7 หรือฉันต้องปิดและรีสตาร์ทเป็นผู้ดูแลระบบหรือไม่


8
sudoสำหรับผู้ชนะ!
Josh K

1
@Josh K - er - คุณจะยกระดับแอปที่รันอยู่แล้วโดยใช้sudoอย่างไร
Sathyajith Bhat

มันวิเศษมากคุณต้องถอดรหัสman sudoข้อมูลเพิ่มเติม
Josh K

2
@ Josh ถ้าไม่มีอะไรคุณสามารถใช้pseudo;)
Tomas Aschan

คำตอบ:


26

น่าเสียดายที่ไม่มี กระบวนการที่กำลังทำงานไม่สามารถยกระดับเป็นสิทธิ์ของผู้ดูแลระบบได้ ฉันกำลังมองหาแหล่งข้อมูลที่เชื่อถือได้มากขึ้น แต่ตอนนี้ฉันได้พบ:

  1. "โปรแกรมไม่สามารถยกระดับได้เมื่อเปิดตัวแล้ว ... "

  2. "รหัสสามารถถูกยกระดับได้ที่ระดับกระบวนการเมื่อเริ่มต้นเท่านั้นซึ่งหมายความว่ากระบวนการที่กำลังทำงานไม่สามารถยกระดับได้"


1
นี่เป็นเรื่องจริงอย่างแน่นอน win32 API รองรับการยกระดับแอพพลิเคชั่นโดยพลการที่รันอยู่แล้วแม้ว่าแอพพลิเคชั่นดังกล่าวจะต้องเปิดเผยการทำงานของตัวเอง บทความนี้และซอร์สโค้ดที่แนบมาแสดงให้เห็นถึงวิธีการทำสิ่งนี้ให้สำเร็จ มันเป็นไปได้น่ากลัวว่าจะเขียนโปรแกรมที่จะเลือกและยกระดับกระบวนการอื่น ๆ ...
Fopedush

8
@Fopedush แม้ว่าบทความนั้นจะอธิบายเทคนิคนี้ว่า "การยกระดับตนเอง" สิ่งที่โปรแกรมตัวอย่างเหล่านั้นดูเหมือนจะทำจริง ๆ คือการเปิดตัวอินสแตนซ์ใหม่ของกระบวนการที่ใช้ShellExecuteExและคำกริยา "runas" ฉันไม่คิดว่าจะบรรลุความต้องการของ OP ในการยกระดับโปรแกรมที่กำลังทำงานอยู่ (เช่นจะสูญเสียสถานะทั้งหมด)
Stephen Jennings

เมื่ออินสแตนซ์ Total Commander 8.01 ที่ไม่ได้รับการยกระดับถูกปิดกั้นในการดำเนินการเช่นการคัดลอกลงในโฟลเดอร์ย่อยของไฟล์โปรแกรมมันมีโอกาสที่จะ "ลองใหม่ในฐานะผู้ดูแลระบบ" สิ่งนี้ไม่สามารถขยายไปสู่กระบวนการ "ต่างประเทศ" (ไม่ใช่ตัวเอง) ได้หรือไม่?
n611x007

3
@naxa ฉันไม่ได้ใช้ผู้บัญชาการทั้งหมด แต่ฉันยินดีที่จะเดิมพันตัวเลือก "ลองใหม่ในฐานะผู้ดูแลระบบ" จริง ๆ แล้วจะวางกระบวนการที่ยกระดับแยกจากกันอย่างสมบูรณ์ซึ่งดำเนินงานที่ได้รับสิทธิพิเศษ Process Explorer ทำสิ่งนี้เมื่อคุณเลือก "แสดงรายละเอียดสำหรับกระบวนการทั้งหมด" มันจะเปิดตัวสำเนาที่ยกระดับใหม่ของตัวเองและปิดสำเนาที่ไม่ได้ทำการปรับปรุง หากเป็นเช่นนั้นโปรแกรมจะต้องมีการเขียนเป็นพิเศษเพื่อทราบวิธีเปิดใช้กระบวนการที่สองอย่างถูกต้อง
Stephen Jennings

1
@StephenJennings คุณเข้าใจถูกต้อง - ตัวอย่างรหัสที่ฉันเชื่อมโยงนั้นจริง ๆ แล้วเพียงแค่เปิดใช้งานใหม่ด้วยคำสั่ง runas ฉันควรตรวจสอบโค้ดเพิ่มเติมจากบทความก่อนที่จะแสดงความคิดเห็น ฉันรู้สึกว่า WIN32 api ได้เปิดเผยกลไกการยกระดับบางอย่าง - แต่บางทีฉันก็เข้าใจผิด ฉันจะขุดและโพสต์อีกครั้งหากฉันสามารถค้นหาสิ่งที่ฉันคิด
Fopedush
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.