จะเรียกใช้แอปพลิเคชันเป็น“ run as administrator” จากพรอมต์คำสั่งได้อย่างไร [ปิด]


126

ฉันมีไฟล์แบตช์ที่เรียกว่าtest.bat. ฉันกำลังเรียกคำแนะนำด้านล่างในtest.batไฟล์:

start /min powershell.exe %sysdrive%\testScripts\testscript1.ps1

เมื่อฉันรันผ่านพรอมต์คำสั่ง testscript ของฉันทำงานได้สำเร็จ ฉันต้องการเรียกใช้ในฐานะผู้ดูแลระบบ (ราวกับว่าฉันได้สร้างทางลัดบนเดสก์ท็อปและเรียกใช้ในฐานะผู้ดูแลระบบไม่ควรแจ้งให้ป้อนชื่อผู้ใช้หรือรหัสผ่าน)

ฉันได้ลองเพิ่ม/elevateและ/NOUACพารามิเตอร์ในข้างต้นtest.batแล้ว แต่โชคไม่ดี ฉันจะแก้ไขปัญหานี้ได้อย่างไร

ฉันรู้วิธีทำด้วยตนเอง แต่ฉันต้องการให้ดำเนินการจากพรอมต์คำสั่ง

(โดยMarnix Klooster ): ... โดยไม่ต้องใช้เครื่องมือเพิ่มเติมใด ๆ เช่นที่แนะนำในคำตอบสำหรับคำถาม Super User วิธีเรียกใช้โปรแกรมจากบรรทัดคำสั่งด้วยสิทธิ์ที่สูงขึ้น )



84
คำถามนี้สามารถถามได้ที่นี่และไม่ควรปิดเป็นนอกหัวข้อ เป็นคำถามเกี่ยวกับการเขียนโปรแกรมและการพัฒนาซอฟต์แวร์ โปรแกรม DotNet และ C ++ ทั้งหมดมีความสามารถในการทำซ้ำกับระบบและโปรแกรมอื่น ๆ โดยเรียกใช้คำสั่งคอนโซลหรือเพียงแค่ผ่านไฟล์แบตช์
Steven Du

2
สิ่งนี้มีประโยชน์สำหรับฉัน: superuser.com/questions/55809/…บางครั้ง "เรียกใช้ในฐานะผู้ดูแลระบบ" คาดว่าจะหมายถึง "เรียกใช้ด้วยสิทธิ์ระดับสูง"
ผู้ใช้

sudo.batอาจมีประโยชน์กับใครบางคน pastebin.com/taHp4FzR
Niklas

1
ควรย้ายไปที่ superuser แทนที่จะปิด (และยังถูกตั้งค่าสถานะว่าซ้ำกับsuperuser.com/questions/55809/… )
Julien Kronegg

คำตอบ:


85

ลองสิ่งนี้:

runas.exe /savecred /user:administrator "%sysdrive%\testScripts\testscript1.ps1" 

จะบันทึกรหัสผ่านในครั้งแรกและไม่ต้องถามอีก บางทีเมื่อคุณเปลี่ยนรหัสผ่านผู้ดูแลระบบคุณจะได้รับแจ้งอีกครั้ง


8
@BenVoigt โปรดแนะนำทางเลือกอื่นแล้ว
Daniel Sokolowski

10
ลองpowershell -Command "Start-Process 'C:\program.exe' -Verb runAs"(แทนที่C:\program.exeด้วยคำสั่งของคุณ) ดูsuperuser.com/questions/55809/…
Julien Kronegg

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

4
@BenVoigt อย่าเป่าปะเก็น เช่นเดียวกับคำสั่งอำนาจใด ๆ ทั้งมีประโยชน์และจำเป็นในบริบทเฉพาะ
b1nary.atr0phy

2
วิธีการใด ๆ ที่ใช้ฉันสามารถชิปรหัสผ่านผู้ดูแลระบบในคำสั่ง initian เอง มันถามรหัสผ่านผู้ดูแลระบบเมื่อฉันเรียกใช้คำสั่งเริ่มต้น สามารถป้อนข้อมูลนั้นได้ตั้งแต่แรกหรือไม่? runas.exe /user:yash a.exe MyAwesomePassword
Yash Kumar Verma

22

ดูบทความTechNetนี้: เอกสารคำสั่ง Runas

จากพรอมต์คำสั่ง:

C:\> runas /user:<localmachinename>\administrator cmd

หรือหากคุณเชื่อมต่อกับโดเมน:

C:\> runas /user:<DomainName>\<AdministratorAccountName> cmd

ฉันอ่านคำถามของคุณอีกครั้งและคุณไม่ต้องการได้รับแจ้ง คำแนะนำของฉันจะทำให้เกิดข้อความแจ้งรหัสผ่าน ขออภัย!
John Ruiz

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

6

ดูเหมือนว่าpsexec -hจะเป็นวิธีการ:

 -h         If the target system is Windows Vista or higher, has the process
            run with the account's elevated token, if available.

ซึ่ง ... ดูเหมือนจะไม่ปรากฏในเอกสารออนไลน์ในSysinternals - PsExecPsExec

แต่มันใช้งานได้กับเครื่องของฉัน


ไม่ทำงานที่นี่ แต่ฉันได้รับความช่วยเหลือ
ygoe

7
ดูเหมือนจะไม่ได้ผลสำหรับฉันเว้นแต่ฉันจะเรียกใช้จากกระบวนการที่มีสิทธิ์ระดับผู้ดูแลระบบอยู่แล้ว: "ไม่สามารถติดตั้งบริการ PSEXESVC ได้"
วินซ์

1
ฉันไม่มีคำสั่งนี้ใน Windows 10 - ไม่ใช่จากพรอมต์คำสั่งหรือจาก Power Shell
BrainSlugs83

@ BrainSlugs83 คุณต้องดาวน์โหลดลิงค์อยู่ในคำตอบ
Abel
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.