# Invoke-BluGenieProcess

﻿

### Invoke-BluGenieProcess <a href="#invoke-blugenieprocess" id="invoke-blugenieprocess"></a>

### SYNOPSIS <a href="#synopsis" id="synopsis"></a>

Invoke-BluGenieProcess will kick off the multi threaded job management engine

### SYNTAX <a href="#syntax" id="syntax"></a>

```
Invoke-BluGenieProcess [[-System] <String[]>] [-Command <String[]>] [-JobID <String>] [-ThreadCount <Int32>] [-Walkthrough] [-Trap] [-JobTimeout <Int32>] [-WhatIf] [-Confirm] [<CommonParameters>]

Invoke-BluGenieProcess [-Range <String[]>] [[-Command] <String[]>] [[-JobID] <String>] [-ThreadCount <Int32>] [-Walkthrough] [-Trap] [-JobTimeout <Int32>] [-WhatIf] [-Confirm] [<CommonParameters>]
```

### DESCRIPTION <a href="#description" id="description"></a>

Invoke-BluGenieProcess will kick off the multi threaded job management engine

### EXAMPLES <a href="#examples" id="examples"></a>

#### EXAMPLE 1 <a href="#example-1" id="example-1"></a>

```
Invoke-BluGenieProcess -System 'Computer1' -Command 'Get-SystemInfo' -JobID '12345'
```

```
This will run the command (Get-SystemInfo) on the remote system "Computer1".  All data will be logged in a directory with the assigned JOBID as the name.
```

#### EXAMPLE 2 <a href="#example-2" id="example-2"></a>

```
Invoke-BluGenieProcess -Range 10.10.1.50-10.10.1.250 -Command 'Get-SystemInfo'
```

```
This will run the command (Get-SystemInfo) on all systems in the IP range of [10.10.1.50 -> 250].  All data will be logged in a directory with the assigned Date and Time.
```

#### EXAMPLE 3 <a href="#example-3" id="example-3"></a>

```
Invoke-BluGenieProcess -System 'Computer1' -Command 'Get-SystemInfo' -Trap
```

```
This will run the command (Get-SystemInfo) on the remote system "Computer1".  The job data will also be trapped and logged on the remote hosts Event log.

Event Log Details:
   LogName = Application
   Source  = BluGenie
   Type    = Information
   ID      = 7114
```

#### EXAMPLE 4 <a href="#example-4" id="example-4"></a>

```
Run -System 'Computer1' -Command 'Get-SystemInfo' -JobTimeout 5
```

```
This will run the command (Get-SystemInfo) on the remote system "Computer1".
The job has a timed session of 5 minutes.  After that the session will be automatically closed.

Note:  If a job has reached it's timeout value, the session is closed and no data is captured unless you use the -Trap parameter.
       The -Trap parameter will log all the data on the remote host's <System> Drive.
```

### PARAMETERS <a href="#parameters" id="parameters"></a>

#### System <a href="#system" id="system"></a>

```
-System <String[]>
   Computer Name or IP Address of the System you want to manage
   
   <Type>String<Type>
   
   Required?                    false
   Position?                    1
   Default value                $(
                   If (-Not $global:ConsoleSystems) {
                       [System.Collections.ArrayList]$global:ConsoleSystems = @()
                   }
   
                   Return $global:ConsoleSystems
               )
   Accept pipeline input?       true (ByValue, ByPropertyName)
   Accept wildcard characters?  false
```

#### Range <a href="#range" id="range"></a>

```
-Range <String[]>
   IP Address Range of the Systems you want to manage
   
   <Type>String<Type>
   
   Required?                    false
   Position?                    named
   Default value                $(
                   If (-Not $global:ConsoleRange) {
                       [System.Collections.ArrayList]$global:ConsoleRange = @()
                   }
   
                   Return $global:ConsoleRange
               )
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### Command <a href="#command" id="command"></a>

```
-Command <String[]>
   The Commands you would like to execute on the remote computer
   
   <Type>String<Type>
   
   Required?                    false
   Position?                    named
   Default value                $(
                   If (-Not $global:ConsoleCommands) {
                       [System.Collections.ArrayList]$global:ConsoleCommands = @()
                   }
   
                   Return $global:ConsoleCommands
               )
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### JobID <a href="#jobid" id="jobid"></a>

```
-JobID <String>
   The Job Identifier
   
   <Type>String<Type>
   
   Required?                    false
   Position?                    named
   Default value                $(
                   If (-Not $global:ConsoleJobID) {
                       [String]$global:ConsoleJobID = ''
                   }
   
                   Return $global:ConsoleJobID
               )
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### ThreadCount <a href="#threadcount" id="threadcount"></a>

```
-ThreadCount <Int32>
   How many remote systems do you want to control at once.
   The default is ( 50 )
   
   <Type>Int<Type>
   
   Required?                    false
   Position?                    named
   Default value                $(
                   If (-Not $global:ConsoleThreadCount) {
                       [Int]$global:ConsoleThreadCount = 50
                   }
   
                   Return $global:ConsoleThreadCount
               )
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### Walkthrough <a href="#walkthrough" id="walkthrough"></a>

```
-Walkthrough [<SwitchParameter>]
   An automated process to walk through the current function and all the parameters
   
   <Type>SwitchParameter<Type>
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### Trap <a href="#trap" id="trap"></a>

```
-Trap [<SwitchParameter>]
   Trap the return data in the Windows Event Log
   
   <Type>SwitchParameter<Type>
   
   Required?                    false
   Position?                    named
   Default value                $(
                   If (-Not $global:ConsoleTrap) {
                       [Switch]$global:ConsoleTrap = $false
                   }
   
                   Return $global:ConsoleTrap
               )
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### JobTimeout <a href="#jobtimeout" id="jobtimeout"></a>

```
-JobTimeout <Int32>
   How long a remote systems connection can stay open before it is automatically closed.
   The default is ( 120 min )
   
   Note:  If a job has reached it's timeout value, the session is closed and no data is captured unless you use the -Trap parameter.
           The -Trap parameter will log all the data on the remote host's <System> Drive.
   
   <Type>Int<Type>
   
   Required?                    false
   Position?                    named
   Default value                $(
                   If (-Not $global:ConsoleJobTimeout) {
                       [Int]$global:ConsoleJobTimeout = 120
                   }
   
                   Return $global:ConsoleJobTimeout
               )
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### WhatIf <a href="#whatif" id="whatif"></a>

```
-WhatIf [<SwitchParameter>]
   
   Required?                    false
   Position?                    named
   Default value                
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### Confirm <a href="#confirm" id="confirm"></a>

```
-Confirm [<SwitchParameter>]
   
   Required?                    false
   Position?                    named
   Default value                
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### CommonParameters <a href="#commonparameters" id="commonparameters"></a>

This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about\_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216).


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://manuals.blusapphire.io/blugenie/full-function-list/invoke-blugenieprocess.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
