我想從Puppet調用PowerShell腳本。問題是,即使在PowerShell腳本在遠程機器出現故障時,仍然顯示成功運行,如下圖所示:調用PowerShell腳本時捕獲輸出/錯誤
注意:/Stage[main]/Main/Node[dev.abc.com]/Exec[Check UAC] /回報:執行我的節點塊的成功
含量site.pp
:
exec { 'Check UAC':
command => '& C:\temp\check_uac.ps1',
provider => powershell,
logoutput => 'on_failure',
}
腳本失敗,當我試圖從PowerShell控制檯指出,執行策略設置爲限制運行。
PS C:\> C:\temp\check_uac.ps1 C:\temp\check_uac.ps1 : File C:\temp\check_uac.ps1 cannot be loaded because running scripts is disabled on this system. For more information, see about_Execution_Policies at http://go.microsoft.com/fwlink/?LinkID=135170. At line:1 char:1 + C:\temp\check_uac.ps1 + ~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : SecurityError: (:) [], PSSecurityException + FullyQualifiedErrorId : UnauthorizedAccess
如何從Puppet調用腳本時捕獲上述錯誤,以避免後來的意外?
我試過你的建議,但問題依然存在。儘管「執行策略」設置爲「Restrcited」,但仍然獲得成功的執行消息。在運行PowerShell腳本之前,我們確實解決了策略問題,但是我錯過了一個實例,那時候我注意到我上面發佈的問題。 – Technext
你的意思是「儘管執行策略設置爲Restricted」?限制意味着禁止執行未簽名的腳本。您至少需要RemoteSigned才能執行本地未簽名的腳本。否則,你需要簽署你想執行的腳本。 –
如果執行策略設置爲Restricted並且從PS命令行運行我的powershell(PS)腳本時出現錯誤,那麼當我試圖從Puppet調用PS腳本時,我應該也會得到同樣的錯誤,但這不會發生。木偶輸出顯示它成功運行,但情況並非如此。 – Technext