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