วิธีเปิด cmd ที่ยกระดับโดยใช้บรรทัดคำสั่งสำหรับ Windows


110

ฉันจะเปิดพรอมต์คำสั่งโดยใช้บรรทัดคำสั่งบน cmd ปกติได้อย่างไร

ตัวอย่างเช่นฉันใช้runas /username:admin cmdแต่ cmd ที่เปิดดูเหมือนจะไม่สูงขึ้น! วิธีแก้ปัญหาใด ๆ


ฉันลองคำตอบทั้งหมดคำตอบที่มีประโยชน์ที่สุดโดยไม่ต้องใช้โปรแกรมใด ๆ และไม่มีการดำเนินการอย่างน้อยที่สุดคือstackoverflow.com/a/40942828/9217577
TheGuardener

คำตอบ:


168

ฉันพบปัญหาเดียวกันและวิธีเดียวที่ฉันสามารถเปิด CMD ในฐานะผู้ดูแลระบบจาก CMD ได้คือทำสิ่งต่อไปนี้:

  1. เปิด CMD
  2. เขียนpowershell -Command "Start-Process cmd -Verb RunAs"และกดEnter
  3. หน้าต่างป๊อปอัปจะปรากฏขึ้นเพื่อขอให้เปิด CMD ในฐานะผู้ดูแลระบบ

2
คำตอบที่ดี. ฉันเพิ่มและแก้ไขฉันเคยทำให้มันทำงานในบรรทัดคำสั่งเดียว!
เปรียญธรรม

1
ฉันสร้างไฟล์แบตช์ด้วยสิ่งนี้และบันทึกเป็น admincmd.bat ในโฟลเดอร์ windows ของฉันดังนั้นสิ่งที่ฉันต้องทำคือพิมพ์ "admincmd" กด Enter จากนั้นจะเปิด admin cmd (ฉันยังเพิ่มอีกบรรทัดในไฟล์แบตช์ด้วย " exit "เพื่อปิดหน้าต่าง cmd ที่ไม่ใช่ admin)
Tony Brix

ทำไมไม่วาง cmd (และพารามิเตอร์ใด ๆ ) ไว้ที่ส่วนท้าย การมีคำสั่งนั้นแปลกจากมุมมองความสามารถในการอ่าน
Eric Fossum

ต้องการสิ่งนี้เพื่อยกระดับการแจ้งให้ทำงานเป็นผู้ใช้รายอื่น
T2PS

38

ตามเอกสารรุ่นความปลอดภัยของ Windows ...

ไม่ให้สิทธิ์ระดับผู้ดูแลตลอดเวลา แม้แต่ผู้ดูแลระบบก็รันภายใต้สิทธิ์มาตรฐานเมื่อทำงานที่ไม่ใช่การดูแลระบบที่ไม่ต้องการสิทธิ์ระดับสูง

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

อย่างไรก็ตามมีเครื่องมือของบุคคลที่สาม (โดยอาศัย Windows API ภายใน) ที่คุณสามารถใช้เพื่อยกระดับสิทธิ์จากบรรทัดคำสั่ง:

NirCmd :

  1. ดาวน์โหลดและเปิดเครื่องรูด
  2. nircmdc elevate cmd

windosu :

  1. ติดตั้ง: npm install -g windosu(ต้องติดตั้งnode.js )
  2. sudo cmd

3
ขอบคุณnircmdc elevate route delete 0.0.0.0 mask 0..0.0 192.168.1.1ในที่สุดก็ทำงานได้ runas /user:...วิธีอื่น ๆที่แจ้งให้ใส่รหัสผ่านแม้ว่าจะเป็นผู้ดูแลระบบอยู่แล้วก็ตาม (โหมดแบตช์ที่ถูกฆ่า)
Marcos

ขอบคุณสำหรับnircmdc elevate cmd
tim

4
หลังจาก intalling nircmdเพื่อให้มีการทำงานเช่น Linux sudoสร้างไฟล์ในเส้นทางของคุณกับเนื้อหานี้:sudo.bat nircmd elevate %*จากนั้นคุณสามารถทำได้เช่นsudo net stop W3SVC
กีบ

