Hi,

I've created the following script:

Write-Host "<prtg>"
param([string]$ComputerName)


$value= Get-WmiObject -Query  "SELECT * FROM Win32_Processor" -ComputerName $ComputerName

		$LoadPercentage = $value.LoadPercentage
		Write-Host "<result>"
    	Write-Host "<channel>Processor Percentage</channel>"
    	Write-Host "<value>$LoadPercentage</value>"
    	Write-Host "<float>1</float>"
    	Write-Host "<showTable>1</showTable>"
    	Write-Host "<showChart>1</showChart>"
    	Write-Host "<unit>Go</unit>"
    	Write-Host "<mode>Absolute</mode>"
    	Write-Host "<warning>0</warning>"
    	Write-Host "</result>"

$value2= Get-WmiObject -Query  "SELECT * FROM Win32_OperatingSystem" -ComputerName $ComputerName
		
		$FreePhysicalMemory = $value2.FreePhysicalMemory/1024
		Write-Host "<result>"
    	Write-Host "<channel>Beschikbaar Geheugen MB</channel>"
    	Write-Host "<value>$FreePhysicalMemory</value>"
    	Write-Host "<float>1</float>"
    	Write-Host "<showTable>1</showTable>"
    	Write-Host "<showChart>1</showChart>"
    	Write-Host "<unit>Go</unit>"
    	Write-Host "<mode>Absolute</mode>"
    	Write-Host "<warning>0</warning>"
    	Write-Host "</result>"
		
	

$MemoryUsed = ($value2.FreePhysicalMemory/$value2.TotalVisibleMemorySize) * 100
$PercentMemoryUsed = "{0:N2}" -f $MemoryUsed
$PercentMemoryUsed = $PercentMemoryUsed -replace ("," , ".")

		Write-Host "<result>"
    	Write-Host "<channel>Beschikbaar Geheugen %</channel>"
    	Write-Host "<value>$PercentMemoryUsed</value>"
    	Write-Host "<float>1</float>"
    	Write-Host "<showTable>1</showTable>"
    	Write-Host "<showChart>1</showChart>"
    	Write-Host "<unit>Go</unit>"
    	Write-Host "<mode>Absolute</mode>"
    	Write-Host "<warning>0</warning>"
    	Write-Host "</result>"
	

Write-Host "</prtg>"

When I manually specify the $ComputerName variable everything works fine. But I want to set the computername with the parameter field from the sensor. I've looked everywhere, but I can't find a working example.

I hope someone has an answer for me.


Article Comments

Attention: This article is a record of a conversation with the Paessler support team. The information in this conversation is not updated to preserve the historical record. As a result, some of the information or recommendations in this conversation might be out of date.

Two steps are required, the first is "reading" the parameter in powershell, which you are already doing:

param(
    [string]$host = "defaulthost"
)


(script continues...)

Then, in PRTG configure the Parameters section of the sensor's settings, for instance to "pass" the IPv4 Address/DNS Name from the parent device where the sensor was deployed enter %host in the parameters field. For more details on the available parameters see the Command line Parameters from the Setup > PRTG API > Custom Sensors page.

The same process may be used to forward credentials and other parameters as well.

There's a similar example in this tutorial.


Apr, 2016 - Permalink

param() must be the first non-comment line in the file. Place it before Write-Host "<prtg>"

Its good practice to always test your scripts manually before calling them from PRTG


Apr, 2016 - Permalink

Both replies where very helpfull! Thank you for your help!


Apr, 2016 - Permalink