2011-11-23 48 views
110

我有一个名为test.bat的批处理文件。我打电话下面的说明中test.bat文件:如何从命令提示符下以“以管理员身份运行”运行应用程序?

start /min powershell.exe %sysdrive%\testScripts\testscript1.ps1 

当我通过在命令提示符下运行此,我testscript运行成功。我想以管理员身份运行它(就像我创建了桌面快捷方式并以管理员身份运行一样,不应提示输入任何用户名或密码)。

我试过在test.battest.bat的参数中加入/elevate/NOUAC,但没有运气。我如何解决这个问题?

我知道如何手动执行它,但我希望这是从命令提示符执行。

(通过Marnix Klooster):...不使用任何额外的工具,像那些在an answer to Super User question How to run program from command line with elevated rights建议)

+1

可能重复[以管理员身份运行批处理文件 - Windows 7 - 从网络文件系统运行命令](http://stackoverflow.com/questions/10415653/run-batch-file-as-administrator-windows -7-command-run-as-from-network-file) –

+75

这个问题可以在这里提出,不应该作为关闭主题关闭。这是一个编程和软件开发相关的问题。 DotNet程序和C++都可以通过调用控制台命令或简单地通过批处理文件来与系统和其他程序进行迭代。 –

+1

这对我很有用:http://superuser.com/questions/55809/how-to-run-program-from-command-line-with-elevated-rights有时“以管理员身份运行”预计意味着“运行与提高的权利“。 – User

回答

21

看到这个TechNet文章:Runas command documentation

从命令提示符:

C:\> runas /user:<localmachinename>\administrator cmd 

或者,如果您已连接到域名:

C:\> runas /user:<DomainName>\<AdministratorAccountName> cmd 
+0

我重新读你的问题,你不想成为提示。我的建议会导致密码提示。抱歉! –

+8

我试过这个命令,它是要求凭证,它不应该要求凭证。正如我在查询中提到的那样。如果我右键单击桌面项目作为管理员运行它是预期的行为。 –

80

试试这个:

runas.exe /savecred /user:administrator "%sysdrive%\testScripts\testscript1.ps1" 

它保存密码的第一次,从来没有再问。也许当您更改管理员密码时,系统会再次提示您。

+1

虽然这可能正常工作,但这是一个绝对可怕的想法,因为它破坏了UAC的整个概念。 –

+7

@BenVoigt请建议一个替代方案然后 –

+6

尝试'powershell -Command“启动进程'C:\ program.exe'-Verb runAs”'(用你的命令替换'C:\ program.exe'),参见http://superuser.com/questions/55809/how-to-run-program-from-command-line-with-elevated-rights –

6

看起来psexec -h是这样做的方法:......似乎这不是联机文档中Sysinternals - PsExec上市

-h   If the target system is Windows Vista or higher, has the process 
      run with the account's elevated token, if available. 

但它适用于我的机器。

+0

这里不起作用。相反,我只是得到帮助输出。 – ygoe

+6

这似乎不适用于我,除非我从已具有管理员权限的进程运行它:“无法安装PSEXESVC服务” – Vince

+1

我甚至没有在Windows 10中执行此命令。命令提示符或Power Shell。 – BrainSlugs83

相关问题