ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

Zabbix批量导入XML文件生成小脚本(by Powershell)

2022-04-30 19:00:16  阅读:196  来源: 互联网

标签: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. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有