Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> ระบบ >> Windows 7

วิธีปิด UAC Prompt สำหรับแอปพลิเคชันเฉพาะใน Windows 10

ในบทความนี้เราจะแสดงวิธีปิด UAC แบบเลือกเฉพาะสำหรับแอปพลิเคชันบางตัวโดยไม่ปิดบริการ User Account Control ทั้งหมด พิจารณาหลายวิธีในการปิด UAC สำหรับแอปเดียวโดยใช้แฟล็กความเข้ากันได้ RunAsInvoker

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

แฟล็ก RunAsInvoker ช่วยให้คุณรันแอปพลิเคชันด้วยเครื่องหมายที่สืบทอดมาจากกระบวนการผู้ปกครอง (parent process) สิ่งนี้จะยกเลิกการประมวลผล Manifest ของแอปพลิเคชัน และการค้นพบกระบวนการติดตั้ง (installer detection) พารามิเตอร์นี้ไม่ได้ให้สิทธิ์แอดมิน แต่เพียงข้ามการแจ้งเตือน UAC เท่านั้น

เป็นตัวอย่าง เราจะปิดการแจ้งเตือน UAC สำหรับ Registry Editor (regedit.exe) 儘管บัญชีของฉันมีสิทธิ์ Local Administrator เมื่อรันยูทิลิตี้ คำขอ UAC ยังคงปรากฏเพื่อยืนยันการเปิดใช้งาน

วิธีปิด UAC Prompt สำหรับแอปพลิเคชันเฉพาะใน Windows 10

หากโปรแกรมต้องการสิทธิ์แอดมินเพราะเปลี่ยนแปลงการตั้งค่าหรือไฟล์ระบบ สิทธิ์ของผู้ใช้ในแอปพลิเคชันจะไม่ได้รับการยกระดับหลังจากปิด UAC โปรแกรมจะยังคงทำงานภายใต้สิทธิ์ของผู้ใช้ปัจจุบัน และหากคุณไม่มีสิทธิ์ทำการเปลี่ยนแปลงเหล่านั้น โปรแกรมจะไม่สามารถทำได้ มีแอปพลิเคชันจำนวนน้อยที่ทำงานได้เฉพาะในโหมด "Run as administrator" เท่านั้น ซึ่งจะไม่สนใจแฟล็กความเข้ากันได้ RunAsInvoker

เนื้อหา:

  • ปิด UAC สำหรับโปรแกรมโดยใช้ Application Compatibility Toolkit
  • เปิดใช้งานแฟล็ก RunAsInvoker ของแอปผ่าน Registry
  • ไฟล์ Batch เพื่อรันแอปพลิเคชันในโหมด RunAsInvoker

ปิด UAC สำหรับโปรแกรมโดยใช้ Application Compatibility Toolkit

เราต้องติดตั้ง Application Compatibility Toolkit ซึ่งเป็นส่วนหนึ่งของ Windows ADK ดาวน์โหลดเวอร์ชันล่าสุดของ Windows ADK สำหรับ Windows 10 ได้ที่นี่

รันไฟล์ adksetup.exe และระหว่างการติดตั้ง (โปรแกรมต้องการการเข้าถึงอินเทอร์เน็ต) ให้เลือกเฉพาะรายการ Application Compatibility Tools

Microsoft Application Compatibility Tools คือชุดเครื่องมือฟรีสำหรับแก้ไขปัญหาความเข้ากันได้ของแอปเมื่อย้ายไป Windows เวอร์ชันใหม่

วิธีปิด UAC Prompt สำหรับแอปพลิเคชันเฉพาะใน Windows 10

มีสองเวอร์ชันของ Application Compatibility Administrator ในระบบ — 32-bit และ 64-bit ให้รันเวอร์ชันของ Application Compatibility Administrator ตาม bitness ของแอปพลิเคชันที่คุณต้องการปิดคำขอ UAC

วิธีปิด UAC Prompt สำหรับแอปพลิเคชันเฉพาะใน Windows 10

