如何以管理员身份调用.cmd文件?

时间:2014-12-30 09:28:35

标签: powershell batch-file cmd

请告诉我如何从PowerShell脚本中以管理员身份调用.cmd文件:

  1. 下面第二行应该从PowerShell脚本以管理员身份打开:

    Set-Location "C:\client\service"
    Invoke-Item  "C:\client\service\_install.cmd"
    
  2. 然后命令提示符应在执行后等待。这需要在PowerShell脚本中处理不能写入_install.cmd文件。

1 个答案:

答案 0 :(得分:3)

批处理脚本在CMD.exe中运行,因此您需要以管理员身份启动CMD.exe进程。

Start-Process -FilePath "C:\Windows\System32\cmd.exe" -ArgumentList "/k","C:\client\service\_install.cmd" -Verb RunAs -Wait
  • Start-Process是启动流程的cmdlet
  • -FilePath "C:\Windows\System32\cmd.exe"启动cmd.exe进程
  • -ArgumentList "/k","C:\client\service\_install.cmd"告诉cmd在运行脚本后让控制台保持打开状态(这是您想要的吗?如果没有,请替换为/c,这样cmd窗口将在完成时关闭) 。第二个参数是你的脚本。
  • -Verb RunAs告诉Start-Process以管理员身份启动流程(如果启用,您将收到UAC窗口)
  • -Wait告诉Start-Process等待该过程完成。使用cmd /k这意味着在退出命令提示符后。如果您已将其更改为cmd /c,那么它会一直等到脚本完成。

如果需要更改cmd文件中的工作目录,则需要修改.cmd,或编写包装脚本,如:

@echo off

cd /d C:\client\service

C:\client\service\_install.cmd