powershell_execution
Execute a Powershell command, script or binary, and parse its output to define success, repair or error status.
⚙️ Compatible targets: Windows
Parameters
Name | Documentation |
---|---|
command | Command or script to execute. This parameter is required. |
successRegex | String or regular expression to compare the output with to define success. This parameter is optional. |
repairedRegex | String or regular expression to compare the output with to define repair. This parameter is optional. |
Outcome conditions
You need to replace ${command}
with its actual canonified value.
- ✅ Ok:
powershell_execution_${command}_ok
- ☑️ Already compliant:
powershell_execution_${command}_kept
- 🟨 Repaired:
powershell_execution_${command}_repaired
- ☑️ Already compliant:
- ❌ Error:
powershell_execution_${command}_error
Example
method: powershell_execution
params:
successRegex: OPTIONAL_VALUE
command: VALUE
repairedRegex: OPTIONAL_VALUE
Documentation
Execute either a command, a script or a binary - it supports piping. If the execution succeed, it parses the output as a string. It the output contains the successRegex, it defines a success, else if the output contains the repairRegex, it defines a repair, else it defines an error. successRegex and repairRegex are both optional, but at least one must be defined otherwise the method will always return an error.
Examples:
To return success if process explorer
is running, the command
parameter needs to be
Get-Process | ForEach { ${const.dollar}_.ProcessName }
as the output of the command is a toString() on the generated objects, so you need to extract the relevant data. And the successRegex
needs to be explorer
.
Note: the regular expression/string to compare to the output are case insensitive and not anchored.
Note: powershell scripts exiting with a non-zero exit code will always result in an error
Note: the $ need to be escaped, otherwise $_ is evaluated at runtime