LogON LogOFF werden protokoliert

This commit is contained in:
ms
2022-12-28 09:58:58 +01:00
parent 18e00e475d
commit d694d26d19
18 changed files with 955 additions and 79 deletions

275
Main.vb
View File

@@ -1,10 +1,31 @@
Public Class TSUserReporter
Imports System.Environment
Imports System.IO
Public Class TSUserReporter
Dim lastupdate As DateTime
Dim StartTime As DateTime
Public sNetlogon As String = "\\verag.ost.dmn\NETLOGON"
Public Printer As New List(Of Drucker)
Dim Standarddrucker As New Drucker("", "")
Dim Bondrucker As New Drucker("", "")
Public Message As String
Dim ThinClient As String
Dim isTS As Boolean = False
Dim ID As String = ""
Private Sub TSUserReporter_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Me.Visible = False
StartTime = Date.Now
Routine()
SetPrinterRoutine()
FillLabel()
ID = StartTime.ToString("dd.MM HH:mm:ss") & cRes.LocalUser.BenutzeranmeldeName
LogLogOn()
End Sub
Private Sub cmdGetLocalUser_Click(sender As Object, e As EventArgs) Handles cmdGetLocalUser.Click
@@ -12,13 +33,49 @@
End Sub
Sub Routine()
cRes.LocalUser.FillWithLoggedOnUser()
cRes.LocalTeamviewerID = getregkey()
Try
cRes.LocalUser.FillWithLoggedOnUser(True)
cRes.LocalTeamviewerID = getregkey()
cRes.LocalDomUser.getDomUserByBenutzerAnmeldename(Environment.UserDomainName, Environment.UserName)
Report()
FillLabel()
isTS = cRes.LocalUser.Hostname Like "TS*"
'isTS = True
'MsgBox(isTS)
Report()
' FillLabel()
If cRes.LocalDomUser.du_autologoff = True And cRes.DisableAutoLogoff = False Then
CheckAutoLogOffAndIfthenAutoLogOff()
End If
Catch ex As Exception
'MsgBox(ex.Message)
End Try
End Sub
Sub LogLogOn()
'Make ID
Try
cSQL.InsertSQL("TbL_LogOnLogOffLog", "(Benutzeranmeldename, LogOn, TSServer, LogOff, ID) VALUES (
'" & cRes.LocalUser.BenutzeranmeldeName & "',
'" & Date.Now & "',
'" & cRes.LocalUser.Hostname & "',
' ',
'" & ID & "')")
Catch ex As Exception
End Try
End Sub
Function CheckAutoLogOffAndIfthenAutoLogOff()
If cRes.LocalDomUser.du_autologofftime.TimeOfDay < DateTime.Now.TimeOfDay And DateTime.Now.TimeOfDay < cRes.LocalDomUser.du_autologofftime.AddMinutes(15).TimeOfDay Then
Dim frm As New frmLogOff
frm.Show()
End If
End Function
Function getregkey()
Dim Reg As String = Nothing
If My.Computer.Registry.GetValue("HKEY_CURRENT_USER\Software\TeamViewer", "ClientIDOfTSUser", Nothing) Is Nothing Then
@@ -31,36 +88,73 @@
End Function
Function Report()
lastupdate = Date.Now
Dim ds As New DataSet
cSQL.SQL2DS("select * from TbL_TSSitzungen where Benutzeranmeldename = '" & cRes.LocalUser.BenutzeranmeldeName & " ' ", ds)
If Not ds.Tables(0).Rows.Count = 0 Then
RemoveSitzung()
End If
cSQL.InsertSQL("TbL_TSSitzungen", "(Benutzeranmeldename, Name, TeamviewerID, LastReport, TSServer) VALUES (
Try
lastupdate = Date.Now
Dim ds As New DataSet
cSQL.SQL2DS("select * from TbL_TSSitzungen where Benutzeranmeldename = '" & cRes.LocalUser.BenutzeranmeldeName & " ' AND TSServer = '" & cRes.LocalUser.Hostname & "'", ds)
If Not ds.Tables(0).Rows.Count = 0 Then
RemoveSitzung()
End If
If isTS Then
Dim ds2 As New DataSet
cSQL.SQL2DS("select * from [TbL_ThinClients] where Benutzeranmeldename = '" & cRes.LocalUser.BenutzeranmeldeName & "'", ds2)
'cSQL.SQL2DS("select * from [TbL_ThinClients] where Benutzeranmeldename = 'veragost\tw' ", ds2)
If Not ds2.Tables(0).Rows.Count = 0 Then
ThinClient = ds2.Tables(0).Rows(0).Item("ClientName").ToString
End If
End If
'MsgBox(ThinClient)
cSQL.InsertSQL("TbL_TSSitzungen", "(Benutzeranmeldename, Name, TeamviewerID, LastReport, Domain, Company, LastLogon, TSServer) VALUES (
'" & cRes.LocalUser.BenutzeranmeldeName & "',
'" & cRes.LocalUser.Name & "',
'" & cRes.LocalTeamviewerID & "',
'" & Date.Now & "',
'" & cRes.LocalUser.Domäne & "',
'" & cRes.LocalUser.Company & "',
'" & StartTime.ToString("dd.MM HH:mm") & "',
'" & cRes.LocalUser.Hostname & "')")
Catch ex As Exception
MsgBox("Report():" & vbCrLf & ex.Message)
End Try
SetUserEnviroment()
End Function
Function FillLabel()
Label1.Text = ""
Label1.Text &= cRes.LocalUser.BenutzeranmeldeName & vbCrLf
Label1.Text &= cRes.LocalUser.Name & vbCrLf
Label1.Text &= cRes.LocalUser.Hostname & vbCrLf
Label1.Text &= "Hostname:" & cRes.LocalUser.Hostname & vbCrLf
Label1.Text &= "ThinClient:" & ThinClient& & vbCrLf
Label1.Text &= "TeamviewerID: " & cRes.LocalTeamviewerID & vbCrLf
Label1.Text &= vbCrLf
Label1.Text &= "Letzte Aktualisierung:" & vbCrLf
Label1.Text &= lastupdate
Label1.Text &= lastupdate & vbCrLf
Label1.Text &= Standarddrucker.Druckername & vbCrLf
Label1.Text &= Bondrucker.Druckername & vbCrLf & vbCrLf
Label1.Text &= Message
End Function
Sub RemoveSitzung()
cSQL.DeleteSQL("TbL_TSSitzungen", "Benutzeranmeldename = '" & cRes.LocalUser.BenutzeranmeldeName & " ' ")
cSQL.DeleteSQL("TbL_TSSitzungen", "Benutzeranmeldename = '" & cRes.LocalUser.BenutzeranmeldeName & " ' AND TSServer = '" & cRes.LocalUser.Hostname & "'")
End Sub
Sub LogLogOff()
Dim where As String = "ID = '" & ID & "'"
Dim Values As String = "LogOff ='" & Date.Now & "'"
Try
cSQL.UpdateSQL("TbL_LogOnLogOffLog", Values, where)
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
Private Sub TSUserReporter_Closed(sender As Object, e As EventArgs) Handles Me.Closed
LogLogOff()
RemoveSitzung()
End Sub
@@ -82,4 +176,155 @@
Me.WindowState = WindowState.Minimized
Me.Hide()
End Sub
Private Sub UpdateTimer_Tick(sender As Object, e As EventArgs) Handles UpdateTimer.Tick
Routine()
End Sub
Private Sub btnTest_Click(sender As Object, e As EventArgs) Handles btnTest.Click
'If LoadDefaultPrinter(cRes.LocalUser.Hostname) Then
' SetDefaultPrinter()
' MsgBox(Drucker)
'End If
End Sub
Function SetUserEnviroment()
Try
Environment.SetEnvironmentVariable("PC_SERVER", "pbx3.flashnet.at", EnvironmentVariableTarget.User)
Environment.SetEnvironmentVariable("PC_USER", cRes.LocalDomUser.mit_username & "@verag", EnvironmentVariableTarget.User)
'Environment.SetEnvironmentVariable("PC_PASS", cRes.LocalDomUser.mit_pwd, EnvironmentVariableTarget.User)
' Environment.SetEnvironmentVariable("PC_USE_CUSTOM_NOTIFICATIONS_AS_DEFAULT", "ENA", EnvironmentVariableTarget.User)
' MsgBox(Environment.GetEnvironmentVariable("PC_SErVER"))
Message = "UserEnv eingetragen."
Catch ex As Exception
Message = ex.Message
End Try
End Function
Public Function LoadDefaultPrinter(ByVal Hostname As String)
Dim PrintINI As String = ""
'If isTS Then
' PrintINI = "C:\Users\" & cRes.LocalUser.Username & "\Documents\AVISO_OPTIONS.txt"
' Try
' Dim lines = IO.File.ReadAllLines(PrintINI)
' Dim colCount = lines.First.Split(":"c).Length
' For Each line In lines
' Dim objFields = From field In line.Split(":"c)
' 'Select Case objFields(0).ToString
' ' Case Benutzername
' If String.Compare("PRINTER", objFields(0).ToString, True) = 0 Then
' Drucker = objFields(1).ToString
' '_ConString = objFields(2).ToString
' Return True
' Exit Function
' End If
' ' End Select
' Next
' Return False
' Catch ex As Exception
' ' MsgBox("Fehler beim Lesen TSAnmeldung.ini: " & vbCrLf & ex.Message)
' End Try
' Else
PrintINI = sNetlogon & "\ClientDrucker.ini"
Printer.Clear()
Try
Dim lines = IO.File.ReadAllLines(PrintINI)
Dim colCount = lines.First.Split(";"c).Length
For Each line In lines
Dim objFields = From field In line.Split(";"c)
'Select Case objFields(0).ToString
' Case Benutzername
If String.Compare(Hostname, objFields(0).ToString, True) = 0 Then
Dim p As New Drucker(objFields(1).ToString, objFields(2).ToString)
Printer.Add(p)
'_ConString = objFields(2).ToString
' Return True
' Exit Function
End If
' End Select
Next
If Printer.Count = 0 Then
Dim p As New Drucker("kein Drucker hinterlegt", "")
Printer.Add(p)
Return False
Else
Return True
End If
Catch ex As Exception
Return False
' MsgBox("Fehler beim Lesen TSAnmeldung.ini: " & vbCrLf & ex.Message)
End Try
' End If
End Function
Public Function SetDefaultPrinter()
For Each p As Drucker In Printer
If p.Druckertype = "" Or p.Druckertype = "Standard" Then
Standarddrucker = p
My.Computer.Registry.SetValue("HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows", "Device", p.Druckername)
ElseIf p.Druckertype = "Bon" Then
Bondrucker = p
End If
Next
writeoutAVISO_OPTIONS()
End Function
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
SetPrinterRoutine()
FillLabel()
End Sub
Sub SetPrinterRoutine()
If isTS Then
If LoadDefaultPrinter(ThinClient) Then
SetDefaultPrinter()
End If
Else
If LoadDefaultPrinter(cRes.LocalUser.Hostname) Then
SetDefaultPrinter()
End If
End If
End Sub
Sub writeoutAVISO_OPTIONS()
Dim PrintINI As String = "C:\Users\" & cRes.LocalUser.Username & "\Documents\AVISO_OPTIONS.txt"
Dim Text As String = ""
If Printer.Count = 0 Then
Text = ""
Else
Text = "PRINTER:" & Standarddrucker.Druckername & vbCrLf
Text &= "BON:" & Bondrucker.Druckername
End If
My.Computer.FileSystem.WriteAllText(PrintINI, Text, False)
End Sub
End Class
Public Class Drucker
Property Druckername As String = ""
Property Druckertype As String = ""
Sub New(a As String, b As String)
Me.Druckername = a
Me.Druckertype = b
End Sub
End Class