【发布时间】:2018-10-04 02:02:18
【问题描述】:
在 PS 脚本方面需要帮助。
要求:我想使用 FTP 将大文件复制到多个 VM。我有具有 C 类子网的多个 IP 范围的 FTP。 例如“10.10.10.10”、“10.11.10.10”“10.10.12.10”、“10.10.10.13”(均为 C 类,子网为 255.255.255。
脚本将在每个 VM 上本地执行。所以我希望脚本匹配分配 IP 的前 3 个八位字节(很少有虚拟机也有多个不同范围的 IP),然后从 IP 地址列表中选择 FTP IP 并将其设置为变量。
据我所知,我创建了包含所有 FTP IP 地址的 IP 数组。然后我使用 Win32_NetworkAdapterConfiguration 来获取 IP 地址、子网和网关的列表。我将 Win32_NetworkAdapterConfiguration 放到哈希表中,以便可以使用它进行比较。
需要帮助来比较哈希表数据并从 IP 数组中获取匹配的 IP 地址并将该 FTP IP 设置为变量。
前。如果 VM A 的 IP 为 10.10.12.25,那么它应该使用 10.10.12.10 FTP IP。
我需要使用 Win32_NetworkAdapterConfiguration 使脚本与运行 PS v2 的旧操作系统兼容
$FTPIPs = @("10.10.10.10","10.11.10.10""10.10.12.10","10.10.10.13")
$AllIPs = @()
foreach ($adapter in (Get-WmiObject -Class Win32_NetworkAdapterConfiguration -Filter IPEnabled=TRUE -ComputerName $env:COMPUTERNAME ))
{
$Prop = @{
'IPAddress' = $adapter.IpAddress
'SubnetMask' = $adapter.IPSubnet
'DefaultGateway' = $adapter.DefaultIPGateway
}
$obj = New-Object -TypeName PSobject -Property $Prop
$AllIPs += $obj
}
【问题讨论】:
标签: arrays powershell split pattern-matching match