Lokaler Check | Long output of check plugin (multiline) | Invalid line in agent section

Hallo zusammen,

ich komme gerade mit dem Output meines lokalem Checks nicht weiter.

Es geht um ein Powershell Script das auf einem Windows Server läuft.
Das Script selber läuft auf dem Server ohne Probleme durch.
Auch in der Diagnostic sehe ich keinen Fehler.

Allerdings wird das Script beim “Full scan” mit der Meldung

 WARNING: Exception in discovery function of check type 'local': Invalid line in agent section <<<local>>>: u'Zeile'

abgewiesen.

So sieht die Zeile im Diagnostic aus:

0 FC-TCPCS Fileshare=1;0;0 Fileshare TCPCS\nStatus meines Checks in der zweiten
Zeile

Wenn ich den Text kürze funktioniert es. Ich möchte aber multiline verwenden um mehr Details ausgeben zu können.
Also immer wenn der Text im Diagnostic Output umbricht erhalte ich den Fehler.

Was mache ich hier falsch? Jemand eine Idee?

Vielen herzlichen Dank.

Gruß
Tiger

Hi tiger,

versuch mal, den Zeilenumbruch \n noch mit einem Backslash zu maskieren.
Also \\n
Ist zumindest unter Linux so im Handbuch beschrieben

Andre

1 Like

Hallo Andre,

vielen Dank für Deine Antwort.

Funktioniert mit 2 Backslahes leider auch nicht.

Mich beschleicht das Gefühl, dass bei local checks der Text nur ein bestimmte Länge haben darf.
Wenn ich nämlich nur einen Teil verwende wird der check richtig angezeit.
Und dann auch nur mit \n. Bei \\n bleibt ein \ im Text stehen.

Sobald der Text in der Ausgabe vom Diagnostic Agent Fenster in eine neue Zeile umbricht geht es nicht mehr.

Ich habe auch die Kodierung der Dateien gecheckt. Passt alles.

Hmm,
Gruß
Tiger

Hi,

wie lang ist deine Ausgabe denn insgesamt?
Dann teste ich das gleich mal.

Andre

Hi,

also ich habe das mal so getestet:

write-output('0 FC-TCPCS Fileshare=1;0;0 Fileshare TCPCS\nStatus meines Checks in der zweiten Zeile. \nTest TestTestTestTestTestTestTestTestTestTestTest TestTestTestTestTestTest')

Discvovery funktioniert und es wird wie im Screenshot dargestellt.

In einer 2.0b6…

1 Like

@tiger Sieht der Output wirklich so aus:
image
mit Zeilenumbruch vor Zeile?

Denn alle Zeilenumbrüche müssen mit \n ersetzt werden, dein Output sollte dann so aussehen:
0 FC-TCPCS Fileshare=1;0;0 Fileshare TCPCS\nStatus meines Checks in der zweiten\nZeile

Die Länge ist hier nicht das Problem, habe lokale Checks welche einen viel längeren Output haben :slight_smile:

Hi,

ja, was man in meiner Ausgabe hier im Forum eventuell nicht sehen kann, die Ausgabe des powershell Kommandos ist in einer einzigen Zeile. Wie @auchri schreibt, die Umbrüche werden durch \n erzeugt…

Andre

“Zeile” aus der Check-Ausgabe steht offenbar auf einer neuen Zeile an der Stelle, an der das local-Plugin den Status erwartet.

Hi.

Vielleicht ist es so vertändlicher.

Ich habe jetzt nur diese Output Zeile als ps1 check aktiv:

write-output('0 FC-TCPC22 Fileshare=1;0;0 Fileshare TCPCS\nStatus meines Checks in der zweiten Zeile. \nTest TestTestTestTestTestTestTestTestTestTestTest TestTestTestTestTestTest')

Ausgabe im Diagnostic:
grafik

Ausgabe vom Full Scan:

Funktioniert so bei mir:


Problem erkannt :slight_smile:
Deine virtuelle Powershell Console ist zu schmal und erzeugt selbst einen Umbruch.
Bitte mal am Anfang deines Powershell Scriptes die folgenden Zeilen einfügen.

$pshost = get-host
$pswindow = $pshost.ui.rawui

$newsize = $pswindow.buffersize
$newsize.height = 300
$newsize.width = 300
$pswindow.buffersize = $newsize

Das kann man auch einfacher schreiben - hab ich nur schnell wo rauskopiert. :slight_smile:

2 Likes

Hallo Andreas,

perefekt! Besten Dank. Das war’s.

Jetzt funktioniert mein check wie gewünscht.

Da wäre ich nie drauf gekommen. Und vielen Dank an allen anderen die mitgeholfen haben.

1 Like