Module Module1
Dim m_RemoteServerAddr As String = "99.99.99.99"
Sub Main()
Try
If Not My.Computer.Network.Ping(m_RemoteServerAddr, 1000) Then
Console.WriteLine("ping failed")
Return
End If
Dim Results As String = ""
Dim RC As New RemoteControl(m_RemoteServerAddr)
RC.RunRemoteCommand("echo $(date ""+%Y-%m-%d"")")
Results = RC.m_Results.Substring(RC.m_Results.LastIndexOf("-%d")).Substring(7, 10)
Console.WriteLine(Results)
Catch ex As Exception
End Try
End Sub
End Module
/*****************************************************************************************/
Public Class RemoteControl
Implements IDisposable
Public RemoteIP As String = "99.99.99.99"
Public RemoteUser As String = "root"
Public conProcess As Process
Public conInfo As System.Diagnostics.ProcessStartInfo
Public m_Results As String = ""
Public Sub New(Optional ByVal ServerIP As String = "99.99.99.99")
RemoteIP = ServerIP
conProcess = New Process
conInfo = New System.Diagnostics.ProcessStartInfo()
conInfo.FileName = "C:\Program Files\PuTTY\plink.exe"
conInfo.Arguments = " -ssh" + " -l " + RemoteUser + " -pw " & "1234" + " " + RemoteIP
conInfo.RedirectStandardInput = True
conInfo.RedirectStandardOutput = True
conInfo.UseShellExecute = False
conInfo.WindowStyle = ProcessWindowStyle.Hidden
conInfo.CreateNoWindow = True
conInfo.WindowStyle = ProcessWindowStyle.Normal
conProcess.StartInfo = conInfo
End Sub
Private disposedValue As Boolean
Protected Overridable Sub Dispose(disposing As Boolean)
If Not disposedValue Then
If disposing Then
If Not IsNothing(conProcess) Then
conProcess.Close()
End If
End If
Finalize()
End If
disposedValue = True
End Sub
Public Sub Dispose() Implements IDisposable.Dispose
' Do not change this code. Put cleanup code in Dispose(disposing As Boolean) above.
Dispose(True)
' TODO: uncomment the following line if Finalize() is overridden above.
GC.SuppressFinalize(Me)
End Sub
Public Function RunRemoteCommand(ByVal cmd As String, Optional ByVal IsSkipResponse As Boolean = False) As Boolean
Try
conProcess.Start()
Dim Writer As System.IO.StreamWriter = conProcess.StandardInput
Writer.WriteLine(cmd)
Writer.WriteLine("exit")
Writer.Close()
If Not IsSkipResponse Then
Dim Reader As System.IO.StreamReader = conProcess.StandardOutput
m_Results = Reader.ReadToEnd()
Reader.Close()
End If
Threading.Thread.Sleep(1000)
conProcess.Close()
Return True
Catch ex As Exception
End Try
Return False
End Function
End Class
本文介绍了一个使用VBA编写的程序,该程序能够远程连接到指定服务器,检查网络连通性,并从远程服务器获取当前日期。通过Ping命令验证网络连接状态,成功后执行远程命令以获取日期信息。

被折叠的 条评论
为什么被折叠?



