我已经用脚本定义了一个powershellprobe,该脚本会收回参数(powershell_param_someparam(。从GUI上运行脚本成功工作,但我不知道我将如何通过在雅加达实例上运行的商品规则或其他脚本类型访问和触发此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);
我做错了吗?
您的错误说:"PowershellProbe" is not defined.
。如果您说它可以从GUI起作用,我认为您已安装它。然后,问题可能是应用程序范围。请确保您从应用程序范围"全局"调用脚本。如果您想从不同的应用程序范围调用脚本,则使用这样的名称空间:
var powerProbe = new global.PowershellProbe(mid, server);
另一件事是您从未设置应该执行的PowerShell代码。您可以通过定义MID Server脚本并使用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));