# Job Environment The PowerShell environment in which the [PowerShell job scripts]() are executed is pre-configured.\ Before a job script is executed the following actions are performed: - *powerVault* and *powerJobs* modules are imported as well as all script modules in the [module directory](). - `$workingDirectory` variable of type [DirectoryInfo]() specifies foreach job a unique temporary directory, located under *C:\\Temp\\powerJobs Processor\\*. - [$job]() variable of type [powerVault Job]() is provided that represents the job that is currently being executed. - [$host]() variable is extended with an *Applications* property that contains all registered [](). - [Setup_Job.ps1]() script is invoked. ## Setup_Job.ps1 The *Setup_Job.ps1* file is a special script that is always executed **before a job is executed**.\ It is recommended to only modify this script for actions that need to be performed before **every** job execution regardless of job type.\ It is located in the products ProgramData directory *%ProgramData%\\coolOrange\\powerJobs\\Setup_Job.ps1* This script is responsible for setting up the following global variables: - [$ErrorActionPreference](<#erroractionpreference>) - [$IAmRunningInJobProcessor]() Depending on the [entity]() the Job was triggered for, the following objects are automatically created using the global [$job]() variable: - [$file]() - [$folder]() - [$customObject]() - [$item]() - [$changeOrder]() With every job execution, temporary files from previous jobs are automatically removed from the working directory by using the []() cmdlet. ### $ErrorActionPreference When a script is executing in *powershell.exe*, the default behavior is to continue the execution of the script when an error occurs.\ powerJobs handles **Errors in scripts** differently: the job execution is Stopped when an [exception is thrown]()! This default behaviour can be changed by using the *\$ErrorActionPreference* variable: ```powershell $ErrorActionPreference = "Continue" ``` All the possible options are: | Identifier | Description | | ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Continue | This is the default PowerShell setting. The error object is written to the output pipe and added to \$error, and \$? is set to false.
Execution then continues at the next script line. | | SilentlyContinue | When this action preference is set, the error message is not written to the output pipe before continuing execution. Note that it is still added to \$error and \$? is still set to false.
Again, execution continues at the next line. | | Stop | This error action preference changes an error from a non-terminating error to a terminating error. The error object is thrown as an exception instead of being written to the output pipe. \$error and \$? are still updated.
Execution does not continue. | | Inquire | Prompts the user requesting confirmation before continuing on with the operation.
At the prompt, the user can choose to continue, stop or suspend the operation.

**Warning:** It is not recommended to use this option with powerJobs Processor! |