Out Network ย้ายจาก 192.x.y.z เป็น 10.u.v.w และฉันไม่ต้องการอ่านคอมพิวเตอร์ 250 เครื่องด้วยมือ ความคิดของฉันคือการใช้สคริปต์ powershell (ทดสอบสำหรับพีซีเครื่องเดียว):
$oldIp='192.168.100.1'
$newIp='10.11.12.13'
$newGw='10.11.12.254'
$newLen='24'
$adminCred = รับข้อมูลประจำตัว -ชื่อผู้ใช้ โดเมนของเรา\myAdminAccount -ข้อความ 'ป้อนรหัสผ่าน'
ForEach ($Adapter ใน (Get-WmiObject Win32_NetworkAdapter -Filter "NetEnabled='True'" -ComputerName $oldIp )){
$wmiQuery = Get-WmiObject -Class Win32_NetworkAdapterConfiguration -ตัวกรอง "ดัชนี = '$($Adapter.Index)'" -ComputerName $oldIp
ถ้า ( $wmiQuery.IPAddress - มี $oldIp ){
$pcName=[system.net.dns]::gethostentry($lavIp) | เลือกวัตถุ - ขยายคุณสมบัติชื่อโฮสต์
$cimSess=CimSession ใหม่ -SkipTestConnection -ข้อมูลประจำตัว $adminCred -ชื่อคอมพิวเตอร์ $pcName
ใหม่ NetIPAddress -CimSession $cimSess -InterfaceIndex $Adapter.Index -IPAddress $newIp -PrefixLength $newLen -DefaultGateway $newGw
}อื่น{
## อย่าแตะนิคนี้
}
}
หาก NIC ทั้งหมดเป็น IP ใหม่ ให้ลบ IP เก่าออกด้วย ลบ-NetIPAddress
.
ปัจจุบัน ก $cimSess
ไม่ทำงานตามที่คาดไว้ แต่คำถามหลักของฉันคือ: ฉันมาถูกทางแล้วหรือมีวิธีที่ดีกว่า/เร็วกว่า/ง่ายกว่า/... ในการดำเนินการนี้หรือไม่ หรือฉันผิดอย่างสมบูรณ์และพลาดอะไรไป?