Agent Policy: How do I get "$_" as literal into an external parameter ?

Started by twenrich, September 26, 2017, 01:44:44 PM

Previous topic - Next topic

twenrich

Hi,

I'm currently trying to get an external parameter on a Windows host working.
NetXMS Version as well as the Agent version is 2.1.

The Agent Policy

ExternalParameter=Ext.grep_count(*):powershell.exe -command "Select-String -Path \"$1\" -Pattern \"$2\" | Measure-Object | Foreach-Object { echo $_.Count }"

gets called, but reports "_.Count" as value of the Parameter.

I assume that the "$_.Count" gets replaced by NetXMS somewhere by "_.Count", so the echo returns this string only.

Is there a way to escape "$" in the Agent Policy ? I already tried to "\$_.Count" (returning \.Count as value).

Kind regards,

Thomas
PS: as the External parameter is called, I think you can cancel https://track.radensolutions.com/issue/NX-1233

Tursiops

Hi Thomas,

$ marks a parameter passed by NetXMS, hence $_ will not work for you.
For a literal $, write $$, so your line would look as follows:

ExternalParameter=Ext.grep_count(*):powershell.exe -command "Select-String -Path \"$1\" -Pattern \"$2\" | Measure-Object | Foreach-Object { echo $$_.Count }"

Cheers