Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
ASG Logauswertung per SQL
#1
Hallo Forum,
 
wir brauchen eine permanete Logbuchverbindung zu Übergabe in andere System.
 
Der manuelle Export in der GUI bringt hier nix ….
Den Umweg über die Power Shell ist extrem instabil und auf Dauer nicht zuverlässig.
 
Am liebsten direkt per SQL
 
Inhaltlich wär die Ausgabe der Power Shell  CmdLet "Get-RDLogs  genau richtig ..
 
LogType (string), ItemId (Guid), StartDate (string), EndDate (string), ItemName (string), Username (string), Computer (string)
 
Die Tabelle LOG ist aber total anders aufgebaut. Ohne detaillierte Infos über die DB-Struktur komm ich da nicht weiter ….
 
Alternativ würde auch ein SQL-Befehl reichen, der diese Ausgabe wie in der Historie der GUI (zwei Zeilen je Verbindung) generiert.
 
Hat jemand von euch so was schon mal gemacht?
 
Danke für eure Hilfe!
Reply
#2
Warum ist PowerShell extrem instabil???

Ein direkter Zugriff auf die Daten per SQL ist nicht möglich - es sind "serialisierte .NET Objekte" die zunächst in die .NET-Klasse "deserialisiert" werden müssen
Regards/Gruss
Oliver
Reply
#3
(14-06-2019, 12:30 PM)DevOma Wrote: Warum ist PowerShell extrem instabil???

Ein direkter Zugriff auf die Daten per SQL ist nicht möglich - es sind "serialisierte .NET Objekte" die zunächst in die .NET-Klasse "deserialisiert" werden müssen
Die richtige Aussage wäre eher „komplexer“.
Wenn ich es per SQL machen kann, dann kann ich den gesamten Vorgang in ein einem einziges SQL-Script am Server machen.
Wenn ich es per PS machen, dann muss ich zwei Skripte ineinander legen.
Würde sicherlich gehen … dann wird es aber mit meinen eigenen Kenntnissen in diesem Bereich eher knapp ….
Mal abgesehen davon, dass ich noch nicht mal das cmdlet zum Laufen bekommen habe.
Wenn ich in meiner 64 Bit Umgebung die API laden will, kommt folgende Meldung:

Ausnahme beim Aufrufen von "LoadFrom" mit 1 Argument(en):  "Die Datei oder Assembly "file:///C:\Program Files\ASG-Remote Desktop 2019 (X64)\ASGRD-PSAPI.dll" oder eine Abhängigkeit davon wurde nicht gefunden. Es wurde versucht, eine Datei mit einem falschen Format zu laden."
In Zeile:1 Zeichen:1
+ [reflection.assembly]::loadFrom( '.\ASGRD-PSAPI.dll' ) | import-modul ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (Smile [], MethodInvocationException
    + FullyQualifiedErrorId : BadImageFormatException


Ich hätte auch kein Problem mit einer kostenpflichtigen Unterstützung, wenn mir das jemand macht ….
Reply
#4
Ich würde mal tippen das es die falsche PowerShell ist (32/64Bit) - wenn die API 64Bit ist, muss es auch PowerShell sein

[Environment]::Is64BitProcess

Sollte "true" sein...

Folgendes Skript sollte funktionieren - dann nur noch den Get-Logs Befehl anhängen, einfach im TaskScheduler einbinden, so könnte man z.B. nächtlich die Daten auslesen - der Environment-Name XXX durch den richtigen Namen ersetzen und den Pfad überprüfen :-)

$workingdir = "Program Files\ASG-Remote Desktop 2019 (x64)\"

Set-Location $workingdir
[Environment]::CurrentDirectory = Get-Location -PSProvider FileSystem

$path = $workingdir + "ASGRD-PSAPI.dll"

Add-Type -path $path
[reflection.assembly]::LoadFrom($path) | Import-Module

Connect-RDEnvironment -Environment XXX -PassThrough
Regards/Gruss
Oliver
Reply




Users browsing this thread: 1 Guest(s)