使用csv输入批量配置ip

问题描述 投票:0回答:1

我有一个csv文件,其中包含我想要使用静态IP远程重新配置的每台机器的以下值

名,网卡,IP,掩码,defaultgw

我希望能够为每个列出的IP重新配置IP,但如果我列出了多台机器,则脚本会卡住。这是因为在第一次循环迭代结束时...除非我在服务器上手动执行ipconfig / flushdns,脚本正在运行,否则我将断开与正在配置的服务器的连接,并且脚本只是挂起而留下其余的服务器。我到目前为止的是这个。

$csv = import-csv "c:\scripts\builds\machines.csv"

foreach ($Row in $csv) {
    $machine = $Row.name
    $Nic = $row.Nic
    $address = $row.IP
    $mask =$row.mask
    $defaultgw = $row.gw

    invoke-command -computername $machine -scriptblock { Get-NetIpAddress - InterfaceAlias $using:nic | New-NetIPAddress -ipaddress $using:address -PrefixLength $using:mask -DefaultGateway $using:defaultgw | Register-DnsClient}}
}

这可以使用工作流程或只是简单的启动工作来完成,如果是这样的话,如果可能的话我会对正确和经过测试的代码提供任何帮助吗?

powershell csv ip jobs bulk
1个回答
0
投票

我怀疑您在更改IP地址后丢失了与远程计算机的连接,而本地计算机挂起试图保持连接。

尝试拨打电话,下载有效负载,然后在断开连接后运行它。

也就是说,上传代码,然后产生它,然后在它有机会运行之前断开连接(可能会向远程代码添加睡眠?)。这样,您可以启动有效负载并在它影响您之前断开连接。

例如,您可以使用所需的值将文件复制到该计算机,然后将任务计划在将来5秒内运行,然后在运行之前断开连接。然后该任务将运行,并且由于您已经断开连接,因此您不会受其影响。

您也可以考虑使用静态预留DHCP。它比你在这里尝试的要容易得多。

© www.soinside.com 2019 - 2024. All rights reserved.