标签:XML ServerName excel zbxiface filename Item Zabbix ws Powershell
最近升级6.0后发现手动批量导入Zabbix主机群组需要一个新的uuid参数,于是用powershell写了一个脚本。
代码如下:
<# TIME:2022/04/30 DESCRIPTION:生成zabbix批量导入的XML文件 AUTHOR:Monbro #> # # $zbxiface设置为161为生成SNMP的XML文件,设置10050为ZabbixAgent的XML文件 $zbxiface = 10050 $ppath = Split-Path -Parent $PSCommandPath $xlsxfile = $ppath+"\"+(Get-ChildItem -Path "$ppath\*.xlsx").Name $excel = New-Object -ComObject Excel.Application $excel.Visible = $false $wb=$excel.Workbooks.Open($xlsxfile) $ws=$wb.Sheets.Item("Sheet1") $slist=$iplist=$dplist=$cnlist=@() for ($n = 1; $n -le $ws.UsedRange.Rows.Count; $n++) { #01_Names $slist+=$ws.Cells.Item($n,1).Text #02_IPv4Address $iplist+=$ws.Cells.Item($n,2).Text #03_Description $dplist+=$ws.Cells.Item($n,3).Text #04_CanonicalName $cnlist+=$ws.Cells.Item($n,4).Text } $excel.Quit() $excel = $null [GC]::Collect() $cretedate = Get-Date -Format "yyyy-MM-ddThh:mm:ssZ" $groupname=$cretedate $groupuuid=[System.Guid]::NewGuid().toString('N') $filename = $ppath+"\"+$cretedate.Replace(":", "")+".xml" function ZBXhosts_imxml{ $xmlhead="<?xml version=`"1.0`" encoding=`"UTF-8`"?> <zabbix_export> <version>6.0</version> <date>$cretedate</date> <groups> <group> <uuid>$groupuuid</uuid> <name>$groupname</name> </group> </groups> <hosts>" $xmltail=" </hosts> </zabbix_export>" $xmlhead | Out-File -Encoding utf8 $filename if ($zbxiface.Equals(10050)) { $i=0 foreach($ServerName in $slist ){ $ip=$iplist[$i] $desp=$dplist[$i] $cnname=$cnlist[$i] $xmlmid10050=" <host> <host>$ServerName</host> <name>$ServerName</name> <description>$desp</description> <groups> <group> <name>$groupname</name> </group> </groups> <interfaces> <interface> <ip>$ip</ip> <dns>$ServerName</dns> <interface_ref>if1</interface_ref> </interface> </interfaces> <inventory> <name>$cnname</name> </inventory> </host>" $xmlmid10050 | Out-File -Encoding utf8 -Append $filename $i++ } } if ($zbxiface.Equals(161)) { $i=0 foreach($ServerName in $slist ){ $ip=$iplist[$i] $desp=$dplist[$i] $cnname=$cnlist[$i] $xmlmid161=" <host> <host>$ServerName</host> <name>$ServerName</name> <description>$desp</description> <groups> <group> <name>$groupname</name> </group> </groups> <interfaces> <interface> <type>SNMP</type> <ip>$ip</ip> <dns>$ServerName</dns> <port>161</port> <details> <community>{`$SNMP_COMMUNITY}</community> </details> <interface_ref>if1</interface_ref> </interface> </interfaces> <inventory> <name>$cnname</name> </inventory> </host>" $xmlmid161 | Out-File -Encoding utf8 -Append $filename $i++ } } $xmltail | Out-File -Encoding utf8 -Append $filename } ZBXhosts_imxml
标签:XML,ServerName,excel,zbxiface,filename,Item,Zabbix,ws,Powershell 来源: https://www.cnblogs.com/gocd/p/16210954.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。