我在玩PowerShell这个想法很简单:
我想验证某个TCP端口是否已打开。
现在,我可以将其作为PowerShell脚本运行,或者我可以在ISE中运行它。
现在,在ISE中一切都很好,脚本按原样运行。
当我以PowerShell脚本运行它时,我收到错误消息:
方法调用失败,因为[System.Net.Sockets.TcpClient]不包含名为“ReceiveTimeout”的方法。 在P:\ checkTCP80.ps1:7 char:1 + $ tcpClient.ReceiveTimeout(5) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo:InvalidOperation:(:) [],RuntimeException + FullyQualifiedErrorId:MethodNotFound
代码:
$servery = gc .\servers.txt
foreach ($server in $servery)
{
$tcpClient = New-Object System.Net.Sockets.TCPClient
$tcpClient.ReceiveTimeout(5)
$tcpClient.Connect($server,80)
Write-Host ($server, $tcpClient.Connected)
}
我有两个问题:
答案 0 :(得分:1)
根据关于此类的{MS}文档,ReceiveTimeout
是属性而不是方法。
尝试将$tcpClient.ReceiveTimeout(5)
更改为$tcpClient.ReceiveTimeout = 5