NetXMS Support Forum

English Support => General Support => Topic started by: twenrich on September 26, 2017, 01:44:44 PM

Title: Agent Policy: How do I get "$_" as literal into an external parameter ?
Post by: twenrich on September 26, 2017, 01:44:44 PM
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
Title: Re: Agent Policy: How do I get "$_" as literal into an external parameter ?
Post by: Tursiops on October 13, 2017, 08:13:46 AM
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