1
ฉันคิดว่า windosu เป็นวิธีที่ง่ายและสง่างามที่สุดในการทำเช่นนี้โดยเฉพาะอย่างยิ่งถ้าคุณเป็นนักพัฒนา ... ขอบคุณมาก ฉันรู้สึกเหมือนอยู่ในระบบ nix: D
Emmanuel Mahuni

เป็นที่รักwindosu:)
Finlay Roelofs

35

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

powershell "start cmd -v runAs"

นี่เป็นเพียงโซลูชันที่ยอดเยี่ยมสำหรับผู้ใช้ 3018703 เวอร์ชันสั้นกว่า

powershell -Command "Start-Process cmd -Verb RunAs"

26

วิธีง่ายๆที่ฉันทำหลังจากลองคำตอบอื่น ๆ ที่นี่

วิธีที่ 1: ไม่มีโปรแกรมของบุคคลที่สาม (ฉันใช้สิ่งนี้)

  1. สร้างไฟล์ชื่อsudo.bat(คุณสามารถแทนที่sudoด้วยชื่อใดก็ได้ที่คุณต้องการ) โดยมีเนื้อหาต่อไปนี้ powershell.exe -Command "Start-Process cmd \"/k cd /d %cd%\" -Verb RunAs"
  2. ย้ายsudo.batไปที่โฟลเดอร์ในPATH; หากคุณไม่ทราบว่าหมายถึงอะไรเพียงแค่ย้ายไฟล์เหล่านี้ไปที่c:\windows\
  3. ตอนนี้sudoจะทำงานในกล่องโต้ตอบ Run ( win+r) หรือในแถบที่อยู่ explorer (นี่คือส่วนที่ดีที่สุด :))

วิธีที่ 2: ด้วยโปรแกรมของบุคคลที่สาม

  1. ดาวน์โหลดNirCmdและเปิดเครื่องรูด
  2. สร้างไฟล์ชื่อsudo.bat(คุณสามารถแทนที่sudoด้วยชื่อใดก็ได้ที่คุณต้องการ) โดยมีเนื้อหาต่อไปนี้ nircmdc elevate cmd /k "cd /d %cd%"
  3. ย้ายnircmdc.exeและsudo.batไปยังโฟลเดอร์ในPATH; หากคุณไม่ทราบว่าหมายถึงอะไรเพียงแค่ย้ายไฟล์เหล่านี้ไปที่c:\windows\
  4. ตอนนี้sudoจะทำงานในกล่องโต้ตอบ Run ( win+r) หรือในแถบที่อยู่ explorer (นี่คือส่วนที่ดีที่สุด :))

ขณะที่ทั้งสองทำงานการแก้ปัญหาที่น่าเสียดายที่พวกเขาจะส่งผลให้UACโต้ตอบปรากฏขึ้นด้านบน (Z-การสั่งซื้อที่ชาญฉลาด) แต่ไม่ได้รับการมุ่งเน้น (ทดสอบบน Win10x64 v1607 build14393.447)
Ogmios

@Ogmios นั้นค่อนข้างแปลก กล่องโต้ตอบทำงานอย่างถูกต้องหรือไม่เมื่อไม่ได้เริ่มต้นเช่นนี้ ฉันมีความสุขมากที่ได้ใช้สิ่งนี้โดยไม่มีปัญหาดังกล่าว อาจเป็นเพราะการกำหนดค่าอื่น ๆ ที่คุณเปลี่ยนไป?
Dheeraj Bhaskar

ใช่กล่องโต้ตอบ UAC ทำงานตามที่คาดไว้ในสถานการณ์อื่น ๆ ทั้งหมด (ฉันเคยพบ) นี่เป็นข้อยกเว้นเดียว และแน่นอนฉันได้เปลี่ยนระบบของฉันด้วยวิธีอื่น แต่ฉันไม่พบสิ่งใดที่อาจมีผลแอบแฝงในกล่องโต้ตอบนี้
Ogmios

