Agente de marionetes no Windows, a menos que não funcione como eu penso?

2

Ok, passei dias correndo atrás disso. Existe um problema com o agente fantoche 3.7.1 x64 no Windows 7 x64, em que os executáveis com "a menos que" nunca executem o comando? Eu tentei fazer o exemplo do Batch:

unless => "C:/ProgramData/chocolatey/choco.exe source list | findstr -i 'chocolatey [Disabled]'",

Powershell e agora um executável AutoIT compilado:

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']],
      }

Meu script retorna 1 se encontrar o texto 'chocolatey [disabled]' na saída da lista de fontes de choco (a correspondência de texto NÃO diferencia maiúsculas de minúsculas) ... Então ... isso NÃO deve ser executado se

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

mas parece que sempre corre ... Existe algum bug? Estou muito confuso?

    
por jmp242 26.05.2015 / 18:22

1 resposta

2

Para usar |, você deve usar o shell embutido para contornar o cmd.exe / C: link

Veja o exemplo abaixo:

exec { 'configure_timezone':
  command => "tzutil.exe /s \"${timezone}\"",
  unless  => "cmd.exe /C tzutil.exe /g | findstr /C:\"${timezone}\"",
}
    
por 26.05.2015 / 22:19