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

Pra*_*een 2 powershell cmd batch-file

请让我知道如何从 PowerShell 脚本以管理员身份调用 .cmd 文件:

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

    Set-Location "C:\client\service"
    Invoke-Item  "C:\client\service\_install.cmd"
    
    Run Code Online (Sandbox Code Playgroud)
  2. 然后命令提示符应该在执行后等待。这需要在 PowerShell 脚本中处理,无法写入_install.cmd文件。

Fro*_* F. 5

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

Start-Process -FilePath "C:\Windows\System32\cmd.exe" -ArgumentList "/k","C:\client\service\_install.cmd" -Verb RunAs -Wait
Run Code Online (Sandbox Code Playgroud)
  • 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
Run Code Online (Sandbox Code Playgroud)