@Ogmios ขอโทษแล้วเพื่อนฉันไม่สามารถคิดอย่างอื่นที่คุณสามารถทำได้เพื่อแก้ไขปัญหานี้ คุณควรลองใช้วิธีแก้ปัญหาอื่น ๆ เพื่อดูว่าเหมาะกับคุณหรือไม่ Cheers
Dheeraj Bhaskar

แม้ว่า PowerShell ไม่ใช่บุคคลที่สาม แต่ไม่ใช่โปรแกรมสต็อกและคุณกำลังเขียนโปรแกรมของบุคคลที่สามเพื่อให้บรรลุเป้าหมาย
undrline

13

ฉันใช้โปรแกรม nirsoft (เช่น nircmdc) และ sysinternals (เช่น psexec) ตลอดเวลา พวกเขามีประโยชน์มาก

แต่ถ้าคุณไม่ต้องการหรือไม่สามารถทำได้ dl โปรแกรมของบุคคลที่สามนี่เป็นอีกวิธีหนึ่งคือ Windows ที่บริสุทธิ์

คำตอบสั้น ๆ : คุณสามารถในขณะที่ยกระดับสร้างงานตามกำหนดเวลาด้วยสิทธิ์ระดับสูงซึ่งคุณสามารถเรียกใช้ในภายหลังได้ในขณะที่ไม่ได้ยกระดับ

คำตอบแบบยาวปานกลาง : ในขณะที่ยกระดับงานสร้างด้วย (แต่ฉันชอบ GUI ตัวกำหนดตารางเวลางาน):

schtasks /create /sc once /tn cmd_elev /tr cmd /rl highest /st 00:00

จากนั้นไม่จำเป็นต้องมีระดับความสูงให้เรียกใช้

schtasks /run /tn cmd_elev

คำตอบแบบยาว : มีรายละเอียดที่ไม่แน่นอนมากมาย ดูรายการบล็อกของฉัน"เริ่มโปรแกรมโดยไม่มี UAC มีประโยชน์เมื่อเริ่มระบบและในไฟล์แบตช์ (ใช้ตัวกำหนดตารางเวลางาน)"


8

ต่อไปนี้เป็นไฟล์แบตช์จะเปิดพรอมต์คำสั่งที่มีการยกระดับพร้อมกับพา ธ ไปยังไดเร็กทอรีเดียวกับที่เรียกใช้ไฟล์แบตช์

set OLDDIR=%CD%
powershell -Command "Start-Process cmd -ArgumentList '/K cd %OLDDIR%' -Verb RunAs "

5

วิธีที่ฉันชอบที่สุดคือใช้ PsExec.exe จาก SysInternals ซึ่งมีอยู่ที่ http://technet.microsoft.com/en-us/sysinternals/bb897553

.\psexec.exe -accepteula -h -u "$username" -p "$password" cmd.exe

สวิตช์ "-h" คือสวิตช์ที่ใช้เวทมนตร์:

-h หากระบบเป้าหมายเป็น Vista หรือสูงกว่าให้รันกระบวนการด้วยโทเค็นที่ยกระดับของบัญชีหากมี


1
เพื่อให้สามารถใช้งานได้คุณต้องแก้ไขคุณสมบัติของ psexec.exe และในแท็บความเข้ากันได้ให้เลือก "Run as Administrator" มิฉะนั้นคุณจะได้รับข้อผิดพลาด: PSEXESVC ไม่ได้ติดตั้ง แต่ psexec ทำให้เกิดปัญหากับปุ่มแท็บใน cmd.exe ไม่สามารถใช้แท็บเพื่อกรอกชื่อโฟลเดอร์
Peter Quiring

ไม่แน่ใจว่าคุณได้ลองใช้สภาพแวดล้อมใด แต่ฉันไม่จำเป็นต้องเปลี่ยนการตั้งค่า "Run as Administrator" (คุณกำลังพยายามเรียกใช้ cmd.exe บนเครื่องระยะไกลจากเครื่องของคุณหรือไม่) นอกจากนี้ยังไม่มีปัญหากับปุ่มแท็บฉันสามารถกรอกชื่อไฟล์และโฟลเดอร์ได้สำเร็จ (อย่างน้อยทดสอบบน Win8.1 และ Win10 โดยเรียกใช้จากบรรทัดคำสั่ง cmd และ PowerShell)
David Rodriguez

