Imports System.Data.SqlClient Imports System.IO Imports System.Threading Imports System.ServiceProcess Imports System.DirectoryServices.AccountManagement Imports System.Web.UI.WebControls Imports System.Management.Automation Imports System.Management.Automation.Runspaces Imports System.Security Public Class Main Public con As New SqlConnection Public conadmin As New SqlConnection Public cmd As New SqlCommand Public cmdadmin As New SqlCommand Public reader As SqlDataReader Public SenderStandort As String Public SenderNetzwerk As String Public SenderHost As String Public SenderIP As String Public SenderRubrik As String Public SenderTitel As String Public Neu, geaendert As Boolean Public Suchbegriff As String Public Shared SucheAktiv As Boolean = False Public Tabelle As String Public DHCPRefresh As Boolean = True Public Startparameter As String = "" Public sAppPath As String = Application.StartupPath Public Updatequelle As String = "\\share01.verag.ost.dmn\Programme\Doku\" Private Version As String = My.Resources.Version Public Shared SelectedDGVIndex As Integer Public Shared FirstDisplayedDGVEntry As Integer Public printds As DataSet = Nothing Public Shared Event ResetButtonPressed() Private Declare Function GetActiveWindow Lib "user32" Alias "GetActiveWindow" () As IntPtr Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load LblUhrzeit.Text = "Willkommen " & Class1.LoggedOnUser.Name Class1.ini.LoadParameters() SetAnsichtLautIni() Class1.EnableDoubleBuffered(DgVMain) Me.KeyPreview = True If Class1.DebugMode = True Then LblDEBUGMODE.Visible = True LblDEBUGMODE.ForeColor = Color.Red LblDEBUGMODE.Text = "DEBUG " TimerUpdate.Enabled = False dbload() LstStandortLoad() LblVersion.Text = "Version: " & Version LblVersion.ForeColor = Color.Red LblUhrzeit.ForeColor = Color.Red Else dbload() CheckUpdate("Programmstart") LstStandortLoad() LblUhrzeit.Text = "" With DgVMain .RowsDefaultCellStyle.BackColor = Color.White 'Color.Bisque .AlternatingRowsDefaultCellStyle.BackColor = ColorTranslator.FromHtml("#d7e4f2") End With End If TypeFilter() 'ChkTools.Checked = Class1.DebugMode ' chkTSSitzungen.Checked = True End Sub ''LISTEN Private Sub LstStandort_SelectedIndexChanged(sender As Object, e As EventArgs) Handles LstStandort.SelectedIndexChanged SenderStandort = LstStandort.SelectedItem LstAllgemein.ClearSelected() PanSuche.Enabled = True PanType.Enabled = True Tabelle = "TbL_Netzwerkclients" PuttyToolStripMenuItem.Enabled = True LstNetzwerkLoad() LstNetzwerk.SelectedItem = "Intern" ' SenderStandort = LstStandort.SelectedItem End Sub Private Sub LstNetzwerk_SelectedIndexChanged(sender As Object, e As EventArgs) Handles LstNetzwerk.SelectedIndexChanged SenderStandort = LstStandort.SelectedItem SenderNetzwerk = LstNetzwerk.SelectedItem Tabelle = "TbL_Netzwerkclients" PanSuche.Enabled = True PanNetzwerk.Visible = True btnNeu.Enabled = False If SenderNetzwerk = "" Then CmdNetzwerkbearbeiten.Enabled = False Else CmdNetzwerkbearbeiten.Enabled = True End If 'dgvload("TbL_Netzwerkclients") dgvload_filter(Suchbegriff) End Sub Private Sub LstAllgemein_SelectedIndexChanged(sender As Object, e As EventArgs) Handles LstAllgemein.SelectedIndexChanged LstNetzwerk.ClearSelected() 'LstStandort.ClearSelected() PanNetzwerk.Visible = False btnNeu.Enabled = True PanSuche.Enabled = False PanType.Enabled = False TxtSuche.Enabled = True Tabelle = "TbL_Allgemein" PuttyToolStripMenuItem.Enabled = False dgvload(Tabelle) End Sub Private Sub ChKZugangsdaten_CheckedChanged(sender As Object, e As EventArgs) Handles ChKZugangsdaten.CheckedChanged dgvload_filter(Suchbegriff) End Sub Public Function allesladen() dgvload_filter(Suchbegriff) 'dgvload(Tabelle) End Function Public Function werbinich() If Tabelle = "TbL_Netzwerkclients" Then Try SenderStandort = DgVMain.CurrentRow.Cells("NWSTANDORT").Value Catch ex As Exception SenderStandort = LstStandort.SelectedItem End Try Try SenderNetzwerk = DgVMain.CurrentRow.Cells("NETNAME").Value Catch ex As Exception SenderNetzwerk = LstNetzwerk.SelectedItem End Try Try SenderHost = DgVMain.CurrentRow.Cells("HOST").Value Catch Ex As Exception SenderHost = 1 End Try Try SenderIP = DgVMain.CurrentRow.Cells("IPAdresse").Value Catch ex As Exception End Try ElseIf Tabelle = "TbL_Allgemein" Then Try SenderRubrik = DgVMain.CurrentRow.Cells("Rubrik").Value SenderTitel = DgVMain.CurrentRow.Cells("Titel").Value Catch ex As Exception End Try End If End Function Public Function LstStandortLoad() Dim ds As New DataSet() LstStandort.Items.Clear() : Class1.Standorte.Clear() : Class1.AlleStandorte.Clear() cSQL.SQL2DS("SELECT NWSTANDORT from TbL_Netzwerke where main='True' order by NWSTANDORT", ds) Try For Each dr As DataRow In ds.Tables(0).Rows Dim b As New cBerechtigungen b.Benutzeranmeldename = Class1.LoggedOnUser.BenutzeranmeldeName : b.Standort = dr.Item(0) b.getFromSQL() Class1.AlleStandorte.Add(dr.Item(0)) Select Case b.Zugriff Case "0" Case Else LstStandort.Items.Add(dr.Item(0)) Class1.Standorte.Add(dr.Item(0)) End Select Next Catch ex As Exception MsgBox("DataadapterFill LstStandOrtLoad(): " & ex.Message) End Try 'MsgBox(LstStandort.Items.Count) If Class1.LoggedOnUser.Domäne = "verag.ost.dmn" Then Try LstStandort.SelectedItem = "Verag_SUB" Catch End Try ' MsgBox("Hier") Else LstStandort.SelectedIndex = 0 'MsgBox("Dort") End If Dim dsa As New DataSet() cSQL.SQL2DS("select distinct Rubrik from tbl_allgemein", dsa) LstAllgemein.Items.Clear() Try For Each dr As DataRow In dsa.Tables(0).Rows LstAllgemein.Items.Add(dr.Item(0)) Next Catch ex As Exception MsgBox("DataadapterFill LstStandOrtLoad(): " & ex.Message) End Try End Function Public Function TypeFilter() Try Dim ds As New DataSet() Dim dt As New DataTable() dbload() Dim dataadapter As New SqlDataAdapter("SELECT DISTINCT TYPE from TbL_Netzwerkclients WHERE TYPE IS NOT NULL", con) LstType.Items.Clear() Try con.Open() dataadapter.Fill(ds) LstType.Items.Add("") For Each dr As DataRow In ds.Tables(0).Rows If dr.Item(0) = "" Then LstType.Items.Add("ohne") Else LstType.Items.Add(dr.Item(0)) End If Next Catch ex As Exception MsgBox("TypeFilter(): " & ex.Message) End Try ' LstType.SelectedItem = "---" con.Close() Catch ex As Exception MsgBox(ex.Message) End Try End Function Public Function LstNetzwerkLoad() Dim ds As New DataSet() Dim Standort As String = LstStandort.SelectedItem cSQL.SQL2DS("select NETNAME from TbL_Netzwerke where NWSTANDORT='" & Standort & "' ORDER BY NETNAME", ds) LstNetzwerk.Items.Clear() Try For Each dr As DataRow In ds.Tables(0).Rows LstNetzwerk.Items.Add(dr.Item(0)) Next Catch ex As Exception 'MsgBox("DataadapterFill LstNwerkload(): " & ex.Message) End Try LstNetzwerk.SelectedItem = "Intern" Try ' LstNetzwerk.SetSelected(0, True) NetzwerkInfoAnzeige() Catch ex As Exception ' MsgBox("LstNetzwerkLoad SetSelected: " & ex.Message) End Try NetzwerkInfoAnzeige() End Function Public Function NetzwerkInfoAnzeige() Dim netzwerkname As String = SenderStandort & "_" & SenderNetzwerk LblNetzwerkinfo.Text = "" Try 'con.StatisticsEnabled = True con.Open() cmd.CommandText = "SELECT * FROM Tbl_Netzwerke WHERE Netzwerkname='" & netzwerkname & "'" reader = cmd.ExecuteReader() Do While reader.Read() LblNetzwerkinfo.Text = "Netzwerk: " & reader("Netzwerk") & " Subnetz: " & reader("Subnetz") & vbCrLf & "Gateway: " & reader("Gateway") & vbCrLf & "DNS Server: " & reader("DNSServer") & vbCrLf If Class1.ReadNullAsEmptyString(reader, "DHCPServer") = "" Then Else LblNetzwerkinfo.Text &= "DHCP Server: " & reader("DHCPServer") & vbCrLf & "Bereich: " & reader("DHCPStart") & "-" & reader("DHCPEnd") & vbCrLf & reader("Info") End If Loop reader.Close() Catch ex As Exception 'MsgBox("LblNetzwerkinfo Reader: " & ex.Message) End Try con.Close() End Function Public Function dbload() If con.State <> 1 Then con.ConnectionString = Class1.DBConString conadmin.ConnectionString = Class1.DBConString cmd.Connection = con cmdadmin.Connection = conadmin End Function Public Function dgvload(tabelle As String) Dim ds As New DataSet() Dim Standort As String = LstStandort.SelectedItem Dim Netzwerk As String = LstNetzwerk.SelectedItem Try If tabelle = "TbL_Netzwerkclients" Then If ChkFreieHosts.Checked Then cSQL.SQL2DS("select * from " & tabelle & " where NWSTANDORT='" & Standort & "' AND NETNAME='" & Netzwerk & "' order by host", ds) dgvfill(ds, "Netzwerk") Else cSQL.SQL2DS("select * from " & tabelle & " where NWSTANDORT='" & Standort & "' AND NETNAME='" & Netzwerk & "' AND FQDN is not NUll order by host", ds) dgvfill(ds, "Netzwerk") End If ElseIf tabelle = "TbL_Allgemein" Then 'SQL.SQL2DS("select * from " & tabelle & " WHERE Rubrik = '" & LstAllgemein.SelectedItem & "'", ds) cSQL.SQL2DS("select * from TbL_Allgemein left join TbL_Berechtigungen on TbL_Allgemein.ID = TbL_Berechtigungen.Standort where ((Benutzeranmeldename = '" & Class1.LoggedOnUser.BenutzeranmeldeName & "' AND not Zugriff = '0') OR (Zugriff is null )) AND (Rubrik = '" & LstAllgemein.SelectedItem & "')", ds) dgvfill(ds, "Allgemein") End If Catch ex As Exception 'MsgBox("DataadapterFill dgvload(): " & ex.Message) End Try NetzwerkInfoAnzeige() End Function Public Function dgvload_filter(suchbegriff As String, Optional ByVal DHCPRefresh As Boolean = True) Dim starttime As Date = DateTime.Now Dim endtime As Date Dim ds As New DataSet() Dim dt As New DataTable() Dim Standort As String = LstStandort.SelectedItem Dim Netzwerk As String = LstNetzwerk.SelectedItem Dim Allgemein As String = LstAllgemein.SelectedItem Dim Suchparameter As String Dim DHCPAbfragen As Boolean If LstNetzwerk.SelectedItem Is Nothing And LstAllgemein.SelectedItem Is Nothing Then Exit Function ElseIf LstNetzwerk.SelectedItem IsNot Nothing Then '''SUCHPARAMETER DEFINIEREN''' If LstType.SelectedItem = "" Then Suchparameter = "(Type LIKE'" & suchbegriff & "'OR FQDN LIKE'" & suchbegriff & "'OR QINFO LIKE'" & suchbegriff & "'OR Modell LIKE'" & suchbegriff & "'OR IPAdresse LIKE'" & suchbegriff & " 'OR Standort LIKE'" & suchbegriff & "')" ElseIf LstType.SelectedItem = "ohne" Then Suchparameter = "TYPE = '' AND (Type LIKE'" & suchbegriff & "'OR FQDN LIKE'" & suchbegriff & "'OR QINFO LIKE'" & suchbegriff & "'OR IPAdresse LIKE'" & suchbegriff & "'OR Modell LIKE'" & suchbegriff & "'OR Standort LIKE'" & suchbegriff & "')" Else Suchparameter = "TYPE = '" & LstType.SelectedItem & "' AND (Type LIKE'" & suchbegriff & "'OR FQDN LIKE'" & suchbegriff & "'OR QINFO LIKE'" & suchbegriff & "'OR IPAdresse LIKE'" & suchbegriff & "'OR Modell LIKE'" & suchbegriff & "'OR Standort LIKE'" & suchbegriff & "')" End If '''BERECHTIGUNGEN ABFRAGEN''' Suchparameter &= "AND (" 'For Each ber As cBerechtigungen In Class1.LoggedOnUserRights ' If Not ber.Zugriff = "0" Then ' Suchparameter &= "NWSTANDORT =" & ber.Standort & " OR " ' End If 'Next For Each ShownStandort In Class1.Standorte Suchparameter &= "NWSTANDORT ='" & ShownStandort & "' OR " Next Suchparameter = Suchparameter.Substring(0, Suchparameter.Length - 3) Suchparameter &= ")" '''''''''''''''''''''''''''''''''''''''''''' If Not ChkFreieHosts.Checked Then 'AND (DHCP = '0' OR DHCP is Null) Suchparameter &= " and FQDN is not NULL" Else Suchparameter = "IPAdresse is not NULL" End If '''ABFRAGE DEFINIEREN''' ''' 'Dim SelSQL4DGV As String = "*" Dim SelSQL4DGV As String = "FQDN, IPAdresse, Modell, Standort, Type, Seriennummer, QINFO, Info, DHCP, Host, Link, NWSTANDORT" If ChKZugangsdaten.Checked Then SelSQL4DGV &= ", Benutzer, Passwort" End If '''ABFRAGE RADIOBUTTONS + SUCHPARAMETER''' If RadGlobal.Checked Then cSQL.SQL2DS("select " & SelSQL4DGV & " from TbL_Netzwerkclients where " & Suchparameter & " order by host", ds) ElseIf RadNurNetzwerk.Checked Then cSQL.SQL2DS("select " & SelSQL4DGV & " from TbL_Netzwerkclients where NWSTANDORT = '" & Standort & "' AND NETNAME ='" & Netzwerk & "' AND " & Suchparameter & " order by host", ds) ElseIf RadStandort.Checked Then cSQL.SQL2DS("select " & SelSQL4DGV & " from TbL_Netzwerkclients where NWSTANDORT = '" & Standort & "' AND " & Suchparameter & " order by host", ds) ElseIf suchbegriff = "" Then cSQL.SQL2DS("select " & SelSQL4DGV & " from TbL_Netzwerkclients order by host", ds) End If Try endtime = DateTime.Now LblDebugInfo.Text = "dgvload: " & ((endtime - starttime).Milliseconds) & vbCrLf ''--------------------------------------------------------------------------------------------------------/START// Abfrage DHCP Clients If DHCPRefresh = True And SucheAktiv = False Then con.Open() cmd.CommandText = "SELECT DHCPAbfragen FROM Tbl_Netzwerke WHERE NWSTANDORT = '" & Standort & "' AND NETNAME ='" & Netzwerk & "'" reader = cmd.ExecuteReader() Do While reader.Read() DHCPAbfragen = Class1.ReadNullAs0(reader, "DHCPAbfragen") Loop reader.Close() 'Funktioniert wieder mal nicht.... 'If DHCPAbfragen = True Then ' If ChkDHCPClients.Checked = True Then ' Dim NWAdresse As String ' Class1.Name2Netzwerk(Standort, Netzwerk, NWAdresse) ' Dim DHCPServer As String = Class1.GetDHCPServer(NWAdresse) ' GetDHCPClients(NWAdresse, DHCPServer, ChkFreieHosts.Checked, ds) ' Else ' End If 'End If ' DHCPRefresh = False End If ''--------------------------------------------------------------------------------------------------------/Ende// Abfrage DHCP Clients Class1.HostList.Clear() For Each dr As DataRow In ds.Tables(0).Rows Class1.HostList.Add(dr.Item("IPAdresse").ToString) Next dgvfill(ds, "Netzwerk") Dim endtimedgvfill As Date = Date.Now LblDebugInfo.Text &= "dgvfill: " & ((endtimedgvfill - starttime).Milliseconds) & vbCrLf Catch ex As Exception MsgBox("dgvload_filter(): " & ex.Message) End Try con.Close() NetzwerkInfoAnzeige() Else Suchparameter = "(TITEL LIKE'" & suchbegriff & "'OR INFO LIKE'" & suchbegriff & "'OR LINK LIKE'" & suchbegriff & "')" 'Dim dataadapter As New SqlDataAdapter("select * from TbL_Allgemein where " & Suchparameter & "", con) 'con.Open() 'dataadapter.Fill(ds) 'con.Close() cSQL.SQL2DS("select * from TbL_Allgemein left join TbL_Berechtigungen on TbL_Allgemein.ID = TbL_Berechtigungen.Standort where ((Benutzeranmeldename = '" & Class1.LoggedOnUser.BenutzeranmeldeName & "' AND not Zugriff = '0') OR (Zugriff is null )) AND (Rubrik = '" & LstAllgemein.SelectedItem & "') AND " & Suchparameter & "", ds) dgvfill(ds, "Allgemein") ' MsgBox("keine Wahl") End If printds = ds End Function Public Function dgvfill(ds As DataSet, design As String) ' Class1.dtSuchergebnis.Clear() Class1.dtSuchergebnis = ds.Tables(0) Dim starttime As Date = DateTime.Now Dim endtime As New Date If design = "Netzwerk" Then Try With DgVMain .DataSource = ds.Tables(0) If ChkKompAnsicht.Checked Then .DefaultCellStyle.WrapMode = DataGridViewTriState.False .AutoSizeRowsMode = 0 'DataGridViewAutoSizeColumnsMode.ColumnHeader 'MsgBox(DgVMain.AutoSizeRowsMode) Else .DefaultCellStyle.WrapMode = DataGridViewTriState.True .AutoSizeRowsMode = DataGridViewAutoSizeColumnsMode.AllCells End If If TxtSuche.Text = "" And LstType.SelectedItem = "" Then .RowsDefaultCellStyle.BackColor = Color.White SucheAktiv = False Else .RowsDefaultCellStyle.BackColor = Color.AntiqueWhite SucheAktiv = True End If ' MsgBox(SucheAktiv) .RowHeadersVisible = True .Columns("FQDN").DisplayIndex = 0 .Columns("FQDN").HeaderText = "Name / FQDN" .Columns("IPAdresse").DisplayIndex = 1 .Columns("IPAdresse").AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells ' .Columns("IPAdresse").AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells .Columns("Modell").DisplayIndex = 2 .Columns("Standort").DisplayIndex = 3 .Columns("TYPE").DisplayIndex = 4 .Columns("TYPE").HeaderText = "Gerätetype" .Columns("Seriennummer").DisplayIndex = 5 .Columns("QINFO").HeaderText = "Quick-Info" .Columns("NWSTANDORT").Visible = False 'If ChKZugangsdaten.Checked = False Then ' .Columns("Benutzer").Visible = False ' .Columns("Passwort").Visible = False 'ElseIf ChKZugangsdaten.Checked = True Then ' .Columns("Benutzer").Visible = True ' .Columns("Benutzer").DisplayIndex = 6 ' .Columns("Passwort").Visible = True ' .Columns("Passwort").DisplayIndex = 7 'End If '' .Columns("NETNAME").Visible = False '.Columns("Netzwerk").Visible = False .Columns("DHCP").Visible = False '.Columns("MAC").Visible = False .Columns("LINK").Visible = False '.Columns("Linked").Visible = False '.Columns("Linked").DisplayIndex = 9 '.Columns("LinkedWith").Visible = False '' .Columns("AddIp").Visible = False .Columns("HOST").Visible = False '' .Columns("NWSTANDORT").Visible = False '.Columns("Info").Width = 250 '.Sort(DgVMain.Columns("Host"), System.ComponentModel.ListSortDirection.Ascending) End With Catch ex As Exception MsgBox("With DGV: " & ex.Message) End Try Try If SelectedDGVIndex < DgVMain.Rows.Count - 1 Then Try DgVMain.ClearSelection() DgVMain.Rows(SelectedDGVIndex).Selected = True DgVMain.FirstDisplayedScrollingRowIndex = FirstDisplayedDGVEntry Catch End Try Else DgVMain.Rows(0).Selected = True End If Catch ex As Exception 'MsgBox("With DGV2: " & ex.Message) End Try ''--------------------------------------------------------------------------------------------------------/START//Farbig hervorheben, Check DHCP Filter Dim indexDHCP As Integer = DgVMain.Columns("DHCP").Index Dim indexFQDN As Integer = DgVMain.Columns("FQDN").Index Dim modellFQDN As Integer = DgVMain.Columns("Modell").Index For i = 0 To DgVMain.Rows.Count - 2 '// If (DgVMain.Item(indexDHCP, i).Value = "1" Or DgVMain.Item(indexDHCP, i).Value = "Start" Or DgVMain.Item(indexDHCP, i).Value = "Ende") And DgVMain.Item(indexFQDN, i).Value.ToString = "" Then ' DgVMain.Rows(i).DefaultCellStyle.BackColor = Color.MistyRose 'DgVMain.Rows(i).Visible = ChkAlles.Checked ElseIf (DgVMain.Item(indexDHCP, i).Value = "1" Or DgVMain.Item(indexDHCP, i).Value = "Start" Or DgVMain.Item(indexDHCP, i).Value = "Ende") Then DgVMain.Rows(i).DefaultCellStyle.BackColor = Color.LightYellow 'ElseIf DgVMain.Item(indexDHCP, i).Value = "Start" Or DgVMain.Item(indexDHCP, i).Value = "Ende" Then ' DgVMain.Rows(i).DefaultCellStyle.BackColor = Color.Gold ' DgVMain.Rows(i).Visible = ChkAlles.Checked End If Try If DgVMain.Item(indexFQDN, i).Value.ToString = "" And DgVMain.Item(modellFQDN, i).Value.ToString = "" And DgVMain.Item(indexDHCP, i).Value = "0" Then DgVMain.Rows(i).DefaultCellStyle.BackColor = Color.LightGreen ' DgVMain.Rows(i).Visible = ChkAlles.Checked End If Catch ex As Exception MsgBox("DgVMain.Item(index*, i).Value: " & ex.Message & vbCrLf & DgVMain.Rows.Count & " " & i) End Try Next i ElseIf design = "Allgemein" Then 'MsgBox(ChKZugangsdaten.Checked) With DgVMain If ChkKompAnsicht.Checked Then .DefaultCellStyle.WrapMode = DataGridViewTriState.False Else .DefaultCellStyle.WrapMode = DataGridViewTriState.True End If If TxtSuche.Text = "" And LstType.SelectedItem = "" Then .RowsDefaultCellStyle.BackColor = Color.White Else .RowsDefaultCellStyle.BackColor = Color.AntiqueWhite End If .AutoSizeRowsMode = DataGridViewAutoSizeColumnsMode.AllCells .DataSource = ds.Tables(0) .Columns("ID").Visible = False .Columns("Rubrik").Visible = False .Columns("Linked").Visible = False .Columns("Link").Visible = False .Columns("LinkedWith").Visible = False .Columns("Titel").Width = 150 .Columns("Zugriff").Visible = False .Columns("Standort").Visible = False .Columns("ID1").Visible = False .Columns("Benutzeranmeldename").Visible = False .Sort(DgVMain.Columns("Titel"), System.ComponentModel.ListSortDirection.Ascending) If ChKZugangsdaten.Checked = False Then .Columns("Benutzer").Visible = False .Columns("Passwort").Visible = False ElseIf ChKZugangsdaten.Checked = True Then .Columns("Benutzer").Visible = True ' .Columns("Benutzer").DisplayIndex = 6 .Columns("Passwort").Visible = True ' .Columns("Passwort").DisplayIndex = 7 End If End With End If lblCount.Text = DgVMain.Rows.Count - 1 End Function Function GetUsersInGroup(ByVal groupname As String, Optional ByVal LDAP As String = "LDAP://DC=VERAG,DC=OST,DC=DMN") As List(Of String) Dim Userlist As New List(Of String) Dim locDirectoryEntry As New DirectoryServices.DirectoryEntry(LDAP) Dim Searcher As New DirectoryServices.DirectorySearcher(locDirectoryEntry, "sAMAccountName=" & groupname) Dim Result As DirectoryServices.SearchResult = Searcher.FindOne If Result IsNot Nothing Then For Each User In Result.Properties("Member") Userlist.Add(User) Next End If Return Userlist End Function Private Sub CmdTest_Click(sender As Object, e As EventArgs) Handles CmdTest.Click End Sub Private Sub CMdTest2_Click(sender As Object, e As EventArgs) Handles CMdTest2.Click SMB.Show() End Sub Public Sub btnTest3_Click(sender As Object, e As EventArgs) Handles btnTest3.Click Dim ps = cExtProgramme.RunRemotePSScript("stor10", "veragost\administrator", "+d#XisdBbSt!", "C:\Tools\SMBOpenFiles.ps1", True) Dim ds As New DataSet cSMB.obj2DS(ps, ds, "SMB") End Sub Public Function UsernamePasswordGenerator(x As String, Optional ByVal Zeichenanzahl As Integer = 6) As String ' wenn u dann Username, sonst Password Dim str As String Dim up As String If x = "u" Then str = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" Else str = "0123456789" End If Dim r As New Random For i As Integer = 0 To Zeichenanzahl - 1 up &= str(r.Next(0, str.Length)).ToString Next Return up 'MsgBox(up) End Function Private Function AddGastWLANUser(Username As String, Optional ByVal Password As String = "verag1", Optional ByVal Zugangsdaten As String = "WLANAdmin@192.168.0.97 -pw 6a0D5Ys93uugLi3uVciV", Optional ByVal AblaufZeit As Integer = 2) If Not File.Exists(Application.StartupPath & "\AddWLANUser.bat") Then File.Create(Application.StartupPath & "\AddWLANUser.bat") Dim AddWLANUser As String = Application.StartupPath & "\AddWLANUser.bat" Dim exptime As String = Date.Now.AddHours(AblaufZeit).ToString("yyyy-MM-dd HH:mm") Dim battext As String = "" battext = "( echo configure terminal echo dynamic-guest username " & Username & " echo password " & Password & " echo expire-time " & exptime & " echo group Fahrer_Gruppe echo exit echo exit echo exit ) | plink -ssh " & Zugangsdaten & " exit" WriteToFile(AddWLANUser, battext) Threading.Thread.Sleep(1500) Dim Add As New Process Add.StartInfo.FileName = Application.StartupPath & "\RunNHide.exe" Add.StartInfo.Arguments = AddWLANUser Add.Start() End Function Private Function DeleteGastWLANUser(Username As String, Optional ByVal Zugangsdaten As String = "WLANAdmin@192.168.0.97 -pw 6a0D5Ys93uugLi3uVciV") If Not File.Exists(Application.StartupPath & "\DELWLANUser.bat") Then File.Create(Application.StartupPath & "\DELWLANUser.bat") Dim DELWLANUser As String = Application.StartupPath & "\DELWLANUser.bat" Dim battext As String = "" battext = "( echo configure terminal echo no dynamic-guest " & Username & " echo exit echo exit echo exit ) | plink -ssh " & Zugangsdaten & " exit" WriteToFile(DELWLANUser, battext) Threading.Thread.Sleep(1500) Dim del As New Process del.StartInfo.FileName = Application.StartupPath & "\RunNHide.exe" del.StartInfo.Arguments = DELWLANUser del.Start() 'Process.Start(Application.StartupPath & "\RunNHide.exe " & DELWLANUser) End Function Public Shared Function WriteToFile(filepath As String, texttowrite As String) Try Dim objWriter As New System.IO.StreamWriter(filepath) objWriter.Write(texttowrite) objWriter.Close() Catch ex As Exception MsgBox(filepath & vbCrLf & " konnte nicht geschrieben werden." & vbCrLf & ex.Message) End Try End Function Public Sub RestartServices(Servername As String, Dienst As String) 'Dim Servername As String = "TS12.verag.ost.dmn" Select Case Dienst Case "Druckerwarteschlange" MsgBox("Druckerwarteschlange und Abhängigkeiten werden neu gestartet." & vbCrLf & "Bitte ~ 15 Sekunden warten...") Try Dim sc As New ServiceController("pdf24", Servername) Dim sc2 As New ServiceController("Spooler", Servername) DienstStartStop(sc, "stop") Thread.Sleep(3300) DienstStartStop(sc2, "stop") Thread.Sleep(3300) sc = New ServiceController("pdf24", Servername) sc2 = New ServiceController("Spooler", Servername) DienstStartStop(sc, "start") Thread.Sleep(5300) DienstStartStop(sc2, "start") Thread.Sleep(5300) Catch End Try End Select End Sub Public Function DienstStartStop(sc As ServiceController, startstop As String) Dim scs As ServiceControllerStatus = sc.Status Select Case startstop Case "start" If scs.ToString = "Stopped" Then sc.Start() Case "stop" If scs.ToString = "Running" Then sc.Stop() End Select End Function Public Function GetDHCPClients(Netzwerk As String, DHCPServer As String, Fill As Boolean, ByRef ds As DataSet) Dim DHCPClientList = DHCP.DHCP1(DHCPServer) 'Dim NWShort As String Dim DHCPClientIP As String 'Dim dhcpclients() As DHCP.DHCP_CLIENT_INFO LblDebugInfo.Text &= "" 'Dim a As UInteger = DHCP.StringIPAddressToUInt32(Netzwerk) 'Dim b As UInteger = DHCP.StringIPAddressToUInt32("255.255.255.255") 'DHCP.ListSubnetClients(DHCPServer, Netzwerk, dhcpclients) 'DHCP.StringNWAdressToNWAdressSHORT(Netzwerk, NWShort) 'Dim test As String 'For Each client In DHCPClientList ' test &= client.name & vbCrLf 'Next Try For Each dhcpclient In DHCPClientList 'DHCP.Client_Array.NumElements - 1 DHCPClientIP = dhcpclient.IpAddress.ToString 'NWShort & (b - ((dhcpclient.IpAddress * -1) + a - 1)).ToString ''----------------------------------------Fill True: Wenn DHCP Clients bereits im DS enthalten sind werden diese Hosts geändert. ' If Fill = True Then Dim HostRow() As Data.DataRow HostRow = ds.Tables(0).Select("IPAdresse = '" & DHCPClientIP & "'") ' MsgBox(DHCPClientIP & HostRow.Length) If HostRow.Length > 0 Then HostRow(0)("FQDN") = "*" & dhcpclient.Name HostRow(0)("QINFO") = "DHCP Client" ''----------------------------------------Fill False: DHCP Clients werden hinzugefügt Else 'MsgBox("fill not true") Dim rows() As DataRow = ds.Tables(0).Select("IPAdresse = '" & DHCPClientIP & "'") If rows.Count > 0 Then Dim FQDN As String = rows(0).Item("FQDN") Else Dim newrow As DataRow = ds.Tables(0).NewRow() newrow("IPAdresse") = DHCPClientIP newrow("FQDN") = "*" & dhcpclient.Name newrow("QINFO") = "DHCP Client" newrow("DHCP") = "1" newrow("Host") = Class1.IP2Host(dhcpclient.ipaddress.ToString) '(b - ((dhcpclient.IPAddress * -1) + a - 1)).ToString ds.Tables(0).Rows.Add(newrow) 'End If End If End If Next ds.Tables(0).DefaultView.Sort = "Host" Catch ex As Exception MsgBox("GetDHCPClients() " & ex.Message) End Try End Function Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TimerUhrzeit.Tick LblUhrzeit.Text = Date.Now End Sub 'Private Sub DgVMain_CellContentDoubleClick(sender As Object, e As DataGridViewCellEventArgs) Handles DgVMain.CellContentDoubleClick, DgVMain.CellDoubleClick ' 'MsgBox(DgVMain.CurrentRow.Cells("HOST").Value) ' werbinich() ' If Tabelle = "TbL_Netzwerkclients" Then ' If LstStandort.SelectedItem = "" Then ' LblUhrzeit.Text = "Kein Standort ausgewählt!" ' Exit Sub ' End If ' If LstNetzwerk.SelectedItem = "" Then ' LblUhrzeit.Text = "Kein Netzwerk ausgewählt!" ' Exit Sub ' End If ' Class1.Absender = "Main" ' HostBearbeiten.Show() ' ElseIf Tabelle = "TbL_Allgemein" Then ' EintragBearbeiten.Show() ' End If 'End Sub Private Sub CmdNetzwerkbearbeiten_Click(sender As Object, e As EventArgs) Handles CmdNetzwerkbearbeiten.Click werbinich() Class1.Absender = "Main" Dim NWE As New NWEdit 'NWE.NWStandort = SenderStandort 'NWE.Netzwerkname = SenderNetzwerk NWE.NW.getNetzwerk(SenderStandort, SenderNetzwerk) NWE.StartPosition = FormStartPosition.Manual NWE.Location = New Point(Location.X + 300, Location.Y + 300) 'NetzwerkBearbeiten.Show() NWE.Show() End Sub Private Sub NetzwerkeToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles NetzwerkeToolStripMenuItem.Click NetzwerkAdmin.Show() End Sub Private Sub TxtSuche_TextChanged(sender As Object, e As EventArgs) Handles TxtSuche.TextChanged, RadNurNetzwerk.CheckedChanged, RadGlobal.CheckedChanged, RadStandort.CheckedChanged, LstType.SelectedIndexChanged ', TxtSuche.MouseClick If TxtSuche.TextLength < 1 And LstType.SelectedItem = "" Then Suchbegriff = "%%" ChkFreieHosts.Checked = Class1.ini.prop_FreiHostsAnzeigen ChkDHCPClients.Checked = Class1.ini.prop_DHCPClientsAnzeigen ' ChkFreieHosts.Checked = False dgvload_filter(Suchbegriff) ElseIf TxtSuche.TextLength < 1 And Not LstType.SelectedItem = "" Then 'ChkDHCPClients.Checked = False 'ChkFreieHosts.Checked = False ChkFreieHosts.Checked = False ChkDHCPClients.Checked = False dgvload_filter(Suchbegriff) Else Suchbegriff = "%" & Class1.hochkomma(TxtSuche.Text) & "%" 'ChkDHCPClients.Checked = False ChkFreieHosts.Checked = False dgvload_filter(Suchbegriff) End If End Sub Private Sub ComTypeClick(sender As Object, e As EventArgs) Handles LstType.Click TypeFilter() End Sub Private Sub DgvMainContextMenuItemHost_Click(sender As Object, e As EventArgs) Handles DgvMainContextMenuItemHost.Click, CmDBearbeiten.Click, DgVMain.CellDoubleClick ', DgVMain.RowHeaderMouseDoubleClick If Tabelle = "TbL_Netzwerkclients" Then Dim frm As New frmHostBearbeiten Try frm.IP = (DgVMain.CurrentRow.Cells("IPAdresse").Value) Catch Dim NW As New cNetzwerk NW.getNetzwerk(LstStandort.SelectedItem, LstNetzwerk.SelectedItem) NW.getFirstHost() frm.IP = NW.StartIP End Try 'If cBerechtigungen.BenutzerBerechtigungfuerStandort(Class1.LoggedOnUser.BenutzeranmeldeName, DgVMain.CurrentRow.Cells("NWSTANDORT").Value) = "R" Then If cBerechtigungen.BenutzerBerechtigungfuerStandort(Class1.LoggedOnUser.BenutzeranmeldeName, LstStandort.SelectedItem) = "R" Then frm.Panel1.Enabled = False : frm.PanFirewall.Enabled = False End If frm.StartPosition = FormStartPosition.CenterScreen AddHandler frm.FormClosing, Function() Me.BringToFront() dgvload_filter(Suchbegriff) End Function frm.Show() ElseIf Tabelle = "TbL_Allgemein" Then SelectedDGVIndex = Class1.DBNull2emptyString(DgVMain.CurrentRow.Index) Dim Eintrag As New cEintrag Eintrag.ID = Class1.DBNull2emptyString(DgVMain.CurrentRow.Cells("ID").Value) Eintrag.rubrik = Class1.DBNull2emptyString(DgVMain.CurrentRow.Cells("Rubrik").Value) Eintrag.Titel = Class1.DBNull2emptyString(DgVMain.CurrentRow.Cells("Titel").Value) Eintrag.Berechtigung = Class1.DBNull2emptyString(DgVMain.CurrentRow.Cells("Zugriff").Value) If Eintrag.getFromSQL() = -1 Then btnNeu.PerformClick() : Exit Sub End If Dim frm As New frmAllgemeinEintrag frm.Eintrag = Eintrag frm.Text = Eintrag.Titel frm.btnBerechtigungen.Enabled = Class1.LoggedOnUserisAdmin AddHandler frm.FormClosing, Function() Me.BringToFront() dgvload(Tabelle) LstAllgemein.SelectedItem = Eintrag.rubrik DgVMain.Rows(returncleandgvindex(SelectedDGVIndex)).Selected = True End Function frm.Show() End If End Sub Function returncleandgvindex(dgvindex As Integer) Try DgVMain.Rows(dgvindex).Selected = True Return dgvindex Catch ex As Exception Return 0 End Try End Function Public Function StartHostBearbeiten() HostBearbeiten.StartPosition = FormStartPosition.Manual HostBearbeiten.Location = New Point(Location.X + 150, Location.Y + 150) EintragBearbeiten.StartPosition = FormStartPosition.Manual EintragBearbeiten.Location = New Point(Location.X + 150, Location.Y + 150) If Tabelle = "TbL_Netzwerkclients" Then If LstStandort.SelectedItem = "" Then LblUhrzeit.Text = "Kein Standort ausgewählt!" Exit Function End If If LstNetzwerk.SelectedItem = "" Then LblUhrzeit.Text = "Kein Netzwerk ausgewählt!" Exit Function End If Class1.Absender = "Main" If HostBearbeiten.Visible Then MsgBox("Fenster ist bereits geöffnet.") HostBearbeiten.BringToFront() Else HostBearbeiten.Show() End If ElseIf Tabelle = "TbL_Allgemein" Then If EintragBearbeiten.Visible Then MsgBox("Fenster ist bereits geöffnet.") EintragBearbeiten.BringToFront() Else EintragBearbeiten.Show() End If End If End Function Private Sub DgvMainContextMenuItemPutty_Click(sender As Object, e As EventArgs) werbinich() cExtProgramme.startputty(Class1.MainHost(DgVMain.CurrentRow.Cells("IPAdresse").Value)) End Sub Private Sub DgvMainContextMenuItemLink_Click(sender As Object, e As EventArgs) Handles DgvMainContextMenuItemLink.Click, CmdLink.Click werbinich() cExtProgramme.startlink(DgVMain.CurrentRow.Cells("Link").Value) End Sub Private Sub CmdPutty_Click(sender As Object, e As EventArgs) Handles CmdPutty.Click, PuttyToolStripMenuItem.Click Dim host As New cHost host.gethost(DgVMain.CurrentRow.Cells("IPAdresse").Value) cExtProgramme.startputty(host.IPAdresse, host.SSHPort) 'cExtProgramme.startputty(Class1.MainHost(DgVMain.CurrentRow.Cells("IPAdresse").Value)) End Sub Private Sub ChkTools_CheckedChanged(sender As Object, e As EventArgs) Handles ChkTools.CheckedChanged If ChkTools.Checked Then PanTools.Visible = True Else PanTools.Visible = False End If End Sub Private Sub CmdPing_Click(sender As Object, e As EventArgs) Handles CmdPing.Click, PingToolStripMenuItem.Click cExtProgramme.pingip(DgVMain.CurrentRow.Cells("IPAdresse").Value) End Sub Private Sub CmdFiles_Click(sender As Object, e As EventArgs) Handles CmdFiles.Click, DateienToolStripMenuItem.Click If DgVMain.GetCellCount(DataGridViewElementStates.Selected) = 0 Then Exit Sub explorerstarten("Client") End Sub Private Sub CmdNWDateien_Click(sender As Object, e As EventArgs) Handles CmdNWDateien.Click, NetzwerkdateienToolStripMenuItem.Click Try explorerstarten("Netzwerk") Catch ex As Exception End Try End Sub Private Function explorerstarten(sender As String, Optional ByVal art As String = "Dateien") Dim ds As New DataSet Dim Path As String Dim islinked As Integer Dim LinkedWith As String If Tabelle = "TbL_Netzwerkclients" Then werbinich() If sender = "Client" Then cFolder.explorerstarten(SenderIP) : Exit Function ElseIf sender = "Netzwerk" Then Path = Class1.FilePath & "\" & SenderStandort & "_Allgemein" End If ElseIf Tabelle = "TbL_Allgemein" Then Try 'dbload() 'con.Open() 'Dim sda As New SqlDataAdapter("Select * FROM TbL_Allgemein WHERE Rubrik='" & DgVMain.CurrentRow.Cells("Rubrik").Value & "' AND Titel='" & DgVMain.CurrentRow.Cells("Titel").Value & "'", con) 'sda.Fill(ds) 'con.Close() cSQL.SQL2DS("Select * FROM TbL_Allgemein WHERE Rubrik='" & DgVMain.CurrentRow.Cells("Rubrik").Value & "' AND Titel='" & DgVMain.CurrentRow.Cells("Titel").Value & "'", ds) Dim Info As String = ds.Tables(0).Rows(0).Item("Info") 'If IsDBNull(ds.Tables(0).Rows(0).Item("Linked")) Then ' islinked = "0" 'ElseIf Not IsDBNull(ds.Tables(0).Rows(0).Item("Linked")) Then ' islinked = ds.Tables(0).Rows(0).Item("Linked") 'End If 'If IsDBNull(ds.Tables(0).Rows(0).Item("LinkedWith")) Then ' LinkedWith = "" 'ElseIf Not IsDBNull(ds.Tables(0).Rows(0).Item("LinkedWith")) Then ' LinkedWith = ds.Tables(0).Rows(0).Item("LinkedWith") 'End If 'If islinked = "1" Then ' Dim dslinked As New DataSet() ' dbload() ' con.Open() ' Dim da As New SqlDataAdapter("SELECT * FROM Tbl_Allgemein WHERE LinkedWith='" & LinkedWith & "'", con) ' da.Fill(dslinked) ' con.Close() ' Path = Class1.FilePath & "\" & dslinked.Tables(0).Rows(0).Item("Rubrik") & "\" & dslinked.Tables(0).Rows(0).Item("Titel") '& "\" & dslinked.Tables(0).Rows(0).Item("Host") 'Else ' 'MsgBox("not linked") Path = Class1.FilePath & "\" & DgVMain.CurrentRow.Cells("Rubrik").Value & "\" & DgVMain.CurrentRow.Cells("Titel").Value '& "\" & SenderHost 'End If Catch ex As Exception MsgBox("ExplorerStarten() Tbl_Allgemein: " & ex.Message) End Try Else MsgBox("Da lief was schief...") Exit Function End If ''Pfad öffnen: Try Select Case art Case "Dateien" If IO.Directory.Exists(Path) Then Process.Start(Path) Else IO.Directory.CreateDirectory(Path) Process.Start(Path) End If Case "SMB" Process.Start(Path) End Select Catch ex As Exception MsgBox("Pfad öffnen: " & Path & vbCrLf & ex.Message) End Try 'MsgBox(Tabelle) 'MsgBox(path) End Function Private Sub AnsichtDruckenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles AnsichtDruckenToolStripMenuItem.Click ' PrintDGV.Print_DataGridView(DgVMain) Dim Print As New frmPrint Print.DruckeZugangsdaten = ChKZugangsdaten.Checked Print.ds = printds Print.Show() End Sub Public Function neuerEintrag() werbinich() If Tabelle = "TbL_Netzwerkclients" Then If LstStandort.SelectedItem = "" Then LblUhrzeit.Text = "Kein Standort ausgewählt!" Exit Function End If If LstNetzwerk.SelectedItem = "" Then LblUhrzeit.Text = "Kein Netzwerk ausgewählt!" Exit Function End If Class1.Absender = "Main" HostBearbeiten.Show() ElseIf Tabelle = "TbL_Allgemein" Then 'SenderTitel = "" 'SenderRubrik = LstAllgemein.SelectedItem Neu = True Dim EintragNeu As New EintragBearbeiten EintragNeu.rubrik = Class1.DBNull2emptyString((DgVMain.Rows(0).Cells("Rubrik").Value)) EintragNeu.Show() End If End Function Private Sub ErstellenToolStripMenuItem_Click(sender As Object, e As EventArgs) neuerEintrag() End Sub Private Sub ChkKompAnsicht_CheckedChanged(sender As Object, e As EventArgs) Handles ChkKompAnsicht.CheckedChanged, ChkFreieHosts.CheckedChanged, ChkDHCPClients.CheckedChanged If ChkFreieHosts.Checked Then TxtSuche.Text = "" LstType.SelectedItem = "" RadNurNetzwerk.Checked = True End If dgvload_filter(Suchbegriff) End Sub Private Sub ExportToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ExportToolStripMenuItem.Click Class1.csvexport(DgVMain) End Sub Private Sub ImportToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ImportToolStripMenuItem.Click CSVImportieren.Show() End Sub Private Sub ExitToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ExitToolStripMenuItem.Click Application.Exit() End Sub Private Sub Closing_Closing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing Application.Exit() End Sub Private Sub UpdateToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles UpdateToolStripMenuItem.Click CheckUpdate("ImProgramm") End Sub Public Sub StartUpdate() Dim Updater As String = "Dokumentation_Updater.exe" Try My.Computer.FileSystem.CopyFile(Updatequelle & "\" & Updater, sAppPath & "\" & Updater, True) Catch ex As Exception End Try Process.Start("Dokumentation_Updater.exe") Application.Exit() End Sub Private Sub CmdSucheReset_Click(sender As Object, e As EventArgs) Handles CmdSucheReset.Click TxtSuche.Text = "" LstType.SelectedItem = "" RadNurNetzwerk.Checked = True End Sub Public Function CheckUpdate(starter As String) dbload() Dim pascom As New cPascom lblNotruf.Text = "Notruf geht an: " & pascom.getredirect("555") Dim RemoteVersion As String = "" LblVersion.Text = "Version: " & Version Try Dim ds As New DataSet cSQL.SQL2DS("SELECT prog_aktuelleVersion FROM " & Class1.DBAdmin & ".dbo.tblProgramme WHERE prog_codename= '" & My.Resources.Programmcode & "'", ds) If ds.Tables(0).Rows.Count Then RemoteVersion = ds.Tables(0).Rows(0).Item(0).ToString End If Catch ex As Exception MsgBox("Kann RemoteVersion nicht abfragen." & ex.Message) TimerUpdate.Enabled = False Exit Function End Try Try If CInt(RemoteVersion.Replace(".", "")) > CInt(Version.Replace(".", "")) Then TimerUpdate.Enabled = False ' LblDebugInfo.Text = sAppPath & ", Version: " & Version & vbCrLf & "TimerUpdateStatus: " & TimerUpdate.Enabled LblInfo.ForeColor = Color.Red LblInfo.Text = "Neue Version verfügbar: " & RemoteVersion If MsgBox("Neue Updates verfügbar. Jetzt ausführen?", MsgBoxStyle.OkCancel) = MsgBoxResult.Ok Then StartUpdate() Else Exit Function End If Else LblInfo.Text = "" If starter = "ImProgramm" Then If MsgBox("Keine neuen Updates verfügbar. Trotzdem ausführen?", MsgBoxStyle.OkCancel) = MsgBoxResult.Ok Then StartUpdate() Else End If ' LblDebugInfo.Text = sAppPath & ", Version: " & Version & vbCrLf & "TimerUpdateStatus: " & TimerUpdate.Enabled End If Catch ex As Exception MsgBox("Kann Versionen nicht vergleichen: " & ex.Message) TimerUpdate.Enabled = False End Try End Function Private Sub Form_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown If e.KeyData = Keys.F5 Then If Tabelle = "TbL_Allgemein" Then dgvload(Tabelle) Else dgvload_filter(Suchbegriff) End If End If End Sub Private Sub TimerUpdate_Tick(sender As Object, e As EventArgs) Handles TimerUpdate.Tick If Class1.DebugMode = False Then CheckUpdate("Timer") End Sub Private Sub DgVMain_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) Handles DgVMain.CellClick SelectedDGVIndex = DgVMain.CurrentRow.Index FirstDisplayedDGVEntry = DgVMain.FirstDisplayedScrollingRowIndex End Sub Private Sub Button1_Click(sender As Object, e As EventArgs) Handles btnNeu.Click Neu = True Dim frm As New frmAllgemeinEintrag frm.Text = "Neuer Eintrag" If Class1.DBNull2emptyString((DgVMain.CurrentRow.Cells("Rubrik").Value)) = "" Then frm.Eintrag.rubrik = Class1.DBNull2emptyString((DgVMain.Rows(0).Cells("Rubrik").Value)) Else frm.Eintrag.rubrik = Class1.DBNull2emptyString((DgVMain.CurrentRow.Cells("Rubrik").Value)) End If AddHandler frm.FormClosing, Function() Me.BringToFront() dgvload(Tabelle) LstAllgemein.SelectedItem = frm.Eintrag.rubrik DgVMain.Rows(SelectedDGVIndex).Selected = True End Function frm.Show() End Sub Private Sub TimerWillkommen_Tick(sender As Object, e As EventArgs) Handles TimerWillkommen.Tick TimerWillkommen.Enabled = False TimerUhrzeit.Enabled = True End Sub Private Sub BenutzerToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles BenutzerToolStripMenuItem.Click Dim frm As New frmLeer frm.Text = "Benutzerverwaltung" Dim usrcntrl As New uscntr_Benutzer usrcntrl.Dock = DockStyle.Fill : frm.PanMain.Controls.Add(usrcntrl) ' frm.Size = usrcntrl.Size frm.Show() End Sub Private Sub ToolStripMenuItemINFO_Click(sender As Object, e As EventArgs) Handles ToolStripMenuItemINFO.Click Dim frm As New frmLeer frm.Text = "INFO" Dim usrcntrl As New uscntr_INFO usrcntrl.Dock = DockStyle.Fill : frm.PanMain.Controls.Add(usrcntrl) frm.Show() End Sub Private Sub SMBToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles SMBToolStripMenuItem.Click If DgVMain.GetCellCount(DataGridViewElementStates.Selected) > 0 Then explorerstarten("Client", "SMB") Else LblUhrzeit.Text = "Keine Auswahl getätigt" End If End Sub Private Sub IPAdresseInZwischenablageToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles IPAdresseInZwischenablageToolStripMenuItem.Click werbinich() If SenderIP <> String.Empty Then Clipboard.SetText(SenderIP) End If End Sub Private Sub PingtToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles PingtToolStripMenuItem.Click, CmdPintT.Click cExtProgramme.pingip(DgVMain.CurrentRow.Cells("IPAdresse").Value, " -t") End Sub Private Sub AllesSichernCSVToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles AllesSichernCSVToolStripMenuItem.Click Dim dgvtemp As New DataGridView Dim dstemp As New DataSet cSQL.SQL2DS("select * from TbL_Netzwerkclients where FQDN is not null order by NWSTANDORT, NETNAME, host", dstemp) dgvtemp.DataSource = dstemp.Tables(0) Class1.datatable_2_csv_export(dstemp.Tables(0)) End Sub Private Sub chkTSSitzungen_CheckedChanged(sender As Object, e As EventArgs) Handles chkTSSitzungen.CheckedChanged If chkTSSitzungen.Checked Then panTSSitzungen.Controls.Clear() Dim dingsi As New uscntr_TSSitzungen dingsi.AutoSize = AutoSizeMode.GrowAndShrink dingsi.Dock = Dock.Fill panTSSitzungen.Controls.Add(dingsi) panTSSitzungen.Visible = True Else panTSSitzungen.Controls.Clear() panTSSitzungen.Visible = False End If End Sub Private Sub TeamviewerVerbindenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles TeamviewerVerbindenToolStripMenuItem.Click Dim Host2Connect As New cHost Host2Connect.gethost(Class1.MainHost(DgVMain.CurrentRow.Cells("IPAdresse").Value)) If Host2Connect.TeamviewerID.Length > 1 Then cExtProgramme.StartTeamviewer(Host2Connect.TeamviewerID, Host2Connect.TeamviewerKennwort) Else MsgBox("TeamviewerID nicht eingepflegt!") End If End Sub Private Sub btnBenutzerverwaltung_Click(sender As Object, e As EventArgs) Handles btnBenutzerverwaltung.Click Dim frm As New frmLeer frm.Text = "Benutzerverwaltung" Dim usrcntrl As New uscntr_DomUserList usrcntrl.Dock = DockStyle.Fill : frm.PanMain.Controls.Add(usrcntrl) frm.Size = usrcntrl.Size frm.Show() AddHandler frm.FormClosing, Function() End Function End Sub Dim Timer_REFRESH_firstTime = True Private Sub Timer_REFRESH_Tick(sender As Object, e As EventArgs) Handles Timer_Refresh.Tick If Timer_REFRESH_firstTime Then Timer_REFRESH_firstTime = False Exit Sub End If Try If VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_ChatBenutzer And picAVISOMessenger.Visible Then Dim newMsg = VERAG_PROG_ALLGEMEIN.cMessenger.GET_NewMSG_COUNT() ' MsgBox(newMsg) Label20.Text = newMsg Label20.Visible = (newMsg > 0) If newMsg Then ' Me.Icon = My.Resources.avisoNewMsg Dim isshown = False For Each openForm In Application.OpenForms() If TypeOf (openForm) Is frmNotify Then isshown = True End If Next Dim isInFront = False For Each openForm In Application.OpenForms() If TypeOf (openForm) Is VERAG_PROG_ALLGEMEIN.frmMessenger Then ' If DirectCast(openForm, VERAG_PROG_ALLGEMEIN.frmMessenger).Focused Then If GetActiveWindow = DirectCast(openForm, VERAG_PROG_ALLGEMEIN.frmMessenger).Handle Then isInFront = True End If End If Next If Not isshown And Not isInFront Then newNotify(frmNotify.cNotify_ART.NEUER_CHAT, 0, "Neue Chat-Nachricht!", -1) Else ' Me.Icon = My.Resources.Aviso End If If Label20.Visible Then Label20.BringToFront() End If Catch ex As Exception End Try End Sub Private Sub PictureBox1_Click(sender As Object, e As EventArgs) Handles picAVISOMessenger.Click VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM = False For Each openForm In Application.OpenForms() If TypeOf (openForm) Is VERAG_PROG_ALLGEMEIN.frmMessenger Then CType(openForm, VERAG_PROG_ALLGEMEIN.frmMessenger).WindowState = FormWindowState.Normal CType(openForm, VERAG_PROG_ALLGEMEIN.frmMessenger).BringToFront() Exit Sub End If Next Dim f As New VERAG_PROG_ALLGEMEIN.frmMessenger f.Location = Cursor.Position f.Show(Me) End Sub Sub newNotify(art As frmNotify.cNotify_ART, title As Integer, text As String, id As Integer) ' Exit Sub 'NICHT AKTIV Dim formTmp = Me.ActiveForm Dim frmNotify As New frmNotify(art, title, text, id) frmNotify.TimerInterval = 1200000 ' 20min Dim tmpY As Integer = Me.Height If tmpY <= 0 Then tmpY = My.Computer.Screen.WorkingArea.Height For Each ft As Form In Application.OpenForms ' MsgBox(ft.GetType.ToString) If ft.GetType.ToString = "frmNotify" Then If ft.Location.Y < tmpY Then tmpY = ft.Location.Y End If Next frmNotify.Y = tmpY - frmNotify.Height - 10 frmNotify.Show() ' If formTmp IsNot Nothing Then formTmp.Focus() End Sub Private Sub Button1_Click_1(sender As Object, e As EventArgs) Handles Button1.Click Dim frm As New frmLeer frm.Text = "Telefon" Dim usrcntrl As New uscntr_Telefon usrcntrl.Dock = DockStyle.Fill : frm.PanMain.Controls.Add(usrcntrl) frm.Size = usrcntrl.Size frm.Show() AddHandler frm.FormClosing, Function() End Function End Sub Public Sub PictureBox1_Click_1(sender As Object, e As EventArgs) Handles PictureBox1.Click TxtSuche.Text = "" RadNurNetzwerk.PerformClick() CmdSucheReset.PerformClick() Try RaiseEvent ResetButtonPressed() Catch ex As Exception MsgBox(ex.Message) End Try LstStandortLoad() 'dgvload_filter End Sub Private Sub ObjektLöschenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ObjektLöschenToolStripMenuItem.Click If Tabelle = "TbL_Netzwerkclients" Then Dim ds As New DataSet Dim linked As Boolean = False Dim Standort, Netzwerkname As String Dim slavenetzwerke As String = "" Dim NetzID As String Dim IP As String = DgVMain.CurrentRow.Cells("IPAdresse").Value Dim Host As String = DgVMain.CurrentRow.Cells("Host").Value Dim netzwerk As String = Class1.IP2ShortNW(IP) Class1.ip2netname(IP, Standort, Netzwerkname) NetzID = Standort & "_" & Netzwerkname Dim da As New SqlDataAdapter("SELECT * FROM TbL_Netzwerkclients WHERE LinkedWith ='" & IP & "'", con) da.Fill(ds) Dim i As Integer = 0 For Each dr As DataRow In ds.Tables(0).Rows slavenetzwerke &= ds.Tables(0).Rows(i).Item("NWStandort") & "_" & ds.Tables(0).Rows(i).Item("NetName") & ": " & ds.Tables(0).Rows(i).Item("IPAdresse") & vbCrLf i = i + 1 Next con.Close() If Class1.IsLinked(IP) = "1" Then linked = True End If If MsgBox("Eintrag >>" & Host & "<< wirklich löschen?", MessageBoxButtons.OKCancel + MsgBoxStyle.DefaultButton2, "Hosteintrag löschen") = DialogResult.OK Then Me.Cursor = Cursors.WaitCursor Try con.Open() cmd.CommandText = "SELECT * FROM TbL_Netzwerkclients WHERE LinkedWith ='" & IP & "'" cmd.ExecuteNonQuery() reader = cmd.ExecuteReader() If reader.Read Then Me.Cursor = Cursors.Default If MsgBox("Dieser Eintrag ist ein Master-Eintrag (Linked). Es werden sämtliche Slave-Einträge" & vbCrLf & slavenetzwerke & " ebenfalls gelöscht. Fortfahren?", MsgBoxStyle.OkCancel) = MsgBoxResult.Ok Then Me.Cursor = Cursors.WaitCursor con.Close() con.Open() cmd.CommandText = "DELETE TbL_Netzwerkclients WHERE LinkedWith ='" & IP & "'" cmd.ExecuteNonQuery() cmd.CommandText = "DELETE TbL_Netzwerkclients WHERE IPAdresse ='" & IP & "'" cmd.ExecuteNonQuery() Else con.Close() Exit Sub End If End If con.Close() con.Open() cmd.CommandText = "DELETE TbL_Netzwerkclients WHERE IPAdresse ='" & IP & "'" cmd.ExecuteNonQuery() Catch ex As Exception MsgBox(ex.Message) End Try Me.Cursor = Cursors.Default con.Close() ElseIf DialogResult.Cancel Then con.Close() Exit Sub End If If linked = False Then If MsgBox("Dazugehörigen Ordner im Dateisystem löschen?", MessageBoxButtons.YesNo + MsgBoxStyle.DefaultButton2, "Dateien löschen") = DialogResult.Yes Then Me.Cursor = Cursors.WaitCursor Dim path As String = Class1.FilePath & "\" & NetzID & "\" & Host Try If IO.Directory.Exists(path) Then Dim files As String() = IO.Directory.GetFiles(path) For Each file As String In files IO.File.Delete(file) Next IO.Directory.Delete(path, True) 'Else ' MsgBox("Kein Ordner zum Löschen gefunden: wird übersprungen.") End If Catch ex As Exception MsgBox("Beim Löschen der Dateien: " & ex.Message) End Try ElseIf DialogResult.No Then Exit Sub End If Me.Cursor = Cursors.Default End If Class1.RefillNW(netzwerk) dgvload_filter(Suchbegriff) ElseIf Tabelle = "TbL_Allgemein" Then Dim Rubrik, Titel As String Rubrik = DgVMain.CurrentRow.Cells("Rubrik").Value Titel = DgVMain.CurrentRow.Cells("Titel").Value If MessageBox.Show("Eintrag >>" & Titel & "<< wirklich löschen?", "Eintrag löschen", MessageBoxButtons.OKCancel) = DialogResult.OK Then con.Open() cmd.CommandText = "DELETE TbL_Allgemein WHERE RUBRIK = '" & Rubrik & "' AND TITEL= '" & Titel & "'" cmd.ExecuteNonQuery() con.Close() End If If MsgBox("Dazugehörigen Ordner im Dateisystem löschen?", MessageBoxButtons.YesNo + MsgBoxStyle.DefaultButton2, "Dateien löschen") = DialogResult.Yes Then Dim path As String = Class1.FilePath & "\" & Rubrik & "\" & Titel Try If IO.Directory.Exists(path) Then Dim files As String() = IO.Directory.GetFiles(path) For Each file As String In files IO.File.Delete(file) Next IO.Directory.Delete(path, True) 'Else ' MsgBox("Kein Ordner zum Löschen gefunden: wird übersprungen.") End If Catch ex As Exception MsgBox("Beim Löschen der Dateien: " & ex.Message) End Try End If dgvload("TbL_Allgemein") LstAllgemein.SelectedItem = Rubrik End If End Sub Function SetAnsichtLautIni() If File.Exists(Application.StartupPath & "\config.ini") Then chkTSSitzungen.Checked = Class1.ini.prop_TSSitzungenAnzeigen ChkKompAnsicht.Checked = Class1.ini.prop_Kompansicht ChkFreieHosts.Checked = Class1.ini.prop_FreiHostsAnzeigen ChkDHCPClients.Checked = Class1.ini.prop_DHCPClientsAnzeigen ChkTools.Checked = Class1.ini.prop_ToolsPanelAnzeizgen ' chkPano.Checked = Class1.ini.prop_Pano Else ' File.Create(Application.StartupPath & "\config.ini") End If End Function Private Sub btnTSSitzungen_Click(sender As Object, e As EventArgs) Handles btnTSSitzungen.Click Dim TSSitzungen As New frmLeer TSSitzungen.PanMain.Controls.Clear() TSSitzungen.Text = "Sitzungen" Dim dingsi As New uscntr_TSSitzungen TSSitzungen.AutoSize = AutoSizeMode.GrowAndShrink TSSitzungen.Size = New Size(434, 863) dingsi.Dock = Dock.Fill TSSitzungen.PanMain.Controls.Add(dingsi) TSSitzungen.Show() End Sub Private Sub RDPToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles RDPToolStripMenuItem.Click Dim Host2Connect As New cHost Host2Connect.gethost(Class1.MainHost(DgVMain.CurrentRow.Cells("IPAdresse").Value)) If Host2Connect.FQDN.Length > 1 Then cExtProgramme.RDPConnect(Host2Connect.FQDN, Host2Connect.Benutzer, Host2Connect.Passwort, False) Else MsgBox("Hostname wurde nicht gefunden.") End If End Sub Private Sub RDPFensterToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles RDPFensterToolStripMenuItem.Click Dim Host2Connect As New cHost Host2Connect.gethost(Class1.MainHost(DgVMain.CurrentRow.Cells("IPAdresse").Value)) If Host2Connect.FQDN.Length > 1 Then cExtProgramme.RDPConnect(Host2Connect.FQDN, Host2Connect.Benutzer, Host2Connect.Passwort, True) Else MsgBox("Hostname wurde nicht gefunden.") End If End Sub Private Sub DgVMain_CellContentClick_1(sender As Object, e As DataGridViewCellEventArgs) Handles DgVMain.CellContentClick End Sub Private Sub Timer1_Tick_1(sender As Object, e As EventArgs) Handles Timer1.Tick End Sub Private Sub SpoolerNeuStartenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles SpoolerNeuStartenToolStripMenuItem.Click Dim Host2Connect As New cHost Host2Connect.gethost(Class1.MainHost(DgVMain.CurrentRow.Cells("IPAdresse").Value)) If Host2Connect.FQDN.Length > 1 Then If MessageBox.Show("Druckerwarteschlange auf " & Host2Connect.FQDN & " neu starten?", "Spooler neu starten.", MessageBoxButtons.OKCancel) = DialogResult.OK Then RestartServices(Host2Connect.FQDN, "Druckerwarteschlange") End If Else MsgBox("Hostname wurde nicht gefunden.") End If End Sub Private Sub TelefonManuellZuweisenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles TelefonManuellZuweisenToolStripMenuItem.Click Dim frm As New frmLeer frm.Text = "Telefone anmelden" Dim usrcntrl As New uscntr_ConnectTel usrcntrl.Dock = DockStyle.Fill : frm.PanMain.Controls.Add(usrcntrl) frm.Size = usrcntrl.Size frm.Show() AddHandler frm.FormClosing, Function() End Function End Sub Private Sub TicketsystemToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles TicketsystemToolStripMenuItem.Click cExtProgramme.startlink("https://ticket.verag.ag") End Sub Private Sub PascomToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles PascomToolStripMenuItem.Click cExtProgramme.startlink("https://my.pbxcloud.at/verag/mobydickcmd/") End Sub Private Sub UnifiToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles UnifiToolStripMenuItem.Click cExtProgramme.startlink("https://unifi.ui.com/consoles") End Sub Private Sub MenuStrip1_ItemClicked(sender As Object, e As ToolStripItemClickedEventArgs) Handles MenuStrip1.ItemClicked End Sub Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click SMB.Show() End Sub Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click ThinClients.Show() End Sub Private Sub Main_Closed(sender As Object, e As EventArgs) Handles Me.Closed Class1.ini.prop_Kompansicht = ChkKompAnsicht.Checked Class1.ini.prop_FreiHostsAnzeigen = ChkFreieHosts.Checked Class1.ini.prop_DHCPClientsAnzeigen = ChkDHCPClients.Checked Class1.ini.prop_ToolsPanelAnzeizgen = ChkTools.Checked Class1.ini.prop_TSSitzungenAnzeigen = chkTSSitzungen.Checked 'Class1.ini.prop_Pano = chkPano.Checked Class1.ini.save() End Sub End Class '1208