gpt4 book ai didi

powershell - 如何创建强制端口进入监听状态以测试 PowerShell 功能的服务?

转载 作者:行者123 更新时间:2023-11-28 21:11:10 30 4
gpt4 key购买 nike

已创建 PowerShell 脚本以创建服务。其中一个片段测试服务是否正在运行以及与该服务关联的端口监听:

if (($serviceStatus.Status -eq "running") -and (Get-StatePort)) {
Write-Host "$packageName service has been started"
return
} else {
Write-Host "$packageName service cannot be started. Attempt $i to start the service."
}

testService.bat

ping localhost

创建服务

nssm install installServiceTest "C:\testService.bat" 创建一个服务:

PS C:\> Get-WmiObject -Class Win32_Service -Filter "Name='installServiceTest'"

ExitCode : 0
Name : installServiceTest
ProcessId : 5288
StartMode : Auto
State : Running
Status : OK

服务运行,但下一步是扩展脚本以分配端口并强制其进入监听状态。

例如脚本启动后,端口 9999 应该会监听。

PS C:\> Get-NetTCPConnection -State Listen | Where-Object {$_.LocalAddress -match "::|0.0.0.0" -and $_.LocalPort -eq "9999"}
PS C:\>

最佳答案

您可以添加以下内容:

$port=9999
$IPendpoint = new-object System.Net.IPEndPoint ([system.net.ipaddress]::any, $port)
$listener = new-object System.Net.Sockets.TcpListener $IPendpoint
$listener.start()
$client = $listener.AcceptTcpClient()

然后在另一个窗口:

Get-NetTCPConnection -State Listen | Where-Object {$_.LocalAddress -match "::|0.0.0.0" -and $_.LocalPort -eq "9999"}

LocalAddress LocalPort RemoteAddress RemotePort State AppliedSetting
------------ --------- ------------- ---------- ----- --------------
0.0.0.0 9999 0.0.0.0 0 Listen

关于此的更多信息 here

关于powershell - 如何创建强制端口进入监听状态以测试 PowerShell 功能的服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27344094/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com