私はすべてのアクセスポイントからCSV(ヘッダー付き)を取得しており、XMLアップロードによってZabbixに追加したいと考えています。複数の文字列をCSVのデータに置き換えてください
私は手動で各APのXMLファイルを作成したくないので、PowerShellでこれを実行しようとします。しかし、どう?
私は(Get-Content .\Template.xml).Replace()
とForEach-Object
でいくつか試しましたが、まだ成功していません。
ファイル名は以下のとおり
AP.csv
(APのリスト、ヘッダはホスト名とIPである):Hostname;IP AP1;10.29.202.101 AP2;10.29.202.102 AP3;10.29.202.103 AP4;10.29.202.104 Ap5;10.29.202.105
Template.xml
:<hosts> <host> <host>Hostname</host> <name>Hostname</name> [...] <interfaces> <interface> [...] <ip>PIIP</ip> [...] </interface> <interface>
Template.xml
が呼び出さ2つのストリングを有しています「ホスト名」と2つの「PIIP」 - 両方ホスト名の文字列はAP.csv
の1のホスト名に置き換え、両方のPIIPを関連するIPに置き換える必要があります。
私の最後の試みはこれまでのところだった:
$a = Import-Csv .\Ap.csv
$APHost = ($a).Hostname
$APIP = ($a).IP
$xml = Get-Content .\Template.xml
foreach ($row in $a) {
$xml.Replace('Hostname',$APHost).Replace('PIIP',$APIP) |
Out-File ".\Aps\$row.xml"
}
しかし、これは1 XMLファイル内のすべてのホスト名およびすべてのIPに終わりました。
私はホスト名とそれに関連するIPで最後に各ホストに1つのXMLファイルを持っています。
これまで – arco444
輸入csvファイルを、あなたが期待する置換と一緒に、あなたはを参照して、XML/CSVファイルのサンプルを追加し、あなたの試みてください?それを試してみましたか? – 4c74356b41
Mainpostを更新しましたが、すでに試してみましたが、私は1つだけのホスト名と関連するIPを選択する方法がわかりません。 – Maik