Windows Vista: Cách thực hiện chương trình .exe trong cmd phiên bản As Administrator Administrator


12

Vâng, đó là nó. Tôi cần chạy chương trình .exe trong dòng cmd và nó cần chạy như khi bạn nhấn nút phải và chọn "chạy với tư cách quản trị viên"


Tôi tự hỏi về điều đó quá. Giải pháp của tôi là tạo một tệp bó bằng lệnh và để nó luôn chạy với tư cách quản trị viên hoặc mở cmd với tư cách quản trị viên. Nhưng nó cảm thấy như nên có một số giải pháp thanh lịch.
OregonGhost

Câu trả lời:


15

Windows có lệnh "runas" hoạt động giống như sudo trong các hệ thống Unix-y. Hãy thử gõ "runas /?" trong dấu nhắc lệnh của bạn.



Đây không phải là một câu trả lời đúng, trừ khi bạn kích hoạt người dùng Quản trị viên với mật khẩu không trống.
jiggunjer

7

Nếu bạn tự chạy cmd với tư cách quản trị viên, mọi thứ khác bạn cũng chạy từ đó cũng sẽ như vậy. Tôi chỉ thiết lập một lối tắt đến dấu nhắc lệnh mở với tư cách quản trị viên. Tất cả mọi thứ từ đó là tốt để đi.


5

Tôi đã sử dụng một bộ đôi kịch bản .cmd & .vbs được gọi là elevate, nó hoạt động tốt cho nhu cầu của tôi. Tất cả bạn cần là gõ

nâng cao [lệnh]
từ Bắt đầu> Chạy hoặc từ dòng lệnh và nó sẽ chạy lệnh với quyền quản trị viên. Hy vọng nó giúp!

Đây là elevate.cmd:

:: //***************************************************************************
:: // ***** Script Header *****
:: //
:: // File:      Elevate.cmd
:: //
:: // Additional files required:  Elevate.vbs
:: //
:: // Purpose:   To provide a command line method of launching applications that
:: //            prompt for elevation (Run as Administrator) on Windows Vista.
:: //
:: // Usage:     elevate.cmd application <application arguments>
:: //
:: // Version:   1.0.0
:: // Date :     01/02/2007
:: //
:: // History:
:: // 1.0.0   01/02/2007  Created initial version.
:: //
:: // ***** End Header *****
:: //***************************************************************************


@echo off

:: Pass raw command line agruments and first argument to Elevate.vbs
:: through environment variables.
set ELEVATE_CMDLINE=%*
set ELEVATE_APP=%1

start wscript //nologo "%~dpn0.vbs" %*

và nâng cao.vbs:

' //***************************************************************************
' // ***** Script Header *****
' //
' // File:      Elevate.vbs
' //
' // Additional files required:  Elevate.cmd
' //
' // Purpose:   To provide a command line method of launching applications that
' //            prompt for elevation (Run as Administrator) on Windows Vista.
' //
' // Usage:     (Not used directly.  Launched from Elevate.cmd.)
' //
' // Version:   1.0.1
' // Date :     01/03/2007
' //
' // History:
' // 1.0.0   01/02/2007  Created initial version.
' // 1.0.1   01/03/2007  Added detailed usage output.
' //
' // ***** End Header *****
' //***************************************************************************


Set objShell = CreateObject("Shell.Application")
Set objWshShell = WScript.CreateObject("WScript.Shell")
Set objWshProcessEnv = objWshShell.Environment("PROCESS")

' Get raw command line agruments and first argument from Elevate.cmd passed
' in through environment variables.
strCommandLine = objWshProcessEnv("ELEVATE_CMDLINE")
strApplication = objWshProcessEnv("ELEVATE_APP")
strArguments = Right(strCommandLine, (Len(strCommandLine) - Len(strApplication)))

If (WScript.Arguments.Count >= 1) Then
    strFlag = WScript.Arguments(0)
    If (strFlag = "") OR (strFlag="help") OR (strFlag="/h") OR (strFlag="\h") OR (strFlag="-h") _
        OR (strFlag = "\?") OR (strFlag = "/?") OR (strFlag = "-?") OR (strFlag="h") _
        OR (strFlag = "?") Then
        DisplayUsage
        WScript.Quit
    Else
        objShell.ShellExecute strApplication, strArguments, "", "runas"
    End If
Else
    DisplayUsage
    WScript.Quit
End If


