Files
Doku/Dokumentation/Classes/cExtProgramme.vb
2024-09-02 13:40:30 +02:00

193 lines
6.4 KiB
VB.net

Imports System.IO
Imports System.Management.Automation
Imports System.Management.Automation.Runspaces
Imports System.Security
Public Class cExtProgramme
Public Shared Function startlink(URL As String, Optional ByVal p As String = "")
Try
If URL.Contains("http") Or URL.Contains("https") Then
If p = "" Then
Process.Start(URL)
ElseIf p = "edge" Then
Dim edge As New Process
edge.StartInfo.FileName = "msedge.exe"
edge.StartInfo.Arguments = " " & URL
edge.Start()
End If
ElseIf URL = "" Then
Exit Function
Else
Dim mstsc As New Process
mstsc.StartInfo.FileName = "mstsc.exe"
mstsc.StartInfo.Arguments = " /v: " & URL
mstsc.Start()
End If
' Process.Start("mstsc.exe", "/v: dc01")
Catch ex As Exception
'MsgBox(ex.Message)
End Try
End Function
Public Shared Function startputty(IP As String, Optional ByVal Port As Integer = 22)
Dim Benutzer, Passwort As String
Class1.GetUserPasswort(IP, Benutzer, Passwort)
Try
Dim putty As New Process
putty.StartInfo.FileName = "putty.exe"
If Benutzer = "" And Passwort = "" Then
putty.StartInfo.Arguments = IP & " -P " & Port
Else
putty.StartInfo.Arguments = IP & " -P " & Port & " -l " & Benutzer & " -pw " & Passwort
End If
putty.Start()
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Function
Public Shared Function commandcmd(command As String)
Dim cmd As New Process
cmd.StartInfo.WindowStyle = ProcessWindowStyle.Hidden
cmd.StartInfo.FileName = "cmd.exe"
cmd.StartInfo.Arguments = "/c " & command
cmd.Start()
End Function
Public Shared Function pingip(ip As String, Optional ByVal Argument As String = "")
Dim ping As New Process
'ping.StartInfo.FileName = "cmd.exe"
'ping.StartInfo.Arguments = " /k ping " & ip & Argument
ping.StartInfo.FileName = "powershell.exe"
ping.StartInfo.Arguments = " /noexit /c ping " & ip & Argument
ping.Start()
End Function
Public Shared Function RunRemotePSScript(ByVal connectTo As String, ByVal user As String, ByVal password As String, ByVal script As String, Optional ByVal ps1 As Boolean = False) As System.Collections.ObjectModel.Collection(Of PSObject)
Const SHELL_URI As String = "http://schemas.microsoft.com/powershell/Microsoft.PowerShell"
Dim serverUri As New Uri("http://" & connectTo & ":5985/wsman")
Dim securepass As New SecureString
Dim c As Char
For Each c In password
securepass.AppendChar(c)
Next
Dim remotecred As New PSCredential(user, securepass)
Dim connectionInfo As New WSManConnectionInfo(serverUri, SHELL_URI, remotecred)
Dim myRunSpace As Runspace = RunspaceFactory.CreateRunspace(connectionInfo)
Dim psresult As New System.Collections.ObjectModel.Collection(Of PSObject)
myRunSpace.Open()
Dim psh As PowerShell = PowerShell.Create()
psh.Runspace = myRunSpace
If ps1 = False Then
psh.AddScript(script)
Else
psh.AddCommand(script)
End If
psh.Invoke(Nothing, psresult)
Return psresult
psh.Dispose()
myRunSpace.Close()
End Function
Public Shared Function msgsend(argumente As String, Optional ByVal ReturnOrder As Boolean = False)
Try
Dim msg As New Process
System.IO.File.WriteAllBytes("msg.exe", My.Resources.msg)
msg.StartInfo.FileName = "msg.exe"
'msg.StartInfo.WorkingDirectory = "C:\Windows\System32\"
msg.StartInfo.Arguments = argumente
If ReturnOrder = True Then Return "msg.exe " & argumente : Exit Function
msg.Start()
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Function
Public Shared Function StartTeamviewer(ID As String, Optional Passwort As String = "BmWr501956")
Dim p As String = ""
If Passwort.Length < 1 Then
Passwort = "BmWr501956"
End If
If File.Exists("C:\Program Files (x86)\TeamViewer\Teamviewer.exe") Then
p = "C:\Program Files (x86)\TeamViewer"
Else
p = "C:\Program Files\TeamViewer"
End If
Dim teamviewer As New Process
With teamviewer.StartInfo
.FileName = "Teamviewer.exe"
.WorkingDirectory = p
.Arguments = "-i " & ID & " -P " & Passwort
End With
Try
teamviewer.Start()
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Function
Public Shared Function RDPConnect(host As String, Optional ByVal Username As String = "", Optional ByVal Password As String = "", Optional ByVal Fenster As Boolean = False, Optional ByVal admin As Boolean = False)
Dim mstsc As New Process
Dim AnmeldeDatenVorhanden As Boolean = False
Dim rdpASadmin As String = ""
If admin Then rdpASadmin = " /admin"
Dim FensterString As String = ""
If Fenster = True Then
FensterString = " /w:1920 /h:1080"
Else
FensterString = " /f"
End If
If host = "rdpintern.verag.ag" Then
commandcmd("cmdkey /delete:" & host)
commandcmd("cmdkey /delete:TERMSRV/" & host)
ElseIf host.StartsWith("TS") Then
rdpASadmin = " /admin"
End If
If Username.Length > 0 And Password.Length > 0 Then
AnmeldeDatenVorhanden = True
commandcmd("cmdkey /generic:" & host & " /user:" & Username & " /pass:" & Password)
Threading.Thread.Sleep(3000)
End If
mstsc.StartInfo.FileName = "mstsc.exe"
mstsc.StartInfo.UseShellExecute = False
mstsc.StartInfo.Arguments = " /v: " & host & rdpASadmin & FensterString
mstsc.Start()
If AnmeldeDatenVorhanden = True Then
Threading.Thread.Sleep(3000)
Dim Abmeldung As New Process
commandcmd("cmdkey /delete:" & host)
End If
End Function
End Class