ฉันใช้ Win10 และใช้งานในเครื่อง ไม่แน่ใจว่าทำไมมันถึงเกิดขึ้นกับฉันไม่ใช่คุณ ฉันได้รับ nircmd ในการทำงานและไม่ทำให้เกิดปัญหาแท็บ
Peter Quiring

ฉันยังสังเกตเห็นว่าไม่สามารถเติมข้อความอัตโนมัติด้วยปุ่มแท็บได้ แต่อย่างน้อยสิ่งนี้จะเปิดพรอมต์ cmd ที่ยกระดับขึ้นในบริบทของผู้ใช้รายอื่นซึ่งวิธีการก่อนหน้านี้ดูเหมือนจะไม่สำเร็จเมื่อฉันพยายาม ค่าสถานะ '-h' ดีมาก (windows 10) ใช้งานได้ดี
user1840734

4

ทำให้ไฟล์แบตช์บันทึกข้อมูลประจำตัวของบัญชีผู้ดูแลระบบจริงโดยใช้/savecredสวิตช์ สิ่งนี้จะแจ้งให้ใส่ข้อมูลรับรองในครั้งแรกจากนั้นเก็บรหัสผ่านที่เข้ารหัสไว้ในตัวจัดการข้อมูลรับรอง จากนั้นในครั้งต่อ ๆ ไปที่แบตช์ทำงานมันจะทำงานในฐานะผู้ดูแลระบบเต็มรูปแบบ แต่จะไม่พร้อมท์สำหรับข้อมูลรับรองเนื่องจากถูกเก็บไว้ที่เข้ารหัสในตัวจัดการข้อมูลรับรองและผู้ใช้ปลายทางไม่สามารถรับรหัสผ่านได้ สิ่งต่อไปนี้ควรเปิด CMD ที่ยกระดับพร้อมสิทธิ์ของผู้ดูแลระบบเต็มรูปแบบและจะขอรหัสผ่านในครั้งแรกเท่านั้น:

START c:\Windows\System32\runas.exe /user:Administrator /savecred cmd.exe

3

แม้ว่าโซลูชันทั้งสองที่จัดทำโดย Dheeraj Bhaskar จะทำงานได้ แต่น่าเสียดายที่จะส่งผลให้กล่องโต้ตอบUACปรากฏขึ้นที่ด้านบน (z-order-wise) แต่ไม่ได้รับการโฟกัส (หน้าต่างที่โฟกัสคือหน้าต่าง cmd / powershell ของผู้โทร) ดังนั้นฉันจึงจำเป็นต้อง จับเมาส์แล้วคลิก "ใช่" หรือเพื่อเลือกหน้าต่าง UAC โดยใช้ Alt + Shift + Tab (ทดสอบบน Win10x64 v1607 build14393.447; UAC = "[... ] อย่าหรี่ [... ]" )

วิธีแก้ปัญหาต่อไปนี้ค่อนข้างอึดอัดเนื่องจากใช้สองไฟล์ แต่รักษาลำดับโฟกัสที่ถูกต้องดังนั้นจึงไม่จำเป็นต้องใช้เมาส์ / คีย์บอร์ดเพิ่มเติม (นอกเหนือจากการยืนยันกล่องโต้ตอบ UAC: Alt + Y )

  1. cmdadm.lnk (คุณสมบัติทางลัด / ขั้นสูง ... / Run as administrator = ON) %SystemRoot%\System32\cmd.exe /k "cd /d"
  2. su.bat @start cmdadm.lnk %cd%

ทำงานด้วยsu.


ฉันไม่สามารถทำซ้ำสิ่งนี้ได้ เมื่อใดก็ตามที่ฉันใช้วิธีแก้ปัญหาอย่างใดอย่างหนึ่งของฉัน พรอมต์ UAC ของฉันมุ่งเน้นและอยู่ด้านบน
Dheeraj Bhaskar

