使用Java管理Powershell会话

时间:2014-07-02 08:21:27

标签: java session powershell

我希望能够使用Java管理Powershell PSSessions。例如,我希望有单独的Java方法来启动会话并结束它们。有这么简单的方法吗?我在想可能有一个Powershell API,或类似的东西。

1 个答案:

答案 0 :(得分:0)

快速回答:否。

更长的回答:你可以自己创建一个,但你应该试着避免这种情况。

PowerShell是一组.NET类型(各种System.Management.Automation命名空间),甚至没有C API。但是你可以在Java中调用足够的PowerShell类型,然后使用它。但是,由于您无法在同一进程中运行Java,因此该适配器/代理层将需要执行进程间通信,这不是一件容易的事。

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

%windir%\System32\WindowsPowershell\v1.0\Powershell.exe -file path-to-script.ps1

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

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