Version: 1.0
Category: Input
Extended Category: Powershell
Action Package: Standard Actions
Description
Launch and run a PowerShell script file, without any input from the powershell execution.
Parameter |
Description |
Example |
PowerShell File Path |
File path to PowerShell.exe. Default: file path in Global Parameter POWERSHELL_PATH. It is mandatory to set either this parameter or the global parameter. |
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe |
PS1 File Path |
[Mandatory] File path to PS1 file. |
C:\PowershellMyScript.ps1 |
Argument |
Optional arguments to send to the file. Each argument must be separeted by |. Ex: -user|SESSION(uid) to send the powershell parameter ‘user’ with the value in session attribute ‘uid’. |
-manager|SESSION(uid)|-location|Stockholm |
Only Run Once (true/false) |
[Optional] If the powershell script should run once and not one time for each object in the session. If using SESSION() in arguments, the values from the first session object will be used when running only once. Default value=true. |
false |
Milliseconds to Sleep |
[Optional] The number of milliseconds to sleep between executions of the command when runing one execution for each session object. Default value=0. |
30 |
Error Message Attribute |
[Optional] If the Powershell script returns any error, the message will be placed in this attribute. If no error, the attribute will be created with no value. Leave blank to not create any error message attribute. |
ps-error |
Stop on Failure (true/false) |
[Optional] If any error occurs, stop the action from further execution and return with an action failure. (true/false) Default value = false. |
false |
Use Cases
Example 1: Run script with no parameters
This action will run a script that do not take any parameters. It will therefor only need to run once.
The powershell file path has been entered in global parameter POWERSHELL_PATH.
Parameter |
Value |
PowerShell File Path |
[BLANK] |
PS1 File Path |
C:\Powershell\GetAllUsernames.ps1 |
Argument |
[BLANK] |
Only Run Once (true/false) |
true |
Milliseconds to sleep |
[BLANK] |
Error Message Attribute |
[BLANK] |
Stop on Failure (true/false) |
false |
The script GetAllUsernames.ps1:
[CmdletBinding()] Param( [Parameter(Mandatory=$True)] [string]$outputfile ) $obj = Get-ADUser -Filter * -SearchBase 'OU=IM,DC=company,DC=local' Out-File -FilePath $outputfile -Encoding UTF8 -InputObject ($obj | Format-List SamAccountName)
Example 2: Run script with parameters
This action will run a script that requires a parameter. It uses the value from a session attribute in the parameter value, so it has to run once for each session object.
The powershell file path has been entered in global parameter POWERSHELL_PATH.
Parameter |
Value |
PowerShell File Path |
|
PS1 File Path |
C:\Powershell\GetUsersByLocation.ps1 |
Argument |
-location|SESSION(location) |
Only Run Once (true/false) |
false |
Milliseconds to sleep |
[BLANK] |
Error Message Attribute |
ps-error |
Stop on Failure (true/false) |
[BLANK] |
The script GetUsersByLocation.ps1:
[CmdletBinding()] Param( [Parameter(Mandatory=$True)] [string]$location, [Parameter(Mandatory=$True)] [string]$outputfile ) $result=Get-ADUser -LDAPFilter '(l=$location)' $obj = New-Object PSObject -Property @{ givenname = $result.GivenName sn = $result.Surname } Out-File -FilePath $outputfile -Encoding UTF8 -InputObject ($obj | Format-List)
DISCLAIMER
Information provided in this document is for your information only. PhenixID makes no explicit or implied claims to the validity of this information. Any trademarks referenced in this document are the property of their respective owners.The origin of this information may be internal or external to PhenixID. PhenixID makes all reasonable efforts to verify this information.
PhenixID - support.phenixid.se