3

ฉันใช้ Elevateมาระยะหนึ่งแล้ว

เป็นคำอธิบาย - This utility executes a command with UAC privilege elevation. This is useful for working inside command prompts or with batch files.

ฉันคัดลอกbin.x86-64\elevate.exeจาก.zipเข้าC:\Program Files\elevateและเพิ่มเส้นทางนั้นไปยังไฟล์PATHไฟล์.

จากนั้น GitBash ฉันสามารถเรียกใช้บางสิ่งบางอย่างเช่นelevate sc stop W3SVCปิดไฟล์IISบริการ

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


3

..

@ECHO OFF
SETLOCAL EnableDelayedExpansion EnableExtensions
NET SESSION >nul 2>&1
IF %ERRORLEVEL% NEQ 0 GOTO ELEVATE
GOTO :EOF

:ELEVATE
SET this="%CD%"
SET this=!this:\=\\!

MSHTA "javascript: var shell = new ActiveXObject('shell.application'); shell.ShellExecute('CMD', '/K CD /D \"!this!\"', '', 'runas', 1);close();"
EXIT 1

บันทึกสคริปต์นี้เป็น "god.cmd" ใน system32 ของคุณหรืออะไรก็ตามที่คุณกำหนดเส้นทางไป ....

ถ้าคุณเปิด cmd ใน e: \ mypictures \ แล้วพิมพ์ god มันจะขอข้อมูลรับรองจากคุณและนำคุณกลับไปที่เดิมในฐานะผู้ดูแลระบบ ...


1
powershell เจ๋ง แต่ต้องใช้โมดูล ... im oldscool ... แค่ต้องการระบบ ...
jOte-

วิธี / เคล็ดลับการยกระดับนี้ใช้ได้กับเส้นทาง / ชื่อไฟล์แบบยาวด้วยหรือไม่ หรือฉันควรจะใช้ "% ~ snx0" หรือ "% ~ dpsnx0" แทน
script'n'code

2

คล้ายกับวิธีแก้ปัญหาอื่น ๆ ข้างต้นฉันได้สร้างไฟล์ elevateไฟล์แบตช์ซึ่งเรียกใช้หน้าต่าง PowerShell ที่ยกระดับโดยข้ามนโยบายการดำเนินการเพื่อเปิดใช้งานการเรียกใช้ทุกอย่างตั้งแต่คำสั่งง่ายๆไปจนถึงไฟล์แบตช์ไปจนถึงสคริปต์ PowerShell ที่ซับซ้อน ขอแนะนำให้ติดไว้ในโฟลเดอร์ C: \ Windows \ System32 เพื่อความสะดวกในการใช้งาน

elevateคำสั่งเดิมเรียกใช้งานจับเอาต์พุตปิดหน้าต่าง PowerShell ที่สร้างแล้วส่งกลับโดยเขียนเอาต์พุตที่บันทึกไปยังหน้าต่างเดิม

ฉันสร้างสองรูปแบบelevatepและelevatexซึ่งตามลำดับจะหยุดและเปิดหน้าต่าง PowerShell ไว้เพื่อทำงานเพิ่มเติม

https://github.com/jt-github/elevate

และในกรณีที่ลิงค์ของฉันตายนี่คือรหัสสำหรับไฟล์แบตช์ระดับความสูงดั้งเดิม:

@Echo Off
REM Executes a command in an elevated PowerShell window and captures/displays output
REM Note that any file paths must be fully qualified!

REM Example: elevate myAdminCommand -myArg1 -myArg2 someValue

if "%1"=="" (
    REM If no command is passed, simply open an elevated PowerShell window.
    PowerShell -Command "& {Start-Process PowerShell.exe -Wait -Verb RunAs}"
) ELSE (
    REM Copy command+arguments (passed as a parameter) into a ps1 file
    REM Start PowerShell with Elevated access (prompting UAC confirmation)
    REM     and run the ps1 file
    REM     then close elevated window when finished
    REM Output captured results

    IF EXIST %temp%\trans.txt del %temp%\trans.txt
    Echo %* ^> %temp%\trans.txt *^>^&1 > %temp%\tmp.ps1
    Echo $error[0] ^| Add-Content %temp%\trans.txt -Encoding Default >> %temp%\tmp.ps1
    PowerShell -Command "& {Start-Process PowerShell.exe -Wait -ArgumentList '-ExecutionPolicy Bypass -File ""%temp%\tmp.ps1""' -Verb RunAs}"
    Type %temp%\trans.txt
)

