สวัสดีครับ บทความนี้จะมาแนะนำวิธีการบังคับให้เปิดโปรแกรมโดยไม่ร้องขอสิทธิ์แอดมิน ในโลกมีหลายๆ โปรแกรมที่เมื่อเราต้องการเปิดใช้งานจะมีหน้าต่าง UAC (User Account Control) ปรากฎขึ้นมาก ถ้าเป็นผู้ใช้ทั่วๆ ไป ตามบ้าน คุณก็แค่คลิกที่ปุ่มโอเครโปรแกรมของคุณก็เปิดขึ้นมาให้ใช้ทันที นั้นเพราะว่าบัญชีที่คุณกำลังใช้อยู่ อยู่ในกลุ่มของผู้ดูแลระบบ (Local Administrators group)
แต่กับบางบริษัทหรือบางองกรค์ ฝ่ายไอทีไม่ให้บัญชีของผู้ใช้ทั่วไปหรือพนังงานมีสิทธิ์แอดมิน เนื่องด้วยเหตุผลเรื่องความปลอดภัย หรือจากนโยบายของบริษัท เวลาเปิดโปรแกรมที่บังคับใช้สิทธิ์แอดมิน ตัววินโดวส์จะเด้งหน้าต่าง UAC แล้วให้เราใส่ชื่อผู้ใช้และรหัสผ่านของบัญชชีที่มีสิทธิ์แอดมิน ถ้าไม่ใส่ก็จะไม่สามารถเปิดโปรแกรมได้
แล้วปัญหามันก็อยู่ตรงที่มีบางโปรแกรม มันเขียนให้เปิดสิทธิ์แอดมิน (ตรงไอคอนจะมีรูปโล่สีเหลือง) และการที่เราจะไม่แอดผู้ใช้เข้าไปไว้ในกลุ่มผู้ดูแลระบบ (Local Administrators group)
ขอแนะนำ 2 วิธีที่จะบังคับเปิดโปรแกรมด้วยสิทธิ์ผู้ใช้ทั้วไป
How to Run Program without Admin Privileges
วิธีที่ 1 เพิ่มเมนู Run without Admin
ขั้นตอนที่ 1 สร้างไฟล์ Text เปล่าๆ ขึ้นมา ตั้งชื่อไฟล์อะไรก็ได้ มีนามสกุลเป็น .reg ตัวอย่างเช่น 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
ขั้นตอนที่ 4 ตอนนี้เราสามารถเปิดโปรแกรมที่มีโล่เหลืองได้โดยไม่ต้องใช้สิทธิ์แอดมิน โดยการคลิกขวาแล้วเลือกเมนู “Run without privilege elevation”

วิธีที่ 2 แก้ไข Execution Level ใน Manifest ของโปรแกรม
วิธีการนี้อาจจะดูกึ่งๆ แฮ็คนิดหน่อย เป็นการเข้าไปแก้ไขค่า “requestedExecutionLevel” ที่อยู่ไฟล์ Manifest จาก “requireAdministrator” เป็น “asInvoker”
เครื่องมือที่จำเป็น โปรแกรม Resource Hacker
ขั้นตอนที่ 1 เปิดโปรแกรม Resource Hacker แล้วเปิดไฟล์ .exe ที่ต้องการแก้ไขโดยการคลิกที่ไอคอนอันที่สอง ดูด้านล่างประกอบ
ขั้นตอนที่ 2 หลักจากที่เปิดไฟล์ขึ้นมาแล้ว ดับเบิ้ลคลิกที่โฟลเดอร์ Manifest แล้วคลิกที่ ⭐ 1 : 0 เราจะเห็ยข้อมูล XML ทางฝั่งขวา
ขั้นตอนที่ 3 จากนั้นมองหา requestedExecutionLevel แล้วเปลี่ยนค่า Level จาก requireAdministrator เป็น asInvoker
ขั้นตอนที่ 4 ทำการ Complie โดยกดที่ปุ่มสีเขียว (1) แล้วรอให้สถานะ Complie succeeded ปรากฎขึ้นมา (2) แล้วกดปุ่มรูปแผ่นดิส (3) สุดท้ายแล้วเราจะได้ไฟล์ .exe ตัวใหม่มา


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