Марионеточный агент в Windows, если не работает, как я думаю?

Хорошо, я провел дни, преследуя это вокруг. Существует ли проблема с марионеточным агентом 3.7.1 x64 в Windows 7 x64, где должностные лица с тем, "если" никогда НЕ не выполняют команду? Я попытался делать Пакетный пример:

если => "исходный список C:/ProgramData/chocolatey/choco.exe | findstr-i 'шоколадный [Отключенный]'",

Powershell и теперь скомпилированный исполняемый файл AutoIT:

exec { 'disablepublicchocolatey':
        command => "C:/ProgramData/chocolatey/choco.exe source disable -n=chocolatey",
        unless  => 'c:/ProgramData/puppetfiles/checkifexists.exe repo "chocolatey [disabled]"',
        require => [Exec['chocolatelyinstall'],File['checkifexists.exe']],
      }

Мой сценарий возвращается 1, если он находит текст 'шоколадным [отключенный]' в выводе choco исходного списка (текстовое соответствие не чувствительно к регистру)... Таким образом... это не должно работать если

c:\TEMP\AutoitScripts\chocolatey>choco source list     
Chocolatey v0.9.9.6   
chocolatey [Disabled] - https://chocolatey.org/api/v2/

но это, кажется, всегда работает... Существует ли ошибка? Я просто очень смущен?

2
задан 26 May 2015 в 19:22
1 ответ

Чтобы использовать |, вы должны использовать оболочку, встроенную в cmd.exe /C: https://docs.puppetlabs.com/windows/troubleshooting.html#shell-builtins

Смотрите пример ниже:

exec { 'configure_timezone':
  command => "tzutil.exe /s \"${timezone}\"",
  unless  => "cmd.exe /C tzutil.exe /g | findstr /C:\"${timezone}\"",
}
2
ответ дан 3 December 2019 в 11:37

Теги

Похожие вопросы