Powershell管理DHCP作用域

时间:2024-04-10 14:47:17

说到Powershell相信管理员都比较熟悉,当然powershell在windows下hen多服务都是有区别的,但是对于语法都是一样的,为什么说在微软的产品存在多个Powershell脚本呢,对于windows service使用的是系统自带的powershell,对于Microsoft Exchange服务又是单独的一个Powershell程序,最主要的是微软的公有云下需要单独下载Azure Powershell程序,对于不同服务需要使用不同的powershell程序执行不同的操作使用起来不方便,希望微软以后能融合,然后导入不同的模块进行不同的服务管理,具体的相关介绍就不多介绍了,所以就直接就进入主题了,近期公司部分网络做了一些特殊限制,对于某个作用域下的地址需要进行保留后才可以出网,所以这样就带出了相关的问题,对于公司来说地址分配是使用的是windows系统下部署的DHCP服务进行地址分发管理,想了很多方法,最终还是想通过powershell对作用域地址进行管理,今天介绍的内容主要有,使用powershell管理dhcp服务器配置,使用powershell查询作用域信息,最后使用powershell批量添加保留地址信息,具体见下:

我们可以参考微软的powershell管理DHCP的相关文档。

https://technet.microsoft.com/library/jj590751.aspx

1. 添加多个作用域的地址信息到DHCP保留区域。使用的参数命令为:Netshell

DHCP server服务器地址;如果在DHCP服务器本地执行指向127.0.0.1即可

Scope 为DHCP作用域信息;环境内如果有多个作用域的话也可以管理操作

Reservedip 为需要添加保留的IP地址信息

Reservedip后面的后面为需要添加保留IP地址信息所对应的Mac地址

ReservedName为保留名称

DescriptName为保留名称的描述信息

Both为保留地址信息的DHCP类型

1
Netsh dhcp server 127.0.0.1 scope 10.10.10.0 add reservedip 10.10.10.13 02523idfafag "reservername" "Descript" "BOTH"

Powershell管理DHCP作用域

当然我们也可以通过定义变量来执行脚本;将需要变动的信息通过定义变量然后替换语句中的信息即可;

1
2
3
4
5
6
7
$serverip='127.0.0.1'
$n='10.10.10.0'
$ip='10.10.10.13'
$m='agaggdi12424'
$resername='haha'
$desc='Descriptname'
Netsh dhcp server $serverip scope $n add reservedip $ip $m "$resername" "$desc" "BOTH"

Powershell管理DHCP作用域

如果更方便从本地txt中读取数据格式,然后传输到powershell的变量中执行,这样更方便,下期主要介绍;

1
127.0.0.1,10.10.10.0,10.10.10.100,03231d66et59,zhangsan,it,both

首先使用powershell读取本地的txt文件内容

1
Get-connect c:\1.txt

Powershell管理DHCP作用域

其实上面的介绍已经很明白了,使用的命令为Netsh commands for DHCP

https://technet.microsoft.com/zh-cn/library/bb490941.aspx

Powershell管理DHCP作用域

上面介绍了批量添加,下面就介绍如何显示DHCP Server的作用域配置信息

1
Netsh dhcp server v4 show all

Powershell管理DHCP作用域

查看DHCP服务器的绑定信息

1
Netsh dhcp server show bindings

Powershell管理DHCP作用域

我们可以参考帮助文档

http://www.feiesoft.com/windows/cmd/netsh_dhcp.htm

Powershell管理DHCP作用域

查询指定作用域的地址信息

1
netsh dhcp server 192.168.0.1 scope 192.168.0.0 dump

Powershell管理DHCP作用域

通过指定的ip地址查询对应的mac地址

1
(netsh dhcp server scope 10.10.10.0 show clients | where {$_ -match "10.10.10.13"}) -split "_" -replace "",""

Powershell管理DHCP作用域

如果批量查询的话,我们需要添加多条语句进行执行

Powershell管理DHCP作用域

定义变量查询指定作用域网段的ip地址信息和mac地址

1
2
$ip='10.10.10.0'
(netsh dhcp server scope $ip show clients) -split "_" -replace "",""

Powershell管理DHCP作用域

定义变量

1
2
3
$ip='10.10.10.0'
$b='10.10.10.13'
(netsh dhcp server scope $ip show clients | where {$_ -match "$b"}) -split "_" -replace "",""

Powershell管理DHCP作用域

如果需要将执行结果保存在指定目录下的话我们需要在执行脚本后 重定向即可

Powershell管理DHCP作用域

Powershell管理DHCP作用域



本文转自 高文龙 51CTO博客,原文链接:http://blog.51cto.com/gaowenlong/1759638,如需转载请自行联系原作者