
[已解決]安裝telnet的批處理在Windows7報錯如何修改不能讓它報錯呢最后由 ckjshi 于 -1-7 11:30修改原因:在Windows7報錯,在Windows10運行一切正常。我想讓此腳本在Windows7、Windows10、Windows11都可以正常運行,能否實現?提前感謝大家,給我提供幫助。在Windows7報錯這樣的錯誤
以下是腳本源代碼nclick="copycode($('code0'));">復制代碼
- 方法調用失敗,因為 [System.Net.Sockets.TcpClient] 不包含名為“Dispose”的方法。
- 所在位置 行:41 字符: 27
- + $tcpClient.Dispose <<<< ()
- + CategoryInfo: InvalidOperation: (Dispose:String) [], RuntimeEx
- ception
- + FullyQualifiedErrorId : MethodNotFound
nclick="copycode($('code1'));">復制代碼
- www.sohu.com NULL
- 192.168.1.111 3389
- 192.168.41.233 NULL
- www.12306.cn 443
nclick="copycode($('code2'));">復制代碼
- <#*,:&cls
- @echo off
- netsh advfirewall set allprofiles state off
- if exist %windir%system32telnet.exe (echo (Telnet)已安裝,現在開始測試,請耐心等待(測試結果)后,拍照或截圖發送給我們。) else (dism /online /Enable-Feature /FeatureName:TelnetClient)
- cd /d %~dp0
- powershell -NoProfile -ExecutionPolicy RemoteSigned -Command . ([scriptBlock]::Create((Get-Content -LiteralPath %~0 -ReadCount 0 | Out-String )))
- pause
- exit /b
- #>
- # IP_List
- echo
- echo
- $ipListFile = .IP_list.txt
- # Record output
- $outfile = .Record.txt
- # output format
- $format = {0} - {1} - {2}
- $ping = New-Object System.Net.NetworkInformation.Ping
- Get-Content -Path $ipListFile | ForEach-Object {
- $_ | Write-Host
- $arrIPPort = $_ -split 's+'
- if ($arrIPPort.Count -gt 1) {
- $ip = $arrIPPort[0]
- $port = $arrIPPort[1]
- $pingReply = $ping.Send($ip)
- if ($pingReply.Status -eq 'Success') {
- $pingResult = 'ping通'
- } else {
- $pingResult = 'ping不通'
- }
- try {
- $tcpClient = New-Object System.Net.Sockets.TcpClient -ArgumentList @($ip, $port)
- $tcpResult = ${port}端口通
- } catch {
- $tcpResult = ${port}端口不通
- } finally {
- if ($tcpClient) {
- $tcpClient.Dispose()
- }
- }
- $format -f $ip, $pingResult, $tcpResult
- }
- } | Set-Content -Path $outfile
- $ping.Dispose()
- echo
- echo
- echo --------------------測試結果--------------------
- echo
- type .Record.txt

