296 lines
10 KiB
VB.net
296 lines
10 KiB
VB.net
Imports System.IO
|
|
Imports System.Management.Automation
|
|
Imports System.Management.Automation.Runspaces
|
|
Imports System.Security
|
|
Imports System.Diagnostics
|
|
Imports System.Text
|
|
Imports System.Web
|
|
Imports iTextSharp.text.pdf.codec
|
|
|
|
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 msg2server(nachricht As String, server As String)
|
|
Dim batfile As String = "msgsend.bat"
|
|
Dim args As String = """" & nachricht & """" & " " & server
|
|
' MsgBox(args)
|
|
|
|
Dim psi As New ProcessStartInfo()
|
|
psi.FileName = "cmd.exe"
|
|
psi.Arguments = "/c """ & batFile & " " & args & """"
|
|
psi.RedirectStandardOutput = True
|
|
psi.UseShellExecute = False
|
|
psi.CreateNoWindow = True
|
|
|
|
Try
|
|
Dim process As Process = Process.Start(psi)
|
|
Dim output As String = process.StandardOutput.ReadToEnd()
|
|
process.WaitForExit()
|
|
Console.WriteLine(output)
|
|
Catch ex As Exception
|
|
Console.WriteLine("Fehler beim Starten der Batch-Datei: " & 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 RunAnyDeskWithPassword(id As String, Optional password As String = "BmWr501956@4975!") As String
|
|
Dim output As New StringBuilder()
|
|
Dim err As New StringBuilder()
|
|
|
|
Try
|
|
Dim processInfo As New ProcessStartInfo("cmd.exe")
|
|
processInfo.RedirectStandardInput = True
|
|
processInfo.RedirectStandardOutput = True
|
|
processInfo.RedirectStandardError = True
|
|
processInfo.UseShellExecute = False
|
|
processInfo.CreateNoWindow = True
|
|
|
|
Using process As Process = Process.Start(processInfo)
|
|
Dim command As String = $"echo {password} | ""{Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles)}\AnyDesk\AnyDesk-ad_d4025ddb.exe"" {id} --with-password"
|
|
process.StandardInput.WriteLine(command)
|
|
process.StandardInput.Close()
|
|
|
|
' output.Append(process.StandardOutput.ReadToEnd())
|
|
'err.Append(process.StandardError.ReadToEnd())
|
|
|
|
'process.WaitForExit()
|
|
End Using
|
|
|
|
If err.Length > 0 Then
|
|
Console.WriteLine("Fehler: " & err.ToString())
|
|
End If
|
|
|
|
Return output.ToString()
|
|
Catch ex As Exception
|
|
Console.WriteLine("Fehler bei der Ausführung: " & ex.Message)
|
|
Return String.Empty
|
|
End Try
|
|
End Function
|
|
|
|
|
|
Public Shared Function PipeStringToProgram(programPath As String, input As String) As String
|
|
Dim output As New StringBuilder()
|
|
Dim err As New StringBuilder()
|
|
|
|
Try
|
|
Dim startInfo As New ProcessStartInfo()
|
|
startInfo.FileName = programPath
|
|
startInfo.UseShellExecute = False
|
|
startInfo.RedirectStandardInput = True
|
|
startInfo.RedirectStandardOutput = True
|
|
startInfo.RedirectStandardError = True
|
|
startInfo.CreateNoWindow = False
|
|
|
|
Using process As New Process()
|
|
process.StartInfo = startInfo
|
|
process.Start()
|
|
|
|
' Write the input string to the standard input of the process
|
|
Using writer As StreamWriter = process.StandardInput
|
|
writer.WriteLine(input)
|
|
End Using
|
|
|
|
' Read the output and error streams
|
|
output.Append(process.StandardOutput.ReadToEnd())
|
|
err.Append(process.StandardError.ReadToEnd())
|
|
|
|
process.WaitForExit()
|
|
End Using
|
|
|
|
If err.Length > 0 Then
|
|
Console.WriteLine("Error: " & err.ToString())
|
|
End If
|
|
|
|
Return output.ToString()
|
|
Catch ex As Exception
|
|
Console.WriteLine("Error executing program: " & ex.Message)
|
|
Return 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
|