1

นี่คือวิธีรวมเข้ากับ explorer จะปรากฏรายการเมนูพิเศษเมื่อคุณคลิกขวาในโฟลเดอร์ใด ๆ ภายใน Windows Explorer:

การรวม Windows Explorer

ขั้นตอนมีดังนี้

  1. สร้างคีย์นี้: \ HKEY_CLASSES_ROOT \ Folder \ shell \ dosherewithadmin
  2. เปลี่ยนค่าเริ่มต้นเป็นค่าใดก็ได้ที่คุณต้องการให้ปรากฏเป็นข้อความรายการเมนู เช่น "DOS Shell ในฐานะผู้ดูแลระบบ"
  3. สร้างคีย์อื่นนี้: \ HKEY_CLASSES_ROOT \ Folder \ shell \ dosherewithadmin \ command
  4. เปลี่ยนค่าเริ่มต้นเป็นค่านี้ ipsis litteris: powershell.exe -Command "Start-Process -Verb RunAs 'cmd.exe' -Args '/ k pushd"% 1 "'"
  5. มันจบแล้ว. ตอนนี้คลิกขวาในโฟลเดอร์ใดก็ได้และคุณจะเห็นรายการของคุณอยู่ในรายการอื่น ๆ

* ใช้ pushd แทน cd เพื่อให้ทำงานในไดรฟ์ใดก็ได้ :-)


0

สามารถใช้ตัวแปรสภาพแวดล้อมชั่วคราวเพื่อใช้กับทางลัดที่ยกระดับ (

start.cmd

setx valueName_betterSpecificForEachCase %~dp0
"%~dp0ascladm.lnk"

ascladm.lnk (ทางลัด)

_ properties\advanced\"run as administrator"=yes

(ในการเปลี่ยนแปลงเส้นทางคุณจะต้องสร้างขึ้นชั่วคราวenv.Variable)

_ properties\target="%valueName_betterSpecificForEachCase%\ascladm.cmd"

_ properties\"start in"="%valueName_betterSpecificForEachCase%"

ascladm.cmd

setx valueName_betterSpecificForEachCase=
reg delete HKEY_CURRENT_USER\Environment /F /V valueName_betterSpecificForEachCase
"%~dp0fileName_targetedCmd.cmd"

) (targetCmd ได้รับการดำเนินการในหน้าต่าง cmd ที่ยกระดับ)

แม้ว่าจะเป็น 3 ไฟล์ แต่คุณสามารถวางทุกอย่าง (รวมถึง TargetCmd) ในโฟลเดอร์ย่อยบางโฟลเดอร์ (อย่าลืมเพิ่มชื่อโฟลเดอร์ลงในแพตช์) และเปลี่ยนชื่อ "start.cmd" เป็นชื่อเดียวของเป้าหมาย

สำหรับฉันดูเหมือนวิธีดั้งเดิมที่สุดในการทำสิ่งนี้ในขณะที่ cmd ไม่มีคำสั่งที่จำเป็น


ฉันได้อ่านวิธีแก้ปัญหาข้างต้นทั้งหมดแล้วและเข้าใจ ฉันไม่เข้าใจขั้นตอนของคุณ ฉันกำลังเลือกวิธีแก้ปัญหาด้วยข้อดีข้อเสียที่ดีที่สุด
Dzmitry Lahoda

0