รัน Compatibility Administrator (32-bit) ด้วยสิทธิ์แอดมิน (!) ในโหนด Custom Databases คลิกขวา New Database และเลือก Create New -> Application Fix

วิธีปิด UAC Prompt สำหรับแอปพลิเคชันเฉพาะใน Windows 10

ในหน้าต่างถัดไป ให้ใส่ชื่อแอปพลิเคชัน (regedit) ชื่อผู้จำหน่าย (Microsoft) และพาธไปยังไฟล์ Executable (C:\Windows\System32\regedit.exe)

วิธีปิด UAC Prompt สำหรับแอปพลิเคชันเฉพาะใน Windows 10

ข้ามหน้าต่างถัดไป (Compatibility Mode) ของวิซาร์ดการตั้งค่าด้วยการกด Next ในหน้าต่าง Compatibility Fixes ให้ติ๊กตัวเลือก RunAsInvoker

คุณสามารถตรวจสอบได้ว่าแอปพลิเคชันสามารถรันโดยไม่มี UAC โดยการกดปุ่ม Test Run

วิธีปิด UAC Prompt สำหรับแอปพลิเคชันเฉพาะใน Windows 10

ในกล่องโต้ตอบ Matching Information คุณสามารถระบุว่าพารามิเตอร์ใดของแอปพลิเคชันควรตรวจสอบ (เวอร์ชัน checksum ขนาด เป็นต้น) ผมเหลือตัวเลือก COMPANY_NAME, PRODUCT_NAME และ ORIGINAL_FILENAME ติ๊กไว้ เพื่อหลีกเลี่ยงการสร้างไฟล์แพตช์ความเข้ากันได้ใหม่หลังอัปเดต Windows 10 ครั้งต่อไป

วิธีปิด UAC Prompt สำหรับแอปพลิเคชันเฉพาะใน Windows 10

เคล็ดลับ เพื่อป้องกันการปลอมแปลง Executable โดยแฮกเกอร์ คุณสามารถขอการตรวจสอบเพิ่มเติมเมื่อรันไฟล์ (เช่น การตรวจสอบ CHECKSUM, FILE_VERSION หรือ FILE_SIZE) ควรทราบว่าการตรวจสอบเพิ่มเติมจะทำให้การเริ่มต้นแอปช้าลง

คลิก Finish และระบุชื่อไฟล์ที่แพ็กเกจการแก้ไขความเข้ากันได้ต้องบันทึก เช่น regedit.sdb ไฟล์นี้จะมีคำแนะนำสำหรับการเริ่มต้นแอปพลิเคชันด้วยตัวเลือกความเข้ากันได้ที่ระบุ

วิธีปิด UAC Prompt สำหรับแอปพลิเคชันเฉพาะใน Windows 10

ตอนนี้คุณเพียงแค่ต้องนำแพ็กเกจการแก้ไขความเข้ากันได้ไปใช้กับแอปพลิเคชันของเรา คุณสามารถทำได้จากคอนโซล Compatibility Administrator (เลือก Install ในเมนู) หรือจาก Command Prompt

วิธีปิด UAC Prompt สำหรับแอปพลิเคชันเฉพาะใน Windows 10

ในการทำเช่นนั้น ให้เปิด Command Prompt ที่มีสิทธิ์สูงและรันคำสั่งต่อไปนี้:

sdbinst -q c:\ps\regedit.sdb

หากคุณทำถูกต้อง จะปรากฏข้อความว่าการติดตั้งแพ็กเกจสำเร็จ

Installation of regedit complete.

วิธีปิด UAC Prompt สำหรับแอปพลิเคชันเฉพาะใน Windows 10

หลังจากติดตั้งแพ็กเกจแล้ว รายการที่เกี่ยวข้องจะปรากฏในรายการโปรแกรมที่ติดตั้งของ Windows (Programs and Features)

วิธีปิด UAC Prompt สำหรับแอปพลิเคชันเฉพาะใน Windows 10

ลองรันแอปพลิเคชันในเซสชันผู้ใช้โดยไม่มีสิทธิ์ Local Administrator ตอนนี้มันควรเริ่มต้นโดยไม่มีคำขอ UAC

