Ik ben bezig met een Powershell script om gemakkelijk netwerk-apparaten te kunnen toevoegen aan Cacti. Het meeste heb ik werkend, echter het aanmaken van een nieuwe node(header) binnen een tree, gaat fout als deze spaties bevat. Nu dacht ik dit simpelweg op te lossen door wat extra quotes toe te voegen, maar helaas zonder resultaat.
Dit is de opdracht die uitgevoerd zou moeten worden, de exacte syntax, zoals deze onder Linux werkt:
Dit is mijn powershell testcode:
In de output van Write-Host ziet het commando er perfect uit, echter krijg ik de volgende error:
Het bovenstaande werkt overigens wel perfect als er geen spaties in de naam zitten en ik geen extra quotes gebruik.
Ik heb van alles geprobeerd om het toch werkend te krijgen, zoals sing quotes ('), de single en de double quotes met een escape karakter te markeren (`").
Iemand nog een idee hoe ik dit wel werkend kan krijgen?
Dit is de opdracht die uitgevoerd zou moeten worden, de exacte syntax, zoals deze onder Linux werkt:
code:
1
| php add_tree.php --type=node --node-type=header --tree-id=5 --name="new item" |
Dit is mijn powershell testcode:
PowerShell:
1
2
3
4
5
6
7
8
9
10
| $plinkLocation = "G:\Powershell\plink.exe" $cacServer = "server01" $cacServerUser = "cactiuser" $cacServerPass = "cactipass" $cacCLI = "/usr/share/cacti/cli" $command = "&$plinkLocation $cacServer -l $cacServerUser -pw $cacServerPass " $command += "php $cacCLI/add_tree.php --type=node --node-type=header --tree-id=3 --name=""raak me""" Write-Host $command Invoke-Expression -Command $command |
In de output van Write-Host ziet het commando er perfect uit, echter krijg ik de volgende error:
code:
1
| ERROR: Invalid Argument: (me) |
Het bovenstaande werkt overigens wel perfect als er geen spaties in de naam zitten en ik geen extra quotes gebruik.
Ik heb van alles geprobeerd om het toch werkend te krijgen, zoals sing quotes ('), de single en de double quotes met een escape karakter te markeren (`").
Iemand nog een idee hoe ik dit wel werkend kan krijgen?
If it is broken, fix it. If it ain't broken, make it better!