我需要一个脚本(powershell或vbs)来检查服务器是否拥有IP地址。如果它什么也不做,如果它没有重启服务器
我虽然我会使用输出到文件运行netstat然后获取脚本来读取文件并检查特定值(IP地址)
if "ip address" exists in txt file then quit
if "ip address" doen't exists in txt file then retstart computer
我有一些powershell,但我需要将它们加在一起
首次运行
C:>netstat -a -p tcp >c:netstat.txt
然后运行此命令,如果输出为true则退出,如果输出为false则重新启动计算机
C:>get-content c:\netstat.txt | select-string "192.168.0.1" -quiet
答案 0 :(得分:0)
有很多方法可以实现这一目标,这里有一些。
# locally, check if the ip was found in the output of ipconfig
[bool] ((ipconfig) -like '*IPv4 Address*192.168.0.1*')
# ask dns
$cn = [System.Net.Dns]::GetHostByAddress('192.168.0.1') | ForEach-Object {$_.HostName}
if($cn -notlike "*server1*")
{
Restart-Computer server1 -Force
}
# get all ip addresses of a local or remote server
$ip = Get-WmiObject -Class Win32_NetworkAdapterConfiguration -ComputerName server1 | ForEach-Object {$_.IPAddress}
if($ip -notcontains '192.168.0.1')
{
Restart-Computer server1 -Force
}