写一个powershell脚本,检测指定ip端口是否通,端口通则返回0,不通则输出不通的ip和端口。
时间: 2023-07-22 10:37:25 浏览: 38
请确认以下脚本是否符合您的需求:
```powershell
$ip = "192.168.1.1"
$port = "80"
$socket = New-Object System.Net.Sockets.TcpClient
$connection = $socket.BeginConnect($ip, $port, $null, $null)
# 等待3秒钟,如果连接成功则返回0,否则输出连接失败的ip和端口
$wait = $connection.AsyncWaitHandle.WaitOne(3000,$false)
if(!$wait){
Write-Host "连接 $ip:$port 失败"
} else {
Write-Host "连接 $ip:$port 成功"
$socket.EndConnect($connection) | Out-Null
$socket.Close()
return 0
}
```
请将 `$ip` 和 `$port` 变量修改为您需要检测的IP和端口。
相关问题
写一个收集windows 计算机和ip的powershell脚本,并导出为csv'
以下是一个收集Windows计算机名称和IP地址的PowerShell脚本,并将结果导出为CSV文件的示例:
```
$computers = Get-ADComputer -Filter * # 获取AD中的计算机对象
$results = @() # 用于存储结果的空数组
foreach ($computer in $computers) {
$ip = Test-Connection -ComputerName $computer.Name -Count 1 -ErrorAction SilentlyContinue | Select-Object -ExpandProperty IPV4Address # 测试连接以获取IP地址
$result = New-Object PSObject -Property @{
ComputerName = $computer.Name
IPAddress = $ip.IPAddressToString
}
$results += $result # 将结果添加到数组中
}
$results | Export-Csv -Path "C:\temp\computer_ips.csv" -NoTypeInformation # 导出结果为CSV文件
```
该脚本使用Get-ADComputer cmdlet获取Active Directory中所有计算机对象。然后,它循环遍历每个计算机对象,并使用Test-Connection cmdlet测试连接以获取IP地址。最后,它创建一个包含计算机名称和IP地址的PSObject,并将其添加到结果数组中。最后,该脚本使用Export-Csv cmdlet将结果导出为CSV文件。
powershell 写一个检测服务器是否联网的脚本,直到服务器正常联网后返回
可以尝试以下 PowerShell 脚本:
```
$ping = New-Object System.Net.NetworkInformation.Ping
$host = "www.google.com" # 这里可以替换成你想要测试的服务器地址
$timeout = 1000 # 超时时间,单位为毫秒
while ($true) {
$result = $ping.Send($host, $timeout)
if ($result.Status -eq "Success") {
Write-Host "服务器联网正常"
break
} else {
Write-Host "服务器联网异常,等待 5 秒后重试..."
Start-Sleep -Seconds 5
}
}
```
这个脚本中,我们同样使用了 .NET Framework 中的 `Ping` 类来测试服务器是否联网。不同的是,我们使用了一个无限循环来不断测试服务器联网状态。如果服务器联网正常,我们跳出循环并输出相应的提示信息。如果服务器联网异常,我们等待 5 秒钟后再次测试,直到服务器联网正常为止。