使用 Invoke-VMScript Powershell 7 在 VM 上以管理员身份运行 .exe

run .exe as administrator on a vm with Invoke-VMScript Powershell 7

提问人:alex 提问时间:8/30/2023 更新时间:9/5/2023 访问量:92

问:

我需要能够通过 shell 控制台或 powershell 启动命令,在 powershell 7 中具有管理员窗口。

我使用 Start-Process 启动了几个命令,但没有一个返回所需的值。我回来说我需要一个交互式屏幕,或者只是一个错误。

Start-Process PowerShell -ArgumentList "-noexit","-File", "file url" -verb runas -Wait
Start-Process PowerShell -ArgumentList "-noexit","-File", "file url" -cred credentials -Wait

我还使用了我找到的一个函数,但它也没有返回任何内容,它给了我一个错误,它无法添加行“$startinfo.verb = ”RunAs“'。

Function Elevate-Process  {

    param ([string]$arguments)

    $startinfo = New-Object System.Diagnostics.ProcessStartInfo

    $startinfo.FileName = "powershell.exe"

    $startinfo.Arguments = $arguments

    $startinfo.verb = "RunAs"

    $startinfo.UseShellExecute = $false

    $startinfo.CreateNoWindow = $true

    $process = [System.Diagnostics.Process]::Start($startinfo)

}

所有这些都是通过 Invoke-VMScript 启动的

PowerShell 虚拟机 调用命令 powershell-7

评论


答:

0赞 Mucer 9/5/2023 #1

我对 VMScript 没有经验,但我最近也有类似的效果。
我的情况是:
(1) 从 powershell 脚本中提升 cmd 文件 myCmdFile.bat

Start-Process aCmdFile.bat -Verb RunAs

(2)myCmdFile.bat的内容是

pwsh.exe -File "C:\Mark\Temp\myScript.ps1" -ExecutionPolicy Bypass -wait:$true .... (and all other parameters)
pause

(这里不需要 -Verb RunAs,因为它继承了 cmd 文件的管理员权限。

这对我有用,但是当我使用 powershell.exe 而不是 pwsh.exe 时,什么也没发生。
所以尝试使用 pwsh.exe
顺便说一句,如果cmd文件在网络驱动器上并且您没有入侵注册表。