如果IP地址绑定不存在,则重新启动服务器的脚本

时间:2013-12-03 08:58:24

标签: powershell

我需要一个脚本(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

1 个答案:

答案 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
}