มาตรการความปลอดภัยหลักของ OS ใดๆ คือ Privileges หมายความว่าการ Execute Process หรือ Program ใดๆ สามารถทำได้หลายขั้นส่วนใหญ่ OS เองตัดสินใจ เพราะ OS เป็น Supreme Authority แต่บางครั้งการรัน Scripts หรือ Programs เพิ่มเติมต้องการ Privileges สูงกว่า เนื่องจากโปรแกรมเหล่านี้ต้องเข้าถึง System Files และ APIs ที่ฝังใน OS และเฉพาะ Authority สูงสุดใน Hierarchy เท่านั้นที่เข้าถึงได้ นั่นคือ Administrator ทำนองเดียวกัน ผู้ใช้มักเจอปัญหารัน PowerShell Scripts เป็น Administrator เพราะเป็นกระบวนการใหญ่ ดังนั้นเราจะเพิ่มตัวเลือก Run as Administrator เข้าไปใน PS1 File Context Menu

เพิ่ม Run as Administrator ใน PS1 File Context Menu
กรุณาสร้าง System Restore Point ก่อนเริ่ม ทำแล้ว เริ่มด้วยการเปิด Registry Editor ค้นหา regedit ใน Cortana Search Box หรือกด WINKEY + R เปิด Run พิมพ์ regedit กด Enter
ไปที่ Path นี้:
HKEY_CLASSES_ROOT\Microsoft.PowerShellScript.1\shell

คลิกขวาที่แผงซ้าย Hover เลือก New > Key
ตั้งชื่อใหม่เป็น RunAs
ภายใต้มัน สร้าง String ใหม่โดยคลิกขวาที่แผงขวา คลิก String
ตั้งชื่อ String นั้นว่า HasLUAShield เลือก Yes สำหรับ UAC Prompt ทุกอัน
ภายใต้ Key Run สร้าง Key อีกอัน ชื่อ command
ภายในจะมี Subkey Default ชื่อ Default
คลิกขวา Modify ตั้ง Value Data เป็น:
powershell.exe "-Command" "if((Get-ExecutionPolicy ) -ne 'AllSigned') { Set-ExecutionPolicy -Scope Process Bypass }; & '%1'"
สุดท้าย Reboot คอมพิวเตอร์
หลังบูตแล้ว ตรวจสอบว่าสามารถรัน PowerShell Script ใดๆ ด้วยสิทธิ์ Admin จาก Context Menu คลิกขวาได้หรือไม่
วิธียกเลิกการเปลี่ยนแปลงทั้งหมด
เพื่อยกเลิก ไปที่ Path นี้:
HKEY_CLASSES_ROOT\Microsoft.PowerShellScript.1\shell
ลบ Subkey ชื่อ RunAs
Reboot คอมพิวเตอร์
ใช้ไฟล์สำเร็จรูปของเรา
ทางเลือกอื่น ใช้ไฟล์ Add Run As Administrator PS.reg ที่เราสร้างไว้ ข้ามคำแนะนำข้างต้น ดับเบิลคลิกรัน ตอน Merge กด Yes ทุก Prompt รวม UAC Reboot
เพื่อยกเลิก ดับเบิลคลิก Remove Run As Administrator PS.reg และ Reboot
ดาวน์โหลดไฟล์จาก Server ของเราได้ที่นี่
