使用PowerShell调用错误命令时,Puppet显示成功

时间:2017-03-16 14:39:10

标签: powershell puppet powershell-v5.0

我正在尝试从Puppet调用PowerShell命令。问题是即使PowerShell命令提供不正确(在这种情况下,iisres而不是iisreset),Puppet显示成功运行,如下所示:

Notice: /Stage[main]/Common::Iis::Iis_reset/Utils::Powershell_test[Restart IIS service]/Exec[Running command invoke-command -scriptblock {iisres} -verbose on agent]/returns: executed successfully

几天前,我问了一个类似的question,在那篇文章中提出的建议工作正常,直到我遇到这个问题。这是脚本:

[root@pe-server] cat iis_reset.pp
class common::iis::iis_reset {
    utils::powershell_test { 'Restart IIS service':
        command => 'invoke-command -scriptblock {iisres} -verbose',
    }
}


[root@pe-server] powershell_test.pp
define utils::powershell_test (String $command) {
    $powershell = 'C:/Windows/System32/WindowsPowerShell/v1.0/powershell.exe -NoProfile -NoLogo -NonInteractive'

    exec { "Running command $command on agent":
        command => "$powershell -Command \"& {$command; exit (1 - [int]$?)}\"",
        logoutput => 'on_failure',
    }
}

如何妥善解决此类问题?

注意:在我面临this问题之前,我实际上是在使用Puppet之前的Powershell提供程序进行所有exec命令。

0 个答案:

没有答案