Run Program without Admin

How to Run Program without Admin Privileges

สวัสดีครับ บทความนี้จะมาแนะนำวิธีการบังคับให้เปิดโปรแกรมโดยไม่ร้องขอสิทธิ์แอดมิน ในโลกมีหลายๆ โปรแกรมที่เมื่อเราต้องการเปิดใช้งานจะมีหน้าต่าง UAC (User Account Control) ปรากฎขึ้นมาก ถ้าเป็นผู้ใช้ทั่วๆ ไป ตามบ้าน คุณก็แค่คลิกที่ปุ่มโอเครโปรแกรมของคุณก็เปิดขึ้นมาให้ใช้ทันที นั้นเพราะว่าบัญชีที่คุณกำลังใช้อยู่ อยู่ในกลุ่มของผู้ดูแลระบบ (Local Administrators group)

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

แล้วปัญหามันก็อยู่ตรงที่มีบางโปรแกรม มันเขียนให้เปิดสิทธิ์แอดมิน (ตรงไอคอนจะมีรูปโล่สีเหลือง) และการที่เราจะไม่แอดผู้ใช้เข้าไปไว้ในกลุ่มผู้ดูแลระบบ (Local Administrators group)

ขอแนะนำ 2 วิธีที่จะบังคับเปิดโปรแกรมด้วยสิทธิ์ผู้ใช้ทั้วไป

  • เพิ่มเมนู Run without Admin
  • แก้ไข แก้ไข Execution Level ใน Manifest ของโปรแกรม

How to Run Program without Admin Privileges

วิธีที่ 1 เพิ่มเมนู Run without Admin

ขั้นตอนที่ 1 สร้างไฟล์ Text เปล่าๆ ขึ้นมา ตั้งชื่อไฟล์อะไรก็ได้ มีนามสกุลเป็น .reg ตัวอย่างเช่น RunWithoutAdmin.reg

RunWithoutAdmin
ไฟล์ Registry ชื่อ RunWithoutAdmin.reg

ขั้นตอนที่ 2 เปิดไฟล์ Text ด้วยโปรแกรม Notepad แล้วคัดลอกโค้ดด้านล่างไปใส่ไว้ในไฟล์ Text ที่เราสร้างไว้ในขั้นตอนที่ 1 แล้วบันทึก แล้วปิดโปรแกรม Notepad ได้เลย

[HKEY_CLASSES_ROOT*\shell\forcerunasinvoker]
@="Run without privilege elevation"

[HKEY_CLASSES_ROOT*\shell\forcerunasinvoker\command]
@="cmd /min /C \"set __COMPAT_LAYER=RUNASINVOKER && start \"\" \"%1\"\""

“Run without privilege elevation” ประโยคนี้ คือ ชื่อของเมนู สร้างมารถปรับเปลี่ยนได้ตามใจชอบ เช่น “Run Program without Admin” เป็นต้น

ขั้นตอนที่ 3 เปิดไฟล์ RunWithoutAdmin.reg ด้วยการดับเบิ้ลคลิก ถ้ามี UAC ปรากฎขึ้นมาให้เรากด Yes ไป จากนั้นจะมีหน้าต่าง Registry Editor เด้งขึ้นมา ให้กด Yes แล้วกด OK

Register Windows
หน้าต่าง Registry Editor ยืนยันการเพิ่มเมนู

ขั้นตอนที่ 4 ตอนนี้เราสามารถเปิดโปรแกรมที่มีโล่เหลืองได้โดยไม่ต้องใช้สิทธิ์แอดมิน โดยการคลิกขวาแล้วเลือกเมนู “Run without privilege elevation”

RunWithoutAdmin Menu
เมนู Run without privilege elevation

วิธีที่ 2 แก้ไข Execution Level ใน Manifest ของโปรแกรม

วิธีการนี้อาจจะดูกึ่งๆ แฮ็คนิดหน่อย เป็นการเข้าไปแก้ไขค่า “requestedExecutionLevel” ที่อยู่ไฟล์ Manifest จาก “requireAdministrator” เป็น “asInvoker”

เครื่องมือที่จำเป็น โปรแกรม Resource Hacker

ขั้นตอนที่ 1 เปิดโปรแกรม Resource Hacker แล้วเปิดไฟล์ .exe ที่ต้องการแก้ไขโดยการคลิกที่ไอคอนอันที่สอง ดูด้านล่างประกอบ

โปรแกรม Resource Hacker

ขั้นตอนที่ 2 หลักจากที่เปิดไฟล์ขึ้นมาแล้ว ดับเบิ้ลคลิกที่โฟลเดอร์ Manifest แล้วคลิกที่ ⭐ 1 : 0 เราจะเห็ยข้อมูล XML ทางฝั่งขวา

Resource Hacker - Manifest
Manifest

ขั้นตอนที่ 3 จากนั้นมองหา requestedExecutionLevel แล้วเปลี่ยนค่า Level จาก requireAdministrator เป็น asInvoker

ค่าของ requestedExecutionLevel เดิม
Resource Hacker - asInvoker
ค่าของ requestedExecutionLevel ใหม่

ขั้นตอนที่ 4 ทำการ Complie โดยกดที่ปุ่มสีเขียว (1) แล้วรอให้สถานะ Complie succeeded ปรากฎขึ้นมา (2) แล้วกดปุ่มรูปแผ่นดิส (3) สุดท้ายแล้วเราจะได้ไฟล์ .exe ตัวใหม่มา

Resource Hacker - New EXE
โปรแกรม ก่อน – หลัง แก้ไข requestedExecutionLevel

วิธีการนี้อาจไม่ได้ผลกับทุกโปรแกรม อาจเป็นเพราะเป็นโปรแกรมที่เก่าหรือภาษาที่ล้าสมัย ทำให้ Resource Hacker ไม่สามารถ Compile ได้ ต้องกลับไปใช้วิธีแรกเท่านั้น

ถ้าโปรแกรมที่ Signed ด้วย Microsoft ไฟล์ exe ใหม่จะมีคำเตือนปรากฎขึ้นมา

บทส่งท้าย

การที่เราปรับเปลี่ยนให้ Run Program without Admin อาจจะทำให้โปรแกรมทำงานผิดพลาด การที่ผู้พัฒนาให้โปรแกรมถูกรันภายใต้สิทธิ์แอดมิน อาจเป็นเพราะต้องเข้าถึงในส่วนที่ผู้ใช้ทั่วไปไม่มีสิทธิ์ หรือเขียนข้อมูลในระบบ ดังนั้น หลังจากที่สร้างตัวโปรแกรมควรทดสอบโปรแกรมทุกๆ ส่วนเพื่อทดสอบว่าโปรแกรมต้องใช้สิทธิ์แอดมินตรงส่วนไหน

Advertisement