簡體   English   中英

從win7的命令行,如何以管理員身份啟動具有升高的UAC的進程

[英]From command line on win7, how do I launch a process as administrator with elevated UAC

我有一個程序,該程序需要從批處理文件運行的管理特權。 我可以從命令行運行什么命令,將以管理特權運行程序? 我可以在彈出窗口中請求許可。 此外,該文件需要能夠在計算機上的任何位置運行,以便其他文件可以從./src運行。 問題是,如果我右鍵單擊並選擇“以管理員身份運行”,它將更改我的當前目錄,因此./src不再起作用。 如果我在計算機上禁用了UAC,則一切運行正常。 謝謝!

在這里看: https : //superuser.com/a/269750/139371

提升似乎正在工作,打電話

C:\Utils\bin.x86-64\elevate.exe -k dir

執行dir中的“當前目錄”,其中elevate被調用。

這很困難,Microsoft不提供實用程序來執行此操作(主要是因為提供了破壞安全性的批處理文件),但RunAs除外,並且這要求激活Administrator帳戶。

有一個JScript程序可以執行類似的操作,方法是使用SendKeys打開“開始”菜單,然后鍵入cmd [CTL] + [SHIFT] + [ENTER],這將啟動命令行外殼程序。

將以下內容另存為.js文件,例如StartAdmin.js:

var WshShell = WScript.CreateObject("WScript.Shell");
WshShell.SendKeys("^{esc}cmd^+{ENTER}");   The equivilent of [CTRL]+[ESC] cmd [CTRL]+[SHIFT]+[ENTER]

要從批處理文件運行StartAdmin.js,您將需要以下行:

wscript StartAdmin.js

要從特定目錄啟動並啟動批處理文件,請將StartAdmin.js中的第2行更改為以下內容:

WshShell.SendKeys("^{esc}cmd /C "cd %userprofile% & batchfile.bat"^+{ENTER}");

/ C開關告訴它運行命令,然后關閉命令行窗口。
/ K退出批處理文件后,將使命令窗口保持打開狀態。
為了幫助您理解SendKeys命令:

+=[Shift Key]
^=[Control Key]
{esc}=[Escape Key]
{enter}=[Enter Key]

要了解有關使用CMD.EXE的更多信息,請鍵入CMD /? 在命令提示符下。

這是一種非常不整潔和丑陋的方法,但這是我知道如何僅使用Windows附帶的工具的唯一方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM