使用Java管理Powershell会话



我希望能够使用Java管理Powershell pessessions。例如,我希望有单独的Java方法来启动和结束会话。有什么简单的方法可以获得这些方法吗?我在想可能会有一个Powershell API,或者类似的东西。

快速回答:否

长一点的回答:你可以自己创建一个,但是你应该尽量避免这样。

PowerShell是一组。net类型(各种System.Management.Automation命名空间),甚至没有C API。但你可以把足够多的PowerShell类型包装成你能从Java调用的东西,然后使用它。然而,由于您不能在同一进程中运行Java,适配器/代理层的一部分将需要执行进程间通信,这将不是一项容易的任务。

如果您的要求只是能够运行PSH脚本,那么您可以使用正确的命令行启动PowerShell进程,例如:运行script.ps1

%windir%System32WindowsPowershellv1.0Powershell.exe -file path-to-script.ps1

通过读取脚本中的标准输入,并控制子进程的标准输入,您可以将命令传递给coöperating脚本:

while (($in = [console]::in.ReadLine()) -ne $null) {
    Write-Debug "Input: '$in'"
    if ($in -match '^s*exits*$') { break; }
}

最新更新