【发布时间】:2019-05-22 18:39:43
【问题描述】:
如何将一个列表中的 1 个 IP 地址应用到另一个列表中的 1 个服务器? 然后移动到下一个 IP 并将其应用到下一个服务器。
servers.txt 看起来像:
server1
server2
server3
ip.txt 看起来像:
10.1.140.80
10.1.140.81
10.1.140.83
我只想浏览列表并申请
10.1.140.80 to server1
10.1.140.81 to server2
10.1.140.83 to server3
相反,我的脚本将所有 3 个 IP 地址应用到每个服务器。 我不想一遍又一遍地循环访问所有 IP 地址。
我怎样才能正确地遍历列表并纠正这个问题?
$computers = "$PSScriptRoot\servers.txt"
$iplist = gc "$PSScriptRoot\ip.txt"
function changeip {
get-content $computers | % {
ForEach($ip in $iplist) {
# Set IP address
$remotecmd1 = 'New-NetIPAddress -InterfaceIndex 2 -IPAddress $ip -PrefixLength 24 -DefaultGateway 10.1.140.1'
# Set DNS Servers - Make sure you specify the server's network adapter name at -InterfaceAlias
$remotecmd2 = 'Set-DnsClientServerAddress -InterfaceAlias "EthernetName" -ServerAddresses 10.1.140.5, 10.1.140.6'
Invoke-VMScript -VM $_ -ScriptText $remotecmd1 -GuestUser Administrator -GuestPassword PASSWORD -ScriptType PowerShell
Invoke-VMScript -VM $_ -ScriptText $remotecmd2 -GuestUser Administrator -GuestPassword PASSWORD -ScriptType PowerShell
}
}
}
changeip
【问题讨论】:
标签: powershell powercli