我有一个程序需要我想从批处理文件运行的管理权限。我可以从命令行运行什么命令将以管理权限运行我的程序?我可以通过弹出窗口请求许可。此外,该文件需要能够从计算机上的任何位置运行,以便从./src运行其他文件。问题是,如果我右键单击并选择“以管理员身份运行”,它将更改我当前的目录,以便./src不再有效。如果我在我的机器上禁用UAC,那么一切运行正常。谢谢!
答案 0 :(得分:0)
请看这里:https://superuser.com/a/269750/139371
elevate似乎正在运作,正在调用
C:\Utils\bin.x86-64\elevate.exe -k dir
在调用dir
的“当前目录”中执行elevate
。
答案 1 :(得分:0)
这很难,微软没有提供任何实用工具(主要是因为提供能力破坏安全性的批处理文件),RunAs除外,并且需要激活管理员帐户。
有一个JScript程序可以做类似的事情,通过使用SendKeys打开“开始”菜单并键入cmd [CTL] + [SHIFT] + [ENTER]将启动命令行shell。
将以下内容另存为.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附带的工具的唯一方式。