Ankündigung

Einklappen
Keine Ankündigung bisher.

Monitor-OMGates - erste Tests

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

    Monitor-OMGates - erste Tests

    Moin, das erste was mir an dem Script auffällt sind 2 Sachen in zusammenhang mit Exchange 2010:

    1. Bekomme Fehler "could not send alert mail - check settings " - Das liegt daran, dass bei Send-MailMessage der Parameter -Port nicht existiert. Entfernt und Mails konnten gesendet werden.

    2. Die Cmdlets lassen sich nicht ohne Fehler per "Import OfficeMaster" importieren. Habe das ganze geändert in "Import-Module OfficeMaster\OmgPowerShellCmdlets" und es funktioniert.

    Aktuell Kämpfe ich noch damit, dass ich immer den Fehler "Could not reach ' xxx ' to get firmware version - check credentials". Da Versuche ich nun mal herauszubekommen wo denn das Problem ist

    [Edit]
    Versuche ich das ganze manuell auf einer der 3 Gateways per Get-OmInterfaceState zu testen, erhalte ich "Get-OmInterfaceState : no connection to gateway" ... Wie versucht der Befehl auf die Boxen zuzugreifen?
    Zuletzt geändert von SebastianW; 02.03.2015, 10:28.

    #2
    Hallo Sebastian,

    schön zu hören, dass unser Skript so schnell anklang findet. Und danke für das schnelle Feedback.

    Dazu hab ich noch eine Frage, welche Version von Powershell setzt du ein?

    Wenn keine Verbindung zu den Gateways hergestellt werden kann, kann es helfen die Powershell Konsole neu zu starten.

    Die Befehle werden momentan per SSH auf den Boxen ausgeführt, aus diesem Grund gibt es auch die Möglichkeit einen Usernamen und Password bei dem Starten des Skripts anzugeben oder für jede Box separat wenn der 'GatewayFile' Parameter verwendet wird.

    Hoffentlich konnte ich dir weiterhelfen, ich freu mich auf den nächsten Statusbericht
    Gruß
    Julian Cebulla

    Kommentar


      #3
      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

      Kommentar


        #4
        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...

        Kommentar


          #5
          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.

          Kommentar


            #6
            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

            Kommentar


              #7
              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

              Kommentar


                #8
                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

                Kommentar


                  #9
                  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.
                  Johann Deutinger

                  Kommentar


                    #10
                    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

                    Kommentar


                      #11
                      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

                      Kommentar


                        #12
                        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
                        **********************

                        Kommentar


                          #13
                          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

                          Kommentar


                            #14
                            Wie lautete denn der Skriptaufruf, der diese Fehler produzierte?

                            Kommentar


                              #15
                              .\Monitor-OMGates.ps1 -Log -GatewayFile .\gateways_sample.txt

                              Aufgerufen aus c:\

                              Kommentar

                              Lädt...
                              X