gpt4 book ai didi

powershell-3.0 - 在远程 session 上使用 Powershell Invoke-Command 通过字符串调用可执行文件

转载 作者:行者123 更新时间:2023-12-04 06:53:37 25 4
gpt4 key购买 nike

我想编写一个 Powershell 脚本来通过其路径调用远程计算机上的可执行文件,然后等待它完成运行。这是我到目前为止所得到的:

$executable = "C:\Temp\example.exe"
$session = New-PSSession -ComputerName VIRTUALMACHINE
$job = Invoke-Command -Session $session -ScriptBlock {$executable} -AsJob
Wait-Job -Job $job

远程机器运行的不是 C:\Temp\example.exe,而是运行字符串 $executable - 不完全是我在这里想要的!

我该如何解决这个问题?

最佳答案

使用 Bacon Bits 的回答中的一些信息,信息来自 this答案,以及来自this的一些信息答案,我设法拼凑出一个解决方案。

$executable = "C:\Temp\example.exe"
$session = New-PSSession -ComputerName VIRTUALMACHINE
Invoke-Command -Session $session -ScriptBlock {Start-Process $using:executable -Wait}

我之前使用的脚本 block 会将 $executable 作为脚本运行,即在远程 session 中返回 $executable 的值,这不会工作。这不会获取 $executable 的本地值,并且即使它获取了也不会运行可执行文件。要获取远程 session 的本地值,$using:executable 将提供服务,但它仍未被执行。现在,使用 Start-Process $using:executable 将运行可执行文件,&$using:executableInvoke-Expression $using:executable,但它似乎不起作用,因为作业将立即完成。使用 Start-Process $using:executable -Wait 将实现最初预期的任务,尽管我认为有很多方法可以做到这一点。

我会等待接受这个作为答案,直到其他人有时间提出可能更好的答案或更正我在这里可能给出的任何错误信息。

关于powershell-3.0 - 在远程 session 上使用 Powershell Invoke-Command 通过字符串调用可执行文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31860641/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com