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.
Ankündigung
Einklappen
Keine Ankündigung bisher.
Monitor-OMGates - erste Tests
Einklappen
X
-
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
#>
Einen Kommentar schreiben:
-
.\Monitor-OMGates.ps1 -Log -GatewayFile .\gateways_sample.txt
Aufgerufen aus c:\
Einen Kommentar schreiben:
-
Wie lautete denn der Skriptaufruf, der diese Fehler produzierte?
Einen Kommentar schreiben:
-
Zitat von SebastianW Beitrag anzeigensteht so auch im Manifest: PowerShellVersion='2.0'
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:
-
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:
-
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:
-
Zitat von Johann Deutinger Beitrag anzeigenIch 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.
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:
-
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:
-
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:
-
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)UserFS=4.0-200 Modules=4.0-200 Utils=4.0-200
Gruss
Sebastian
Einen Kommentar schreiben:
-
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:
-
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 = @()
Einen Kommentar schreiben:
-
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:
-
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:
Einen Kommentar schreiben: