Ankündigung

Einklappen
Keine Ankündigung bisher.

Monitor-OMGates - erste Tests

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • SebastianW
    antwortet
    Moin,


    kurzes Feedback nach längerem Testen: Ich habe die Schleife aus dem Script entfernt und lasse den Task alle 30 Minuten per Aufgabenplaner laufen. Hat für mich den Vorteil, dass der Powershellprozess nur zur Ausführung gestartet wird und nicht dauerhaft im Hintergrund mit läuft.

    Wenn ich mir was wünschen dürfte, wäre es, noch mehr Funktionen von den CMDLets zu bekommen. (Ist ja immer so, wurde ein Wunsch erfüllt, kommen die nächsten). Aktuell habe ich das Problem, dass bei einer Box nur noch 2 ISDN Lines hochkommen. Das Kann ich nun per Powershell super Abfragen, würde mir aber etwas Interaktion wünschen.

    Beispiel: Script merkt, dass eine oder mehrere ISDN Lines down sind und kann als Erstlösung ein "Restart-OmInterfaceCallState -Gateway $Gateway -Interface $IFdown" oder so ähnlich, ausführen.

    Vielen Dank für die jetzigen CMDLets.

    Einen Kommentar schreiben:


  • SebastianW
    antwortet
    Lösung:

    Im Helptext bitte anpassen:
    .EXAMPLE
    .\Monitor-OMGates.ps1 -GatewayFile .\gateways_sample.txt

    the text-file 'gateways_sample.txt' is a csv file which looks like this:

    Identity, Password, [User]
    10.4.50.162, omc, root
    10.4.50.160, admin123
    10.4.50.60, cmo, root
    #>
    aus [User] bitte User machen. Dann klappt das auch.

    Einen Kommentar schreiben:


  • SebastianW
    antwortet
    .\Monitor-OMGates.ps1 -Log -GatewayFile .\gateways_sample.txt

    Aufgerufen aus c:\

    Einen Kommentar schreiben:


  • Ralf Jänike
    antwortet
    Wie lautete denn der Skriptaufruf, der diese Fehler produzierte?

    Einen Kommentar schreiben:


  • Ralf Jänike
    antwortet
    Zitat von SebastianW Beitrag anzeigen
    steht so auch im Manifest: PowerShellVersion='2.0'
    Danke für den Hinweis
    Grundsätzlich können OMG Commandlets in PowerShell 2 ausgeführt werden, was auch erforderlich ist, wenn man sie nicht in der PowerShell Console verwendet, sondern z.B. in eigens programmiertem PowerShell Host oder ManagedRuntime Programmierung.

    Anders sieht das mit dem Monitor-Skript aus. Da hier auch CmdLets verwendet werden die erst in PS3 verfügbar sind, werden wir hier die Ausführbedingung auf Version 3 setzen.

    Ralf

    Einen Kommentar schreiben:


  • SebastianW
    antwortet
    Installiert: PS3 auf 2008R2 Server, 2 Gateways eine mit der XX.150 und eine mit der XX.200 Firmware

    Beide Anpingbar, Webaufrufbar, SSH einlogbar.

    Fehlerlog:
    **********************
    Start der Windows PowerShell-Aufzeichnung
    Startzeit: 20150303102136
    Benutzername: xxxxx
    Computer: Vxxxxx (Microsoft Windows NT 6.1.7601 Service Pack 1)
    **********************
    Die Aufzeichnung wurde gestartet. Die Ausgabedatei ist "Monitor-OMGates.log".
    Press 'q' to stop
    Ausnahme beim Festlegen von "User": "Die Eigenschaft "User" wurde für dieses
    Objekt nicht gefunden. Vergewissern Sie sich, dass es die Eigenschaft gibt und
    dass sie festgelegt werden kann."
    In C:\Monitor-OMGates.ps1:190 Zeichen:17
    + $gateway.User = $gatewayDefaults.User
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo : NotSpecified: ( [], SetValueInvocationExceptio
    n
    + FullyQualifiedErrorId : ExceptionWhenSetting

    Ausnahme beim Festlegen von "User": "Die Eigenschaft "User" wurde für dieses
    Objekt nicht gefunden. Vergewissern Sie sich, dass es die Eigenschaft gibt und
    dass sie festgelegt werden kann."
    In C:\Monitor-OMGates.ps1:190 Zeichen:17
    + $gateway.User = $gatewayDefaults.User
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo : NotSpecified: ( [], SetValueInvocationExceptio
    n
    + FullyQualifiedErrorId : ExceptionWhenSetting

    Check versions of cmdlets and gateways...
    Could not reach ' 1xxxxx ' to get firmware version - check credentials!
    Could not reach ' 2xxxxx ' to get firmware version - check credentials!
    Last Run: 03.03.2015 10:21:37 for Gateway 1xxxxx
    channel usage....:unreachable
    file system usage: not supported
    interface status.: unreachable

    Last Run: 03.03.2015 10:21:37 for Gateway 2xxxxx channel usage....:unreachable
    file system usage: not supported
    interface status.: unreachable

    Exiting now...
    **********************
    Ende der Windows PowerShell-Aufzeichnung
    Endzeit: 20150303102141
    **********************

    Einen Kommentar schreiben:


  • SebastianW
    antwortet
    Moin,


    irgendwo Voraussetzungen aufzuschreiben wäre ganz gut. Bei uns läuft das ganze auf einem 2008R2, und dieser hat Standardmäßig PS 2.0 (steht so auch im Manifest: PowerShellVersion='2.0'). Wenn ich nun weiß, dass ich eben PS 3 brauche, dann installiere ich die Geschwind und probiere es damit

    Mehr dazu, wenn ich PS3 installiert habe, dann ist das vielleicht auch alles hinfällig.

    Gruss

    Sebastian

    Einen Kommentar schreiben:


  • Ralf Jänike
    antwortet
    Zitat von Johann Deutinger Beitrag anzeigen
    Ich glaube, das hat bei uns bisher niemand mit PowerShell Version 2 getestet. Das könnte einen Teil der Probleme erklären, z.B. Port-Parameter bei Send-Mailmessage.
    Wir verwenden Powershell 3, weil die über Windows Update installiert ist und sich im Standardfall öffnet.
    Einfach mal $PSVersionTable eingeben und nachschauen was unter PSVersion steht.

    PowerShell 2 kann man über die Kommandozeile starten, PowerShell 4 sind mir bisher nur auf Lync-Server 2013 aufgefallen.

    Ralf

    Einen Kommentar schreiben:


  • Johann Deutinger
    antwortet
    Ich glaube, das hat bei uns bisher niemand mit PowerShell Version 2 getestet. Das könnte einen Teil der Probleme erklären, z.B. Port-Parameter bei Send-Mailmessage.

    Einen Kommentar schreiben:


  • Ralf Jänike
    antwortet
    Hallo Sebastian,

    ich glaube nicht, dass das Skript hier verkehrt funktioniert. Wir haben bei uns im Netzwerk einige Dutzend OMG und konnten derartige Auffälligkeiten beim Testen nicht beobachten.

    Wenn wir verstärkt Auffälligkeiten hatten ("no connection to gateway"), dann war es aus dem Grund, dass wir die Ausführung der CmdLets durch Debugging unterbrochen bzw. abgebrochen haben. In diesem Fall hilft dann der Neustart der PowerShell-Sitzung.

    Ralf

    PS: ein "finally" Block ist optional

    Einen Kommentar schreiben:


  • SebastianW
    antwortet
    Hallo,

    mit meinen begrenzten Fähigkeiten habe ich nun herausgefunden, dass in der Funktion "Check-versions" die Versionsnummer nicht sauber bzw. gar nicht ausgelesen wird:

    $gateVersion = Get-OmVersion -Identity $gate.Identity -UserName $gate.User -UserPassword $gate.Password
    if ($gateversion.Value[$gateversion.Name.IndexOf("UserFS")].Length -eq 0)
    Hier Sollte etwas in der Form wie
    UserFS=4.0-200 Modules=4.0-200 Utils=4.0-200
    übergeben/ausgelesen werden, tatsächlich landet das Script aber im "catch" (laut Internet fehlt hier noch ein finally?) und wirft den Fehler aus.

    Gruss

    Sebastian

    Einen Kommentar schreiben:


  • Ralf Jänike
    antwortet
    Das im PSD das PS1 referenziert ist, ist ein Fehler, der bereits korrigiert wurde. Da gab es am Freitag eine Überlappung zwischen Korrektur und Upload.
    Die Zeile kann einfach auskommentiert werden.

    Ralf

    Einen Kommentar schreiben:


  • SebastianW
    antwortet
    Also, nach weiterer Analyse folgendes:

    Manuell geht das Ansprechen über die CMDLets bei beiden Boxen, keine Firewall im Weg. Dies auch bei Powershell 1&2. Das Script wirft allerdings die Fehler aus.

    Was ich nicht verstehe ist, wenn ich das Beispielscript in den CMDLets Ordner kopiere, kommen beim Import Befehl keine Fehler mehr. Aber wieso verlangt das Manifest das Beispielscript?

    # Die Assemblys, die vor dem Importieren dieses Moduls geladen werden müssen
    # RequiredAssemblies = @()

    ScriptsToProcess = 'Monitor-OMGates.ps1'
    # TypesToProcess = @()
    Nach dem Mittag werd ich mich nochmal vertiefen und schaun, wo das Problem ist.

    Einen Kommentar schreiben:


  • SebastianW
    antwortet
    Moin Julian,

    Powershell 2. Dank dem Tipp mit dem Console Neustarten, geht der Abruf per CMDLet manuell, aber nicht per Script. Fehler ist immer noch wie oben, "Could not reach ' xxxx ' to get firmware version - check credentials!" Ich seh hier die ein oder andere Debug Möglichkeit, aber nicht wie ich die ausgegeben bekomme...

    Einen Kommentar schreiben:


  • Ralf Jänike
    antwortet
    Anmerkung zu Punkt 2:
    Das im Skript integrierte "Import-Module OfficeMaster" funktioniert natürlich nur mit der aktuellen Version der CmdLets, denn nur da ist die Manifestdatei enthalten. (nicht vergessen ins richtige Verzeichnis zu entpacken)

    Generell gilt:
    Die CmdLet Funktionen versuchen überwiegend über die SSH-Schnittstelle auf die OfficeMaster Gate zuzugreifen. Dafür ist es natürlich erforderlich, dass diese entsprechend erreichbar sind und nicht durch Router oder Firewall blockiert sind.

    Ist am Gateway ein anderes Loginpasswort eingestellt, müssen die Verbindungsinformationen über eine Datei, die über den Parameter -GatewayFile übergeben wird, eingestellt sein (alternativ im Skript die Zeile $gatewayDefaults anpassen).

    eine kleine Hilfe dazu ist im Skript zu sehen, bzw. über den Aufruf get-help Monitor-OMGates.ps1 -full

    Ralf

    Einen Kommentar schreiben:

Lädt...
X