如何从Java程序内部将Powershell脚本作为Windows服务运行? [英] how to run a powershell script as a windows service from inside a Java program?
问题描述
我有以下代码从Java内部运行Windows服务.该代码使用JInterop Java库,JInterop是Windows COM服务器的纯Java COM客户端. JIntop的更多详细信息可在此处[
I have the following code that runs a windows service from inside Java.The code uses JInterop Java library, JInterop is a pure Java COM client for windows COM server. More details of JIntop are available here [http://fishi.devtail.io/weblog/2015/01/21/pure-java-dcom-bridge-j-interop/]
String cmdFile = "service.bat";
results = wbemServices_dispatch.callMethodA(
"Get", new Object[]{ new JIString("Win32_Process"),
new Integer(0), JIVariant.OPTIONAL_PARAM()});
IJIDispatch wbemObjectSet_dispatch = (IJIDispatch)JIObjectFactory.narrowObject(
(results[0]).getObjectAsComObject());
results = wbemObjectSet_dispatch.callMethodA("Create",
new Object[]{ new JIString(targetFilePrefix + cmdFile),
JIVariant.OPTIONAL_PARAM(),
JIVariant.OPTIONAL_PARAM()});
是否可以使用相同的库,以与上述相同的方式,或以其他方式,将powershell文件(.ps1)作为服务运行.
Is it possible to run a powershell file(.ps1) as a service in the same manner as above using the same library, or in some other way.
推荐答案
您可以创建一个批处理文件,该文件又可以触发如下所示的powershell脚本:
You can create a batch file which, in-turns, can trigger a powershell script like this:
@echo off
Powershell.exe set-executionpolicy remotesigned -File C:\folder\MyScript.ps1
pause
将其另存为 "Trigger_ps.bat"
Save it as "Trigger_ps.bat"
然后,您可以使用 sc命令来创建Windows服务,方法是提及此批处理文件路径,如下所示:
Then you can use the sc command to create a windows service by mentioning this batch file path like this:
SC CREATE PS_Trigger_Service Displayname= "PS_Trigger_Service" binpath= "C:\folder\Trigger_ps.bat" start= auto
这应该可以解决您的目的.
This should solve your purpose.
这篇关于如何从Java程序内部将Powershell脚本作为Windows服务运行?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!