码迷,mamicode.com
首页 > 系统相关 > 详细

使用PowerShell初始化网络配置

时间:2015-05-19 07:20:41      阅读:250      评论:0      收藏:0      [点我收藏+]

标签:ip地址   计算机   适配器   网络   表达式   powershell   

    这次来看一下如何使用PowerShell初始化网络配置,例如设置IP地址、子网掩码等,首先需要说明的是这次只是一个实验性质的脚本,没在特定的生产环境中进行过测试,只是为了试验一些东西写的,所以还需要大家自己来测试一下,评分而论这个脚本写的并不太完整,主要目的还是想试一下powershell中关于网络这块的功能,一般意义上来讲设置IP地址等信息多会使用WMI来完成,但是这次特别想试下使用powershell中的语句能否能实现,所以才有了这个简单的脚本

    下边来看下代码,这个脚本还有个简单的验证的功能,如果输入的不是IP地址,如包含字母符号等,这个脚本也会出现错误提示,这块的功能主要是使用正规表达式实现的

    

#首先查看当前计算机上的网络适配器信息
$i = 0
${ip rules} = "\b[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\b"
Get-NetAdapter | ft -AutoSize name, InterfaceDescription, MacAddress, InterfaceIndex, Status
$netid = Read-Host "请输入要设置的网络适配器序号"
foreach ($id in (Get-NetAdapter).ifIndex)
{
	if ($id -eq $netid)
	{
		$i++
	}
}
if ($i -eq 0)
{
	Write-Warning "输入的网络适配器序号不存在";
	break
}
if ((Get-NetAdapter -InterfaceIndex $netid).Status -eq "Disconnected")
{
	"当前适配器未连接";
	break
}
$ip = Read-Host "请输入要设置的IP地址"
if ($ip -notmatch ${ip rules})
{
	Write-Warning "请输入正确的IP地址";
	break
}
$dnsip = Read-Host "请输入DNS服务器的IP地址"
if ($dnsip -notmatch ${ip rules})
{
	Write-Warning "请输入正确的IP地址";
	break
}
$mask = Read-Host "请输入子网掩码的长度"
if ((Get-NetAdapter -InterfaceIndex $netid).Status -eq "Disconnected")
{
	Write-Warning "当前适配器未连接";
	break
}
elseif ((Get-NetAdapter -InterfaceIndex	 $netid).Status -eq "up")
{
	set-DnsClientServerAddress -InterfaceIndex $netid -ServerAddresses $dnsip
	if ((Get-NetIPAddress -InterfaceIndex $netid -AddressFamily IPv4).IPv4Address.StartsWith("169"))
	{
		New-NetIPAddress -InterfaceIndex $netid -IPAddress $ip -PrefixLength $mask
	}
	elseif ((Get-NetIPAddress -InterfaceIndex $netid -AddressFamily IPv4).IPv4Address.StartsWith("192"))
	{
		Remove-NetIPAddress -InterfaceIndex $netid -AddressFamily IPv4
		New-NetIPAddress -InterfaceIndex $netid -IPAddress $ip -PrefixLength $mask
	}
}

    不得不说的是PowerShell中设置网络设配器信息的语句感觉实在是没有WMI好使,不过权当一次尝试了,下回有机会再和大家分享更多的内容

本文出自 “Just Make it happen” 博客,请务必保留此出处http://mxyit.blog.51cto.com/4308871/1652589

使用PowerShell初始化网络配置

标签:ip地址   计算机   适配器   网络   表达式   powershell   

原文地址:http://mxyit.blog.51cto.com/4308871/1652589

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!