PowerShell自动分配IP

PowerShell自动分配IP,powershell,Powershell,一台计算机被发送到一个随机位置并获得一个随机IP地址,但我的任务被设置为一个正确的IP地址,结束于.105,X.X.X.105 我的问题是获取唯一的IP地址并将其编辑为有效的IP地址。示例计算机得到10.10.10.132,我想把它改为10.10.10.105 我不知道如何编辑IP地址。我正在考虑拆分(“.”) 所有计算机均为W10且位于域中。我选择制作一个脚本(作为计划任务),在打开计算机并分配IP地址后运行。默认网关始终为X.X.X.254 #check IP and get IP $ipD

一台计算机被发送到一个随机位置并获得一个随机IP地址,但我的任务被设置为一个正确的IP地址,结束于.105,X.X.X.105

我的问题是获取唯一的IP地址并将其编辑为有效的IP地址。示例计算机得到10.10.10.132,我想把它改为10.10.10.105 我不知道如何编辑IP地址。我正在考虑拆分(“.”)

所有计算机均为W10且位于域中。我选择制作一个脚本(作为计划任务),在打开计算机并分配IP地址后运行。默认网关始终为X.X.X.254

#check IP and get IP
$ipDefault = (Get-NetIPAddress -InterfaceAlias "Ethernet").IPAddress

#Here should be code to Get first 24 prefix length of network with the last dote

$IPComputer = "$ip + '105'"
$Gateway = "$ip + '254'"

#assigning an IP address
New-NetIPAddress –InterfaceAlias “Ethernet” –IPv4Address $IPComputer –PrefixLength 24 -DefaultGateway $Gateway
Set-DnsClientServerAddress -InterfaceAlias “Ethernet” -ServerAddresses 8.8.8.8, 8.8.4.4
我知道我可以手动输入IP地址,但我想制作全自动脚本。

您可以使用和。这将按上次出现的“.”拆分字符串

您还需要确保只返回IPv4地址

$ipDefault=(Get-NetIPAddress-InterfaceAlias“Ethernet”-AddressFamily IPv4)。IPAddress
$threeOctets=$ipDefault.Substring(0,$ipDefault.LastIndexOf('.'))
$newIP=$threeOctets+“.105”

$ipDefault
一个
[string]
还是
[ipaddress]
?如果是第二个,则需要使用
.IPAddressToString()
方法为您提供一个可以使用的字符串。一旦你有了它,使用
$IP.Split('.')
给你四个八位字节&你可以用你想要的新的第四个八位字节替换最后一个八位字节。我猜
$ipDefault
是一个字符串数组
(或
?)使用
-AddressFamily IPv4
参数缩小到IPv4字符串。