Hi, Dear.

i Have a powershell file (.ps1) i already added but i can not running on prtg because what is my parameters i dont know.

This is a PS1 file Code;

function signtest ($vkn, $port=4444, $server="SERVER_IP_ADRESS") { $client = New-Object System.Net.Sockets.TcpClient $server, $port $stream = $client.GetStream() $writer = New-Object System.IO.StreamWriter $stream $writer.AutoFlush = $TRUE $writer.WriteLine("This_is_windows_service " + $vkn)

$reader = New-Object System.IO.StreamReader $stream $line = $reader.ReadLine()

If($line.equals("OK")){ write-host $line -fore cyan } Else { write-host $line -fore red }

$reader.Dispose() $writer.Dispose() $stream.Dispose() }

signtest("our_code_is_here")


Article Comments

To receive parameters from command line in your PS script, you have to declare them as parameters at the beginning of the script first.

param (
  $vkn,
  $port=4444,
  $server="SERVER_IP_ADDRESS"
)

For more information see for example https://technet.microsoft.com/en-us/magazine/jj554301.aspx

Hope I understood your question right.


Feb, 2015 - Permalink

Everyting is true its working correctly. Just i need PARAMETERS on PRTG (sensor settings) What is my parameters ?

This is our code;

function signtest ($vkn, $port=4444, $server="192.168.1.5") {
    $client = New-Object System.Net.Sockets.TcpClient $server, $port
    $stream = $client.GetStream()
    $writer = New-Object System.IO.StreamWriter $stream
    $writer.AutoFlush = $TRUE
    $writer.WriteLine("Efat SIGNTEST " + $vkn)

    $reader = New-Object System.IO.StreamReader $stream
    $line = $reader.ReadLine()

    If($line.equals("OK")){
     write-host $line -fore cyan }
    Else {
write-host $line -fore red }

    $reader.Dispose()
    $writer.Dispose()
    $stream.Dispose()
}

signtest("XXXXXXXX")

Feb, 2015 - Permalink

Should work like this:

param(
       $vkn,
       $port=4444,
       $server="192.168.1.5"
)

function signtest(){
    $client = New-Object System.Net.Sockets.TcpClient $server, $port
    $stream = $client.GetStream()
    $writer = New-Object System.IO.StreamWriter $stream
    $writer.AutoFlush = $TRUE
    $writer.WriteLine("Efat SIGNTEST " + $vkn)

    $reader = New-Object System.IO.StreamReader $stream
    $line = $reader.ReadLine()

    $reader.Dispose()
    $writer.Dispose()
    $stream.Dispose()

    If($line.equals("OK")){
     write-host "0:$($line)" -foregroundcolor cyan; exit 0; }
    Else {
     write-host "0:$($line)" -foregroundcolor red; exit 2; }
}

signtest;

Parameter field for the sensor has to look like this: -VKN "your vkn variable" -Port "1234" -Server "192.168.1.5"

Note that I've added the proper exit codes to the script, otherwise PRTG wouldn't know what result has to be considered ok or error :) If it doesn't work, please provide a sample output of the script. Thanks!


Feb, 2015 - Permalink

Thank you Stephan. It's perfectly work :)


Feb, 2015 - Permalink