我编写了一个Powershell脚本,该脚本适用于Windows 10,但不适用于旧版本的Powershell。它还会在某些PC上引发CIM错误。真正的麻烦是,它无法在需要更换的200台PC上运行; Windows 7 PC,每个PC位于不同的网络中。
我需要这个来获取IP,更改最后一个八位位组,然后设置IP;我可以从LANDesk运行它,但是它需要在任何版本的Windows上都可以运行,所以我认为Powershell已经用完了吗?
我一般并不精通脚本编写,并且我只在Powershell中工作,但是,不必是Powershell。
我的脚本有些破烂,
$computername = HOSTNAME.EXE
$info = Get-NetIPAddress -CimSession $computername -AddressFamily IPv4 | where { $_.InterfaceAlias -notmatch 'Loopback'} | Select PSComputername,IPAddress,InterfaceIndex
$ip = $info.IPAddress
$intindex = $info.InterfaceIndex
write "IP: "$ip
write "InterfaceIndex: "$intindex
$ip2 = $ip.split('.')
$ip2[-1] = 80
$newip = $ip2 -join "."
Write "New IP: "$newip
Set-NetIPAddress -InterfaceIndex $intindex -IPAddress $newip -PrefixLength 24 -WhatIf
答案 0 :(得分:1)
我有一个使用wmi的解决方案:
$ip = Get-WmiObject Win32_NetworkAdapterConfiguration | Where-Object { $_.IPAddress } | Select-Object -Expand IPAddress | Where-Object { $_ -like '10.*' }
$ip2 = $ip.split('.')
$ip2[-1] = 80
$newip = $ip2 -join "."
$gateway = (Get-wmiObject Win32_networkAdapterConfiguration | ?{$_.IPEnabled}).DefaultIPGateway
$wmi = Get-WmiObject win32_networkadapterconfiguration -filter "ipenabled = 'true'"
$wmi.EnableStatic($newip ,"255.255.255.0")
$wmi.SetGateways($gateway,1)
$wmi.SetDNSServerSearchOrder("10.x.x.x")
答案 1 :(得分:0)
使用PowerShell将IP地址从dhcp更改为静态:
setTimeout