请告诉我如何从PowerShell脚本中以管理员身份调用.cmd文件:
下面第二行应该从PowerShell脚本以管理员身份打开:
Set-Location "C:\client\service"
Invoke-Item "C:\client\service\_install.cmd"
然后命令提示符应在执行后等待。这需要在PowerShell脚本中处理不能写入_install.cmd
文件。
答案 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