Embora possa parecer que o problema está vindo do arquivo init.pp no windowsfeature, quase certamente não é. Dê uma olhada no arquivo. A linha 64 é uma função de validação, que está verificando a variável $ restart que quase certamente foi passada como parâmetro usando ou pesquisando via hiera. A resposta curta é que o seu problema está em outro lugar, provavelmente onde você está configurando o valor '$ restart' para 'true'.
52 define windowsfeature (
53 $ensure = 'present',
54 $feature_name = $title,
55 $installmanagementtools = false,
56 $installsubfeatures = false,
57 $restart = false,
58 $source = false
59 ) {
60
61 validate_re($ensure, '^(present|absent)$', 'valid values for ensure are \'present\' or \'absent\'')
62 validate_bool($installmanagementtools)
63 validate_bool($installsubfeatures)
64 validate_bool($restart)
the error is saying it's set to a "true" string value.
Uma variável com o valor de true
é diferente de uma variável com o valor de "true"
. Uma é uma string e a outra é booleana.