ฉันจะกำหนดค่าแอปพลิเคชันของฉันให้ทำงานในฐานะผู้ดูแลระบบอัตโนมัติได้อย่างไร


9

ฉันได้สร้างไฟล์ปะแก้ที่มีไฟล์ปฏิบัติการอยู่ภายในโดยใช้คุณสมบัติ Winrar SFX
หลังจากเรียกใช้งานไฟล์ SFX และการแตกไฟล์จะสิ้นสุดลงไฟล์ปฏิบัติการของฉันจะไม่ทำงานเพราะไม่มีสิทธิ์ของผู้ดูแลระบบ ฉันสงสัยว่าฉันจะให้สิทธิ์การเข้าถึงแก่ผู้ดูแลระบบในไฟล์นั้นได้ด้วยวิธีการเขียนโปรแกรม (เช่นไฟล์แบตช์)

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

ปัญหาคือผู้ใช้ที่จะดาวน์โหลดตัวแก้ไขนั้นไม่ทราบ (และ exe ของฉันจะทำงานเฉพาะเมื่อคุณคลิกขวาและเลือก "เปิดเป็นผู้ดูแลระบบ" แต่จะไม่เปิดหรือแสดงป๊อปอัป UAC)

ฉันลองมาหลายวิธีแล้วเช่น "ลิฟต์นักวิ่ง (ยกระดับฉัน)" เป็นต้น แต่จริงๆแล้วฉันกำลังมองหาบางสิ่งที่ง่ายกว่า
ฉันแค่ต้องทำให้ exe ทำงานเป็นผู้ดูแลระบบเสมอ


2
หมายเหตุถึง mods: ไม่จำเป็นต้องทำการโยกย้ายไปยัง SO
Karan

คำตอบ:


15

สิ่งที่คุณต้องทำคือฝังแอปพลิเคชันลงใน EXE

  1. บันทึกสิ่งต่อไปนี้เป็นไฟล์ข้อความชื่อApp.exe.manifest :

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
        <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
            <security>
                <requestedPrivileges>
                    <requestedExecutionLevel level="requireAdministrator" uiAccess="false"/>
                </requestedPrivileges>
            </security>
        </trustInfo>
    </assembly>
    
  2. ดาวน์โหลด Windows SDK

  3. ภายในคุณจะพบmt.exeคือเครื่องมือ Manifest เรียกใช้ดังนี้:

    mt.exe -manifest "App.exe.manifest" -outputresource:"App.exe";#1
    
  4. หากไม่มีข้อผิดพลาดที่คุณทำ คุณสามารถลบไฟล์รายการและแจกจ่ายเพียง EXE การเรียกใช้ควรทำให้ผู้ดูแลระบบร้องขอการเข้าถึงอัตโนมัติทุกครั้ง

แหล่ง


ฉันจะทดสอบมัน เป็นไปได้ไหมที่จะทำให้ "Manifest" นี้ดีขึ้นอีกนิด? ชอบที่จะดำเนินการในฐานะผู้ดูแลระบบโดยไม่ร้องขอการเข้าถึงของผู้ดูแลระบบหรือไม่ ขอบคุณ
Rafael Vidal

หมายความว่าคุณต้องการให้มันยกระดับและรับสิทธิ์การเข้าถึงระดับผู้ดูแลระบบอย่างเงียบ ๆ ? ถ้าคุณไม่ปิด UAC ที่เป็นไปไม่ได้มิฉะนั้นแล้วอะไรคือประเด็นของ UAC และคุณไม่คิดว่ามัลแวร์ทุกตัวจะทำเช่นนี้?
Karan

ฉันเข้าใจประเด็นของคุณ แต่ฉันรู้ว่ามีหลายวิธี ... ไม่ใช่เรื่องง่ายแน่นอน แต่มีเช่น "โปรแกรมยกระดับฉัน" ... ยังไงก็ตามทำให้ exe ทำงานในฐานะผู้ดูแลระบบก็เพียงพอแล้ว ขอบคุณล่วงหน้าจริงๆ
Rafael Vidal

