0

我已经定义了一个 PowershellProbe,它带有一个接收参数 (powershell_param_someparam) 的脚本。从 GUI 上运行脚本成功,但我不知道如何从业务规则或在 Jakarta 实例上运行的其他脚本类型访问和触发此 Pobe。

从脚本实例化它会引发如下异常:

com.glide.script.RhinoEcmaError: "PowershellProbe" is not defined.
sys_script.84088429f884d700a4debe38ef5cb787.script : Line(7) column(0) 5: 
6: var midServer = gs.getProperty("mid.server.connector_default");
==>   7:  var psProbe= new PowershellProbe(midServer, '127.0.0.1');
8:  gs.log("Executed Powershell Probe 2");
9: 10:  var psResponse = psProbe.execute(true);

原始代码如下所示:

(function executeRule(current, previous /*null when async*/) {
var midServer = gs.getProperty('mid.server.midserver_scom');
var psProbe= new PowershellProbe( midServer, '127.0.0.1');
var psResponse = psProbe.execute(true);
gs.log("Executed Powershell Probe");
})(current, previous);

我做错了吗?

4

1 回答 1

2

你的错误说:"PowershellProbe" is not defined.。如果你说它可以从 GUI 工作,我假设你已经安装了它。那么问题可能与应用范围有关。请确保您从应用程序范围“全局”调用脚本。如果您希望从不同的应用程序范围调用脚本,请使用如下命名空间:

var powerProbe = new global.PowershellProbe(mid, server);

另一件事是您从未设置应该执行的 PowerShell 代码。您可以通过定义中间服务器脚本并传递它来做到这一点,setMidScript或者您可以setScript像下面的示例一样设置它:

var mid = 'yourMIDServer';
var server = '127.0.0.1';
var powerShellCode = 'Get-ChildItem';

var powerProbe = new PowershellProbe(mid, server);
powerProbe.setScript(powerShellCode);
var response = powerProbe.execute(true);

gs.log(JSON.stringify(response));
于 2018-02-05T14:55:31.867 回答