Ad Widget
Collapse
Проблема при запуске скриптов PS со start-job
Collapse
X
-
-
Я не открою Америки, если скажу, что для ключа элемента данных надо соблюдать определённый формат?
Попробуйте в настройках указать следующим образом:Code:system.run["powershell.exe -nologo -noninteractive -file \"c:\zabbix_scripts\getcriticalupdates.ps1\"",nowait]
Comment
-
Естественно. Разбор параметров командной строки башем, пауершеллом и параметров ключа Zabbix-ом - не эквивалентные действия. И тут приходится ломать голову, чтобы всем угодить.
Для Zabbix строка, заключенная в двойные кавычки, считается одним параметром. Внутри нее могут находится любые символы, включая одинарные кавычки. Т.е. корректно с точки зрения алгоритма смотрелась бы такая конструкция в ключе элемента данных: system.run["powershell.exe -NoLogo -NonInteractive -File 'C:\Program Files\Zabbix Agent\scripts\getcriticalupdates.ps1',nowait]. Но проблема в том, что по PoSH тоже хочет двойные кавычки вокруг параметров. И винда хочет двойные кавычки вокруг строк с пробелами и прочими спецсимволами. А уж какие фокусы откалывает VBS - вам лучше не знать. Но заббикс считает, что вторая двойная кавычка заканчивает строку. Проблема? Да. Но в программировании есть такая штука, как экранирование. И, слава богу, этот фокус тут прокатывает: system.run["powershell.exe -NoLogo -NonInteractive -File \"C:\Program Files\Zabbix Agent\scripts\getcriticalupdates.ps1\"",nowait].
P.S. Может, даже и вот так пойдет: system.run['powershell.exe -NoLogo -NonInteractive -File "C:\Program Files\Zabbix Agent\scripts\getcriticalupdates.ps1"',nowait] . Экспериментируйте.
P.P.S. Из документации по ссылке @Kos - одинарными кавычками обрамлять параметр нельзя.Last edited by sadman; 11-11-2016, 15:56.Comment
Comment