Sub DisplayUsage

    WScript.Echo "Elevate - Elevation Command Line Tool for Windows Vista" & vbCrLf & _
                 "" & vbCrLf & _
                 "Purpose:" & vbCrLf & _
                 "--------" & vbCrLf & _
                 "To launch applications that prompt for elevation (i.e. Run as Administrator)" & vbCrLf & _
                 "from the command line, a script, or the Run box." & vbCrLf & _
                 "" & vbCrLf & _
                 "Usage:   " & vbCrLf & _
                 "" & vbCrLf & _
                 "    elevate application <arguments>" & vbCrLf & _
                 "" & vbCrLf & _
                 "" & vbCrLf & _
                 "Sample usage:" & vbCrLf & _
                 "" & vbCrLf & _
                 "    elevate notepad ""C:\Windows\win.ini""" & vbCrLf & _
                 "" & vbCrLf & _
                 "    elevate cmd /k cd ""C:\Program Files""" & vbCrLf & _
                 "" & vbCrLf & _
                 "    elevate powershell -NoExit -Command Set-Location 'C:\Windows'" & vbCrLf & _
                 "" & vbCrLf & _
                 "" & vbCrLf & _
                 "Usage with scripts: When using the elevate command with scripts such as" & vbCrLf & _
                 "Windows Script Host or Windows PowerShell scripts, you should specify" & vbCrLf & _
                 "the script host executable (i.e., wscript, cscript, powershell) as the " & vbCrLf & _
                 "application." & vbCrLf & _
                 "" & vbCrLf & _
                 "Sample usage with scripts:" & vbCrLf & _
                 "" & vbCrLf & _
                 "    elevate wscript ""C:\windows\system32\slmgr.vbs"" –dli" & vbCrLf & _
                 "" & vbCrLf & _
                 "    elevate powershell -NoExit -Command & 'C:\Temp\Test.ps1'" & vbCrLf & _
                 "" & vbCrLf & _
                 "" & vbCrLf & _
                 "The elevate command consists of the following files:" & vbCrLf & _
                 "" & vbCrLf & _
                 "    elevate.cmd" & vbCrLf & _
                 "    elevate.vbs" & vbCrLf

End Sub

Chỉ tò mò, lợi thế của điều này so với runas là gì?
tfinniga

Tât nhiên! Bạn đã cho tôi! :) Tôi sẽ không biết lợi thế so với runas, nhưng khi bạn không biết runas, đó là lựa chọn duy nhất. Tôi chắc chắn xấu hổ :)

Tôi nghĩ nó sẽ hữu ích nếu chúng ta một lần đọc những gì chúng ta đang sử dụng như một kịch bản!

1
Bộ đôi này được giải thích tại technet.microsoft.com/en-us/magazine/ Khăn

2
Ưu điểm rõ ràng của tập lệnh nâng cao là chúng cho phép bạn nâng người dùng của mình lên quản trị viên theo UAC mà không cần cung cấp mật khẩu và người dùng quản trị viên (cung cấp rằng bạn đã đăng nhập với tư cách là người dùng quản trị viên). Runas.exe có thể làm điều đó?


2

Bạn cũng có thể Nhấn Windows Key, nhập CMD, điều này sẽ liệt kê cmd trong các chương trình, nhấp chuột phải vào nó -> Thuộc tính -> Tương thích -> Chạy chương trình này với tư cách quản trị viên

Điều này sẽ luôn luôn chạy như Admin.


Bạn cũng có thể sử dụng Ctrl + Shift + Enter.
Joey

1

Vì ai đó đã đăng tương đương VBS, đây là chức năng Invoke-Admin cho PowerShell

function Invoke-Admin() {
param ( [string]$program = $(throw "Please specify a program" ),
        [string]$argumentString = "",
        [switch]$waitForExit )

$psi = new-object "Diagnostics.ProcessStartInfo"
$psi.FileName = $program 
$psi.Arguments = $argumentString
$psi.Verb = "runas"
$proc = [Diagnostics.Process]::Start($psi)
if ( $waitForExit ) {
    $proc.WaitForExit();
}

}


0

Nói ngắn gọn:

  • Nhấp / nhấn Bắt đầu, sau đó CTRL + SHIFT và ENTER. Xác nhận.

Chi tiết:

  1. Nhấn nút Bắt đầu Loại "cmd" (không có dấu ngoặc kép) ngay lập tức (1)
  2. Giữ CTRL và Shift
  3. Nhấn Enter
  4. Xác nhận hộp thoại Windows Vista UAC

(1) Ngay lập tức có nghĩa là gõ nó vào hộp Tìm kiếm, không phải trong hộp Chạy.


0

Bạn có thể sử dụng VBScript như vậy. Tạo một .vbstệp, ví dụ ambika.vbs:

Set objShell = CreateObject(“Shell.Application”)
Set objWshShell = WScript.CreateObject(“WScript.Shell”)
Set objWshProcessEnv = objWshShell.Environment(“PROCESS”)

objShell.ShellExecute “C:\Windows\system32\cmd.exe”, “/k”, “”, “runas”
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.