1
โปรแกรมดังกล่าวทั้งหมดเพื่อเลี่ยงผ่านพรอมต์การยกระดับให้ใช้เคล็ดลับ Task Scheduler ที่รู้จักกันดีซึ่งต้องการการเข้าถึงของผู้ดูแลระบบ เนื่องจากคุณต้องการทำสิ่งนี้บนพีซีโดยพลการที่มีการใช้งาน SFX ของคุณคุณจะไม่สามารถสร้างงานที่กำหนดเวลาไว้โดยไม่ได้รับอนุญาตจากผู้ใช้มาตรฐาน ในความเป็นจริงถ้าโปรแกรมใด ๆ ทำอย่างนี้ในเครื่องคอมพิวเตอร์ของฉัน (เงียบสร้างงานที่กำหนดให้บายพาส UAC) ผมจะทันทีแบ่งเป็นมัลแวร์และลบ
Karan

Karan ที่ดีงามทำงานได้อย่างสมบูรณ์ ฉันขอแนะนำให้คุณเพิ่มคำตอบที่ต้องการใช้ CMD เป็น ADMIN มิฉะนั้นจะไม่ทำงาน ... ขอบคุณอีกครั้ง
Rafael Vidal

2

เมื่อมีการสร้างที่เก็บของคุณร้องขอการเข้าถึงปกครองป้อนคำอธิบายรูปภาพที่นี่


MDMoore313 ขอบคุณสำหรับเวลาของคุณ แต่ฉันคิดว่าฉันอธิบายตัวเองไม่ดี ฉันไม่จำเป็นต้องเรียกใช้ SFX ในฐานะผู้ดูแลระบบ ฉันต้องเรียกใช้ไฟล์เฉพาะในฐานะผู้ดูแลระบบ ("my_app.exe") ซึ่งอยู่ในไฟล์ SFX ประเด็นคือดับเบิลคลิกที่ไฟล์นั้นจะไม่ทำให้มันทำงาน วิธีเดียวในการรันคือคลิกขวาและเลือก "Run as Administrator"
Rafael Vidal

@RafaelVidal SFX เปิดตัวแอปพลิเคชันของคุณหรือไม่ ถ้าเป็นเช่นนั้นแอปของคุณจะมีสิทธิ์ของผู้ดูแลระบบ ถ้าไม่ฉันจะอัปเดตคำตอบของฉัน
MDMoore313

ไม่มันไม่เปิดแอปพลิเคชัน ผู้ใช้ต้องทำด้วยตนเองดังนั้นเขาอาจทำเครื่องหมายในช่อง "เรียกใช้ในฐานะผู้ดูแลระบบ" ในแท็บ "ความเข้ากันได้" หรือคลิกขวาที่เมนูบริบท "เรียกใช้ในฐานะผู้ดูแลระบบ"
Rafael Vidal

@RafaelVidal มีเหตุผลที่คุณไม่ต้องการให้ WinRAR เปิดใช้งาน exe หรือไม่และเพียงแค่ให้ผู้ใช้เรียกใช้ SFX ด้วยตัวเอง ดูเหมือนว่าจะบรรลุเป้าหมายเดียวกันและแก้ไขปัญหาผู้ดูแลระบบของคุณ หากคุณยังคงมุ่งเน้นไปที่การตั้งค่าสถานะโปรแกรมของคุณทำงานเป็นผู้ดูแลคุณจะมีโอกาสที่ดีของคำตอบในกองล้น (ธงคำถามของคุณสำหรับการโยกย้าย)
MDMoore313

SFX ทำการเปิดไฟล์ แต่ผู้ใช้สามารถเรียกใช้ไฟล์นั้นได้ด้วยตัวเองในภายหลังและจากนั้นจะไม่มี SFX เพื่อเรียกใช้งานในตอนนั้น นั่นเป็นสาเหตุที่ exe ต้องถูกตั้งค่าสถานะเป็น "run as admin"
Rafael Vidal
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.