Jump to content

scbe

Members
  • Gesamte Inhalte

    3
  • Registriert seit

  • Letzter Besuch

Beiträge erstellt von scbe

  1. Gerade eben schrieb MurdocX:

    Einen kleinen Vorschlag möchte ich bringen: 

    
    param(
    [string]$Arg = "uptime",
    [string]$warn = 0,
    [string]$crit = 0
    )

    würde ich eher in:

    
    param(
    [string]$Arg = "uptime",
    [int]$warn = 0,
    [int]$crit = 0
    )

    ändern.

     

    Denn 0 ist eher ein Integer, als ein String. ($warn, $crit) Hier kannst du mehr Klarheit und weniger Fehleranfälligkeit in dein Skript bringen. Auch würde ich die Variablen ausschreiben. Es kann nicht schaden, Dir und Anderen mehr Sicherheit im Umgang mit den Paramentern bringen. Vielleicht schaut man das Skript in 2 Jahren das nächste Mal erst an.

    So, jetzt hab' ich's! vielen Dank Euch beiden.

     

    <#
    .Parameter Arg
    
    string - date, time, datetime, day, dayname, dayshortname, month, monthname, monthshortname, year, hour, minute, second, uptime, timezone 
    
    .Parameter warn
    
    string - warning treshold
    
    .Parameter crit
    
    string - critical treshold
    
    .EXAMPLE
    
    /usr/lib/nagios/plugins/check_nrpe -t 50 -H <HOSTNAME.DOMAIN> -c check_win_datetime -a timezone
    
    .EXAMPLE
    
    /usr/lib/nagios/plugins/check_nrpe -t 50 -H <HOSTNAME.DOMAIN> -c check_win_datetime -a -Arg uptime -warn 60 -crit 80
    #>
    
    
    param(
    [string]$Arg = "uptime",
    [string]$warn = 0,
    [string]$crit = 0
    )

    Aufruf dann so:

    Get-Help .\<scriptname> -Full
    # oder z.B.:
    Get-Help .\<scriptname> -Parameter Arg
    # oder z.B.:
    Get-Help .\<scriptname> -Examples

    @MurdocX

    Du hast natürlich, wenn alles "normal" wäre :o) Recht. Es sieht in meinem Beispiel eher nach Integern aus.

    In er Tat ist es aber so, dass es bei Argumenten "warn" und "crit" auch Strings übergeben werden können, je nach "Arg".

    Ist also so gewollt und wird im Script entsprechend verarbeitet.

     

    Nochmals vielen Dank an alle..

    Bernd

  2. vor einer Stunde schrieb Dukel:

    Hier kann man aber wohl nur eine Hilfezeile angeben und nicht die komplexen Hilfen mit Beispielen und Ein/Ausgabe.

    Hallo Dukel, MurdocX,
    super, danke erstmal.

    Ich würde für meine Scripte den "Microsoft Weg"

    https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_functions_advanced_parameters?view=powershell-6

    gehen.

    Allerdings hab' ich noch nicht ganz verstanden, wie ich das dann aufrufe.

     

    Folgendes lege ich im Script an:

    <#
    .Parameter Arg
    string - date, time, datetime, day, dayname, dayshortname, month, monthname, monthshortname, year, hour, minute, second, uptime, timezone 
    .Parameter warn
    string - warning treshold
    .Parameter crit
    string - critical treshold
    .EXAMPLE
    /usr/lib/nagios/plugins/check_nrpe -t 50 -H <HOSTNAME.DOMAIN> -c check_win_datetime -a timezone
    #>
    
    param(
    [string]$Arg = "uptime",
    [string]$warn = 0,
    [string]$crit = 0
    )

    Ich habe 3 Parameter, welche erwartet werden.

    Für jeden dieser Parameter habe ich ein ".Parameter" angelegt.

     

    Wie rufe ich nun das Script auf, um die entsprechende Zeile(n) zu bekommen.

    Letztenlich will ich alle auf einmal haben.

     

    DANKE

     

  3. Hallo Leute,

    guten Tag erstmal. Hab' mich eben erst angemeldet, bin also der Neue.. :o)

     

    Ich möchte Euch mal fragen, wie Ihr sowas macht und was ggf. als der Beste Weg erachtet wird.

     

    Im PowerShell bin ich noch recht neu, es fehlt noch an Erfahrung!

    Ich schreibe eine Menge PowerShell Scripte, welche im Monitoring mit Nagios/Icinga2 von Windows Servern zum Einsatz kommen. Fast alle diese Scripte erwarten bestimmte Argumente beim Aufruf wobei jedes Argument verschiedene Parameter haben kann, ohne die sie nicht funktionieren können.

    Nun weiß ja der User, welcher das Monitoring einrichtet, nicht unbedingt welche Argumente erwartet werden. In die Scripte kann er aber auch nicht reinschauen, weil die auf dem Server liegen und er da gar nicht rankommt.

    Jetzt möchte ich eine einheitliche "Hilfe" im Script hinterlegen, welche z.B. mit einem Argument "-help ?" abgerufen werden kann.

    Diese Hilfe sollte die zu übergebenden Argumente und deren mögliche Parameter enthalten.

     

    Wie macht Ihr sowas? Welche Möglichkeiten gibt es hier?

     

    Vorab vielen Dank

    Grüße

     

×
×
  • Neu erstellen...