ตอนนี้ตรวจสอบสิทธิ์ของแอปพลิเคชันที่กำลังทำงาน ให้เปิด Task Manager ไปที่แท็บ Process เพิ่มคอลัมน์ "Elevated" ตรวจสอบให้แน่ใจว่ากระบวนการ regedit.exe เริ่มต้นจากผู้ใช้ในโหมด Unprivileged (Elevated = No)

วิธีปิด UAC Prompt สำหรับแอปพลิเคชันเฉพาะใน Windows 10

ในกระบวนการ Registry Editor นี้ ผู้ใช้สามารถแก้ไขคีย์และพารามิเตอร์ Registry ของตัวเองได้เท่านั้น แต่ถ้าคุณลองแก้ไข/สร้างอะไรใน System HKLM จะเกิดข้อผิดพลาด: "You don't have the requisite permissions"

วิธีปิด UAC Prompt สำหรับแอปพลิเคชันเฉพาะใน Windows 10

ภายหลังการแก้ไขความเข้ากันได้นี้สามารถกระจายไปยังคอมพิวเตอร์ผู้ใช้ทั้งหมดโดยใช้ Group Policies ดังนั้นคุณสามารถปิดการตรวจสอบ UAC สำหรับแอปพลิเคชันเฉพาะบนคอมพิวเตอร์หลายเครื่องในโดเมน Active Directory ได้

เพื่อลบการแก้ไขความเข้ากันได้ ให้รันคำสั่ง:

sdbinst –u c:\ps\regedit.sdb

เปิดใช้งานแฟล็ก RunAsInvoker ของแอปผ่าน Registry

คุณสามารถเปิดใช้งานแฟล็กความเข้ากันได้ RUNASINVOKER ใน Windows 10/8.1/7 ผ่าน Registry แฟล็กความเข้ากันได้ของแอปพลิเคชันสามารถตั้งค่าได้สำหรับผู้ใช้คนเดียวหรือผู้ใช้ทุกคนของคอมพิวเตอร์

ตัวอย่างเช่น สำหรับแอป regedit คุณต้องสร้างพารามิเตอร์ Registry ใหม่ (REG_SZ) ใน Registry key ต่อไปนี้ HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers:

  • Value name: C:\windows\regedit.exe
  • Value data: RunAsInvoker

วิธีปิด UAC Prompt สำหรับแอปพลิเคชันเฉพาะใน Windows 10

หากคุณต้องการเปิดโหมดความเข้ากันได้ของแอปพลิเคชันสำหรับผู้ใช้ทุกคนในเครื่อง คุณต้องสร้างพารามิเตอร์นี้ใน Registry key อื่น:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers

ในโดเมน คุณสามารถนำเข้า/ปรับใช้การตั้งค่า Registry นี้ให้กับผู้ใช้ผ่าน GPO ได้

ไฟล์ Batch เพื่อรันแอปพลิเคชันในโหมด RunAsInvoker

มีอีกวิธีหนึ่งในการรันโปรแกรมโดยไม่มีสิทธิ์แอดมินและข้าม UAC Prompt (ดูบทความ)

เพียงสร้างไฟล์ .bat ด้วยโค้ดต่อไปนี้:

Set ApplicationPath="C:\windows\regedit.exe"
cmd /min /C "set __COMPAT_LAYER=RUNASINVOKER && start "" %ApplicationPath%"

วิธีปิด UAC Prompt สำหรับแอปพลิเคชันเฉพาะใน Windows 10

เมื่อรันไฟล์ bat นี้ภายใต้ผู้ใช้ทั่วไป แอปพลิเคชันที่ระบุจะเริ่มต้นโดยไม่มี UAC Prompt

ดังนั้น เราได้ดูวิธีปิด UAC สำหรับโปรแกรมเฉพาะโดยไม่ปิด User Account Control ทั้งหมด วิธีนี้จะช่วยให้คุณรันโปรแกรม Windows ภายใต้ Non-admin โดยไม่มี UAC Prompt และไม่ต้องใส่รหัสผ่านแอดมิน