【问题标题】:PowerShell ISE vs ScriptPowerShell ISE 与脚本
【发布时间】:2015-08-11 09:38:50
【问题描述】:

我在玩 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)
}

我有两个问题:

  1. 为什么输出参数在 ISE 中可以正常工作,但在作为脚本启动时却不起作用?
  2. 如何解决?

【问题讨论】:

    标签: windows powershell


    【解决方案1】:

    根据关于此类的 MS 文档,ReceiveTimeout 是一个属性,而不是一个方法。

    尝试将$tcpClient.ReceiveTimeout(5) 更改为$tcpClient.ReceiveTimeout = 5

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-04-18
      • 1970-01-01
      • 2011-10-12
      • 2020-09-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多