ฉันไม่แน่ใจว่าเครื่องมือExecElevated.exe (13KB) จะทำงานได้ .... แต่มันอาจจะ หรืออย่างน้อยก็เป็นประโยชน์สำหรับผู้อื่นที่มีความต้องการคล้าย ๆ กันที่เข้ามาในหน้านี้เหมือนที่ฉันทำ (แต่ฉันไม่พบวิธีแก้ปัญหาดังนั้นฉันจึงลงเอยด้วยการสร้างเครื่องมือด้วยตัวเองใน. Net)

มันจะเรียกใช้แอปพลิเคชันด้วยโทเค็นที่ยกระดับ (ในโหมดผู้ดูแลระบบ) แต่คุณจะได้รับกล่องโต้ตอบ UAC เพื่อยืนยัน! (อาจจะไม่ใช่ถ้า UAC ถูกปิดใช้งาน แต่ยังไม่ได้ทดสอบ)

และบัญชีที่เรียกเครื่องมือต้องมีผู้ดูแลระบบด้วย สิทธิแน่นอน

ตัวอย่างการใช้งาน:

ExecuteElevated.exe "C:\Utility\regjump.exe HKCU\Software\Classes\.pdf"

2
ฉันชอบคำตอบของ "สิ่งนี้อาจยังไม่ได้ทดสอบ" และแน่นอนคำตอบที่ "ไม่แน่ใจ" ....
Giridhar Karnik

1
ลิงก์เสีย
Dzmitry Lahoda

สร้างลิงก์อีกครั้งขออภัยที่
MrCalvin

0

วิธีการของ Dheeraj Bhaskar กับ Powershell มีช่องว่างที่ขาดหายไปอย่างน้อยที่สุดสำหรับการเกิด Powershell ของ Windows 10

บรรทัดคำสั่งภายใน sudo.bat ควรเป็น

powershell.exe -Command "Start-Process cmd \"/k cd /d %cd% \" -Verb RunAs"

สังเกตช่องว่างหลัง% cd%

;) Frode


-1

คุณสามารถใช้ไวยากรณ์ต่อไปนี้ฉันมีคำถามเดียวกันและไม่คิดว่าจะต้องใช้สคริปต์

runas / profile / user: domain \ username cmd

สิ่งนี้ใช้ได้ผลสำหรับฉันอาจแตกต่างกันในเครือข่ายของคุณ



-2

ฉันทำได้อย่างง่ายดายโดยใช้คำสั่งต่อไปนี้ใน cmd

runas / netonly / user: Administrator \ Administrator cmd

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


ไม่ได้ช่วยฉัน
Dzmitry Lahoda

@DzmitryLahoda คุณสามารถสรุปข้อผิดพลาดที่คุณได้รับได้หรือไม่?
Harish Regada

-2

กดปุ่ม Windows + X และตอนนี้คุณสามารถเลือก Powershell หรือ Command Prompt ด้วยสิทธิ์ของผู้ดูแลระบบ ใช้งานได้ถ้าคุณเป็นผู้ดูแลระบบ ฟังก์ชันนี้ไม่สามารถใช้งานได้หากระบบไม่ใช่ของคุณ


-5

มีหลายวิธีในการเปิด cmd ที่ยกระดับ แต่มีเพียงวิธีการของคุณเท่านั้นที่ใช้ได้จากพรอมต์คำสั่งมาตรฐาน คุณต้องuserไม่ใส่username:

runas /user:machinename\adminuser cmd

ดูวิธีใช้ที่เกี่ยวข้องจากชุมชนของไมโครซอฟท์


4
นี่ไม่ใช่สิ่งเดียวกับการเรียกใช้คำสั่งที่ยกระดับเพราะเมื่อฉันเปิดหน้าต่าง cmd ที่ยกระดับและฉันพิมพ์ "whoami" มันจะให้ผลลัพธ์เดียวกันกับหน้าต่างที่ไม่ได้ยกระดับ เมื่อฉันเรียกใช้ "whoami / all" ในทั้งสองกรณีฉันจะเห็นความแตกต่างในแง่ของสิทธิ์สำหรับผู้ใช้คนเดียวกัน
Constantino Cronemberger

-5

ฉันใช้runas /user:domainuser@domain cmdสิ่งที่เปิดพรอมต์ยกระดับสำเร็จ


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