Imports System.IO Imports System.Management.Automation Imports System.Management.Automation.Runspaces Imports System.Security Imports System.Diagnostics Imports System.Text Imports System.Web 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 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