Command line 在win7上的命令行中,我如何以管理员身份使用提升的UAC启动进程

Command line 在win7上的命令行中,我如何以管理员身份使用提升的UAC启动进程,command-line,process,batch-file,admin,uac,Command Line,Process,Batch File,Admin,Uac,我有一个需要管理权限的程序,我想从批处理文件运行该程序。我可以从命令行运行什么命令以管理权限运行我的程序?我同意弹出窗口请求许可。此外,该文件需要能够从计算机上的任何位置运行,以便从运行其他文件。/src。问题是,如果我右键单击并选择“以管理员身份运行”,它会更改我的当前目录,因此。/src不再工作。如果我在我的机器上禁用UAC,那么一切都会正常运行。谢谢大家! 看这里: 好像在工作,在打电话 C:\Utils\bin.x86-64\elevate.exe -k dir 在调用提升的“当前目录

我有一个需要管理权限的程序,我想从批处理文件运行该程序。我可以从命令行运行什么命令以管理权限运行我的程序?我同意弹出窗口请求许可。此外,该文件需要能够从计算机上的任何位置运行,以便从运行其他文件。/src。问题是,如果我右键单击并选择“以管理员身份运行”,它会更改我的当前目录,因此。/src不再工作。如果我在我的机器上禁用UAC,那么一切都会正常运行。谢谢大家!

看这里:

好像在工作,在打电话

C:\Utils\bin.x86-64\elevate.exe -k dir
在调用
提升
的“当前目录”中执行
dir

查看此处:

好像在工作,在打电话

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

在调用
elevate
的“当前目录”中执行
dir

这很困难,Microsoft没有提供用于执行此操作的实用程序(主要是因为提供批处理文件会破坏安全性),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附带的工具的唯一方法。

这很难做到,Microsoft没有提供任何实用工具来做到这一点(主要是因为提供批处理文件会破坏安全性),除了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附带的工具的唯一方法。

为什么不将路径更改回批处理文件位置?例如
pushd“%~dp0”
为什么不将路径更改回批处理文件位置的可能重复?Ex
pushd“%~dp0”