PowerShell脚本开发之收发TCP消息包

2019-09-30 13:13:46丽君

    $Writer = New-Object System.IO.StreamWriter($Stream)
    $Writer.AutoFlush = $true
    $Writer.NewLine = $true
    $Writer.Write($Message)
    $Socket.Close()
}

将代码保存到指定目录的对应文件后,分别启动两个PowerShell进程,分别导入PSNet Module:


Import-Module $env:PSSpacePSNet

或者在启动PowerShell时指定参数,或者将下列语句创建批处理脚本启动加载指定Module的PowerShell进程。


start %windir%System32WindowsPowerShellv1.0powershell.exe -noExit -Command "Import-Module ‘%PSSpace%PSNet' "

首先在其中一个PowerShell窗口中,指定端口用Receive-TCPMessage函数在制定端口监听,等待接受数据


Receive-TCPMessage 8080

在另外一个窗口中向上面的端口发送数据:


Send-TCPMessage 127.0.0.1 8080 “This a Message Send from PSNet!”

会发现这个进程发送消息后,前一个进程能收到相应的消息,消息中如果有空格需要用双引号包括确保PowerShell解释引擎知道这是一个完整的参数。这两个小函数虽然功能简单,而且其中的消息使用ASCII的方式发送的,这是为了给大家演示发送和接收的效果,在真正的实际环境中还是有问题的,但是这两个函数将会在后续的功能中起到很重要的作用,使用PowerShell发送TCP和接收TCP报文将会用到,也将会在后续的文章中进行改进。