You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过PowerCLI移除特定IP子网并生成合规CSV报告

解决PowerCLI脚本过滤特定子网IP的问题

原脚本实现了从名为DR的文件夹中获取虚拟机,筛选出微软系统的虚拟机后,导出包含HostName、IP、GuestFullName的CSV报告。现在需要移除172.25.X.X、169.X.X.X、20.X.X.X这几个子网的IP地址,修改后的脚本如下:

$VMs = Get-Folder -Name DR | Get-VM

$VMs.ExtensionData.Guest | 
    Where-Object {$_.GuestFullName -like "Microsoft*"} | 
    Select-Object HostName,
        @{
            Name='IP';
            Expression={
                [string]::Join(',',(
                    $_.Net | ForEach-Object {
                        $_.IpAddress | 
                            Where-Object {
                                $_.Split('.').Count -eq 4 -and 
                                $_ -notmatch '^172\.25\.|^169\.|^20\.'
                            }
                    }
                ))
            }
        },
        GuestFullName | 
    Export-Csv C:\report.csv -NoTypeInformation -UseCulture

关键修改说明

在IP地址的处理逻辑中,新增了正则匹配过滤条件:$_ -notmatch '^172\.25\.|^169\.|^20\.',用来排除以下三类IP:

  • 以172.25.开头的子网(172.25.X.X)
  • 以169.开头的自动私有IP(169.X.X.X)
  • 以20.开头的子网(20.X.X.X)

同时保留了原有的$_.Split('.').Count -eq 4条件,确保只处理合法的IPv4地址。

执行修改后的脚本后,导出的CSV将符合你预期的格式,仅保留非目标子网的IP地址。

内容的提问来源于stack exchange,提问作者Arbelac

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 20:51:02