# BluSapphire Manuals

## BluSapphire

## [BluGenie](/blugenie/full-function-list)

## BluSniper

## BluArmour


# Detections

Sigma Rule Format & Learnings

## Overview:&#x20;

BluSapphire SIEM platform enables support for writing and deploy custom SIGMA rules from within BluSapphire Portal. This document is meant for Security Analysts & IT/System Administrators to help answer queries that he/she may have while writing Sigma rule.

## What is Sigma?&#x20;

While we've Snort rules for detecting Network Traffic, Yara Signatures for identifying suspicious files, consider Sigma rules for searching/pattern matching through log data. Sigma is a generic and open signature format that allows analysts to write & describe searches on log data in a straightforward manner. These rules can be converted and applied to many log management or SIEM systems. Writing Sigma rules is easy and follows the YAML format, which is quite flexible to accommodate custom fields.

**Note**: Sigma specifications may change over time with versions, in case of any missing or new attribute, please refer to the official SIGMA specifications wiki available at SIGMAHQ with frequent updates.

The following pages will help empower your abilities in understanding Sigma format and use them effectively to write/edit Detections.

###


# Creating "Detections" Using BluSapphire Portal

**Note**: Please watch this [video](https://youtu.be/yB3AkJ6m3hc) to follow along as needed.

### Sigma Structure & Attributes: <a href="#toc1454466914" id="toc1454466914"></a>

Assuming analysts might be interested in tracking installation of malicious windows services on a compromised workstation to achieve persistence or to move laterally between systems later on. Most common red team techniques involve installing a new service that would allow adversaries to run commands on remote machines or creating a new account upon execution of malicious service.

Here analysts would be more interested to look for Windows Event-ID: “7045 - Windows Service Installation”, which holds the details about the binary (ServiceFileName) that the service is using.

| **Required Condition** | <ol><li>Search for Windows EventID “7045”</li><li>Look for Windows service binary path’s pointing to suspicious/unwanted executables and alert</li></ol> |
| ---------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- |

To detect malicious service installations on windows workstation, you know what and where to look for. The Sigma rule for this would be as follows:

| **Sigma Rule - Installation of Malicious Service**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |                                                                                                                               |                                                                                                                      |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- |
| <p>title: Installation of Malicious Service</p><p>status: stable</p><p>author: Blusapphire, SOC</p><p>date: 2017/03/27</p><p>description: Detects known malicious service installs that only appear in cases of lateral movement, credential dumping, and other suspicious activities.</p><p>references:</p><p>- <https://awakesecurity.com/blog/threat-hunting-for-paexec/></p><p>- <https://blog.f-secure.com/wp-content/uploads/2019/10/CosmicDuke.pdf></p><p>tags:</p><p>- attack.persistence</p><p>- attack.privilege\_escalation</p><p>- attack.t1035</p><p>- attack.t1050</p><p>level: critical</p><p>falsepositives:</p><p>- Penetration testing</p><p>logsource:</p><p>product: windows</p><p>service: system</p><p>detection:</p><p>selection:</p><p>EventID: 7045</p><p>malsvc\_paexec:</p><p>ServiceFileName | contains: '\PAExec'</p><p>malsvc\_wannacry:</p><p>ServiceName: 'mssecsvc2.0'</p><p>malsvc\_persistence:</p><p>ServiceFileName | contains: 'net user'</p><p>condition: selection and ( malsvc\_paexec or malsvc\_wannacry or malsvc\_persistence)</p> |

Let’s break it down further to understand Sigma rule structure and attributes within, A Sigma rule has different attributes, each of which has a unique purpose. In the structure table below, sigma rule has been grouped into three sections “Metadata, Logsource, Detections” for understanding purposes.

| **Sections**   | **Attributes**                                                                                                                                     | **Value (Example)**                                                                                                           | **Remark**               |   |   |
| -------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ------------------------ | - | - |
| **Metadata**   | title                                                                                                                                              | Installation of Malicious Service                                                                                             | Mandatory                |   |   |
| id             | 2cfe636e-317a-4bee-9f2c-1066d9f54d1a                                                                                                               | Optional                                                                                                                      |                          |   |   |
| status         | stable                                                                                                                                             |                                                                                                                               |                          |   |   |
| author         | Blusapphire, SOC                                                                                                                                   |                                                                                                                               |                          |   |   |
| date           | 2017/03/27                                                                                                                                         |                                                                                                                               |                          |   |   |
| modified       | 2021/07/06                                                                                                                                         |                                                                                                                               |                          |   |   |
| description    | Detects known malicious service installs that only appear in cases of lateral movement, credential dumping, and other suspicious activities.       |                                                                                                                               |                          |   |   |
| references     | <p>- <https://awakesecurity.com/blog/threat-hunting-for-paexec/></p><p>- <https://blog.f-secure.com/wp-content/uploads/2019/10/CosmicDuke.pdf></p> |                                                                                                                               |                          |   |   |
| tags           | <p>- attack.t1035</p><p>- attack.t1050</p>                                                                                                         |                                                                                                                               |                          |   |   |
| falsepositives | - Penetration testing                                                                                                                              |                                                                                                                               |                          |   |   |
| level          | critical                                                                                                                                           |                                                                                                                               |                          |   |   |
| **Logsource**  | logsource                                                                                                                                          |                                                                                                                               | Mandatory                |   |   |
| category       |                                                                                                                                                    | Optional                                                                                                                      |                          |   |   |
| product        | windows                                                                                                                                            |                                                                                                                               |                          |   |   |
| service        | system                                                                                                                                             |                                                                                                                               |                          |   |   |
| definition     |                                                                                                                                                    |                                                                                                                               |                          |   |   |
| **Detection**  | detection                                                                                                                                          |                                                                                                                               | Mandatory                |   |   |
|                | <p>selection:</p><p>EventID: 7045</p><p>malsvc\_paexec:</p><p>ServiceFileName                                                                      | contains: '\PAExec'</p><p>malsvc\_wannacry:</p><p>ServiceName: 'mssecsvc2.0'</p><p>malsvc\_persistence:</p><p>ServiceFileName | contains: 'net user'</p> |   |   |
| condition      | selection and (malsvc\_paexec or malsvc\_wannacry or malsvc\_persistence)                                                                          |                                                                                                                               |                          |   |   |

**Note:** Additional information related to field attributes and their properties are available in Annexure-A.

### Understanding Sigma Operators/Attributes: <a href="#toc906940451" id="toc906940451"></a>

* **Metadata:** This section has fields that are common across all Sigma rules of a collection.
* **Logsource:** This section describes the log data on which the detection is meant to be applied. It consists of three sub-attributes which define the details of the log source:
  * Category – e.g.: Firewall, Web, Antivirus, Process\_Creation
  * Product – e.g.: Windows, Apache
  * Service – e.g.: System, AppLocker, Security, Sysmon
  * Definition – e.g.: Information that describes the log source

| **Logsource Example**                                                                                                       |
| --------------------------------------------------------------------------------------------------------------------------- |
| <p>logsource:</p><p>product: windows</p><p>service: powershell</p><p>definition: 'Script block logging must be enabled'</p> |

**Note:** Instead of referring to a particular service using the mentioned sub-attributes, a generic log sources can be used in the rule, which has category and product information.

| **Generic Logsource Example**                                              |
| -------------------------------------------------------------------------- |
| <p>logsource:</p><p>category: process\_creation</p><p>product: windows</p> |

* **Detection (Detection-Expression):** Defines a set of search-identifiers that represent ‘what an analyst would want to search for’ on the given log data source. This section is made up of the following sub-attributes “Search-Identifier and Condition-Expression”.
  * **Search-Identifier** is at the core for detection, supports both “lists and maps” type data structures.
    * Lists – Can have multiple items or strings, each of which are linked with a logical ‘OR’ as below.
    * Maps (dictionaries) – Are key/value pairs, in which the key is a field in the log data and value can be string or integer. All the elements of map are linked with a logical ‘AND’ as below.

| Data Type | Examples                                                           | Operator | Translates To                               |
| --------- | ------------------------------------------------------------------ | -------- | ------------------------------------------- |
| **Lists** | <p>selection:</p><p>EventID:</p><p>- 4624</p><p>- 4625</p>         | OR       | (EventID:”4624” OR EventID:”4625”)          |
| **Maps**  | <p>selection:</p><p>EventID: 1</p><p>Image: ‘\*powershell.exe’</p> | AND      | (EventID:”1” AND Image:”\*.powershell.exe”) |

* * **Value Modifiers** can be used to modify values in a rule, Value Modifiers can change search identifier behavior and are attached to the end of a field name after the pipe “|” character.

| Value Modifier | What changes, when value modifiers are used         | Examples                   |
| -------------- | --------------------------------------------------- | -------------------------- |
| contains       | Adds ‘\*’ to beginning & end of the field value     | CommandLine\|contains      |
| all            | Chages the default list behavior from ‘or’ to ‘and’ | CommandLine\|contains\|all |
| startswith     | Adds ‘\*’ to the end of the field value             | Image\|startswith          |
| endswith       | Adds ‘\*’ to the beginning of the field value       | ParentImage\|endswith      |

* * **Condition (Condition-Expression)** – Uses operators to link ties **Search-Identifier** fields together, defining how the detection tool will process each field in relation to the others.

| Operator                   | Examples                                    |
| -------------------------- | ------------------------------------------- |
| Logical and/or             | selection1 or selection2                    |
| 1/all of search-identifier | 1 of selection                              |
| 1/all of them              | all of them                                 |
| 1/all of search-id-pattern | all of filter\_\*                           |
| Negation with ‘not’        | Selection and not filter                    |
| Order of operation ‘()’    | 1 of selection and not (filter1 or filter2) |

### Basic Syntax: <a href="#toc1290252300" id="toc1290252300"></a>

**The following are some basic rules to be followed while writing a sigma rule:**

* Follows YAML format, use spaces (not tabs).
* All values are case-insensitive strings
* You can make use of wildcard characters '\*' and '?' in strings
* Wildcards can be escaped with '\\' e.g., '\\\*'
* Special Field Values:
  * Null values are defined with 'null'
  * Empty value is defined with '’

### Rule Creation from BluSapphire Portal: <a href="#toc349610156" id="toc349610156"></a>

This section provides information on creation/modification and deployment of new/existing sigma rules from within Blusapphire Portal.

Steps for Rule creation:

1. From Blusapphire portal, navigate to “Rule Management" page available under “Entity Behavior” menu item.

![](https://1909614562-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MMUbllmfOEoJO7sXkZi%2Fuploads%2F6AkkkBsNWu0kmWHBUZj1%2F1?alt=media)

1. To create a new rule, click on “New” button available on top right side. As described earlier in this document:
   1. Provide an appropriate rule name

![](https://1909614562-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MMUbllmfOEoJO7sXkZi%2Fuploads%2FzPnXvaKDO9bPtjv6v6Iu%2F2?alt=media)

* 1. Provide the required metadata fields

![](https://1909614562-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MMUbllmfOEoJO7sXkZi%2Fuploads%2FGuhgDObw1DrdZ7PJmZS2%2F3?alt=media)

* 1. Provide required **Logsource** as per specifications.
  2. Define the **search-identifiers (selection/filters)** for the rule and the condition.

![](https://1909614562-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MMUbllmfOEoJO7sXkZi%2Fuploads%2FImKIjesCyoEvVRa2vlC9%2F4?alt=media)

* 1. Finally check, validate and save the new rule.

![](https://1909614562-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MMUbllmfOEoJO7sXkZi%2Fuploads%2FmdB2cslx42OTDBpSRpjp%2F5?alt=media)

* 1. Newly created rules will be enabled by default.

![](https://1909614562-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MMUbllmfOEoJO7sXkZi%2Fuploads%2FSKbh3icY8hC9d0nUmdrG%2F6?alt=media)

* 1. To update an existing rule:
     * Use filters to search for an existing rule
     * Make the required changes in the rule, validate and save.

![](https://1909614562-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MMUbllmfOEoJO7sXkZi%2Fuploads%2FerUPCDYw9Jn3CZ1H2Exc%2F7?alt=media)

### Annexure-A <a href="#toc856073351" id="toc856073351"></a>

| **Field Attributes** | **Attribute Properties**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |                                                                                                                                                                                                             |
| -------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Title                | <p>Provide a brief title for the rule, keep it simple and short</p><p><strong>Type:</strong> string</p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |                                                                                                                                                                                                             |
| ID                   | Global unique identifier for rule, auto generated during rule creation and used internally (optional)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |                                                                                                                                                                                                             |
| Status               | <p>Defines the maturity of the rule. (optional)</p><p><strong>Possible values:</strong></p><ul><li>experimental - usable in test environment, which may require additional tuning to reduce noise and false-positives (FPs)</li><li>testing - Tunning is required</li><li>stable - Usable in production environments</li></ul><p><strong>Note:</strong></p><ul><li>Blusapphire offers a mixed set of base rules, which may require tuning and can vary between organizations depending on IT policies implemented.</li><li>Any newly created custom rule for an organization, it is preferred to initially set it to experimental and change it overtime depending on tunning.</li></ul>                                                                                                                                         |                                                                                                                                                                                                             |
| Author               | <p>Author of the rule (special should be inside single quotes), Comma is used to separate multiple users. (optional)</p><p><strong>Type:</strong> string</p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |                                                                                                                                                                                                             |
| Date                 | <p>Creation date of the rule. (optional)</p><p><strong>Format:</strong> YYYY/MM/DD</p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |                                                                                                                                                                                                             |
| Modified             | <p>Modified date of the rule. (optional)</p><p><strong>Format:</strong> YYYY/MM/DD</p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |                                                                                                                                                                                                             |
| Description          | <p>Short description of the rule and its context of detection. (optional)</p><p><strong>Type:</strong> String</p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |                                                                                                                                                                                                             |
| References           | List of references to external sources for the rule                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |                                                                                                                                                                                                             |
| Tags                 | <p>Tag the rule based on the context of logsource or log data or even detection.</p><p>Field allows lowercase, underscores hyphens and no-spaces.</p><p><strong>Type:</strong> String</p><p>E.g., For windows rule you may tag it with Mitre Framework based on Technique like attack.t1086</p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |                                                                                                                                                                                                             |
| Level                | <p>Field defines the criticality of the rule.</p><p><strong>Possible values:</strong></p><ul><li>Low</li><li>Medium</li><li>High</li><li>Critical</li></ul>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |                                                                                                                                                                                                             |
| Logsource            | <p>Defines the log data source which will be used to search data from. Logsource has additional sub-attributes 'Category, Product, Service, Definition' for pointing to a specific log source.</p><p>Instead of Logsource, you can use Generic Logsource format which only has two sub-attributes ‘Category, Product’. This is used internally during the conversion process, specifically for field mapping.</p><p><strong>Possible values:</strong></p><ul><li>Category – logs which fall under a particular category (e.g., DNS, Server-Logs, Process\_Creation, Network, etc.)</li><li>Product – logs generated by a particular product (e.g., windows event channel, Linux, Firewall, etc.)</li><li>Service – Subset of product log (e.g., Security, Powershell, Sysmon, etc.)</li><li>Definition – Describes the</li></ul> |                                                                                                                                                                                                             |
| Detection            | <p>Defines a set of search-identifiers that represent searches on log data, support both lists, maps(dictionaries) data-structures.</p><ul><li>Search-Identifiers (selection) – are key/value pairs, what an analyst would want to select (or) search from the log data. Multiple values can be included in a Lists (OR – dash bulleted) or Maps (AND – new lines).</li><li>Value Modifiers can be used to change the search-identifier behavior and are attached to the end of a field name after the pipe “                                                                                                                                                                                                                                                                                                                    | ” character.</li><li>Condition-Expression (condition) – ties the selection fields together, defining how the detection tool will process each selection, filter fields in relation to the others.</li></ul> |

Note: Please watch this [video](https://youtu.be/yB3AkJ6m3hc) to follow along as needed.


# Roles & Permissions

In this we define and elaborate on the roles and permissions assigned to different users within our system. We outline four distinct user types:&#x20;

Service Provider Admin,&#x20;

Service Provider Analyst,&#x20;

Client Admin, and&#x20;

Client Analyst

Each user type is assigned specific responsibilities and permissions tailored to their role in the system. The document provides an overview of these roles, detailing their respective duties and the permissions they possess. By clearly defining these roles and permissions, we ensure efficient management and utilization of our services, fostering effective collaboration between service providers and clients.

\\

\
**Service Provider Admin:**

```
  This role has administrative privileges . 

  **Permissions:**
```

* **User Management**: Create, update, delete, and view users. Admins can manage user accounts, roles, and permissions.
* **System Settings**: Modify system-wide settings, configurations, and parameters.
* **Access Control Management**: Define and modify roles and permissions, assign roles to users, and manage access levels.
* **Security Settings**: Manage security policies, including password policies, two-factor authentication settings, and access controls.

  \\

Provider Admin Privileges Overview:

The Service Provider Admin has the following key privileges:

Creation of Child Organizations

Management of Users within Organizations

Access to Default Organization and Child Organizations

**Privileges Breakdown:**

a. Creation of Child Organizations:

* The Service Provider Admin has the authority to create child organizations under their default organization.
* Child organizations may represent distinct departments, branches, or divisions within the larger organizational structure.

b. Management of Users within Organizations:

* Service Provider Admins can add, modify, and remove users within their default organization and its child organizations.
* This includes assigning roles, permissions, and other user-related configurations.

c. Access to Default Organization and Child Organizations:

* The Service Provider Admin has full access to their default organization and all child organizations created under it.
* They can view, edit, and manage organizational data within these entities.

d. Cannot create Partner Entities:

* While Service Provider Admins cannot directly create partner entities, they have access to their organization and child organizations.

**Responsibilities:**

The Service Provider Admin is responsible for managing organizational structures and user permissions effectively. They must ensure that user access is granted according to organizational requirements and security policies. Service Provider Admins should maintain the integrity and confidentiality of organizational data, adhering to applicable regulatory standards and compliance requirements. Best Practices:

Regularly review and update organizational structures to reflect changes in the business landscape. Provide training and support to Service Provider Admins to empower them to effectively manage users and organizations. Implement access controls and monitoring mechanisms to detect and prevent unauthorized access to sensitive data. Default Organization:

The Service Provider Admin has a default organization under which child organizations are created. This default organization serves as the parent entity for organizational hierarchy and administrative purposes.

**Conclusion**:

Service Provider Admin privileges grant elevated access and control over organizational structures and user management within the system. It's essential for Service Provider Admins to exercise their privileges responsibly and in accordance with organizational policies and best practices.

\\

**Service Provider Analyst:**

```
  This role has privileges to view and analyze data for multiple organizations.

  **Permissions:**
```

* **View/Edit Own Profile**: Users can view and edit their own profile information but cannot view or edit other users' profiles.
* **Data Management**: Can view and analyze the data pertaining to their client organization.
* **Limited System Settings**: Access to a limited set of system settings that pertain to their user experience, like changing their password or configuring personal preferences.

**Privileges Breakdown:**

a. Access to Specific Pages and Data:

* Service Provider Analysts are granted access to a subset of pages within the system, typically those relevant to their role or responsibilities.
* This access allows them to view data and perform necessary tasks within their designated area of operation.

b. Restricted Access to Organizational and User Management Functions:

* Service Provider Analyst do not have permissions to create organizations or add/manage users within the system.
* They are restricted from viewing organizational structures and user lists to maintain data confidentiality and security.

**Responsibilities:**

The primary responsibility of the Service Provider Analyst is to utilize the provided access rights responsibly and in alignment with organizational policies and procedures. They must ensure the confidentiality and integrity of data accessed through the system. Service Provider Analysts should promptly report any security concerns or unauthorized access attempts to designated personnel.

**Conclusion**:

Service Provider Analyst privileges offer limited access to specific pages and data within the system, focusing on enabling users to perform their designated tasks efficiently while maintaining data security and confidentiality.

\
**Client Admin:**

```
  This role has administrative privileges, can view and analyze data with respect to specific client.

  **Permissions:**
```

* **User Management**: Create, update, delete, and view users. Admins can manage user accounts, roles, and permissions.
* **System Settings**: Modify system-wide settings, configurations, and parameters.
* **Access Control Management**: Define and modify roles and permissions, assign roles to users, and manage access levels.
* **Security Settings**: Manage security policies, including password policies, two-factor authentication settings, and access controls.
* **Data Management**: Can view and analyze the data pertaining to their client organization.

**Privileges Breakdown:**

a. Creation and Management of Client Analysts:

* The Client Admin is authorized to create and manage users within their designated domain(s) in the system.
* They have the ability to add, modify, and delete user accounts, assign roles, and configure permissions within the domain(s) they oversee.

b. Restricted Access to Organizational Data:

* Client Admins do not have permissions to view organizational structures or access organizational data beyond the scope of their designated domain(s).
* Their access is limited to user management functions within their domain(s) to maintain data confidentiality and security.

**Responsibilities:**

The primary responsibility of the Client Admin is to manage user accounts within their designated domain(s) effectively. They must adhere to organizational policies and procedures regarding user management, security, and data privacy. Client Admins should collaborate with other administrative roles, such as Client Admins or Superusers, as needed to ensure smooth operation and alignment with organizational objectives.

**Conclusion**:

Client Admin privileges enable the management of user accounts within specific domains while maintaining restricted access to organizational data. It is essential for Client Admins to fulfill their responsibilities diligently and in accordance with organizational policies and procedures

**Client Analyst:**

```
   This role has privilege to view and analyze data with respective to specific client.

   **Permissions:**
```

* **View/Edit Own Profile**: Users can view and edit their own profile information but cannot view or edit other users' profiles.
* **Specific Data Access**: Read (and possibly write) access to specific data necessary for their roles, with restrictions on more sensitive or comprehensive data. Can view their organization data.
* **Limited System Settings**: Access to a limited set of system settings that pertain to their user experience, like changing their password or configuring personal preferences.
* **Data Access and Management**: Can view and analyze the data pertaining to their client organization.

Privileges Breakdown:

a. Access to Organization Data:

* Client Analyst are granted access to view and interact with data within their respective organization(s) only.
* They can view, create, modify, and delete data within their organization's scope, such as files, documents, or records.

b. Limited Access to Account Settings:

* Client Analysts have limited access to manage their personal account settings related to security.
* Specifically, they can access and modify settings related to:

1. Password: Change or reset their account password.
2. Multi-Factor Authentication (MFA): Enable or configure MFA settings for enhanced security.
3. Log Monitoring: View logs and monitoring data related to their account activities.
4. Host Monitoring: Access monitoring features related to host systems associated with their account.

**Restricted Access to Other Settings:**

Client Analysts do not have permissions to access most of the system settings beyond those related to password, MFA, log monitoring, and host monitoring. They cannot modify system-wide configurations or settings that impact the overall operation of the system.

**Responsibilities**:

The primary responsibility of the Client Analyst is to utilize the provided access rights responsibly and in alignment with organizational policies and procedures. They must ensure the confidentiality and integrity of data accessed within their organization(s).Client Analysts should promptly report any security concerns or unauthorized access attempts to designated personnel.

**Conclusion:**

Client Analyst privileges offer access to organization data within a specific scope and limited control over personal account settings related to security. It is crucial for Client Analysts to adhere to organizational policies and best practices to maintain data integrity and security.


# Knowledge Base

* **I receive a logmon alert, but when i verify, i see the logs are coming in fine. Why?**

  * Logmon alerts are fired if the system hasn't seen logs from a logsource in a defined time period say 30m, 90m or 6h. If you set this to a short time like 30m, this behaviour is often expected. A logsource may or may not have dropped off and it could have come back online and caught up with all the missing logs. This could happen due to a number of reasons like network congestion, very low log volume, system temporarily offline etc.,

  &#x20;      *Try increasing the timeout to 90m or higher to decrease these alerts and make alerts reliable.*


# Full Function List

* [Add-BluGenieFirewallRule](/blugenie/full-function-list/add-blugeniefirewallrule)
* [Clear-BlugenieMemory](/blugenie/full-function-list/clear-blugeniememory)
* [Connect-BluGenieToSystem](/blugenie/full-function-list/connect-blugenietosystem)
* [Convert-BluGenieSID2UserName](/blugenie/full-function-list/convert-blugeniesid2username)
* [Convert-BluGenieSize](/blugenie/full-function-list/convert-blugeniesize)
* [Convert-BluGenieUserName2SID](/blugenie/full-function-list/convert-blugenieusername2sid)
* [Convert-BluGenieUTCtoLocal](/blugenie/full-function-list/convert-blugenieutctolocal)
* [ConvertFrom-Yaml](/blugenie/full-function-list/convertfrom-yaml)
* [ConvertTo-BluGenieDate](/blugenie/full-function-list/convertto-blugeniedate)
* [ConvertTo-Yaml](/blugenie/full-function-list/convertto-yaml)
* [Disable-BluGenieAllFirewallRules](/blugenie/full-function-list/disable-blugenieallfirewallrules)
* [Disable-BluGenieFirewallRule](/blugenie/full-function-list/disable-blugeniefirewallrule)
* [Enable-BluGenieAllFirewallRules](/blugenie/full-function-list/enable-blugenieallfirewallrules)
* [Enable-BluGenieFirewallRule](/blugenie/full-function-list/enable-blugeniefirewallrule)
* [Enable-BluGenieWinRMoverWMI](/blugenie/full-function-list/enable-blugeniewinrmoverwmi)
* [Expand-BluGenieArchivePS2](/blugenie/full-function-list/expand-blugeniearchiveps2)
* [Format-BluGenieEvent](/blugenie/full-function-list/format-blugenieevent)
* [Get-BluGenieADGroupMembers](/blugenie/full-function-list/get-blugenieadgroupmembers)
* [Get-BluGenieADGroups](/blugenie/full-function-list/get-blugenieadgroups)
* [Get-BluGenieADMachineInfo](/blugenie/full-function-list/get-blugenieadmachineinfo)
* [Get-BluGenieAuditProcessTracking](/blugenie/full-function-list/get-blugenieauditprocesstracking)
* [Get-BluGenieAutoRuns](/blugenie/full-function-list/get-blugenieautoruns)
* [Get-BluGenieChildItemList](/blugenie/full-function-list/get-blugeniechilditemlist)
* [Get-BluGenieCOMObjectInfo](/blugenie/full-function-list/get-blugeniecomobjectinfo)
* [Get-BluGenieCurrentSessionAliases](/blugenie/full-function-list/get-blugeniecurrentsessionaliases)
* [Get-BluGenieCurrentSessionFunctions](/blugenie/full-function-list/get-blugeniecurrentsessionfunctions)
* [Get-BluGenieCurrentSessionVariables](/blugenie/full-function-list/get-blugeniecurrentsessionvariables)
* [Get-BluGenieErrorAction](/blugenie/full-function-list/get-blugenieerroraction)
* [Get-BluGenieFileADS](/blugenie/full-function-list/get-blugeniefileads)
* [Get-BluGenieFilePermissions](/blugenie/full-function-list/get-blugeniefilepermissions)
* [Get-BluGenieFileSnapshot](/blugenie/full-function-list/get-blugeniefilesnapshot)
* [Get-BluGenieFileStreams](/blugenie/full-function-list/get-blugeniefilestreams)
* [Get-BluGenieFirewallRules](/blugenie/full-function-list/get-blugeniefirewallrules)
* [Get-BluGenieHashInfo](/blugenie/full-function-list/get-blugeniehashinfo)
* [Get-BluGenieHelp](/blugenie/full-function-list/get-blugeniehelp)
* [Get-BluGenieHostingVersion](/blugenie/full-function-list/get-blugeniehostingversion)
* [Get-BluGenieIPrange](/blugenie/full-function-list/get-blugenieiprange)
* [Get-BluGenieLiteralPath](/blugenie/full-function-list/get-blugenieliteralpath)
* [Get-BluGenieLoadedRegHives](/blugenie/full-function-list/get-blugenieloadedreghives)
* [Get-BluGenieLockingProcess](/blugenie/full-function-list/get-blugenielockingprocess)
* [Get-BluGenieMRUActivityView](/blugenie/full-function-list/get-blugeniemruactivityview)
* [Get-BluGenieProcessList](/blugenie/full-function-list/get-blugenieprocesslist)
* [Get-BluGenieRegistry](/blugenie/full-function-list/get-blugenieregistry)
* [Get-BluGenieRegistryProcessTracking](/blugenie/full-function-list/get-blugenieregistryprocesstracking)
* [Get-BluGenieRegSnapshot](/blugenie/full-function-list/get-blugenieregsnapshot)
* [Get-BluGenieRunSpaceSessionAliases](/blugenie/full-function-list/get-blugenierunspacesessionaliases)
* [Get-BluGenieRunSpaceSessionFunctions](/blugenie/full-function-list/get-blugenierunspacesessionfunctions)
* [Get-BluGenieRunSpaceSessionVariables](/blugenie/full-function-list/get-blugenierunspacesessionvariables)
* [Get-BluGenieSchTaskInfo](/blugenie/full-function-list/get-blugenieschtaskinfo)
* [Get-BluGenieScriptDirectory](/blugenie/full-function-list/get-blugeniescriptdirectory)
* [Get-BluGenieServiceList](/blugenie/full-function-list/get-blugenieservicelist)
* [Get-BluGenieServiceStatus](/blugenie/full-function-list/get-blugenieservicestatus)
* [Get-BluGenieSessionAliasList](/blugenie/full-function-list/get-blugeniesessionaliaslist)
* [Get-BluGenieSessionFunctionList](/blugenie/full-function-list/get-blugeniesessionfunctionlist)
* [Get-BluGenieSessionVariableList](/blugenie/full-function-list/get-blugeniesessionvariablelist)
* [Get-BluGenieSettings](/blugenie/full-function-list/get-blugeniesettings)
* [Get-BluGenieSignature](/blugenie/full-function-list/get-blugeniesignature)
* [Get-BluGenieSystemInfo](/blugenie/full-function-list/get-blugeniesysteminfo)
* [Get-BluGenieToolsDirectory](/blugenie/full-function-list/get-blugenietoolsdirectory)
* [Get-BluGenieTranscriptsDir](/blugenie/full-function-list/get-blugenietranscriptsdir)
* [Get-BluGenieTranscriptsFile](/blugenie/full-function-list/get-blugenietranscriptsfile)
* [Get-BluGenieTrapData](/blugenie/full-function-list/get-blugenietrapdata)
* [Get-BluGenieWindowsTitle](/blugenie/full-function-list/get-blugeniewindowstitle)
* [Get-BluGenieWindowsUpdates](/blugenie/full-function-list/get-blugeniewindowsupdates)
* [Install-BluGenieHarvester](/blugenie/full-function-list/install-blugenieharvester)
* [Install-BluGenieSysMon](/blugenie/full-function-list/install-blugeniesysmon)
* [Invoke-BluGenieAnalyzer](/blugenie/full-function-list/invoke-blugenieanalyzer)
* [Invoke-BluGenieFileBrowser](/blugenie/full-function-list/invoke-blugeniefilebrowser)
* [Invoke-BluGenieLoadAllProfileHives](/blugenie/full-function-list/invoke-blugenieloadallprofilehives)
* [Invoke-BluGenieNetStat](/blugenie/full-function-list/invoke-blugenienetstat)
* [Invoke-BluGenieParallel](/blugenie/full-function-list/invoke-blugenieparallel)
* [Invoke-BluGenieProcess](/blugenie/full-function-list/invoke-blugenieprocess)
* [Invoke-BluGenieProcessHash](/blugenie/full-function-list/invoke-blugenieprocesshash)
* [Invoke-BluGeniePSQuery](/blugenie/full-function-list/invoke-blugeniepsquery)
* [Invoke-BluGeniePython](/blugenie/full-function-list/invoke-blugeniepython)
* [Invoke-BluGenieSQLLQuery](/blugenie/full-function-list/invoke-blugeniesqllquery)
* [Invoke-BluGenieThreadLock](/blugenie/full-function-list/invoke-blugeniethreadlock)
* [Invoke-BluGenieUnLoadAllProfileHives](/blugenie/full-function-list/invoke-blugenieunloadallprofilehives)
* [Invoke-BluGenieWalkThrough](/blugenie/full-function-list/invoke-blugeniewalkthrough)
* [Invoke-BluGenieWipe](/blugenie/full-function-list/invoke-blugeniewipe)
* [Invoke-BluGenieYara](/blugenie/full-function-list/invoke-blugenieyara)
* [Invoke-PSipcalc](/blugenie/full-function-list/invoke-psipcalc)
* [Invoke-PSnmap](/blugenie/full-function-list/invoke-psnmap)
* [Invoke-SQLiteBulkCopy](/blugenie/full-function-list/invoke-sqlitebulkcopy)
* [Invoke-SqliteQuery](/blugenie/full-function-list/invoke-sqlitequery)
* [Invoke-WalkThrough](/blugenie/full-function-list/invoke-walkthrough)
* [Join-BluGenieObjects](/blugenie/full-function-list/join-blugenieobjects)
* [New-BluGenieCommand](/blugenie/full-function-list/new-blugeniecommand)
* [New-BluGenieHelpMenu](/blugenie/full-function-list/new-blugeniehelpmenu)
* [New-BluGenieService](/blugenie/full-function-list/new-blugenieservice)
* [New-BluGenieSessionInfo](/blugenie/full-function-list/new-blugeniesessioninfo)
* [New-BluGenieTimeStamp](/blugenie/full-function-list/new-blugenietimestamp)
* [New-BluGenieUID](/blugenie/full-function-list/new-blugenieuid)
* [New-SQLiteConnection](/blugenie/full-function-list/new-sqliteconnection)
* [Open-BluGenieLog](/blugenie/full-function-list/open-blugenielog)
* [Open-BluGenieLogDir](/blugenie/full-function-list/open-blugenielogdir)
* [Open-BluGenieScriptDir](/blugenie/full-function-list/open-blugeniescriptdir)
* [Open-BluGenieToolDir](/blugenie/full-function-list/open-blugenietooldir)
* [Open-BluGenieTransDir](/blugenie/full-function-list/open-blugenietransdir)
* [Out-DataTable](/blugenie/full-function-list/out-datatable)
* [Publish-BluGenieArtifact](/blugenie/full-function-list/publish-blugenieartifact)
* [Publish-BluGenieFirewallRules](/blugenie/full-function-list/publish-blugeniefirewallrules)
* [Remove-BluGenieFile](/blugenie/full-function-list/remove-blugeniefile)
* [Remove-BluGenieFirewallRule](/blugenie/full-function-list/remove-blugeniefirewallrule)
* [Remove-BluGenieModule](/blugenie/full-function-list/remove-blugeniemodule)
* [Remove-BluGenieService](/blugenie/full-function-list/remove-blugenieservice)
* [Resolve-BluGenieDnsName](/blugenie/full-function-list/resolve-blugeniednsname)
* [Send-BluGenieItem](/blugenie/full-function-list/send-blugenieitem)
* [Set-BluGenieAuditProcessPol](/blugenie/full-function-list/set-blugenieauditprocesspol)
* [Set-BluGenieCommands](/blugenie/full-function-list/set-blugeniecommands)
* [Set-BluGenieCores](/blugenie/full-function-list/set-blugeniecores)
* [Set-BluGenieDebugger](/blugenie/full-function-list/set-blugeniedebugger)
* [Set-BluGenieFirewallGPOStatus](/blugenie/full-function-list/set-blugeniefirewallgpostatus)
* [Set-BluGenieFirewallStatus](/blugenie/full-function-list/set-blugeniefirewallstatus)
* [Set-BluGenieJobId](/blugenie/full-function-list/set-blugeniejobid)
* [Set-BluGenieJobMemory](/blugenie/full-function-list/set-blugeniejobmemory)
* [Set-BluGenieJobTimeout](/blugenie/full-function-list/set-blugeniejobtimeout)
* [Set-BluGenieNoBanner](/blugenie/full-function-list/set-blugenienobanner)
* [Set-BluGenieNoExit](/blugenie/full-function-list/set-blugenienoexit)
* [Set-BluGenieNoSetRes](/blugenie/full-function-list/set-blugenienosetres)
* [Set-BluGenieParallelCommands](/blugenie/full-function-list/set-blugenieparallelcommands)
* [Set-BluGeniePostCommands](/blugenie/full-function-list/set-blugeniepostcommands)
* [Set-BluGeniePrefetch](/blugenie/full-function-list/set-blugenieprefetch)
* [Set-BluGenieProcessCPUAffinity](/blugenie/full-function-list/set-blugenieprocesscpuaffinity)
* [Set-BluGenieProcessPriority](/blugenie/full-function-list/set-blugenieprocesspriority)
* [Set-BluGenieRange](/blugenie/full-function-list/set-blugenierange)
* [Set-BluGenieRemoteDesktopProcess](/blugenie/full-function-list/set-blugenieremotedesktopprocess)
* [Set-BluGenieScriptCredentials](/blugenie/full-function-list/set-blugeniescriptcredentials)
* [Set-BluGenieServiceJob](/blugenie/full-function-list/set-blugenieservicejob)
* [Set-BluGenieSessionInfo](/blugenie/full-function-list/set-blugeniesessioninfo)
* [Set-BluGenieSettingsPriority](/blugenie/full-function-list/set-blugeniesettingspriority)
* [Set-BluGenieSystems](/blugenie/full-function-list/set-blugeniesystems)
* [Set-BluGenieThreadCount](/blugenie/full-function-list/set-blugeniethreadcount)
* [Set-BluGenieTrapping](/blugenie/full-function-list/set-blugenietrapping)
* [Set-BluGenieUpdateMods](/blugenie/full-function-list/set-blugenieupdatemods)
* [Set-BluGenieVerbose](/blugenie/full-function-list/set-blugenieverbose)
* [Show-BluGenieGUI](/blugenie/full-function-list/show-blugeniegui)
* [Show-BluGenieMore](/blugenie/full-function-list/show-blugeniemore)
* [Start-BluGenieNewProcess](/blugenie/full-function-list/start-blugenienewprocess)
* [Start-BluGenieRunSpace](/blugenie/full-function-list/start-blugenierunspace)
* [Stop-BluGenieService](/blugenie/full-function-list/stop-blugenieservice)
* [Test-BluGenieIsFileLocked](/blugenie/full-function-list/test-blugenieisfilelocked)
* [Test-BluGenieIsMutexAvailable](/blugenie/full-function-list/test-blugenieismutexavailable)
* [Trace-BluGenieFireWallStatus](/blugenie/full-function-list/trace-blugeniefirewallstatus)
* [Update-BluGenieFirewallProfileStatus](/blugenie/full-function-list/update-blugeniefirewallprofilestatus)
* [Update-BluGenieSysinternals](/blugenie/full-function-list/update-blugeniesysinternals)
* [Update-Sqlite](/blugenie/full-function-list/update-sqlite)
* [Write-BluGenieVerboseMsg](/blugenie/full-function-list/write-blugenieverbosemsg)


# Add-BluGenieFirewallRule

﻿

### Add-BluGenieFirewallRule <a href="#add-blugeniefirewallrule" id="add-blugeniefirewallrule"></a>

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

Add Windows Firewall Rule(s) from a Rule configuration file

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

```
Add-BluGenieFirewallRule [[-RuleName] <String[]>] [[-Walkthrough]] [[-ReturnObject]] [[-OutUnEscapedJSON]] [<CommonParameters>]
```

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

Add Windows Firewall Rule(s) from a Rule configuration file

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

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

```
Command: Add-BluGenieFirewallRule -RulePath 'Agent_445_Inbound_TCP'
```

```
Description: This will add the Agent_445_Inbound_TCP rules from the Script Directory to the Windows Firewall Rule list.
Notes:
```

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

```
Command: Add-BluGenieFirewallRule -RulePath 'Agent_445_Inbound_TCP,Agent_445_Inbound_UDP'
```

```
Description: This will add the Agent_445_Inbound_TCP and Agent_445_Inbound_UDP rules from the Script Directory to the Windows Firewall Rule list.
Notes:
```

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

```
Command: Add-BluGenieFirewallRule -RulePath 'Agent_445_Inbound_TCP','Agent_445_Inbound_UDP'
```

```
Description: This will add the Agent_445_Inbound_TCP and Agent_445_Inbound_UDP rules from the Script Directory to the Windows Firewall Rule list.
Notes:
```

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

```
Command: Add-BluGenieFirewallRule -RuleName 'C:\Windows\Temp\BGAgent_445_Inbound_TCP.RULE'
```

```
Description: This will add the Agent_445_Inbound_TCP rules from the C:\Windows\Temp\<Rule_Config> to the Windows Firewall Rule list.
Notes:  The rules are in JSON format
```

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

```
Command: Add-BluGenieFirewallRule -RuleName 'C:\Windows\Temp\BGAgent_445_Inbound_TCP.RULE,C:\Windows\Temp\BGAgent_445_Inbound_UDP.RULE'
```

```
Description: This will add the Agent_445_Inbound_TCP and Agent_445_Inbound_UDP rules from the C:\Windows\Temp\<Rule_Config> to the Windows Firewall Rule list.
Notes:  These rules are in JSON format and also note the the rule names are in a sinlge string seperated by a comma.  The parameter can also use an array "<rule1>","<rule2>"
```

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

```
Command: Add-BluGenieFirewallRule -RuleName 'C:\Windows\Temp\BGAgent_445_Inbound_TCP.RULE','C:\Windows\Temp\BGAgent_445_Inbound_UDP.RULE'
```

```
Description: This will add the Agent_445_Inbound_TCP and Agent_445_Inbound_UDP rules from the C:\Windows\Temp\<Rule_Config> to the Windows Firewall Rule list.
Notes:  These rules are in JSON format and also note the the rule names are in an array "<rule1>","<rule2>".  The parameter can also use a single string with a comma delimiter.
```

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

```
Command: Add-BluGenieFirewallRule -Help
```

```
Description: If Help / WalkThrough is setup as a parameter, this script will be called to setup the Dynamic Help Menu if not the normal Get-Help will be called with the -Full parameter
Notes: Snippet to add to your script function (Read the #region WalkThrough (Dynamic Help)) as part of this script.  Make sure to add both the snippet and the parameter to your function.
```

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

```
Command: Add-BluGenieFirewallRule -WalkThrough
```

```
Description: If Help / WalkThrough is setup as a parameter, this script will be called to setup the Dynamic Help Menu if not the normal Get-Help will be called with the -Full parameter
Notes: Snippet to add to your script function (Read the #region WalkThrough (Dynamic Help)) as part of this script.  Make sure to add both the snippet and the parameter to your function.
```

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

```
Command: Add-BluGenieFirewallRule -RuleName 'C:\Windows\Temp\BGAgent_445_Inbound_TCP.RULE' -OutUnEscapedJSON
```

```
Description: This will add the Agent_445_Inbound_TCP rules from the C:\Windows\Temp\<Rule_Config> to the Windows Firewall Rule list.
Notes:  The OutUnEscapedJSON is used to beatify the JSON return and not Escape any Characters
```

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

```
Command: Add-BluGenieFirewallRule -RuleName 'C:\Windows\Temp\BGAgent_445_Inbound_TCP.RULE' -ReturnObject
```

```
Description: This will add the Agent_445_Inbound_TCP rules from the C:\Windows\Temp\<Rule_Config> to the Windows Firewall Rule list.
Notes:  The ReturnObject is used to return a PowerShell Object.  Normal return data is a Hash Table.
```

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

#### RuleName <a href="#rulename" id="rulename"></a>

```
-RuleName <String[]>
   Description: Full Path to a New Firewall Rule (.Rule) file.
   Notes: This can be more than one file, seperated with a comma (,) or an array of strings
   Alias: 
   ValidateSet:
   
   Required?                    false
   Position?                    1
   Default value                
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

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

```
-Walkthrough [<SwitchParameter>]
   Description:  Start the dynamic help menu system to help walk through the current command and all of the parameters
   Notes:  
   Alias: Help
   ValidateSet:
   
   Required?                    false
   Position?                    2
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### ReturnObject <a href="#returnobject" id="returnobject"></a>

```
-ReturnObject [<SwitchParameter>]
   Description: Return information as an Object
   Notes: By default the data is returned as a Hash Table
   Alias: 
   ValidateSet:
   
   Required?                    false
   Position?                    2
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### OutUnEscapedJSON <a href="#outunescapedjson" id="outunescapedjson"></a>

```
-OutUnEscapedJSON [<SwitchParameter>]
   Description: Removed UnEsacped Char from the JSON information.
   Notes: This will beautify json and clean up the formatting.
   Alias: 
   ValidateSet:
   
   Required?                    false
   Position?                    2
   Default value                False
   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).


# Clear-BlugenieMemory

﻿

### Clear-BlugenieMemory <a href="#clear-blugeniememory" id="clear-blugeniememory"></a>

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

Garbage Collection in Powershell to Speed up Scripts and help lower memory consumption

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

```
Clear-BlugenieMemory [-All] [[-SleepTimer] <Int32>] [[-LoopCount] <Int32>] [-Walkthrough] [-ReturnObject] [-OutUnEscapedJSON] [[-FormatView] <String>] [<CommonParameters>]
```

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

Garbage Collection in Powershell to Speed up Scripts and help lower memory consumption.

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

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

```
Command: Clear-BlugenieMemory
```

```
Description: Remove any garbage collected in memory
Notes:
```

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

```
Command: 1..4 | ForEach-Object -Process { Get-ChildItem -Path C:\Windows -Recurse }; CM
```

```
Description: Run Get-ChildItem 5 times to start adding artifacts to memory, then remove any garbage collected in memory using the ( CM ) alias.
Notes:
```

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

```
Command: Clear-BlugenieMemory -Help
```

```
Description: Call Help Information
Notes: If Help / WalkThrough is setup as a parameter, this script will be called to setup the Dynamic Help Menu if not the normal Get-Help will be called with the -Full parameter
```

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

```
Command: Clear-BlugenieMemory -WalkThrough
```

```
Description: Call Help Information [2]
Notes: If Help / WalkThrough is setup as a parameter, this script will be called to setup the Dynamic Help Menu if not the normal Get-Help will be called with the -Full parameter
```

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

```
Command: Clear-BlugenieMemory -OutUnEscapedJSON
```

```
Description: <command_here> and Return Output as UnEscaped JSON format
Notes:  The OutUnEscapedJSON is used to beatify the JSON return and not Escape any Characters.  Normal return data is a Hash Table.
```

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

```
Command: Clear-BlugenieMemory -ReturnObject
```

```
Description: <command_here> and Return Output an Object
Notes:  The ReturnObject is used to return a PowerShell Object.  Normal return data is a Hash Table.
```

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

#### All <a href="#all" id="all"></a>

```
-All [<SwitchParameter>]
   Description:  Clear the Console Screen, and any variables that might be holding a lot of data
   Notes: Variables that are cleared of data are ($StackTrace, Error)
   Alias: Help
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### SleepTimer <a href="#sleeptimer" id="sleeptimer"></a>

```
-SleepTimer <Int32>
   
   Required?                    false
   Position?                    1
   Default value                1
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### LoopCount <a href="#loopcount" id="loopcount"></a>

```
-LoopCount <Int32>
   
   Required?                    false
   Position?                    2
   Default value                1
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

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

```
-Walkthrough [<SwitchParameter>]
   Description:  Start the dynamic help menu system to help walk through the current command and all of the parameters
   Notes:  
   Alias: Help
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### ReturnObject <a href="#returnobject" id="returnobject"></a>

```
-ReturnObject [<SwitchParameter>]
   Description: Return information as an Object
   Notes: By default the data is returned as a Hash Table
   Alias: 
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                True
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### OutUnEscapedJSON <a href="#outunescapedjson" id="outunescapedjson"></a>

```
-OutUnEscapedJSON [<SwitchParameter>]
   Description: Remove UnEsacped Char from the JSON information.
   Notes: This will beautify json and clean up the formatting.
   Alias: 
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### FormatView <a href="#formatview" id="formatview"></a>

```
-FormatView <String>
   
   Required?                    false
   Position?                    3
   Default value                None
   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).


# Connect-BluGenieToSystem

﻿

### Connect-BluGenieToSystem <a href="#connect-blugenietosystem" id="connect-blugenietosystem"></a>

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

Connect-BluGenieToSystem will spawn a remote session into the computer you specify

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

```
Connect-BluGenieToSystem [[-ComputerName] <String[]>] [-Walkthrough] [-Force] [-CopyModules] [-SystemtModulePath] [<CommonParameters>]
```

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

Connect-BluGenieToSystem is a trouble shooting process to spawn a remote session into the computer(s) you specify. You can also send the BluGenie Module, Service, and Tools to any of the rolling remote system directories&#x20;

&#x20;       \- $env:ProgramFiles\BluGenie (This is the Default Path)&#x20;

&#x20;       \- $env:ProgramFiles\WindowsPowerShell\ModuleSource

Note: When you copy the tools BluGenie will not Auto Load. It was designed to force an Import

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

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

```
Connect-BluGenieToSystem -ComputerName 10.20.136.52
```

```
This will try and resolve the IP to a Domain name, test to see if the system is online, and then spawn a remote session into the system
```

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

```
Connect-BluGenieToSystem -ComputerName TestPC05
```

```
This will test to see if the system is online, and then spawn a remote session into the system
```

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

#### ComputerName <a href="#computername" id="computername"></a>

```
-ComputerName <String[]>
   Description: Computer name or IP Address of the remote system.
   Notes: This can be an Array of systems.  All Systems will process in an asynchronous order and all connections will be minimized at start.
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    1
   Default value                
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

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

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

#### Force <a href="#force" id="force"></a>

```
-Force [<SwitchParameter>]
   Description: Do not test the connect to the computer, just execute the connection process
   Notes:
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### CopyModules <a href="#copymodules" id="copymodules"></a>

```
-CopyModules [<SwitchParameter>]
   Description: Copy the BluGenie Module content to the remote host over WinRM.  This will not use SMB.
   Notes: Default path is $env:\ProgramFiles\BluGenie
   
           If the default path is set you can run Import-Module 'C:\Program Files\BluGenie' to load the module
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### SystemtModulePath <a href="#systemtmodulepath" id="systemtmodulepath"></a>

```
-SystemtModulePath [<SwitchParameter>]
   Description: When Copying the BluGenie Module content set the save path to the default Windows PowerShell Module directory
   Notes: Path is $env:\ProgramFiles\WindowsPowerShell\Modules\BluGenie.
   
           If this path is set you can run Import-Module BluGenie without having to set a Module path
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   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).


# Convert-BluGenieSID2UserName

﻿

### Convert-BluGenieSID2UserName <a href="#convert-blugeniesid2username" id="convert-blugeniesid2username"></a>

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

Convert Security ID (SID) to UserName

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

```
Convert-BluGenieSID2UserName [[-SID] <String>] [[-Walkthrough]] [<CommonParameters>]
```

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

Convert Security ID (SID) to UserName

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

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

```
Convert-BluGenieSID2UserName -SID S-1-5-21-544048806-3957405606-1151431920-500
```

```
This will return user 'Administrator' for the Security ID (SID)
```

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

#### SID <a href="#sid" id="sid"></a>

```
-SID <String>
   Security ID (SID) to be converted to UserName
   
   <Type>String<Type>
   
   Required?                    false
   Position?                    1
   Default value                
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

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

```
-Walkthrough [<SwitchParameter>]
   
   Required?                    false
   Position?                    2
   Default value                False
   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).


# Convert-BluGenieSize

﻿

### Convert-BluGenieSize <a href="#convert-blugeniesize" id="convert-blugeniesize"></a>

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

convert a value from Bytes, KB, MB, GB, TB to \[TB/GB/MB/KB/Bytes]

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

```
Convert-BluGenieSize [-Value] <Double> [-InputType <String>] [-OutputType <String>] [-Precision <Int32>] [-Walkthrough] [-ReturnObject] [-OutUnEscapedJSON] [-FormatView <String>] [<CommonParameters>]
```

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

convert a value from Bytes, KB, MB, GB, TB to \[TB/GB/MB/KB/Bytes]

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

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

```
```

```
Description:
Notes:
```

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

```
```

```
Description:
Notes:
```

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

```
Command: Convert-BluGenieSize -Help
```

```
Description: Call Help Information
Notes: If Help / WalkThrough is setup as a parameter, this script will be called to setup the Dynamic Help Menu if not the normal Get-Help will be called with the -Full parameter
```

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

```
Command: Convert-BluGenieSize -WalkThrough
```

```
Description: Call Help Information [2]
Notes: If Help / WalkThrough is setup as a parameter, this script will be called to setup the Dynamic Help Menu if not the normal Get-Help will be called with the -Full parameter
```

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

```
Command: Convert-BluGenieSize -OutUnEscapedJSON
```

```
Description: <command_here> and Return Output as UnEscaped JSON format
Notes:  The OutUnEscapedJSON is used to beatify the JSON return and not Escape any Characters.  Normal return data is a Hash Table.
```

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

```
Command: Convert-BluGenieSize -ReturnObject
```

```
Description: <command_here> and Return Output an Object
Notes:  The ReturnObject is used to return a PowerShell Object.  Normal return data is a Hash Table.
```

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

#### Value <a href="#value" id="value"></a>

```
-Value <Double>
   Description: The Size value to be converted
   Notes: 
   Alias:
   ValidateSet:
   
   Required?                    true
   Position?                    1
   Default value                0
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### InputType <a href="#inputtype" id="inputtype"></a>

```
-InputType <String>
   Description: Source Size Type
   Notes: Default is KB
   Alias:
   ValidateSet: 'Bytes','KB','MB','GB','TB'
   
   Required?                    false
   Position?                    named
   Default value                KB
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### OutputType <a href="#outputtype" id="outputtype"></a>

```
-OutputType <String>
   Description: Destination Size Type
   Notes: Default is MB
   Alias:
   ValidateSet: 'Bytes','KB','MB','GB','TB'
   
   Required?                    false
   Position?                    named
   Default value                MB
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### Precision <a href="#precision" id="precision"></a>

```
-Precision <Int32>
   Description: Return the value of digits after the dot/decimal point
   Notes: Default is 2
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                2
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

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

```
-Walkthrough [<SwitchParameter>]
   Description:  Start the dynamic help menu system to help walk through the current command and all of the parameters
   Notes:  
   Alias: Help
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### ReturnObject <a href="#returnobject" id="returnobject"></a>

```
-ReturnObject [<SwitchParameter>]
   Description: Return information as an Object
   Notes: By default the data is returned as a Hash Table
   Alias: 
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                True
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### OutUnEscapedJSON <a href="#outunescapedjson" id="outunescapedjson"></a>

```
-OutUnEscapedJSON [<SwitchParameter>]
   Description: Remove UnEsacped Char from the JSON information.
   Notes: This will beautify json and clean up the formatting.
   Alias: 
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### FormatView <a href="#formatview" id="formatview"></a>

```
-FormatView <String>
   
   Required?                    false
   Position?                    named
   Default value                None
   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).


# Convert-BluGenieUserName2SID

﻿

### Convert-BluGenieUserName2SID <a href="#convert-blugenieusername2sid" id="convert-blugenieusername2sid"></a>

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

Convert UserName to Security ID (SID)

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

```
Convert-BluGenieUserName2SID [[-UserName] <String>] [[-Walkthrough]] [<CommonParameters>]
```

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

Convert UserName to Security ID (SID)

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

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

```
Convert-BluGenieUserName2SID -UserName Administrator
```

```
This will return Security ID (SID) for the user 'Administrator'
```

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

#### UserName <a href="#username" id="username"></a>

```
-UserName <String>
   UserName to be converted to Security ID (SID)
   
   <Type>String<Type>
   
   Required?                    false
   Position?                    1
   Default value                
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

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

```
-Walkthrough [<SwitchParameter>]
   
   Required?                    false
   Position?                    2
   Default value                False
   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).


# Convert-BluGenieUTCtoLocal

﻿

### Convert-BluGenieUTCtoLocal <a href="#convert-blugenieutctolocal" id="convert-blugenieutctolocal"></a>

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

Convert  UTC Data Information to Local Time

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

Convert-BluGenieUTCtoLocal \[\[-UTCTime] ]

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

Convert  UTC Data Information to Local Time

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

```
```

```
```

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

#### UTCTime <a href="#utctime" id="utctime"></a>

```
-UTCTime <string>
   
   Required?                    false
   Position?                    0
   Accept pipeline input?       false
   Parameter set name           (All)
   Aliases                      None
   Dynamic?                     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).


# ConvertFrom-Yaml

﻿

### ConvertFrom-Yaml <a href="#convertfrom-yaml" id="convertfrom-yaml"></a>

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

Convert a Yaml Formatted String/Files to a \[PSCustomObject]

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

ConvertFrom-Yaml \[\[-Yaml] ] \[-AllDocuments] \[-Ordered] \[-UseMergingParser] \[\<CommonParameters>]

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

Convert a Yaml Formatted String/Files to a \[PSCustomObject]

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

```
```

```
```

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

#### AllDocuments <a href="#alldocuments" id="alldocuments"></a>

```
-AllDocuments
   
   Required?                    false
   Position?                    Named
   Accept pipeline input?       false
   Parameter set name           (All)
   Aliases                      None
   Dynamic?                     false
```

#### Ordered <a href="#ordered" id="ordered"></a>

```
-Ordered
   
   Required?                    false
   Position?                    Named
   Accept pipeline input?       false
   Parameter set name           (All)
   Aliases                      None
   Dynamic?                     false
```

#### UseMergingParser <a href="#usemergingparser" id="usemergingparser"></a>

```
-UseMergingParser
   
   Required?                    false
   Position?                    Named
   Accept pipeline input?       false
   Parameter set name           (All)
   Aliases                      None
   Dynamic?                     false
```

#### Yaml <a href="#yaml" id="yaml"></a>

```
-Yaml <string>
   
   Required?                    false
   Position?                    0
   Accept pipeline input?       true (ByValue)
   Parameter set name           (All)
   Aliases                      None
   Dynamic?                     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).


# ConvertTo-BluGenieDate

## ConvertTo-BluGenieDate <a href="#convertto-blugeniedate" id="convertto-blugeniedate"></a>

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

Helper function for AD Properties

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

ConvertTo-BluGenieDate \[\[-accountExpires] ]

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

Helper function for AD Properties

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

#### &#x20;<a href="#section" id="section"></a>

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

#### accountExpires <a href="#accountexpires" id="accountexpires"></a>

```
-accountExpires <Object>
   
   Required?                    false
   Position?                    0
   Accept pipeline input?       false
   Parameter set name           (All)
   Aliases                      None
   Dynamic?                     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).


# ConvertTo-Yaml

## ConvertTo-Yaml <a href="#convertto-yaml" id="convertto-yaml"></a>

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

Convert \[PSCustomObject] to a YAML format

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

ConvertTo-Yaml \[\[-Data] ] \[-OutFile ] \[-Options ] \[-Force] \[]

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

Convert \[PSCustomObject] to a YAML format

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

#### &#x20;<a href="#section" id="section"></a>

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

#### Data <a href="#data" id="data"></a>

```
-Data <Object>
   
   Required?                    false
   Position?                    0
   Accept pipeline input?       true (ByValue)
   Parameter set name           (All)
   Aliases                      None
   Dynamic?                     false
```

#### Force <a href="#force" id="force"></a>

```
-Force
   
   Required?                    false
   Position?                    Named
   Accept pipeline input?       false
   Parameter set name           (All)
   Aliases                      None
   Dynamic?                     false
```

#### JsonCompatible <a href="#jsoncompatible" id="jsoncompatible"></a>

```
-JsonCompatible
   
   Required?                    false
   Position?                    Named
   Accept pipeline input?       false
   Parameter set name           NoOptions
   Aliases                      None
   Dynamic?                     false
```

#### Options <a href="#options" id="options"></a>

```
-Options <SerializationOptions>
   
   Required?                    false
   Position?                    Named
   Accept pipeline input?       false
   Parameter set name           Options
   Aliases                      None
   Dynamic?                     false
```

#### OutFile <a href="#outfile" id="outfile"></a>

```
-OutFile <string>
   
   Required?                    false
   Position?                    Named
   Accept pipeline input?       false
   Parameter set name           (All)
   Aliases                      None
   Dynamic?                     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).


# Disable-BluGenieAllFirewallRules

﻿

### Disable-BluGenieAllFirewallRules <a href="#disable-blugenieallfirewallrules" id="disable-blugenieallfirewallrules"></a>

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

Disable Firewall Rule(s)

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

```
Disable-BluGenieAllFirewallRules [[-Force]] [[-Walkthrough]] [[-ReturnObject]] [[-OutUnEscapedJSON]] [<CommonParameters>]
```

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

Disable Firewall Rule(s) without removing them and backup the data to (HKEY\_LOCAL\_MACHINE\SOFTWARE\BluGenie\FirewallRules).

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

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

```
Command: Disable-BluGenieAllFirewallRules
```

```
Description: Disable all ( Enabled ) Windows Firewall Rules
Notes: If the (HKEY_LOCAL_MACHINE\SOFTWARE\BluGenie\FirewallRules[DisabledFWRFlag]) key exists, the process will be skipped
```

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

```
Command: Disable-BluGenieAllFirewallRules -Force
```

```
Description: Forcefully disable all ( Enabled ) Windows Firewall Rules
Notes: This will bypass the (HKEY_LOCAL_MACHINE\SOFTWARE\BluGenie\FirewallRules[DisabledFWRFlag]) key.
```

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

```
Command: Disable-BluGenieAllFirewallRules -Help
```

```
Description: Call Help Information
Notes: If Help / WalkThrough is setup as a parameter, this script will be called to setup the Dynamic Help Menu if not the normal Get-Help will be called with the -Full parameter
```

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

```
Command: Disable-BluGenieAllFirewallRules -WalkThrough
```

```
Description: Call Help Information
Notes: If Help / WalkThrough is setup as a parameter, this script will be called to setup the Dynamic Help Menu if not the normal Get-Help will be called with the -Full parameter
```

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

```
Command: Disable-BluGenieAllFirewallRules -OutUnEscapedJSON
```

```
Description: Disable all ( Enabled ) Windows Firewall Rules.  Return Output as UnEscaped JSON
Notes:  The OutUnEscapedJSON is used to beatify the JSON return and not Escape any Characters
```

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

```
Command: Disable-BluGenieAllFirewallRules -ReturnObject
```

```
Description: Disable all ( Enabled ) Windows Firewall Rules.  Return Output as Objects
Notes:  The ReturnObject is used to return a PowerShell Object.  Normal return data is a Hash Table.
```

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

#### Force <a href="#force" id="force"></a>

```
-Force [<SwitchParameter>]
   Description: Force will override the default flag, which will allow the process to run even though the (HKEY_LOCAL_MACHINE\SOFTWARE\BluGenie\FirewallRules[DisabledFWRFlag]) key exists.
   Notes:  This will not remove the (HKEY_LOCAL_MACHINE\SOFTWARE\BluGenie\FirewallRules[DisabledFWRFlag]) flag.
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    1
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

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

```
-Walkthrough [<SwitchParameter>]
   Description:  Start the dynamic help menu system to help walk through the current command and all of the parameters
   Notes:  
   Alias: Help
   ValidateSet:
   
   Required?                    false
   Position?                    3
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### ReturnObject <a href="#returnobject" id="returnobject"></a>

```
-ReturnObject [<SwitchParameter>]
   Description: Return information as an Object
   Notes: By default the data is returned as a Hash Table
   Alias: 
   ValidateSet:
   
   Required?                    false
   Position?                    4
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### OutUnEscapedJSON <a href="#outunescapedjson" id="outunescapedjson"></a>

```
-OutUnEscapedJSON [<SwitchParameter>]
   Description: Removed UnEsacped Char from the JSON information.
   Notes: This will beautify json and clean up the formatting.
   Alias: 
   ValidateSet:
   
   Required?                    false
   Position?                    5
   Default value                False
   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).


# Disable-BluGenieFirewallRule

﻿

### Disable-BluGenieFirewallRule <a href="#disable-blugeniefirewallrule" id="disable-blugeniefirewallrule"></a>

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

Disable Firewall Rule(s) without removing them

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

```
Disable-BluGenieFirewallRule [[-RuleName] <String[]>] [[-Walkthrough]] [[-ReturnObject]] [[-OutUnEscapedJSON]] [<CommonParameters>]
```

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

Disable Firewall Rule(s) without removing them

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

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

```
Command: Disable-BluGenieFirewallRule -Name 'Agent_445_Inbound_TCP,Agent_445_Inbound_UDP'
```

```
Description: This will disable the specific Windows Firewall Rule(s)
Notes: Firewall rules are set as a sinlge line separated by a comma, set as an array is supported as well
```

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

```
Command: Disable-BluGenieFirewallRule -Name 'Agent_445_Inbound_TCP','Agent_445_Inbound_UDP'
```

```
Description: This will disable the specific Windows Firewall Rule(s)
Notes: Firewall rules are set as an array, single line separated by a comma is supported as well
```

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

```
Command: Disable-BluGenieFirewallRule -Help
```

```
Description: If Help / WalkThrough is setup as a parameter, this script will be called to setup the Dynamic Help Menu if not the normal Get-Help will be called with the -Full parameter
Notes:
```

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

```
Command: Disable-BluGenieFirewallRule -WalkThrough
```

```
Description: If Help / WalkThrough is setup as a parameter, this script will be called to setup the Dynamic Help Menu if not the normal Get-Help will be called with the -Full parameter
Notes:
```

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

```
Command: Disable-BluGenieFirewallRule -Name 'Agent_445_Inbound_TCP','Agent_445_Inbound_UDP' -OutUnEscapedJSON
```

```
Description: This will disable the specific Windows Firewall Rule(s) and display output in JSON format
Notes:  The OutUnEscapedJSON is used to beatify the JSON return and not Escape any Characters
```

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

```
Command: Disable-BluGenieFirewallRule -Name 'Agent_445_Inbound_TCP','Agent_445_Inbound_UDP' -ReturnObject
```

```
Description: This will disable the specific Windows Firewall Rule(s) and display output as PowerShell Objects
Notes:  The ReturnObject is used to return a PowerShell Object.  Normal return data is a Hash Table.
```

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

#### RuleName <a href="#rulename" id="rulename"></a>

```
-RuleName <String[]>
   
   Required?                    false
   Position?                    1
   Default value                
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

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

```
-Walkthrough [<SwitchParameter>]
   Description:  Start the dynamic help menu system to help walk through the current command and all of the parameters
   Notes:  
   Alias: Help
   ValidateSet:
   
   Required?                    false
   Position?                    3
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### ReturnObject <a href="#returnobject" id="returnobject"></a>

```
-ReturnObject [<SwitchParameter>]
   Description: Return information as an Object
   Notes: By default the data is returned as a Hash Table
   Alias: 
   ValidateSet:
   
   Required?                    false
   Position?                    2
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### OutUnEscapedJSON <a href="#outunescapedjson" id="outunescapedjson"></a>

```
-OutUnEscapedJSON [<SwitchParameter>]
   Description: Removed UnEsacped Char from the JSON information.
   Notes: This will beautify json and clean up the formatting.
   Alias: 
   ValidateSet:
   
   Required?                    false
   Position?                    2
   Default value                False
   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).


# Enable-BluGenieAllFirewallRules

﻿

### Enable-BluGenieAllFirewallRules <a href="#enable-blugenieallfirewallrules" id="enable-blugenieallfirewallrules"></a>

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

Enable Firewall Rule(s)

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

```
Enable-BluGenieAllFirewallRules [[-Walkthrough]] [[-ReturnObject]] [[-OutUnEscapedJSON]] [<CommonParameters>]
```

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

Enable Firewall Rule(s) that have been posted to (HKEY\_LOCAL\_MACHINE\SOFTWARE\BluGenie\FirewallRules).

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

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

```
Command: Enable-BluGenieAllFirewallRules
```

```
Description: This will Enable all Windows Firewall Rules that have been posted to (HKEY_LOCAL_MACHINE\SOFTWARE\BluGenie\FirewallRules).
Notes: The (HKEY_LOCAL_MACHINE\SOFTWARE\BluGenie\FirewallRules[DisabledFWRFlag]) Registry key Flag will also be removed
```

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

```
Command: Enable-BluGenieAllFirewallRules -Help
```

```
Description: If Help / WalkThrough is setup as a parameter, this script will be called to setup the Dynamic Help Menu if not the normal Get-Help will be called with the -Full parameter
Notes:
```

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

```
Command: Enable-BluGenieAllFirewallRules -WalkThrough
```

```
Description: If Help / WalkThrough is setup as a parameter, this script will be called to setup the Dynamic Help Menu if not the normal Get-Help will be called with the -Full parameter
Notes:
```

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

```
Command: Enable-BluGenieAllFirewallRules -OutUnEscapedJSON
```

```
Description: The OutUnEscapedJSON is used to beatify the JSON return and not Escape any Characters
Notes:
```

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

```
Command: Enable-BluGenieAllFirewallRules -ReturnObject
```

```
Description: The ReturnObject is used to return a PowerShell Object.  Normal return data is a Hash Table.
Notes:
```

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

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

```
-Walkthrough [<SwitchParameter>]
   Description:  Start the dynamic help menu system to help walk through the current command and all of the parameters
   Notes:  
   Alias: Help
   ValidateSet:
   
   Required?                    false
   Position?                    1
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### ReturnObject <a href="#returnobject" id="returnobject"></a>

```
-ReturnObject [<SwitchParameter>]
   Description: Return information as an Object
   Notes: By default the data is returned as a Hash Table
   Alias: 
   ValidateSet:
   
   Required?                    false
   Position?                    2
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### OutUnEscapedJSON <a href="#outunescapedjson" id="outunescapedjson"></a>

```
-OutUnEscapedJSON [<SwitchParameter>]
   Description: Removed UnEsacped Char from the JSON information.
   Notes: This will beautify json and clean up the formatting.
   Alias: 
   ValidateSet:
   
   Required?                    false
   Position?                    3
   Default value                False
   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).


# Enable-BluGenieFirewallRule

﻿

### Enable-BluGenieFirewallRule <a href="#enable-blugeniefirewallrule" id="enable-blugeniefirewallrule"></a>

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

Enable Firewall Rule(s)

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

```
Enable-BluGenieFirewallRule [[-RuleName] <String[]>] [[-Walkthrough]] [[-ReturnObject]] [[-OutUnEscapedJSON]] [<CommonParameters>]
```

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

Enable Firewall Rule(s)

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

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

```
Command: Enable-BluGenieFirewallRule -Name Agent_445_Inbound_TCP
```

```
Description: This will enable the firewall rule Agent_445_Inbound_TCP
Notes:
```

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

```
Command: Enable-BluGenieFirewallRule -Name 'Agent_445_Inbound_TCP,Agent_445_Inbound_UDP'
```

```
Description: This will enable the firewall rule Agent_445_Inbound_TCP
Notes: The rules are in a String format using a comma delimiter.  You can also use an array.
```

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

```
Command: Enable-BluGenieFirewallRule -Name 'Agent_445_Inbound_TCP','Agent_445_Inbound_UDP'
```

```
Description: This will enable the firewall rule Agent_445_Inbound_TCP
Notes: The rules are in an Array format.  You can also use a String format using a comma delimiter
```

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

```
Command: Enable-BluGenieFirewallRule -Help
```

```
Description: If Help / WalkThrough is setup as a parameter, this script will be called to setup the Dynamic Help Menu if not the normal Get-Help will be called with the -Full parameter
Notes:
```

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

```
Command: Enable-BluGenieFirewallRule -WalkThrough
```

```
Description: If Help / WalkThrough is setup as a parameter, this script will be called to setup the Dynamic Help Menu if not the normal Get-Help will be called with the -Full parameter
Notes:
```

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

```
Command: Enable-BluGenieFirewallRule -Name Agent_445_Inbound_TCP -OutUnEscapedJSON
```

```
Description: This will enable the firewall rule Agent_445_Inbound_TCP
Notes: The OutUnEscapedJSON is used to beatify the JSON return and not Escape any Characters
```

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

```
Command: Enable-BluGenieFirewallRule -Name Agent_445_Inbound_TCP -ReturnObject
```

```
Description: This will enable the firewall rule Agent_445_Inbound_TCP
Notes: The ReturnObject is used to return a PowerShell Object.  Normal return data is a Hash Table.
```

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

#### RuleName <a href="#rulename" id="rulename"></a>

```
-RuleName <String[]>
   Description: The name of the Firewall Rule(s) to be enable
   Notes: Can be a sinlge rule, multiple rules broken up by a comma, or an array of rule names
   Alias: Name
   ValidateSet:
   
   Required?                    false
   Position?                    1
   Default value                
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

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

```
-Walkthrough [<SwitchParameter>]
   Description:  Start the dynamic help menu system to help walk through the current command and all of the parameters
   Notes:  
   Alias: Help
   ValidateSet:
   
   Required?                    false
   Position?                    2
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### ReturnObject <a href="#returnobject" id="returnobject"></a>

```
-ReturnObject [<SwitchParameter>]
   Description: Return information as an Object
   Notes: By default the data is returned as a Hash Table
   Alias: 
   ValidateSet:
   
   Required?                    false
   Position?                    3
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### OutUnEscapedJSON <a href="#outunescapedjson" id="outunescapedjson"></a>

```
-OutUnEscapedJSON [<SwitchParameter>]
   Description: Removed UnEsacped Char from the JSON information.
   Notes: This will beautify json and clean up the formatting.
   Alias: 
   ValidateSet:
   
   Required?                    false
   Position?                    4
   Default value                False
   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).


# Enable-BluGenieWinRMoverWMI

﻿

### Enable-BluGenieWinRMoverWMI <a href="#enable-blugeniewinrmoverwmi" id="enable-blugeniewinrmoverwmi"></a>

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

Enable-BluGenieWinRMoverWMI will try and connect to a remote host and enable WinRM

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

```
Enable-BluGenieWinRMoverWMI [[-ComputerName] <String>] [-looptimer <Int32>] [-termloopcounter <Int32>] [-MaxConcurrentUsers <Int32>] [-MaxProcessesPerShell <Int32>] [-MaxMemoryPerShellMB <Int32>] 
[-MaxShellsPerUser <Int32>] [-MaxShellRunTime <Int32>] [-SetMaxValues] [-SetValues] [-ReturnDetails] [-Walkthrough] [-ReturnObject] [-OutUnEscapedJSON] [-FormatView <String>] [<CommonParameters>]
```

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

Enable-BluGenieWinRMoverWMI will try and connect to a remote host and enable WinRM. The Service, Firewall, and Configuration will be enabled.

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

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

```
Command: Enable-BluGenieWinRMoverWMI -ComputerName [Computer Name]
```

```
Description: This will enable WinRM over WMI
Notes:
```

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

```
Command: Enable-BluGenieWinRMoverWMI -Help
```

```
Description: Call Help Information
Notes: If Help / WalkThrough is setup as a parameter, this script will be called to setup the Dynamic Help Menu if not the normal 
         Get-Help will be called with the -Full parameter
```

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

```
Command: Enable-BluGenieWinRMoverWMI -WalkThrough
```

```
Description: Call Help Information [2]
Notes: If Help / WalkThrough is setup as a parameter, this script will be called to setup the Dynamic Help Menu if not the normal 
         Get-Help will be called with the -Full parameter
```

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

```
Command: Enable-BluGenieWinRMoverWMI -OutUnEscapedJSON
```

```
Description: Enable-BluGenieWinRMoverWMI and Return Output as UnEscaped JSON format
Notes:  The OutUnEscapedJSON is used to beatify the JSON return and not Escape any Characters.  Normal return data is a Hash Table.
```

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

```
Command: Enable-BluGenieWinRMoverWMI -ReturnObject
```

```
Description: Enable-BluGenieWinRMoverWMI and Return Output an Object
Notes:  The ReturnObject is used to return a PowerShell Object.  Normal return data is a Hash Table.
```

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

```
Command: Enable-BluGenieWinRMoverWMI -ReturnObject -FormatView JSON
```

```
Description: Enable-BluGenieWinRMoverWMI and Return Object formatted in a JSON view
Notes:  The ReturnObject is used to return a PowerShell Object.  Normal return data is a Hash Table.
```

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

```
Command: Enable-BluGenieWinRMoverWMI -ReturnObject -FormatView Custom
```

```
Description: Enable-BluGenieWinRMoverWMI and Return Object formatted in a PSCustom view
Notes:  Format-Custom is designed to display views that are not just tables or just lists. You can use the views defined in the 
          *format.PS1XML files in the PowerShell directory, or you can create your own views in new PS1XML files and use the 
          Update-FormatData cmdlet to add them to PowerShell.
```

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

#### ComputerName <a href="#computername" id="computername"></a>

```
-ComputerName <String>
   Description: Computer name of the remote host
   Notes:  
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    1
   Default value                
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### looptimer <a href="#looptimer" id="looptimer"></a>

```
-looptimer <Int32>
   Description: How long to wait before processing another loop
   Notes:  Default 5 seconds
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                5
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### termloopcounter <a href="#termloopcounter" id="termloopcounter"></a>

```
-termloopcounter <Int32>
   Description: How many times the process should loop before exiting
   Notes:  Default 6 times
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                6
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### MaxConcurrentUsers <a href="#maxconcurrentusers" id="maxconcurrentusers"></a>

```
-MaxConcurrentUsers <Int32>
   Description: Set WMI value for MaxConcurrentUsers
   Notes:  Default 25
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                25
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### MaxProcessesPerShell <a href="#maxprocessespershell" id="maxprocessespershell"></a>

```
-MaxProcessesPerShell <Int32>
   Description: Set WMI value for MaxConcurrentUsers
   Notes:  Default 100
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                100
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### MaxMemoryPerShellMB <a href="#maxmemorypershellmb" id="maxmemorypershellmb"></a>

```
-MaxMemoryPerShellMB <Int32>
   Description: Set WMI value for MaxMemoryPerShellMB
   Notes:  Default 1024
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                1024
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### MaxShellsPerUser <a href="#maxshellsperuser" id="maxshellsperuser"></a>

```
-MaxShellsPerUser <Int32>
   Description: Set WMI value for MaxShellsPerUser
   Notes:  Default 30
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                30
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### MaxShellRunTime <a href="#maxshellruntime" id="maxshellruntime"></a>

```
-MaxShellRunTime <Int32>
   Description: Set WMI value for MaxShellRunTime
   Notes:  Default 2147483647 for PowerShell 3.0 and above
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                2147483647
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### SetMaxValues <a href="#setmaxvalues" id="setmaxvalues"></a>

```
-SetMaxValues [<SwitchParameter>]
   Description: Allow for WMI value to be set to the Max Values and overwrite any parameters given.
   Notes:  
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### SetValues <a href="#setvalues" id="setvalues"></a>

```
-SetValues [<SwitchParameter>]
   Description: Allow for WMI value to be set.
   Notes:  By default this is view only
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### ReturnDetails <a href="#returndetails" id="returndetails"></a>

```
-ReturnDetails [<SwitchParameter>]
   Description: Gather more detailed information on WMI and PowerShell
   Notes:  By default the return is (True / False) for Enabled or not
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

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

```
-Walkthrough [<SwitchParameter>]
   Description:  Start the dynamic help menu system to help walk through the current command and all of the parameters
   Notes:  
   Alias: Help
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### ReturnObject <a href="#returnobject" id="returnobject"></a>

```
-ReturnObject [<SwitchParameter>]
   Description: Return information as an Object
   Notes: By default the data is returned as a Hash Table
   Alias: 
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### OutUnEscapedJSON <a href="#outunescapedjson" id="outunescapedjson"></a>

```
-OutUnEscapedJSON [<SwitchParameter>]
   Description: Remove UnEsacped Char from the JSON information.
   Notes: This will beautify json and clean up the formatting.
   Alias: 
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### FormatView <a href="#formatview" id="formatview"></a>

```
-FormatView <String>
   Description: Select which format to return the object data in.
   Notes: Default value is set to (None).  This value is only valid when using the -ReturnObject parameter
   Alias:
   ValidateSet: 'Table','Custom','CustomModified','None','JSON','OutUnEscapedJSON','CSV'
   
   Required?                    false
   Position?                    named
   Default value                Table
   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).


# Expand-BluGenieArchivePS2

﻿

### Expand-BluGenieArchivePS2 <a href="#expand-blugeniearchiveps2" id="expand-blugeniearchiveps2"></a>

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

Expand-BluGenieArchivePS2 Extracts files from a specified archive (zipped) file.

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

```
Expand-BluGenieArchivePS2 [[-Path] <String>] [[-Destination] <String>] [[-NoProgressBar]] [[-Force]] [[-ProgressOnly]] [[-NoErrorMsg]] [[-Walkthrough]] [[-ReturnObject]] [[-OutUnEscapedJSON]] [<CommonParameters>]
```

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

Expand-BluGenieArchivePS2 is a PowerShell 2.0 version of Expand-Archive which extracts files from a specified archive (zipped) file.

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

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

```
Expand-BluGenieArchivePS2 -Path C:\Source\SysinternalsSuite.zip -Destination C:\Source\SysinternalsSuite
```

```
This will extact the zip files contents to the destination directory.  If the directory doesn't exist it will be created on the fly.
~ By default this will not overwrite any files 
~ A progress bar is displayed showing the current activities, including what file is currently being extracted.
```

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

```
Expand-BluGenieArchivePS2 -Path C:\Source\SysinternalsSuite.zip -Destination C:\Source\SysinternalsSuite -ProgressOnly
```

```
This will extact the zip files contents to the destination directory.  If the directory doesn't exist it will be created on the fly.
~ By default this will not overwrite any files 
~ A progress bar is displayed showing the current activities.  However all file names are hidden from view.  Only the overall progress is shown.
```

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

```
Expand-BluGenieArchivePS2 -Path C:\Source\SysinternalsSuite.zip -Destination C:\Source\SysinternalsSuite -NoProgressBar -NoErrorMsg -Force
```

```
This will extact the zip files contents to the destination directory.  If the directory doesn't exist it will be created on the fly.
~ All extracted content with the same name as the destination direcotry content will be overwritten 
~ All progress information including error messages will be hidden
```

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

```
Expand-BluGenieArchivePS2 -Path C:\Source\SysinternalsSuite.zip -Destination C:\Source\SysinternalsSuite -NoProgressBar -NoErrorMsg -Force -ReturnObject
```

```
This will extact the zip files contents to the destination directory.  If the directory doesn't exist it will be created on the fly.
~ All extracted content with the same name as the destination direcotry content will be overwritten 
~ All progress information including error messages will be hidden
~ The Return data will be in an Object format.  $true / $false
```

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

```
Expand-BluGenieArchivePS2 -Path C:\Source\SysinternalsSuite.zip -Destination C:\Source\SysinternalsSuite -NoProgressBar -NoErrorMsg -Force -OutUnEscapedJSON
```

```
This will extact the zip files contents to the destination directory.  If the directory doesn't exist it will be created on the fly.
~ All extracted content with the same name as the destination direcotry content will be overwritten 
~ All progress information including error messages will be hidden
~ The Return data will be in a beautified json format
```

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

#### Path <a href="#path" id="path"></a>

```
-Path <String>
   The .Zip file source path
   
   <Type>String<Type>
   
   Required?                    false
   Position?                    2
   Default value                
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### Destination <a href="#destination" id="destination"></a>

```
-Destination <String>
   The Destination path
   
   <Type>String<Type>
   
   Required?                    false
   Position?                    3
   Default value                
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### NoProgressBar <a href="#noprogressbar" id="noprogressbar"></a>

```
-NoProgressBar [<SwitchParameter>]
   Do not show an active progress bar
   
   <Type>SwitchParameter<Type>
   
   Required?                    false
   Position?                    4
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### Force <a href="#force" id="force"></a>

```
-Force [<SwitchParameter>]
   Forces the file overwrite
   
   <Type>SwitchParameter<Type>
   
   Required?                    false
   Position?                    5
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### ProgressOnly <a href="#progressonly" id="progressonly"></a>

```
-ProgressOnly [<SwitchParameter>]
   Only show the progress bar, do not show the extracted content.
   
   <Type>SwitchParameter<Type>
   
   Required?                    false
   Position?                    6
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### NoErrorMsg <a href="#noerrormsg" id="noerrormsg"></a>

```
-NoErrorMsg [<SwitchParameter>]
   Do not show any pop up error messages to the screen
   
   <Type>SwitchParameter<Type>
   
   Required?                    false
   Position?                    7
   Default value                False
   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?                    8
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### ReturnObject <a href="#returnobject" id="returnobject"></a>

```
-ReturnObject [<SwitchParameter>]
   Return information as an Object.
   By default the data is returned as a Hash Table
   
   <Type>SwitchParameter<Type>
   
   Required?                    false
   Position?                    9
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### OutUnEscapedJSON <a href="#outunescapedjson" id="outunescapedjson"></a>

```
-OutUnEscapedJSON [<SwitchParameter>]
   Removed UnEsacped Char from the JSON Return.
   This will beautify json and clean up the formatting.
   
   <Type>SwitchParameter<Type>
   
   Required?                    false
   Position?                    10
   Default value                False
   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).


# Format-BluGenieEvent

﻿

### Format-BluGenieEvent <a href="#format-blugenieevent" id="format-blugenieevent"></a>

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

Format a Windows System Event Log with new properties from the Message field

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

```
Format-BluGenieEvent [[-Logname] <String>] [[-Schema] <String>] [-NoMsgPrefix] [-ClearGarbageCollecting] [-Export] [[-ExportPath] <String>] [[-ExcludeFilter] <String>] [-RemoveCache] [[-DBName] <String>] 
[[-DBTableName] <String>] [[-DBPath] <String>] [-Walkthrough] [-ReturnObject] [-OutUnEscapedJSON] [-OutYaml] [-OutJSON] [-PropsOnly] [[-EQLQuery] <String>] [[-SQLQuery] <String>] [-ForceEQLGenericQuery] [-Save] 
[[-SavePath] <String>] [[-UseInputFile] <String>] [[-MaxEvents] <Int32>] [[-ID] <String>] [[-AppendEventHash] <String>] [[-FormatView] <String>] [<CommonParameters>]
```

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

Format a Windows System Event Log with new properties from the Message field

An Event has a Message that is one big string. This function will parse that information and convert any valid line item into a new Object Property and bind it back to the original PsObject.

You can parse any property table name via PowerShell, EQL, and SQL Queries

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

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

```
Command: Get-WinEvent -filterhashtable @{logname="Microsoft-Windows-Sysmon/Operational";id=10} -MaxEvents 1 | Select-Object -Property * | Convertto-Yaml
```

```
Description: This command will show what a normal event will look like using the Get-WinEvent command
Notes: We are pulling the SysMon Operational Event Data.  This will only work if you have SysMon Events being logged
```

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

```
Command: Format-BluGenieEvent -Event "Microsoft-Windows-Sysmon/Operational" -MaxEvents 1 -ID 10 -OutYaml
```

```
Description:  This command will return an Event with new properties named with a prefix (Msg) based on what is parsed from the (Message) field of the event
Notes: The Properties property is also updated with the Names and Values of the Message field
```

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

```
Command: Format-BluGenieEvent -Event "Microsoft-Windows-Sysmon/Operational" -MaxEvents 1 -ID 10 -Schema 'C:\Source\SysMon.Schema' -OutYaml
```

```
Description: This command will return an Event with properties remapped based on the Schema file selected
Notes:
```

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

```
Command: Format-BluGenieEvent -Event "Microsoft-Windows-Sysmon/Operational" -MaxEvents 1 -ID 10 -NoMsgPrefix -OutYaml
```

```
Description: This command will return an Event with the Message Properties appended to the Original Events Property Table without a (Msg) Prefix
Notes:
```

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

```
Command: Format-BluGenieEvent -Event "Microsoft-Windows-Sysmon/Operational" -MaxEvents 10 -ID 10 -PropsOnly -ReturnObject -FormatView JSON
```

```
Description: This command will return an Events Message Properties and Values only.  All the Normal PowerShell Property Tables are removed
Notes: The return is formated as JSON which looks identical to the output needed for EQL to work.
```

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

```
Command: Format-BluGenieEvent -Event 'Microsoft-Windows-Windows Defender/Operational' -MaxEvents 10 -ID 1013 -ReturnObject -OutJSON -PropsOnly
```

```
Description: This command will return Event Properties for Windows Defender ID 1013
Notes: This shows that not all properties from the Event Message are valuable, which is why you would pull all properties for this Event ID.
```

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

```
Command: Format-BluGenieEvent -Event 'Microsoft-Windows-Windows Defender/Operational' -ID 1000 -MaxEvents 1 -ReturnObject -NoMsgPrefix
```

```
Description: This command will return all Event Properties for Windows Defender ID 1000 including the Message Properties
Notes:
```

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

```
Command: Format-BluGenieEvent -Event "Microsoft-Windows-Sysmon/Operational" -ID 10 -MaxEvents 2 -PropsOnly -ExportPath C:\Source\SysMon_PoshPull.json -OutYaml
```

```
Description: This command will export the Event Properties to a JSON file
Notes:
```

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

```
Command: Format-BluGenieEvent -Event "Microsoft-Windows-Sysmon/Operational" -ID 1 -UseInputFile C:\Windows\Temp\BGSysMonEventBackup.evtx -ReturnObject -PropsOnly
```

```
Description: This command will query a Windows Evnet Log backp file instead of the Widnows Event Log
Notes: Currently this only supports 1 Input file at a time.  You can use an backup Windows Event in EVT, EVTX, and JSON format.
```

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

```
Command: Format-BluGenieEvent -UseInputFile 'Last:' -PropsOnly -OutYaml -EQLQuery "process where process_name in ('wsl.exe')"
```

```
Description: This command will query a Windows Event Log backup file using the last saved JSON file Format-BGEvent created.
Notes:
```

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

```
Command: Format-BluGenieEvent -Event "Microsoft-Windows-Sysmon/Operational" -ID 1 -MaxEvents 1000 -PropsOnly -EQLQuery "process where process_name in ('powershell_ise.exe')" -OutYaml
```

```
Description: This command will filter 1000 SysMon Event 1 ID's and parse the return using EQL and an EQLQuery as a string
Notes:
```

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

```
Command: Format-BluGenieEvent -Event "Microsoft-Windows-Sysmon/Operational" -ID 1 -MaxEvents 1000 -PropsOnly -EQLQuery "file:C:\Source\EQLQuery_Parse_Process_Name_for_PowerShell_ise.exe.eql" -OutYaml
```

```
Description: This command will filter 1000 SysMon Event 1 ID's and parse the return using EQL and an EQLQuery from a file
Notes:
```

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

```
Command: Format-BluGenieEvent -Event "Microsoft-Windows-Sysmon/Operational" -ID 1 -MaxEvents 1000 -PropsOnly -EQLQuery "process where process_name in ('notepad++.exe')" -OutYaml -RemoveCache
```

```
Description: This command will filter 1000 SysMon Event 1 ID's and parse the return using EQL.  The search is for Notepad++.exe and all Cached .JSON files for EQL will be removed.
Notes:
```

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

```
Command: Format-BluGenieEvent -Event "Microsoft-Windows-Sysmon/Operational" ID 3 -MaxEvents 1000 -PropsOnly -EQLQuery "network where process_name == '*code.exe'"
```

```
Description: This command will filter 1000 SysMon Event 3 ID's and parse the return using EQL.  The search is for VSCode.exe and uses EQL's built in schema names
Notes:
```

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

```
Command: Format-BluGenieEvent -Event "Microsoft-Windows-Sysmon/Operational" -ID 3 -MaxEvents 1000 -PropsOnly -EQLQuery "generic where Image == '*code.exe'" -ForceEQLGenericQuery
```

```
Description: This command will filter 1000 SysMon Event 3 ID's and parse the return using EQL.  This Query will use the EQL Generic process names
Notes:
```

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

```
Command: Format-BluGenieEvent -Event "Microsoft-Windows-Sysmon/Operational" -ID 3 -MaxEvents 1000 -PropsOnly -OutYaml -EQLQuery "generic where process_name == '*code.exe'" -ForceEQLGenericQuery -Schema .\Blubin\Modules\BluGenie\Configs\Schema\SysMon_ID3.Schema
```

```
Description: This command will filter 1000 SysMon Event 3 ID's and parse the return using EQL.  This Query will use the EQL schema process names but uses the -Schema switch to remap the Properties names
Notes:
```

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

```
Command: Format-BluGenieEvent -Event "Security" -ID 4688 -MaxEvents 1000 -OutYaml -DBPath C:\Source -SQLQuery "SELECT * FROM FormatBGEvent WHERE MsgNewProcessName LIKE '%GoogleUpdate.exe'"
```

```
Description: This command will filter 1000 Security Event 4688 ID's and parse the return using SQL.  The search is for a New Process Name being created called GoogleUpdate.exe.  The SQL Query is (String Text Based) and the DB is Cached to Disk
Notes:
```

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

```
Command: Format-BluGenieEvent -Event "Security" -ID 4688 -MaxEvents 1000 -OutYaml -DBPath C:\Source -SQLQuery 'file:C:\Source\WHERE_MsgNewProcessName_LIKE_GoogleUpdate.exe.sql'
```

```
Description: This command will Run a SQL Query using a File
Notes:
```

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

```
Command: Format-BluGenieEvent -Event "Security" -ID 4688 -MaxEvents 1000 -OutYaml -SQLQuery "SELECT * FROM FormatBGEvent WHERE MsgNewProcessName LIKE '%GoogleUpdate.exe'"
```

```
Description: This command will Run a SQL Query and process the DB in Memory
Notes:
```

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

```
Command: Format-BluGenieEvent -Event "Security" -ID 4688 -MaxEvents 1000 -OutYaml -PropsOnly -SQLQuery "SELECT * FROM FormatBGEvent WHERE NewProcessName LIKE '%GoogleUpdate.exe'"
```

```
Description: This command will filter (Message Properties Only) and parse the data using a SQL Query
Notes:
```

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

```
Command: Format-BluGenieEvent -Event "Security" -ID 4688 -MaxEvents 1000 -ReturnObject -PropsOnly -SQLQuery "SELECT * FROM FormatBGEvent WHERE NewProcessName LIKE '%GoogleUpdate.exe'"
```

```
Description: This command will returned data as an Object(s) while parsing data using a SQL Query
Notes:
```

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

```
Command: Format-BluGenieEvent -Event "Security" -ID 4688 -MaxEvents 1000 -OutYaml -DBPath C:\Source -SQLQuery "SELECT * FROM FormatBGEvent WHERE MsgNewProcessName LIKE '%GoogleUpdate.exe'"
```

```
Description: This command will remove the Cached DB from the local disk after the Query
Notes:
```

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

```
Command: Format-BluGenieEvent -Help
```

```
Description: Call Help Information
Notes: If Help / WalkThrough is setup as a parameter, this script will be called to setup the Dynamic Help Menu if not the normal Get-Help will be called with the -Full parameter
```

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

```
Command: Format-BluGenieEvent -WalkThrough
```

```
Description: Call Help Information [2]
Notes: If Help / WalkThrough is setup as a parameter, this script will be called to setup the Dynamic Help Menu if not the normal Get-Help will be called with the -Full parameter
```

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

#### Logname <a href="#logname" id="logname"></a>

```
-Logname <String>
   Description: The Event Log Name
   Notes: Same to command (Get-WinEvent)
   Alias: Event
   ValidateSet:
   
   Required?                    false
   Position?                    1
   Default value                
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### Schema <a href="#schema" id="schema"></a>

```
-Schema <String>
   Description: Use a Schema file to change or remap any property name in any Windows Event your trying to Query
   Notes: Schema is in ( YAML ) Format
           Sample:
               Property_Name: New_Property_Name
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    2
   Default value                
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### NoMsgPrefix <a href="#nomsgprefix" id="nomsgprefix"></a>

```
-NoMsgPrefix [<SwitchParameter>]
   Description: By Default the Event Message content is parsed and all properties have a Prefix called (Msg).  This option will force the
   normal propery names without (Msg).
   Notes:  By forcing the default name you could possibly overwrite normal event properties with content from the message information
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### ClearGarbageCollecting <a href="#cleargarbagecollecting" id="cleargarbagecollecting"></a>

```
-ClearGarbageCollecting [<SwitchParameter>]
   Description: Garbage Collection in Powershell to Speed up Scripts and help lower memory consumption
   Notes: This is enabled by default.  To disable use -ClearGarbageCollecting:$False
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### Export <a href="#export" id="export"></a>

```
-Export [<SwitchParameter>]
   Description: Enable the Export of Filtered data for later use
   Notes:  This is automatically set to true if -EQLQuery is used.
   Alias: Sv
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### ExportPath <a href="#exportpath" id="exportpath"></a>

```
-ExportPath <String>
   Description: The Path to Export / Save parsed event data to the local disk
   Notes: Default is $env:systemdrive\Windows\Temp\BGFE_<GUID>.json.  If this is changed (Make Sure) the Ext is (.json).  There is no code
   validation on the path and filename.
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    3
   Default value                $('{0}\Windows\Temp\BGFE_{1}.json' -f $env:SystemDrive, $(New-BluGenieUID))
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### ExcludeFilter <a href="#excludefilter" id="excludefilter"></a>

```
-ExcludeFilter <String>
   Description: Use an ExcludeFilter Yaml file to remove items that you do not want to include in the Event Search.
   Notes: ExcludeFilter  is in ( YAML ) Format
           Sample:
               - Name: Image
                 Value: notepad\+\+\.exe
               - Name: Image
                 Value: NppLauncher\.exe
               - Name: Image
                 Value: eqllib\.exe
               - Name: CommandLine
                 Value: json
   Alias:
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    4
   Default value                
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### RemoveCache <a href="#removecache" id="removecache"></a>

```
-RemoveCache [<SwitchParameter>]
   Description: Remove Cache data on completion
   Notes: Cache information is removed right before the data is returned to the calling process
       Items Removed:
           - JSON Output for EQL Query
           - SQLite DB if you do not use the -DBPath = ':MEMORY:' parameter.  Note: The DB in memory is the default option for SQL
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### DBName <a href="#dbname" id="dbname"></a>

```
-DBName <String>
   Description: Database name used when parsing using SQL and Setting the DBPath to a local disk path
   Notes: The default name is "BluGenie"
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    5
   Default value                BluGenie
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### DBTableName <a href="#dbtablename" id="dbtablename"></a>

```
-DBTableName <String>
   Description: Database table name when parsing using SQL.
   Notes:  The default name is 'FormatBGEvent'
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    6
   Default value                FormatBGEvent
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### DBPath <a href="#dbpath" id="dbpath"></a>

```
-DBPath <String>
   Description: Database Path when parsing using SQL
   Notes: The default path is located in memory (:MEMORY:)
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    7
   Default value                :MEMORY:
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

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

```
-Walkthrough [<SwitchParameter>]
   Description:  Start the dynamic help menu system to help walk through the current command and all of the parameters
   Notes:
   Alias: Help
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### ReturnObject <a href="#returnobject" id="returnobject"></a>

```
-ReturnObject [<SwitchParameter>]
   Description: Return information as an Object
   Notes: By default the data is returned as a Hash Table
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### OutUnEscapedJSON <a href="#outunescapedjson" id="outunescapedjson"></a>

```
-OutUnEscapedJSON [<SwitchParameter>]
   Description: Remove UnEsacped Char from the JSON information.
   Notes: This will beautify json and clean up the formatting.
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### OutYaml <a href="#outyaml" id="outyaml"></a>

```
-OutYaml [<SwitchParameter>]
   Description: Return detailed information in Yaml Format
   Notes: Only supported in Posh 3.0 and above
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### OutJSON <a href="#outjson" id="outjson"></a>

```
-OutJSON [<SwitchParameter>]
   Description: Return detailed information in JSON Format
   Notes: Only supported in Posh 3.0 and above
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### PropsOnly <a href="#propsonly" id="propsonly"></a>

```
-PropsOnly [<SwitchParameter>]
   Description: Used to only parse and display the Properties of an Event Message field.  No other event data will be captured.
   Notes: All Event messages properties begin with a title name followed by (:).
           Example (ProcessName: PowerShell_ISE.exe)
           (ProcessName) would be the name of the Property
           (PowerShell_ISE.exe) would be the assigned value
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### EQLQuery <a href="#eqlquery" id="eqlquery"></a>

```
-EQLQuery <String>
   Description: Use EQL Queries to parse the data
   Notes: To use a file instead of a Query String Type "file:<Full_File_Path>" Example: "file:C:\Windows\Temp\Query_4689_.eql"
           file: tells the Query to grab the content from a file.  The file extention can be anything.  The file is always treated as TEXT.
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    8
   Default value                
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### SQLQuery <a href="#sqlquery" id="sqlquery"></a>

```
-SQLQuery <String>
   Description: Use SQL Queries to parse the data
   Notes: To use a file instead of a Query String Type "file:<Full_File_Path>" Example: "file:C:\Windows\Temp\Query_4689_.eql"
           file: tells the Query to grab the content from a file.  The file extention can be anything.  The file is always treated as TEXT.
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    9
   Default value                
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### ForceEQLGenericQuery <a href="#forceeqlgenericquery" id="forceeqlgenericquery"></a>

```
-ForceEQLGenericQuery [<SwitchParameter>]
   Description: Force an EQL Generic Query even if EQL has a known Schema type
   Notes: By default BG will automatically determine if EQL has a known Schema. This should be used if you are looking for SysMon Events
   that don't have tracked ID's by EQL.  Currently only ID 1, 3, 5, 7, 11, 12, 13, 14 and 15 are known SysMon EQL managed events.
   Alias: FEGQ
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### Save <a href="#save" id="save"></a>

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

#### SavePath <a href="#savepath" id="savepath"></a>

```
-SavePath <String>
   
   Required?                    false
   Position?                    10
   Default value                $('BGFE_{0}\Windows\Temp\{1}.json' -f $env:SystemDrive, $(New-BluGenieUID))
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### UseInputFile <a href="#useinputfile" id="useinputfile"></a>

```
-UseInputFile <String>
   Description: Force Query from a previously saved file and not the Windows Event Log
   Notes:  You can use JSON, EVT or EVTX files.  If you type in "Last:", this will search for the last saved
   BGFE_<GUID>.json file from the default save location $env:systemdrive\Windows\Temp
   
           o JSON files cannot be filtered with the FilterHashTable.  They can only be filtered by EQL and SQL Queries.
           o EVT & EVTX backup log files can be filtered using the FilterHashTable Query String
   Alias: FIL
   ValidateSet:
   
   Required?                    false
   Position?                    11
   Default value                
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### MaxEvents <a href="#maxevents" id="maxevents"></a>

```
-MaxEvents <Int32>
   
   Required?                    false
   Position?                    12
   Default value                0
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### ID <a href="#id" id="id"></a>

```
-ID <String>
   Description: Query for a specific Event ID
   Notes:
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    13
   Default value                
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### AppendEventHash <a href="#appendeventhash" id="appendeventhash"></a>

```
-AppendEventHash <String>
   Description: Query based on more Event Filter Hash Table information
   Notes: The Default is LogName, and ID
           Example: -AppendEventHash 'ProviderName="Application Error"; Data="iexplore.exe"'
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    14
   Default value                
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### FormatView <a href="#formatview" id="formatview"></a>

```
-FormatView <String>
   Description: Automatically format the Return Object
   Notes: Yaml is only supported in Posh 3.0 and above
   Alias:
   ValidateSet: 'Table','Custom','CustomModified','None','JSON','OutUnEscapedJSON','CSV', 'Yaml'
   
   Required?                    false
   Position?                    15
   Default value                None
   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).


# Get-BluGenieADGroupMembers

﻿Get-BluGenieADGroupMembers

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

Query Active Directory via LDAP without the need for RSAT to be installed.

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

```
Get-BluGenieADGroupMembers [[-GroupName] <String>] [[-Domain] <String>] [-FullDetails] [-UseCache] [[-CachePath] <String>] [-Walkthrough] [-ReturnObject] [-OutUnEscapedJSON] [-OutYaml] [[-FormatView] 
<String>] [<CommonParameters>]
```

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

Query Active Directory via LDAP without the need for RSAT to be installed.

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

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

```
Command: $ConsoleSystems = Get-BGADGroupMembers -GroupName S_Wrk_Posh3PlusLabSystems -ReturnObject
```

```
Description: Use this command to Query an AD Group and assign them to the BluGenie Console Systems variable
Notes:
```

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

```
Command: Get-BGADGroupMembers -GroupName S_Wrk_Posh3PlusLabSystems -ReturnObject
```

```
Description: Use the command to display a list of computers from an AD Group
Notes:
```

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

```
Command: ADGM -GroupName S_Wrk_Posh3PlusLabSystems -UseCache
```

```
Description: Use this Short-Hand Alias to create a text file with a list of computers from an AD Group
Notes:
```

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

```
Command: Get-BGADGroupMembers -GroupName S_Wrk_Posh3PlusLabSystems -UseCache -FullDetails
```

```
Description: Use this command to create a csv file with a list of computers and their AD properties (Name,SAMAccountname,DisplayName,Description,Path)
Notes:
```

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

```
Command: Get-BGADGroupMembers -GroupName S_Wrk_Posh3PlusLabSystems -OutYaml -Verbose
```

```
Description: Use this command to view a full detailed yaml report on the members of the AD Group and function details
Notes:
```

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

```
Command: Get-BGADGroupMembers -GroupName S_Wrk_Posh3PlusLabSystems -UseCache -CachePath .\Collections\S_Wrk_Posh3PlusLabSystems.txt
```

```
Description: Use this command to save the AD Group members to a specific text file.
Notes: By default the Cache location is %temp% with a BGSys_<GUID>.txt file name.
```

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

```
Command: Get-BluGenieADGroupMembers -Help
```

```
Description: Call Help Information
Notes: If Help / WalkThrough is setup as a parameter, this script will be called to setup the Dynamic Help Menu if not the normal Get-Help will be called with the -Full parameter
```

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

```
Command: Get-BluGenieADGroupMembers -WalkThrough
```

```
Description: Call Help Information [2]
Notes: If Help / WalkThrough is setup as a parameter, this script will be called to setup the Dynamic Help Menu if not the normal Get-Help will be called with the -Full parameter
```

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

```
Command: Get-BGADGroupMembers -OutUnEscapedJSON
```

```
Description: Return a detailed function report in an UnEscaped JSON format
Notes:  The OutUnEscapedJSON is used to Beautify the JSON return and not Escape any Characters.  Normal return data is a Hash Table.
```

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

```
Command: Get-BGADGroupMembers -OutYaml
```

```
Description: Return a detailed function report in YAML format
Notes:  The OutUnEscapedJSON is used to Beautify the JSON return and not Escape any Characters.  Normal return data is a Hash Table.
```

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

```
Command: Get-BGADGroupMembers -ReturnObject
```

```
Description: Return Output as a Object
Notes:  The ReturnObject is used to return a PowerShell Object.  Normal return data is a Hash Table.
       This parameter is also used with the FormatView
```

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

```
Command: Get-BluGenieADGroupMembers -ReturnObject -FormatView Yaml
```

```
Description: Output PSObject information in Yaml format
Notes:  Current formats supported by default are ('Table','Custom','CustomModified','None','JSON','OutUnEscapedJSON','CSV', 'Yaml')
       Default is set to (None) and normal PSObject.
```

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

#### GroupName <a href="#groupname" id="groupname"></a>

```
-GroupName <String>
   Description: The name of the Group you are going to do a member lookup on
   Notes: This is Mandatory.  If this option is left blank the return is Null
   Alias: GN
   ValidateSet:
   
   Required?                    false
   Position?                    1
   Default value                
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### Domain <a href="#domain" id="domain"></a>

```
-Domain <String>
   Description: The name of the Domain in which you are looking for the Group and Member information
   Notes: The default domain name is pulled from the Registry.  If this option is not set or the domain
   name is not found in the registry the return is Null
   Alias: DO
   ValidateSet:
   
   Required?                    false
   Position?                    2
   Default value                $(Get-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\History' -Name 'MachineDomain' -ErrorAction SilentlyContinue | Select-Object 
   -ExpandProperty 'MachineDomain')
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### FullDetails <a href="#fulldetails" id="fulldetails"></a>

```
-FullDetails [<SwitchParameter>]
   Description: Return a PSObject with the following values (Name, SAMAccountname, DisplayName, Description and the Path)
   Notes: The default return is a list of Names (ONLY)
   Alias: FD
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### UseCache <a href="#usecache" id="usecache"></a>

```
-UseCache [<SwitchParameter>]
   Description: Cache found objects to disk
   Notes: By default the Cache location is %SystemDrive%\Windows\Temp
   Alias: UC
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### CachePath <a href="#cachepath" id="cachepath"></a>

```
-CachePath <String>
   Description: Path to store the Cache information
   Notes: By default the Cache location is %temp% with a BGSys_<GUID>.txt file name.
               Example: C:\Users\ADMINI~1\AppData\Local\Temp\BGSys_46964-41870-29555-35418-93311.txt
   Alias: CP
   ValidateSet:
   
   Required?                    false
   Position?                    3
   Default value                $('{0}\BGSys_{1}.txt' -f $env:temp, $(New-BluGenieUID))
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

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

```
-Walkthrough [<SwitchParameter>]
   Description:  Start the dynamic help menu system to help walk through the current command and all of the parameters
   Notes:
   Alias: Help
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### ReturnObject <a href="#returnobject" id="returnobject"></a>

```
-ReturnObject [<SwitchParameter>]
   Description: Return information as an Object
   Notes: By default the data is returned as a Hash Table
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### OutUnEscapedJSON <a href="#outunescapedjson" id="outunescapedjson"></a>

```
-OutUnEscapedJSON [<SwitchParameter>]
   Description: Remove UnEsacped Char from the JSON information.
   Notes: This will beautify json and clean up the formatting.
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### OutYaml <a href="#outyaml" id="outyaml"></a>

```
-OutYaml [<SwitchParameter>]
   Description: Return detailed information in Yaml Format
   Notes: Only supported in Posh 3.0 and above
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### FormatView <a href="#formatview" id="formatview"></a>

```
-FormatView <String>
   Description: Automatically format the Return Object
   Notes: Yaml is only supported in Posh 3.0 and above
   Alias:
   ValidateSet: 'Table','Custom','CustomModified','None','JSON','OutUnEscapedJSON','CSV', 'Yaml'
   
   Required?                    false
   Position?                    4
   Default value                None
   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).


# Get-BluGenieADGroups

﻿

### Get-BluGenieADGroups <a href="#get-blugenieadgroups" id="get-blugenieadgroups"></a>

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

Query for Active Directory Groups via LDAP without the need for RSAT to be installed.

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

```
Get-BluGenieADGroups [[-GroupName] <String>] [[-Domain] <String>] [-FullDetails] [-UseCache] [[-CachePath] <String>] [[-CacheFileName] <String>] [-Walkthrough] [-ReturnObject] [-OutUnEscapedJSON] [-OutYaml] 
[[-FormatView] <String>] [<CommonParameters>]
```

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

Query for Active Directory Groups via LDAP without the need for RSAT to be installed.

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

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

```
Command: Get-BGADGroups -ReturnObject
```

```
Description: Use this command to Query AD for all Groups and return the instances as a PowerSehll object
Notes:
```

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

```
Command: Get-BGADGroups -ReturnObject -GroupName Administrator
```

```
Description: Use this command to query AD for any group with a name that matches 'Administrator'
Notes:  The GroupName property is filtered using RegEx
```

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

```
Command: Get-BGADGroups -ReturnObject -UseCache
```

```
Description: Use this command to save all found groups in AD to a file on disk
Notes: The file is saved by default to $Env:temp with a prefix of BG_ADGroups_<GUID>
```

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

```
Command: Get-BGADGroups -ReturnObject -UseCache -FormatView JSON -
```

```
Description: Use this command to save the output to JSON format
Notes: The default format is (CSV).  Options are JSON, YAML, and CSV
```

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

```
Command: Get-BGADGroups -ReturnObject -UseCache -FormatView Yaml -CachePath C:\Temp -CacheFileName ADGroupInfo
```

```
Description: Use this command to save the output as Yaml to a file located -> C:\Temp\ADGroupInfo.yaml
Notes:
```

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

```
Command: Get-BGADGroups -ReturnObject -UseCache -FullDetails
```

```
Description: Use this command to query the the full list of Group Object Properties
Notes: The default is (name, distinguishedname, and path).  The full list of Properties are as follows
       o name
       o distinguishedname
       o path
       o objectcategory
       o usnchanged
       o grouptype
       o whencreated
       o samaccountname
       o description
       o instancetype
       o adspath
       o samaccounttype
       o objectsid
       o whenchanged
       o objectguid
       o member
       o cn
       o usncreated
       o admincount
       o iscriticalsystemobject
       o objectclass
       o systemflags
       o dscorepropagationdata
```

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

```
Command: Get-BGADGroups -OutYaml -Verbose
```

```
Description: Use this command to view a full detailed yaml report on AD Groups and function details
Notes:
```

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

```
Command: Get-BluGenieADGroups -Help
```

```
Description: Call Help Information
Notes: If Help / WalkThrough is setup as a parameter, this script will be called to setup the Dynamic Help Menu if not the normal Get-Help will be called with the -Full parameter
```

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

```
Command: Get-BluGenieADGroups -WalkThrough
```

```
Description: Call Help Information [2]
Notes: If Help / WalkThrough is setup as a parameter, this script will be called to setup the Dynamic Help Menu if not the normal Get-Help will be called with the -Full parameter
```

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

```
Command: Get-BGADGroups -OutUnEscapedJSON
```

```
Description: Return a detailed function report in an UnEscaped JSON format
Notes:  The OutUnEscapedJSON is used to Beautify the JSON return and not Escape any Characters.  Normal return data is a Hash Table.
```

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

```
Command: Get-BGADGroups -OutYaml
```

```
Description: Return a detailed function report in YAML format
Notes:  The OutUnEscapedJSON is used to Beautify the JSON return and not Escape any Characters.  Normal return data is a Hash Table.
```

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

```
Command: Get-BGADGroups -ReturnObject
```

```
Description: Return Output as a Object
Notes:  The ReturnObject is used to return a PowerShell Object.  Normal return data is a Hash Table.
       This parameter is also used with the FormatView
```

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

```
Command: Get-BGADGroups -ReturnObject -FormatView Yaml
```

```
Description: Output PSObject information in Yaml format
Notes:  Current formats supported by default are ('Table','Custom','CustomModified','None','JSON','OutUnEscapedJSON','CSV', 'Yaml')
       Default is set to (None) and normal PSObject.
```

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

#### GroupName <a href="#groupname" id="groupname"></a>

```
-GroupName <String>
   Description: The name of the Group you are looking for
   Notes: This is a regex managed pattern.  The default is (.*) for all Groups
   Alias: GN
   ValidateSet:
   
   Required?                    false
   Position?                    1
   Default value                .*
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### Domain <a href="#domain" id="domain"></a>

```
-Domain <String>
   Description: The name of the Domain in which you are looking for the Group and Member information
   Notes: The default domain name is pulled from the Registry.  If this option is not set or the domain
   name is not found in the registry the return is Null
   Alias: DO
   ValidateSet:
   
   Required?                    false
   Position?                    2
   Default value                $(Get-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\History' -Name 'MachineDomain' -ErrorAction SilentlyContinue | Select-Object -ExpandProperty 
   'MachineDomain')
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### FullDetails <a href="#fulldetails" id="fulldetails"></a>

```
-FullDetails [<SwitchParameter>]
   Description: Return a PSObject with the following values (Name, SAMAccountname, DisplayName, Description and the Path)
   Notes: The default return is a list of Names (ONLY)
   Alias: FD
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### UseCache <a href="#usecache" id="usecache"></a>

```
-UseCache [<SwitchParameter>]
   Description: Cache found objects to disk
   Notes: By default the Cache location is %temp%
   Alias: UC
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### CachePath <a href="#cachepath" id="cachepath"></a>

```
-CachePath <String>
   Description: Path to store the Cache information
   Notes: By default the Cache location is %temp% with a BG_ADGroups_<GUID>.txt file name.
               Example: C:\Users\ADMINI~1\AppData\Local\Temp\BGSys_46964-41870-29555-35418-93311.txt
   Alias: CP
   ValidateSet:
   
   Required?                    false
   Position?                    3
   Default value                $env:temp
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### CacheFileName <a href="#cachefilename" id="cachefilename"></a>

```
-CacheFileName <String>
   
   Required?                    false
   Position?                    4
   Default value                $('BG_ADGroups_{0}' -f $(New-BluGenieUID))
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

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

```
-Walkthrough [<SwitchParameter>]
   Description:  Start the dynamic help menu system to help walk through the current command and all of the parameters
   Notes:
   Alias: Help
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### ReturnObject <a href="#returnobject" id="returnobject"></a>

```
-ReturnObject [<SwitchParameter>]
   Description: Return information as an Object
   Notes: By default the data is returned as a Hash Table
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### OutUnEscapedJSON <a href="#outunescapedjson" id="outunescapedjson"></a>

```
-OutUnEscapedJSON [<SwitchParameter>]
   Description: Remove UnEsacped Char from the JSON information.
   Notes: This will beautify json and clean up the formatting.
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### OutYaml <a href="#outyaml" id="outyaml"></a>

```
-OutYaml [<SwitchParameter>]
   Description: Return detailed information in Yaml Format
   Notes: Only supported in Posh 3.0 and above
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### FormatView <a href="#formatview" id="formatview"></a>

```
-FormatView <String>
   Description: Automatically format the Return Object
   Notes: Yaml is only supported in Posh 3.0 and above
   Alias:
   ValidateSet: 'Table','Custom','CustomModified','None','JSON','OutUnEscapedJSON','CSV', 'Yaml'
   
   Required?                    false
   Position?                    5
   Default value                None
   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).


# Get-BluGenieADMachineInfo

﻿

### Get-BluGenieADMachineInfo <a href="#get-blugenieadmachineinfo" id="get-blugenieadmachineinfo"></a>

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

Query Active Directory Machine Information (Without RSAT)

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

```
Get-BluGenieADMachineInfo [[-ReturnObject]] [[-Walkthrough]] [<CommonParameters>]
```

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

Query Active Directory Machine Information (Without RSAT)

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

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

```
Get-BluGenieADMachineInfo
```

```
This will return machine specific information from AD and Group Policy
The returned data will be a Hash Table
```

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

```
Get-BluGenieADMachineInfo -ReturnObject
```

```
This will return machine specific information from AD and Group Policy
The returned data will be an Object
```

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

#### ReturnObject <a href="#returnobject" id="returnobject"></a>

```
-ReturnObject [<SwitchParameter>]
   Return information as an Object.
   By default the data is returned as a Hash Table
   
   <Type>SwitchParameter<Type>
   
   Required?                    false
   Position?                    1
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

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

```
-Walkthrough [<SwitchParameter>]
   
   Required?                    false
   Position?                    4
   Default value                False
   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).


# Get-BluGenieAuditProcessTracking

﻿

### Get-BluGenieAuditProcessTracking <a href="#get-blugenieauditprocesstracking" id="get-blugenieauditprocesstracking"></a>

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

Format a System Event Log with new properties from the Message field

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

```
Get-BluGenieAuditProcessTracking [[-QueryType] <String>] [[-Algorithm] <String>] [-Signature] [-OnDisk] [-ShowAllValues] [-ClearGarbageCollecting] [-UseCache] [[-CachePath] <String>] [-RemoveCache] [[-DBName] 
<String>] [[-DBPath] <String>] [-UpdateDB] [-ForceDBUpdate] [-NewDBTable] [-Walkthrough] [-ReturnObject] [-OutUnEscapedJSON] [-OutYaml] [[-FormatView] <String>] [<CommonParameters>]
```

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

Format a System Event Log with new properties from the Message field

An Event has a Message that is one big string. The function will parse that information and convert any valid line item into a new Object Property and bind it back to the original Object.

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

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

```
Command: Get-BluGenieAuditProcessTracking
```

```
Description: This will return a Hash Table with a specific list of captured event Properties
Notes:
```

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

```
Command: Get-BluGenieAuditProcessTracking -ShowAllValues
```

```
Description: This will return a Hash Table with all captured event Properties
Notes:
```

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

```
Command: Get-BluGenieAuditProcessTracking -ReturnObject
```

```
Description: This will return a Object with a specific list of captured event Properties
Notes:
```

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

```
Command: Get-BluGenieAuditProcessTracking -QueryType OnCreated -Signature
```

```
Description: This will return a Hash Table with a specific list of captured event Properties including the Authentication Information
Notes:
```

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

```
Command: Get-BluGenieAuditProcessTracking -UseCache
```

```
Description: Cache found objects to disk to not over tax Memory resources
Notes: By default the Cache location is %SystemDrive%\Windows\Temp
```

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

```
Command: Get-BluGenieAuditProcessTracking -UseCache -RemoveCache
```

```
Description: Remove Cache data
Notes: By default the Cache information is removed right before the data is returned to the caller
```

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

```
Command: Get-BluGenieAuditProcessTracking -UseCache -CachePath $Env:Temp
```

```
Description: Change the Cache path to the current users Temp directory
Notes: By default the Cache location is %SystemDrive%\Windows\Temp
```

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

```
Command: Get-BluGenieAuditProcessTracking -UseCache -ClearGarbageCollecting
```

```
Description: Scan large directories and limit the memory used to track data
Notes:
```

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

```
Command: Get-BluGenieAuditProcessTracking -Help
```

```
Description: Call Help Information
Notes: If Help / WalkThrough is setup as a parameter, this script will be called to setup the Dynamic Help Menu if not the normal
       Get-Help will be called with the -Full parameter
```

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

```
Command: Get-BluGenieAuditProcessTracking -WalkThrough
```

```
Description: Call Help Information [2]
Notes: If Help / WalkThrough is setup as a parameter, this script will be called to setup the Dynamic Help Menu if not the normal
       Get-Help will be called with the -Full parameter
```

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

```
Command: Get-BluGenieAuditProcessTracking -OutUnEscapedJSON
```

```
Description: Return a detailed function report in an UnEscaped JSON format
Notes:  The OutUnEscapedJSON is used to Beautify the JSON return and not Escape any Characters.  Normal return data is a Hash Table.
```

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

```
Command: Get-BluGenieAuditProcessTracking -OutYaml
```

```
Description: Return a detailed function report in YAML format
Notes:  The OutUnEscapedJSON is used to Beautify the JSON return and not Escape any Characters.  Normal return data is a Hash Table.
```

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

```
Command: Get-BluGenieAuditProcessTracking -ReturnObject
```

```
Description: Return Output as a Object
Notes:  The ReturnObject is used to return a PowerShell Object.  Normal return data is a Hash Table.
       This parameter is also used with the FormatView
```

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

```
Command: Get-BluGenieAuditProcessTracking -ReturnObject -FormatView Yaml
```

```
Description: Output PSObject information in Yaml format
Notes:  Current formats supported by default are ('Table','Custom','CustomModified','None','JSON','OutUnEscapedJSON','CSV', 'Yaml')
       Default is set to (None) and normal PSObject.
```

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

#### QueryType <a href="#querytype" id="querytype"></a>

```
-QueryType <String>
   Description: Specifies the type of Events to Query for
   Notes: The acceptable values for this parameter are:
           - OnCreated          : Query On Created Events Only
           - OnExited           : Query On Exited Events Only
           - OnAll = (Default)  : Query On All Event types (Created and Exited)
   
           If no value is specified, or if the parameter is omitted, the default value is (OnAll).
   Alias:
   ValidateSet:'OnCreated','OnExited','OnAll'
   
   Required?                    false
   Position?                    1
   Default value                OnAll
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### Algorithm <a href="#algorithm" id="algorithm"></a>

```
-Algorithm <String>
   Description: Specifies the cryptographic hash to use for computing the hash value of the contents of the specified file.
   Notes: The acceptable values for this parameter are:
           - SHA1
           - SHA256
           - SHA384
           - SHA512
           - MACTripleDES
           - MD5 = (Default)
           - RIPEMD160
   
           If no value is specified, or if the parameter is omitted, the default value is (MD5).
   Alias:
   ValidateSet:'MACTripleDES','MD5','RIPEMD160','SHA1','SHA256','SHA384','SHA512'
   
   Required?                    false
   Position?                    2
   Default value                MD5
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### Signature <a href="#signature" id="signature"></a>

```
-Signature [<SwitchParameter>]
   Description: Validate Signature information of the process if the item is still on disk.
   Notes:
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### OnDisk <a href="#ondisk" id="ondisk"></a>

```
-OnDisk [<SwitchParameter>]
   Description: Verify if the flagged process is still on disk
   Notes:
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### ShowAllValues <a href="#showallvalues" id="showallvalues"></a>

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

#### ClearGarbageCollecting <a href="#cleargarbagecollecting" id="cleargarbagecollecting"></a>

```
-ClearGarbageCollecting [<SwitchParameter>]
   Description: Garbage Collection in Powershell to Speed up Scripts and help lower memory consumption
   Notes: This is enabled by default.  To disable use -ClearGarbageCollecting:$False
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### UseCache <a href="#usecache" id="usecache"></a>

```
-UseCache [<SwitchParameter>]
   Description: Cache found objects to disk.  This is to not over tax Memory resources with found artifacts
   Notes: By default the Cache location is %SystemDrive%\Windows\Temp
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### CachePath <a href="#cachepath" id="cachepath"></a>

```
-CachePath <String>
   Description: Path to store the Cache information
   Notes: By default the Cache location is %SystemDrive%\Windows\Temp
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    3
   Default value                $('{0}\Windows\Temp\{1}.log' -f $env:SystemDrive, $(New-BluGenieUID))
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### RemoveCache <a href="#removecache" id="removecache"></a>

```
-RemoveCache [<SwitchParameter>]
   Description: Remove Cache data on completion
   Notes: Cache information is removed right before the data is returned to the calling process
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### DBName <a href="#dbname" id="dbname"></a>

```
-DBName <String>
   Description: Database Name (Without extention)
   Notes: The default name is set to 'BluGenie'
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    4
   Default value                BluGenie
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### DBPath <a href="#dbpath" id="dbpath"></a>

```
-DBPath <String>
   Description: Path to either Save or Update the Database
   Notes: The default path is $('{0}\BluGenie' -f $env:ProgramFiles)  Example: C:\Program Files\BluGenie
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    5
   Default value                $('{0}\BluGenie' -f $env:ProgramFiles)
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### UpdateDB <a href="#updatedb" id="updatedb"></a>

```
-UpdateDB [<SwitchParameter>]
   Description: Save return data to the Sqlite Database
   Notes:
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### ForceDBUpdate <a href="#forcedbupdate" id="forcedbupdate"></a>

```
-ForceDBUpdate [<SwitchParameter>]
   Description: Force an update of the return data to the Sqlite Database
   Notes: By default only new items are saved.  The primary key is ( FullName )
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### NewDBTable <a href="#newdbtable" id="newdbtable"></a>

```
-NewDBTable [<SwitchParameter>]
   Description: Delete and Recreate the Database Table
   Notes:
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

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

```
-Walkthrough [<SwitchParameter>]
   Description:  Start the dynamic help menu system to help walk through the current command and all of the parameters
   Notes:
   Alias: Help
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### ReturnObject <a href="#returnobject" id="returnobject"></a>

```
-ReturnObject [<SwitchParameter>]
   Description: Return information as an Object
   Notes: By default the data is returned as a Hash Table
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### OutUnEscapedJSON <a href="#outunescapedjson" id="outunescapedjson"></a>

```
-OutUnEscapedJSON [<SwitchParameter>]
   Description: Remove UnEsacped Char from the JSON information.
   Notes: This will beautify json and clean up the formatting.
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### OutYaml <a href="#outyaml" id="outyaml"></a>

```
-OutYaml [<SwitchParameter>]
   Description: Return detailed information in Yaml Format
   Notes: Only supported in Posh 3.0 and above
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### FormatView <a href="#formatview" id="formatview"></a>

```
-FormatView <String>
   Description: Automatically format the Return Object
   Notes: Yaml is only supported in Posh 3.0 and above
   Alias:
   ValidateSet: 'Table','Custom','CustomModified','None','JSON','OutUnEscapedJSON','CSV', 'Yaml'
   
   Required?                    false
   Position?                    6
   Default value                None
   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).


# Get-BluGenieAutoRuns

﻿

### Get-BluGenieAutoRuns <a href="#get-blugenieautoruns" id="get-blugenieautoruns"></a>

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

Get-BluGenieAutoRuns reports on what programs are configured to run during system bootup or login

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

```
Get-BluGenieAutoRuns [[-ToolPath] <String>] [[-Algorithm] <String>] [[-Signature]] [[-HideSigned] <String>] [-ClearGarbageCollecting] [-UseCache] [-CachePath <String>] [-RemoveCache] [-DBName <String>] [-DBPath 
<String>] [-UpdateDB] [-ForceDBUpdate] [-NewDBTable] [-Walkthrough] [-ReturnObject] [-OutUnEscapedJSON] [-OutYaml] [-FormatView <String>] [<CommonParameters>]
```

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

Get-BluGenieAutoRuns reports on what programs are configured to run during system bootup or login, and when you start various built-in Windows applications like Internet Explorer, Explorer and media players. These programs and drivers include ones in your startup folder, Run, RunOnce, and other Registry keys.

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

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

```
Command: Get-BluGenieAutoRuns
```

```
Description: Report on currently configured auto-start applications as well as the full list of Registry and file system locations available for auto-start configuration
Notes:
```

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

```
Command: Get-BluGenieAutoRuns -Algorithm SHA256
```

```
Description: Report on currently configured auto-start information, also display the Hash Algorithm in "SHA256"
Notes: The Hash Algorithm will be set to "SHA256".  The default is "MD5"
```

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

```
Command: Get-BluGenieAutoRuns -Signature -HideSigned Microsoft
```

```
Description: Report on currently configured auto-start information that do not have an Authorized Signature from Microsoft.
Notes: This report will quickly identify any 3rd party or unsigned entries.
To display Signature information you need to use the (-Signature) switch
```

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

```
Command: Get-BluGenieAutoRuns -Signature -HideSigned All
```

```
Description: Report on currently configured auto-start information that do not have an Authorized Signature.
Notes: This report will quickly identify any 3rd party or unsigned entries.
To display Signature information you need to use the (-Signature) switch
```

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

```
Command: Get-BluGenieAutoRuns -Signature
```

```
Description: Report on currently configured auto-start information with Authorized Signature Information.
Notes:
```

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

```
Command: Get-BluGenieAutoRuns -ToolPath 'C:\Temp\AutoRunSC.exe'
```

```
Description: Locate the AutoRun tool under C:\Temp and Report on currently configured auto-start information
Notes:
```

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

```
Command: Get-BluGenieAutoRuns -UseCache
```

```
Description: Cache found objects to disk to not over tax Memory resources
Notes: By default the Cache location is %SystemDrive%\Windows\Temp
```

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

```
Command: Get-BluGenieAutoRuns -UseCache -RemoveCache
```

```
Description: Remove Cache data
Notes:
```

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

```
Command: Get-BluGenieAutoRuns -SearchPath Temp -Recurse -UseCache -CachePath $Env:Temp
```

```
Description: Change the Cache path to the current users Temp directory
Notes: By default the Cache location is %SystemDrive%\Windows\Temp
```

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

```
Command: Get-BluGenieAutoRuns -UseCache -ClearGarbageCollecting
```

```
Description: Scan large directories and limit the memory used to track data
Notes:
```

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

```
Command: Get-BluGenieAutoRuns -UpdateDB
```

```
Description: Search every user and system Temp directory for all normal file information including hash and save the return to a DB
Notes: The default path is $('{0}\BluGenie' -f $env:ProgramFiles)  Example: C:\Program Files\BluGenie
```

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

```
Command: Get-BluGenieAutoRuns -Help
```

```
Description: Call Help Information
Notes: If Help / WalkThrough is setup as a parameter, this script will be called to setup the Dynamic Help Menu if not the normal Get-Help will be called with the -Full parameter
```

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

```
Command: Get-BluGenieAutoRuns -WalkThrough
```

```
Description: Call Help Information [2]
Notes: If Help / WalkThrough is setup as a parameter, this script will be called to setup the Dynamic Help Menu if not the normal Get-Help will be called with the -Full parameter
```

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

```
Command: Get-BluGenieAutoRuns -OutUnEscapedJSON
```

```
Description: <command_here> and Return Output as UnEscaped JSON format
Notes:  The OutUnEscapedJSON is used to beatify the JSON return and not Escape any Characters.  Normal return data is a Hash Table.
```

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

```
Command: Get-BluGenieAutoRuns -ReturnObject
```

```
Description: <command_here> and Return Output an Object
Notes:  The ReturnObject is used to return a PowerShell Object.  Normal return data is a Hash Table.
```

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

```
Command: Get-BluGenieAutoRuns -SearchPath Temp -Recurse -OutYaml
```

```
Description: Return a detailed function report in YAML format
Notes:  The OutUnEscapedJSON is used to Beautify the JSON return and not Escape any Characters.  Normal return data is a Hash Table.
```

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

```
Command: Get-BluGenieAutoRuns -SearchPath Temp -Recurse -ReturnObject
```

```
Description: Return Output as a Object
Notes:  The ReturnObject is used to return a PowerShell Object.  Normal return data is a Hash Table.
This parameter is also used with the ForMat
```

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

```
Command: Get-BluGenieAutoRuns -SearchPath Temp -Recurse -ReturnObject -FormatView Yaml
```

```
Description: Output PSObject information in Yaml format
Notes:  Current formats supported by default are ('Table','Custom','CustomModified','None','JSON','OutUnEscapedJSON','CSV', 'Yaml', 'XML')
Default is set to (None) and normal PSObject.
```

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

#### ToolPath <a href="#toolpath" id="toolpath"></a>

```
-ToolPath <String>
   Description: ToolPath for the AutoRunSC.exe
   Notes: The default ToolPath is ( .\Tools\SysinternalsSuite ) with a backup path of ( $env:Windir\Temp )
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    1
   Default value                $(Join-Path -Path $ToolsDirectory -ChildPath 'SysinternalsSuite')
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### Algorithm <a href="#algorithm" id="algorithm"></a>

```
-Algorithm <String>
   Description:  Specifies the cryptographic hash to use for computing the hash value of the contents of the specified file. 
   Notes:  The acceptable values for this parameter are:
   
               - SHA1
               - SHA256
               - SHA384
               - SHA512
               - MACTripleDES
               - MD5 = (Default)
               - RIPEMD160
   Alias: 
   ValidateSet: 'MACTripleDES','MD5','RIPEMD160','SHA1','SHA256','SHA384','SHA512'
   
   Required?                    false
   Position?                    2
   Default value                MD5
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### Signature <a href="#signature" id="signature"></a>

```
-Signature [<SwitchParameter>]
   Description: Query Signature information 
   Notes:  This will slow down the query
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    3
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### HideSigned <a href="#hidesigned" id="hidesigned"></a>

```
-HideSigned <String>
   Description: Hide signed files to help quickly identify 3rd party or unsigned entries 
   Notes:  
   Alias:
   ValidateSet: 'Item1','Item2','Item3'
   
   Required?                    false
   Position?                    4
   Default value                
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### ClearGarbageCollecting <a href="#cleargarbagecollecting" id="cleargarbagecollecting"></a>

```
-ClearGarbageCollecting [<SwitchParameter>]
   Description: Garbage Collection in Powershell to Speed up Scripts and help lower memory consumption
   Notes: This is enabled by default.  To disable use -ClearGarbageCollecting:$False
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### UseCache <a href="#usecache" id="usecache"></a>

```
-UseCache [<SwitchParameter>]
   Description: Cache found objects to disk.  This is to not over tax Memory resources with found artifacts
   Notes: By default the Cache location is %SystemDrive%\Windows\Temp
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### CachePath <a href="#cachepath" id="cachepath"></a>

```
-CachePath <String>
   Description: Path to store the Cache information
   Notes: By default the Cache location is %SystemDrive%\Windows\Temp
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                $('{0}\Windows\Temp\{1}.log' -f $env:SystemDrive, $(New-BluGenieUID))
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### RemoveCache <a href="#removecache" id="removecache"></a>

```
-RemoveCache [<SwitchParameter>]
   Description: Remove Cache data on completion
   Notes: Cache information is removed right before the data is returned to the calling process
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### DBName <a href="#dbname" id="dbname"></a>

```
-DBName <String>
   Description: Database Name (Without extention)
   Notes: The default name is set to 'BluGenie'
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                BluGenie
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### DBPath <a href="#dbpath" id="dbpath"></a>

```
-DBPath <String>
   Description: Path to either Save or Update the Database
   Notes: The default path is $('{0}\BluGenie' -f $env:ProgramFiles)  Example: C:\Program Files\BluGenie
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                $('{0}\BluGenie' -f $env:ProgramFiles)
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### UpdateDB <a href="#updatedb" id="updatedb"></a>

```
-UpdateDB [<SwitchParameter>]
   Description: Save return data to the Sqlite Database
   Notes:
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### ForceDBUpdate <a href="#forcedbupdate" id="forcedbupdate"></a>

```
-ForceDBUpdate [<SwitchParameter>]
   Description: Force an update of the return data to the Sqlite Database
   Notes: By default only new items are saved.  The primary key is ( FullName )
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### NewDBTable <a href="#newdbtable" id="newdbtable"></a>

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

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

```
-Walkthrough [<SwitchParameter>]
   Description:  Start the dynamic help menu system to help walk through the current command and all of the parameters
   Notes:  
   Alias: Help
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### ReturnObject <a href="#returnobject" id="returnobject"></a>

```
-ReturnObject [<SwitchParameter>]
   Description: Return information as an Object
   Notes: By default the data is returned as a Hash Table
   Alias: 
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### OutUnEscapedJSON <a href="#outunescapedjson" id="outunescapedjson"></a>

```
-OutUnEscapedJSON [<SwitchParameter>]
   Description: Remove UnEsacped Char from the JSON information.
   Notes: This will beautify json and clean up the formatting.
   Alias: 
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### OutYaml <a href="#outyaml" id="outyaml"></a>

```
-OutYaml [<SwitchParameter>]
   Description: Return detailed information in Yaml Format
   Notes: Only supported in Posh 3.0 and above
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### FormatView <a href="#formatview" id="formatview"></a>

```
-FormatView <String>
   Description: Automatically format the Return Object
   Notes: Yaml is only supported in Posh 3.0 and above
   Alias:
   ValidateSet: 'Table','Custom','CustomModified','None','JSON','OutUnEscapedJSON','CSV', 'Yaml'
   
   Required?                    false
   Position?                    named
   Default value                None
   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).


# Get-BluGenieChildItemList

﻿

### Get-BluGenieChildItemList <a href="#get-blugeniechilditemlist" id="get-blugeniechilditemlist"></a>

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

Query for a list of files and folders that match a specific pattern

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

```
Get-BluGenieChildItemList [[-SearchPath] <Object>] [-Recurse] [[-FilterType] <String>] [[-Pattern] <Object>] [-Remove] [[-StopWatchCounter] <Int32>] [[-SleepTimerSec] <Int32>] [[-Algorithm] <String>] [-Signature] 
[-Permissions] [-ShowProgress] [-ClearGarbageCollecting] [-UseCache] [[-CachePath] <String>] [-RemoveCache] [[-DBName] <String>] [[-DBPath] <String>] [-UpdateDB] [-ForceDBUpdate] [-NewDBTable] [-Walkthrough] 
[-ReturnObject] [-OutUnEscapedJSON] [-OutYaml] [[-FormatView] <String>] [<CommonParameters>]
```

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

Query for a list of files and folders that match a specific pattern

Fastest search is based on the filter type set to "Name" this is default Slower search is based on all other filter type properties (Reference the Parameter FilterType to review)

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

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

```
Command: Get-BluGenieChildItemList -SearchPath C:\Temp -Recurse -Pattern '^notepad\.\w{3}$'
```

```
Description: Search C:\Temp and all sub directories for any file or directory named Notepad.*
Notes:
```

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

```
Command: Get-BluGenieChildItemList -SearchPath C:\Temp,C:\Trash,C:\Users -Recurse -Pattern '^notepad\.\w{3}$'
```

```
Description: Search multiple directories and all sub directories for any file or directory named Notepad.*.
Notes:
```

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

```
Command: Get-BluGenieChildItemList -SearchPath C:\Temp,C:\Trash,C:\Users -Recurse -Pattern '0e61079d3283687d2e279272966ae99d' -FilterType
```

```
HashDescription: Search multiple directories and the sub directories for a Hash value determined by the default Algorithm type of MD5
Notes:
```

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

```
Command: Get-BluGenieChildItemList -SearchPath C:\Windows -Pattern '^notepad\.\w{3}$' -Permissions -ShowStreamValue -Signature
```

```
Description: Query the C:\Windows dir for a file or directory named Notepad.* and return all associated Permissions, Alternate Data
Streams, and Signature information
Notes:
```

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

```
Command: Get-BluGenieChildItemList -SearchPath Temp -Recurse
```

```
Description: Search for all file(s) under (All Temp Locations for each user and the system) and sub directories
Notes:
```

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

```
Command: Get-BluGenieChildItemList -SearchPath Temp -Recurse -UseCache
```

```
Description: Cache found objects to disk to not over tax Memory resources
Notes: By default the Cache location is %SystemDrive%\Windows\Temp
```

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

```
Command: Get-BluGenieChildItemList -SearchPath Temp -Recurse -UseCache -RemoveCache
```

```
Description: Remove Cache data
Notes:
```

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

```
Command: Get-BluGenieChildItemList -SearchPath Temp -Recurse -UseCache -CachePath $Env:Temp
```

```
Description: Change the Cache path to the current users Temp directory
Notes: By default the Cache location is %SystemDrive%\Windows\Temp
```

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

```
Command: Get-ChildItem -path $env:temp -File | Get-BluGenieChildItemList -SearchPath Temp -Recurse -UseCache -ClearGarbageCollecting
```

```
Description: Scan large directories and limit the memory used to track data
Notes:
```

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

```
Command: Get-BluGenieChildItemList -SearchPath 'Temp' -Recurse -FilterType NameIncludeAll -UpdateDB
```

```
Description: Search every user and system Temp directory for all normal file information including hash and save the return to a DB
Notes: The default path is $('{0}\BluGenie' -f $env:ProgramFiles)  Example: C:\Program Files\BluGenie
```

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

```
Command: Get-BluGenieChildItemList -Help
```

```
Description: Call Help Information
Notes: If Help / WalkThrough is setup as a parameter, this script will be called to setup the Dynamic Help Menu if not the normal
Get-Help will be called with the -Full parameter
```

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

```
Command: Get-BluGenieChildItemList -WalkThrough
```

```
Description: Call Help Information [2]
Notes: If Help / WalkThrough is setup as a parameter, this script will be called to setup the Dynamic Help Menu if not the normal
Get-Help will be called with the -Full parameter
```

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

```
Command: Get-BluGenieChildItemList -SearchPath Temp -Recurse -OutUnEscapedJSON
```

```
Description: Return a detailed function report in an UnEscaped JSON format
Notes:  The OutUnEscapedJSON is used to Beautify the JSON return and not Escape any Characters.  Normal return data is a Hash Table.
```

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

```
Command: Get-BluGenieChildItemList -SearchPath Temp -Recurse -OutYaml
```

```
Description: Return a detailed function report in YAML format
Notes:  The OutUnEscapedJSON is used to Beautify the JSON return and not Escape any Characters.  Normal return data is a Hash Table.
```

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

```
Command: Get-BluGenieChildItemList -SearchPath Temp -Recurse -ReturnObject
```

```
Description: Return Output as a Object
Notes:  The ReturnObject is used to return a PowerShell Object.  Normal return data is a Hash Table.
This parameter is also used with the ForMat
```

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

```
Command: Get-BluGenieChildItemList -SearchPath Temp -Recurse -ReturnObject -FormatView Yaml
```

```
Description: Output PSObject information in Yaml format
Notes:  Current formats supported by default are ('Table','Custom','CustomModified','None','JSON','OutUnEscapedJSON','CSV', 'Yaml', 'XML')
Default is set to (None) and normal PSObject.
```

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

#### SearchPath <a href="#searchpath" id="searchpath"></a>

```
-SearchPath <Object>
   Description: The path to start your search from
   Notes:
           If you specify "Temp" in the SearchPath field all the %SystemDrive%\Users\* Temp directories and the
           %SystemRoot%\Temp will be searched only.
   
           If you specify "AllUsers" in the SearchPath path all User Profiles from %SystemDrive%\Users will be
           prefixed to the rest of the path.
               Example:  -SearchPath 'AllUsers\AppData\Roaming'
   
               Output:     C:\Users\Administrator\AppData\Roaming
                           C:\Users\User1\AppData\Roaming
                           C:\Users\User2\AppData\Roaming
                           C:\Users\User3\AppData\Roaming
                           C:\Users\User4\AppData\Roaming
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    1
   Default value                $(Get-Location).Path
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### Recurse <a href="#recurse" id="recurse"></a>

```
-Recurse [<SwitchParameter>]
   Description: Recurse through subdirectories
   Notes:
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### FilterType <a href="#filtertype" id="filtertype"></a>

```
-FilterType <String>
   Description:  Which property to filter by
   Notes:
           Filter Option = "Path"					-   Path Query with general file information
           Filter Option = "PathIncludeAll"        -   Path Query with extended file metadata
           Filter Option = "Name"                 	-   Name Query with general file information
           Filter Option = "NameIncludeAll"        -   Name Query with extended file metadata
           Filter Option = "Type"             		-   File Type Query with general file information
           Filter Option = "TypeIncludeAll"        -   File Type Query with extended file metadata
           Filter Option = "Hash"                  -   Hash Value Query with general file information
           Filter Option = "HashIncludeAll"		-	Hash Value Query with extended file metadata
           Filter Option = "ADS"					-	Alternate Data Stream Query (True Only) with general file information
           Filter Option = "ADSIncludeAll"		    -	Alternate Data Stream Query (True Only) with extended file metadata
   
           Default is a "Name" Query
   Alias:
   ValidateSet: 'Path','PathIncludeAll','Name','NameIncludeAll','Type','TypeIncludeAll','Hash','HashIncludeAll','ADS','ADSIncludeAll'
   
   Required?                    false
   Position?                    2
   Default value                Name
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### Pattern <a href="#pattern" id="pattern"></a>

```
-Pattern <Object>
   Description: Search Pattern using RegEx
   Notes: Using -SearchHidden will convert the Pattern to RegEx Automatically but without the comma or
   the -SearchHidden the -Pattern is viewed as as a Command Console Search pattern.  You can use (*) wildcards.
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    3
   Default value                .*
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### Remove <a href="#remove" id="remove"></a>

```
-Remove [<SwitchParameter>]
   Description: Remove the File(s) and Directory(s) found
   Notes:
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### StopWatchCounter <a href="#stopwatchcounter" id="stopwatchcounter"></a>

```
-StopWatchCounter <Int32>
   Description: Determine how many times the recheck for removing a file or directory happenes.  By default (12) times with a 5 second sleep
   Notes:  Determine how many times the recheck for removing a file or directory happenes.  By default (12) times with a 5 second sleep
           inbetween which is (60 seconds total)
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    4
   Default value                12
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### SleepTimerSec <a href="#sleeptimersec" id="sleeptimersec"></a>

```
-SleepTimerSec <Int32>
   Description: Determine the Sleep time in seconds before the next recheck.  By default this is a 5 second sleep with 12 rechecks
   Notes:  Determine the Sleep time in seconds before the next recheck.  By default this is a 5 second sleep with 12 rechecks which is
           (60 seconds total)
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    5
   Default value                5
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### Algorithm <a href="#algorithm" id="algorithm"></a>

```
-Algorithm <String>
   Description:  Specifies the cryptographic hash to use for computing the hash value of the contents of the specified file.
   Notes:  The acceptable values for this parameter are:
   
           - SHA1
           - SHA256
           - SHA384
           - SHA512
           - MACTripleDES
           - MD5 = (Default)
           - RIPEMD160
   Alias:
   ValidateSet: 'MACTripleDES','MD5','RIPEMD160','SHA1','SHA256','SHA384','SHA512'
   
   Required?                    false
   Position?                    6
   Default value                MD5
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### Signature <a href="#signature" id="signature"></a>

```
-Signature [<SwitchParameter>]
   Description: Query Signature information
   Notes:
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### Permissions <a href="#permissions" id="permissions"></a>

```
-Permissions [<SwitchParameter>]
   Description: Query Access Control List (ACL) information
   Notes:
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### ShowProgress <a href="#showprogress" id="showprogress"></a>

```
-ShowProgress [<SwitchParameter>]
   Description: Display file count information to the Host to show query progress
   Notes:
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### ClearGarbageCollecting <a href="#cleargarbagecollecting" id="cleargarbagecollecting"></a>

```
-ClearGarbageCollecting [<SwitchParameter>]
   Description: Garbage Collection in Powershell to Speed up Scripts and help lower memory consumption
   Notes: This is enabled by default.  To disable use -ClearGarbageCollecting:$False
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### UseCache <a href="#usecache" id="usecache"></a>

```
-UseCache [<SwitchParameter>]
   Description: Cache found objects to disk.  This is to not over tax Memory resources with found artifacts
   Notes: By default the Cache location is %SystemDrive%\Windows\Temp
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### CachePath <a href="#cachepath" id="cachepath"></a>

```
-CachePath <String>
   Description: Path to store the Cache information
   Notes: By default the Cache location is %SystemDrive%\Windows\Temp
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    7
   Default value                $('{0}\Windows\Temp\{1}.log' -f $env:SystemDrive, $(New-BluGenieUID))
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### RemoveCache <a href="#removecache" id="removecache"></a>

```
-RemoveCache [<SwitchParameter>]
   Description: Remove Cache data on completion
   Notes: Cache information is removed right before the data is returned to the calling process
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### DBName <a href="#dbname" id="dbname"></a>

```
-DBName <String>
   Description: Database Name (Without extention)
   Notes: The default name is set to 'BluGenie'
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    8
   Default value                BluGenie
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### DBPath <a href="#dbpath" id="dbpath"></a>

```
-DBPath <String>
   Description: Path to either Save or Update the Database
   Notes: The default path is $('{0}\BluGenie' -f $env:ProgramFiles)  Example: C:\Program Files\BluGenie
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    9
   Default value                $('{0}\BluGenie' -f $env:ProgramFiles)
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### UpdateDB <a href="#updatedb" id="updatedb"></a>

```
-UpdateDB [<SwitchParameter>]
   Description: Save return data to the Sqlite Database
   Notes:
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### ForceDBUpdate <a href="#forcedbupdate" id="forcedbupdate"></a>

```
-ForceDBUpdate [<SwitchParameter>]
   Description: Force an update of the return data to the Sqlite Database
   Notes: By default only new items are saved.  The primary key is ( FullName )
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### NewDBTable <a href="#newdbtable" id="newdbtable"></a>

```
-NewDBTable [<SwitchParameter>]
   Description: Delete and Recreate the Database Table
   Notes:
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

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

```
-Walkthrough [<SwitchParameter>]
   Description:  Start the dynamic help menu system to help walk through the current command and all of the parameters
   Notes:
   Alias: Help
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### ReturnObject <a href="#returnobject" id="returnobject"></a>

```
-ReturnObject [<SwitchParameter>]
   Description: Return information as an Object
   Notes: By default the data is returned as a Hash Table
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### OutUnEscapedJSON <a href="#outunescapedjson" id="outunescapedjson"></a>

```
-OutUnEscapedJSON [<SwitchParameter>]
   Description: Remove UnEsacped Char from the JSON information.
   Notes: This will beautify json and clean up the formatting.
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### OutYaml <a href="#outyaml" id="outyaml"></a>

```
-OutYaml [<SwitchParameter>]
   Description: Return detailed information in Yaml Format
   Notes: Only supported in Posh 3.0 and above
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### FormatView <a href="#formatview" id="formatview"></a>

```
-FormatView <String>
   Description: Automatically format the Return Object
   Notes: Yaml is only supported in Posh 3.0 and above
   Alias:
   ValidateSet: 'Table','Custom','CustomModified','None','JSON','OutUnEscapedJSON','CSV', 'Yaml'
   
   Required?                    false
   Position?                    10
   Default value                None
   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).


# Get-BluGenieCOMObjectInfo

﻿

### Get-BluGenieCOMObjectInfo <a href="#get-blugeniecomobjectinfo" id="get-blugeniecomobjectinfo"></a>

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

Get-BluGenieCOMObjectInfo will query for possible COM Object HiJacking.

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

```
Get-BluGenieCOMObjectInfo [[-FilterType] <String>] [[-Pattern] <String>] [[-COMType] <String>] [[-Algorithm] <String>] [-NotMatch] [-Signature] [-ResolveRegKeyPaths] [-TryToResolvePath] [-Walkthrough] 
[-ReturnObject] [-OutUnEscapedJSON] [<CommonParameters>]
```

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

Get-BluGenieCOMObjectInfo will query for possible COM Object HiJacking. The process searches for .dll and .exe files that can be HiJacked using the registry CLSID.

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

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

```
Command: Get-BluGenieCOMObjectInfo
```

```
Description: Return all COM objects that have a value for InprocServer32 or LocalServer32
Notes: The default Hash Algorithm is (MD5)
```

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

```
Command: Get-BluGenieCOMObjectInfo -Signature  -Algorithm SHA256
```

```
Description: Return all COM objects, process Signature Authentication Information and set the Hash Algorithm to (SHA256)
Notes:
```

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

```
Command: Get-BluGenieCOMObjectInfo -Signature -FilterType Signature_Verified -NotMatch -Pattern '^Signed'
```

```
Description: Filter type by (Signature_Verified) with a value not like 'Signed'
Notes:
```

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

```
Command: Get-BluGenieCOMObjectInfo -Pattern '7-Zip'
```

```
Description: Filter type by (Caption) with a value like '7-Zip'
Notes:
```

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

```
Command: Get-BluGenieCOMObjectInfo -TryToResolvePath
```

```
Description: Resolve path for any file not identiifed in the registry.  The search path is $env:windir and all sub directories.
Notes:
```

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

```
Command: Get-BluGenieCOMObjectInfo -TryToResolvePath -ResolveRegKeyPaths
```

```
Description: Resolve the root registry key and the parent registry key paths
Notes: This will slow the process down.  Most of the time this information is not needed.  By default this option is not set
```

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

```
Command: Get-BluGenieCOMObjectInfo -TryToResolvePath -FilterType OnDisk -NotMatch -Pattern 'True'
```

```
Description: Query for any InprocServer32 or LocalServer32 Object references that have not been located on the local system disk.
Notes:
```

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

```
Command: Get-BluGenieCOMObjectInfo -FilterType ComponentId -Pattern '{581b6888-ba70-3d90-a5f9-865f03d29c6b1}'
```

```
Description: Query for a Component ID
Notes:
```

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

```
Command: Get-BluGenieCOMObjectInfo -TryToResolvePath -FilterType Hash -Pattern '5808c2e483c1e42bdd69d8227e80b96f|7a53101d82f382fcbc883b485b01f4e4|a54e980e453ed712a6ecf639ca70f4db'
```

```
Description: RegEx pattern to search for several instances
Notes:
```

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

```
Command: Get-BluGenieCOMObjectInfo -Help
```

```
Description: Call Help Information
Notes: If Help / WalkThrough is setup as a parameter, this script will be called to setup the Dynamic Help Menu if not the normal Get-Help will be called with the -Full parameter
```

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

```
Command: Get-BluGenieCOMObjectInfo -WalkThrough
```

```
Description: Call Help Information [2]
Notes: If Help / WalkThrough is setup as a parameter, this script will be called to setup the Dynamic Help Menu if not the normal Get-Help will be called with the -Full parameter
```

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

```
Command: Get-BluGenieCOMObjectInfo -OutUnEscapedJSON
```

```
Description: Return all COM objects that have a value for InprocServer32 or LocalServer32 and Return Output as UnEscaped JSON format
Notes:  The OutUnEscapedJSON is used to beatify the JSON return and not Escape any Characters.  Normal return data is a Hash Table.
```

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

```
Command: Get-BluGenieCOMObjectInfo -ReturnObject
```

```
Description: Return all COM objects that have a value for InprocServer32 or LocalServer32 and Return Output an Object
Notes:  The ReturnObject is used to return a PowerShell Object.  Normal return data is a Hash Table.
```

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

#### FilterType <a href="#filtertype" id="filtertype"></a>

```
-FilterType <String>
   Description: Filter by Property Type 
   Notes:  
   Filter Option = "ComponentId"			-   Com Object ID
           Filter Option = "Caption"				-   Display name
           Filter Option = "KeyRoot"				-   Parent / Root Registry Key Path
           Filter Option = "Type"					-   Key Type ( InprocServer32 | LocalServer32 )
           Filter Option = "KeyPath"				-   Full Registry Key Path
           Filter Option = "KeyValue"				-   Value from the Full Registry Key Path
           Filter Option = "FilePath"				-   Full Name and Path of the file nested in the Registry Key Value
           Filter Option = "Arguments"				-   Associated Arguments for the command
           Filter Option = "Hash"					-   The Hash value of the Process ( MACTripleDES / MD5 / RIPEMD160 / SHA1 / SHA256 / SHA384 / SHA512 ) 
           Filter Option = "OnDisk"				-   Is the file located on disk ( True / False )
           Filter Option = "Signature_Comment"		-   Display error message while pulling Signature Information [Note:  This is only available if you use the -Signature switch]
           Filter Option = "Signature_FileVersion" -   File Version and OS Build information in part of the OS [Note:  This is only available if you use the -Signature switch]
           Filter Option = "Signature_Description" -   The description of the files signature [Note:  This is only available if you use the -Signature switch]
           Filter Option = "Signature_Date"		-   Date when the file was signed [Note:  This is only available if you use the -Signature switch]
           Filter Option = "Signature_Company"		-   The company signing the file [Note:  This is only available if you use the -Signature switch]
           Filter Option = "Signature_Publisher"	-   The Publisher signing the file [Note:  This is only available if you use the -Signature switch]
           Filter Option = "Signature_Verified"	-   Verification ( Signed / UnSigned / Null ) [Note:  This is only available if you use the -Signature switch]
   Alias:
   ValidateSet: 'Type','ComponentId','Caption','KeyRoot','KeyPath','KeyValue','FilePath','Arguments','OnDisk','Hash','Signature_Comment','Signature_FileVersion','Signature_Description','Signature_Date','Signature
   _Company','Signature_Publisher','Signature_Verified'
   
   Required?                    false
   Position?                    1
   Default value                Caption
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### Pattern <a href="#pattern" id="pattern"></a>

```
-Pattern <String>
   Description: Search Pattern using RegEx 
   Notes: Default Value = '.*' 
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    2
   Default value                .*
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### COMType <a href="#comtype" id="comtype"></a>

```
-COMType <String>
   Description: Select which type of COM Object to search for
   Notes: 
   * InprocServer32
           * LocalServer32
   Alias:
   ValidateSet: 'InprocServer32','LocalServer32','All'
   
   Required?                    false
   Position?                    3
   Default value                All
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### Algorithm <a href="#algorithm" id="algorithm"></a>

```
-Algorithm <String>
   Description:  Specifies the cryptographic hash to use for computing the hash value of the contents of the specified file. 
   Notes:  The acceptable values for this parameter are:
   
               - SHA1
               - SHA256
               - SHA384
               - SHA512
               - MACTripleDES
               - MD5 = (Default)
               - RIPEMD160
   Alias: 
   ValidateSet: 'MACTripleDES','MD5','RIPEMD160','SHA1','SHA256','SHA384','SHA512'
   
   Required?                    false
   Position?                    4
   Default value                MD5
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### NotMatch <a href="#notmatch" id="notmatch"></a>

```
-NotMatch [<SwitchParameter>]
   Description: Show only results that do not match the given Pattern 
   Notes:  
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### Signature <a href="#signature" id="signature"></a>

```
-Signature [<SwitchParameter>]
   Description: Query Signature information 
   Notes:  
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### ResolveRegKeyPaths <a href="#resolveregkeypaths" id="resolveregkeypaths"></a>

```
-ResolveRegKeyPaths [<SwitchParameter>]
   Description: Identify and resolve the Component ID to the parent registry key. 
   Notes: This slows down the query process and is disabled by default. 
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### TryToResolvePath <a href="#trytoresolvepath" id="trytoresolvepath"></a>

```
-TryToResolvePath [<SwitchParameter>]
   Description: Query the $env:windir for the file that does not have a defined path in the Registry by default. 
   Notes: This slows down the query process and is disabled by default.
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

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

```
-Walkthrough [<SwitchParameter>]
   Description:  Start the dynamic help menu system to help walk through the current command and all of the parameters
   Notes:  
   Alias: Help
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### ReturnObject <a href="#returnobject" id="returnobject"></a>

```
-ReturnObject [<SwitchParameter>]
   Description: Return information as an Object
   Notes: By default the data is returned as a Hash Table
   Alias: 
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### OutUnEscapedJSON <a href="#outunescapedjson" id="outunescapedjson"></a>

```
-OutUnEscapedJSON [<SwitchParameter>]
   Description: Remove UnEsacped Char from the JSON information.
   Notes: This will beautify json and clean up the formatting.
   Alias: 
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   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).


# Get-BluGenieCurrentSessionAliases

﻿

### Get-BluGenieCurrentSessionAliases <a href="#get-blugeniecurrentsessionaliases" id="get-blugeniecurrentsessionaliases"></a>

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

Get-BluGenieCurrentSessionAliases will display the current powershell sessions alias list

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

```
Get-BluGenieCurrentSessionAliases [-Walkthrough] [-ReturnObject] [[-FormatView] <String>] [-OutUnEscapedJSON] [<CommonParameters>]
```

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

Get-BluGenieCurrentSessionAliases will display the current powershell sessions alias list

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

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

```
Command: Get-BluGenieCurrentSessionAliases
```

```
Description: Get the current PowerShell's Alias list
Notes:
```

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

```
Command: Get-BluGenieCurrentSessionAliases -Help
```

```
Description: Call Help Information
Notes: If Help / WalkThrough is setup as a parameter, this script will be called to setup the Dynamic Help Menu if not the normal Get-Help will be called with the -Full parameter
```

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

```
Command: Get-BluGenieCurrentSessionAliases -WalkThrough
```

```
Description: Call Help Information [2]
Notes: If Help / WalkThrough is setup as a parameter, this script will be called to setup the Dynamic Help Menu if not the normal Get-Help will be called with the -Full parameter
```

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

```
Command: Get-BluGenieCurrentSessionAliases -OutUnEscapedJSON
```

```
Description: Get the current PowerShell's alias list and Return Output as UnEscaped JSON format
Notes:  The OutUnEscapedJSON is used to beatify the JSON return and not Escape any Characters.  Normal return data is a Hash Table.
```

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

```
Command: Get-BluGenieCurrentSessionAliases -ReturnObject
```

```
Description: Get the current PowerShell's alias list and Return Output an Object
Notes:  The ReturnObject is used to return a PowerShell Object.  Normal return data is a Hash Table.
```

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

```
Command: Get-BluGenieCurrentSessionAliases -ReturnObject -FormatView JSON
```

```
Description: Get the current PowerShell's alias list and Return Object formatted in a JSON view
Notes:  The ReturnObject is used to return a PowerShell Object.  Normal return data is a Hash Table.
```

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

```
Command: Get-BluGenieCurrentSessionAliases -ReturnObject -FormatView Custom
```

```
Description: Get the current PowerShell's alias list and Return Object formatted in a PSCustom view
Notes:  Format-Custom is designed to display views that are not just tables or just lists. You can use the views defined in the 
          *format.PS1XML files in the PowerShell directory, or you can create your own views in new PS1XML files and use the 
          Update-FormatData cmdlet to add them to PowerShell.
```

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

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

```
-Walkthrough [<SwitchParameter>]
   Description:  Start the dynamic help menu system to help walk through the current command and all of the parameters
   Notes:  
   Alias: Help
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### ReturnObject <a href="#returnobject" id="returnobject"></a>

```
-ReturnObject [<SwitchParameter>]
   Description: Return information as an Object
   Notes: This is the default return type
   Alias: 
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                True
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### FormatView <a href="#formatview" id="formatview"></a>

```
-FormatView <String>
   Description: Select which format to return the object data in.
   Notes: Default value is set to (None).  This value is only valid when using the -ReturnObject parameter
   Alias:
   ValidateSet: 'Table','Custom','CustomModified','None','JSON','OutUnEscapedJSON','CSV'
   
   Required?                    false
   Position?                    1
   Default value                None
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### OutUnEscapedJSON <a href="#outunescapedjson" id="outunescapedjson"></a>

```
-OutUnEscapedJSON [<SwitchParameter>]
   Description: Remove UnEsacped Char from the JSON information.
   Notes: This will beautify json and clean up the formatting.
   Alias: 
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   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).


# Get-BluGenieCurrentSessionFunctions

﻿

### Get-BluGenieCurrentSessionFunctions <a href="#get-blugeniecurrentsessionfunctions" id="get-blugeniecurrentsessionfunctions"></a>

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

Get-BluGenieCurrentSessionFunctions will display the current powershell sessions function list

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

```
Get-BluGenieCurrentSessionFunctions [-Walkthrough] [-ReturnObject] [[-FormatView] <String>] [-OutUnEscapedJSON] [<CommonParameters>]
```

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

Get-BluGenieCurrentSessionFunctions will display the current powershell sessions function list

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

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

```
Command: Get-BluGenieCurrentSessionFunctions
```

```
Description: Get the current PowerShell's Function list
Notes:
```

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

```
Command: Get-BluGenieCurrentSessionFunctions -Help
```

```
Description: Call Help Information
Notes: If Help / WalkThrough is setup as a parameter, this script will be called to setup the Dynamic Help Menu if not the normal Get-Help will be called with the -Full parameter
```

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

```
Command: Get-BluGenieCurrentSessionFunctions -WalkThrough
```

```
Description: Call Help Information [2]
Notes: If Help / WalkThrough is setup as a parameter, this script will be called to setup the Dynamic Help Menu if not the normal Get-Help will be called with the -Full parameter
```

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

```
Command: Get-BluGenieCurrentSessionFunctions -OutUnEscapedJSON
```

```
Description: Get the current PowerShell's Function list and Return Output as UnEscaped JSON format
Notes:  The OutUnEscapedJSON is used to beatify the JSON return and not Escape any Characters.  Normal return data is a Hash Table.
```

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

```
Command: Get-BluGenieCurrentSessionFunctions -ReturnObject
```

```
Description: Get the current PowerShell's Function list and Return Output an Object
Notes:  The ReturnObject is used to return a PowerShell Object.  Normal return data is a Hash Table.
```

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

```
Command: Get-BluGenieCurrentSessionFunctions -ReturnObject -FormatView JSON
```

```
Description: Get the current PowerShell's Function list and Return Object formatted in a JSON view
Notes:  The ReturnObject is used to return a PowerShell Object.  Normal return data is a Hash Table.
```

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

```
Command: Get-BluGenieCurrentSessionFunctions -ReturnObject -FormatView Custom
```

```
Description: Get the current PowerShell's Function list and Return Object formatted in a PSCustom view
Notes:  Format-Custom is designed to display views that are not just tables or just lists. You can use the views defined in the 
          *format.PS1XML files in the PowerShell directory, or you can create your own views in new PS1XML files and use the 
          Update-FormatData cmdlet to add them to PowerShell.
```

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

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

```
-Walkthrough [<SwitchParameter>]
   Description:  Start the dynamic help menu system to help walk through the current command and all of the parameters
   Notes:  
   Alias: Help
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### ReturnObject <a href="#returnobject" id="returnobject"></a>

```
-ReturnObject [<SwitchParameter>]
   Description: Return information as an Object
   Notes: This is the default return type
   Alias: 
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                True
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### FormatView <a href="#formatview" id="formatview"></a>

```
-FormatView <String>
   Description: Select which format to return the object data in.
   Notes: Default value is set to (None).  This value is only valid when using the -ReturnObject parameter
   Alias:
   ValidateSet: 'Table','Custom','CustomModified','None','JSON','OutUnEscapedJSON','CSV'
   
   Required?                    false
   Position?                    1
   Default value                None
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### OutUnEscapedJSON <a href="#outunescapedjson" id="outunescapedjson"></a>

```
-OutUnEscapedJSON [<SwitchParameter>]
   Description: Remove UnEsacped Char from the JSON information.
   Notes: This will beautify json and clean up the formatting.
   Alias: 
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   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).


# Get-BluGenieCurrentSessionVariables

﻿

### Get-BluGenieCurrentSessionVariables <a href="#get-blugeniecurrentsessionvariables" id="get-blugeniecurrentsessionvariables"></a>

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

Get-BluGenieCurrentSessionVariables will display the current powershell sessions Variables list and values

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

```
Get-BluGenieCurrentSessionVariables [-Walkthrough] [-ReturnObject] [[-FormatView] <String>] [-OutUnEscapedJSON] [<CommonParameters>]
```

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

Get-BluGenieCurrentSessionVariables will display the current powershell sessions Variables list and values

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

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

```
Command: Get-BluGenieCurrentSessionVariables
```

```
Description: Get the current PowerShell's Variables list
Notes:
```

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

```
Command: Get-BluGenieCurrentSessionVariables -Help
```

```
Description: Call Help Information
Notes: If Help / WalkThrough is setup as a parameter, this script will be called to setup the Dynamic Help Menu if not the normal 
         Get-Help will be called with the -Full parameter
```

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

```
Command: Get-BluGenieCurrentSessionVariables -WalkThrough
```

```
Description: Call Help Information [2]
Notes: If Help / WalkThrough is setup as a parameter, this script will be called to setup the Dynamic Help Menu if not the normal 
         Get-Help will be called with the -Full parameter
```

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

```
Command: Get-BluGenieCurrentSessionVariables -OutUnEscapedJSON
```

```
Description: Get the current PowerShell's Variables list and Return Output as UnEscaped JSON format
Notes:  The OutUnEscapedJSON is used to beatify the JSON return and not Escape any Characters.  Normal return data is a Hash Table.
```

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

```
Command: Get-BluGenieCurrentSessionVariables -ReturnObject
```

```
Description: Get the current PowerShell's Variables list and Return Output an Object
Notes:  The ReturnObject is used to return a PowerShell Object.  Normal return data is a Hash Table.
```

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

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

```
-Walkthrough [<SwitchParameter>]
   Description:  Start the dynamic help menu system to help walk through the current command and all of the parameters
   Notes:  
   Alias: Help
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### ReturnObject <a href="#returnobject" id="returnobject"></a>

```
-ReturnObject [<SwitchParameter>]
   Description: Return information as an Object
   Notes: This is the default return type
   Alias: 
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                True
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### FormatView <a href="#formatview" id="formatview"></a>

```
-FormatView <String>
   Description: Select which format to return the object data in.
   Notes: Default value is set to (None).  This value is only valid when using the -ReturnObject parameter
   Alias:
   ValidateSet: 'Table','Custom','CustomModified','None','JSON','OutUnEscapedJSON','CSV'
   
   Required?                    false
   Position?                    1
   Default value                None
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### OutUnEscapedJSON <a href="#outunescapedjson" id="outunescapedjson"></a>

```
-OutUnEscapedJSON [<SwitchParameter>]
   Description: Remove UnEsacped Char from the JSON information.
   Notes: This will beautify json and clean up the formatting.
   Alias: 
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   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).


# Get-BluGenieErrorAction

﻿

### Get-BluGenieErrorAction <a href="#get-blugenieerroraction" id="get-blugenieerroraction"></a>

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

Get-BluGenieErrorAction is a function that will round up any errors into a smiple object

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

```
Get-BluGenieErrorAction [-Clear] [-List] [-Walkthrough] [-ReturnObject] [-OutUnEscapedJSON] [<CommonParameters>]
```

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

Get-BluGenieErrorAction is a function that will round up any errors into a smiple object

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

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

```
Command: Get-BluGenieErrorAction
```

```
Description: Display error information in a readable format
Notes: This includes 
    * Action			= The actioning item or cmdlet
 * StackTracke	= From what Function, ScriptBlock, or CmdLet the error came from and the Line number
 * Line			= The command used when the error was generated
 * Error			= A string with a readable error message
```

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

```
Command: Get-BluGenieErrorAction -Clear
```

```
Description: Clear all errors after processing each error message
Notes:
```

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

```
Command: Get-BluGenieErrorAction -List
```

```
Description: Return information in a List format
Notes: By default the information is displayed in a Table format
```

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

```
Command: Get-BluGenieErrorAction -Help
```

```
Description: Call Help Information
Notes: If Help / WalkThrough is setup as a parameter, this script will be called to setup the Dynamic Help Menu if not the normal Get-Help will be called with the -Full parameter
```

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

```
Command: Get-BluGenieErrorAction -WalkThrough
```

```
Description: Call Help Information [2]
Notes: If Help / WalkThrough is setup as a parameter, this script will be called to setup the Dynamic Help Menu if not the normal Get-Help will be called with the -Full parameter
```

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

```
Command: Get-BluGenieErrorAction -OutUnEscapedJSON
```

```
Description: Get-BluGenieErrorAction and Return Output as UnEscaped JSON format
Notes:  The OutUnEscapedJSON is used to beatify the JSON return and not Escape any Characters.  Normal return data is an Object.
```

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

```
Command: Get-BluGenieErrorAction -ReturnObject
```

```
Description: Get-BluGenieErrorAction and Return Output an Object
Notes:  The ReturnObject is used to return a PowerShell Object.  This is the default.
```

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

#### Clear <a href="#clear" id="clear"></a>

```
-Clear [<SwitchParameter>]
   Description: Clear all errors after trapping 
   Notes:  
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### List <a href="#list" id="list"></a>

```
-List [<SwitchParameter>]
   Description: Return data is in a List format
   Notes: By default the return data is in a Table format
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

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

```
-Walkthrough [<SwitchParameter>]
   Description:  Start the dynamic help menu system to help walk through the current command and all of the parameters
   Notes:  
   Alias: Help
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### ReturnObject <a href="#returnobject" id="returnobject"></a>

```
-ReturnObject [<SwitchParameter>]
   Description: Return information as an Object
   Notes: By default the data is returned as a Hash Table
   Alias: 
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                True
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### OutUnEscapedJSON <a href="#outunescapedjson" id="outunescapedjson"></a>

```
-OutUnEscapedJSON [<SwitchParameter>]
   Description: Remove UnEsacped Char from the JSON information.
   Notes: This will beautify json and clean up the formatting.
   Alias: 
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   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).


# Get-BluGenieFileADS

﻿Get-BluGenieFileADS

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

Query for a files Alternate Data Stream Content

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

```
Get-BluGenieFileADS [[-Path] <String[]>] [-ShowAll] [-ClearGarbageCollecting] [-UseCache] [-CachePath <String>] [-RemoveCache] [-Walkthrough] [-ReturnObject] [-OutUnEscapedJSON] [-OutYaml] [-FormatView 
<String>] [<CommonParameters>]
```

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

Query for a files Alternate Data Stream Content

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

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

```
Command: Get-BluGenieFileADS -path "C:\Temp\File1.txt","%SystemDrive%\Windows\Notepod.exe"
```

```
Description: Query files for any ADS Information using the Path Parameter
Notes:
```

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

```
Command: Get-BluGenieFileADS -path "C:\Temp\File1.txt,%SystemDrive%\Windows\Notepod.exe"
```

```
Description: Query files for any ADS Information using a Single String Array with a comma separator
Notes:
```

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

```
Command: Get-BluGenieFileADS -path "C:\Temp\File1.txt;%SystemDrive%\Windows\Notepod.exe"
```

```
Description: Query files for any ADS Information using a Single String Array with a semicolon separator
Notes:
```

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

```
Command: Get-ChildItem -path $env:temp -File | Get-BluGenieFileADS
```

```
Description: Query files for any ADS Information using Named value from Pipeline
Notes:
```

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

```
Command: Get-ChildItem -path $env:temp -File | Select-Object -ExpandProperty Fullname | Get-BluGenieFileADS
```

```
Description: Query files for any ADS Information using value from Pipeline
Notes:
```

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

```
Command: Get-FileADS -path "C:\Temp\File1.txt"
```

```
Description: Query files for any ADS Information using the Function Alias
Notes:
```

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

```
Command: Get-BluGenieFileADS -path "C:\Temp\File1.txt" -UseCache
```

```
Description: Cache found objects to disk to not over tax Memory resources
Notes: By default the Cache location is %SystemDrive%\Windows\Temp
```

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

```
Command: Get-BluGenieFileADS -path "C:\Temp\File1.txt" -UseCache -RemoveCache
```

```
Description: Remove Cache data
Notes:
```

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

```
Command: Get-BluGenieFileADS -path "C:\Temp\File1.txt" -UseCache -CachePath $Env:Temp
```

```
Description: Change the Cache path to the current users Temp directory
Notes: By default the Cache location is %SystemDrive%\Windows\Temp
```

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

```
Command: Get-ChildItem -path $env:temp -File | Get-BluGenieFileADS -UseCache -ClearGarbageCollecting
```

```
Description: Scan large directories and limit the memory used to track data
Notes:
```

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

```
Command: Get-BluGenieFileADS -Help
```

```
Description: Call Help Information
Notes: If Help / WalkThrough is setup as a parameter, this script will be called to setup the Dynamic Help Menu if not the normal 
Get-Help will be called with the -Full parameter
```

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

```
Command: Get-BluGenieFileADS -WalkThrough
```

```
Description: Call Help Information [2]
Notes: If Help / WalkThrough is setup as a parameter, this script will be called to setup the Dynamic Help Menu if not the normal 
Get-Help will be called with the -Full parameter
```

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

```
Command: Get-BluGenieFileADS -path "C:\Temp\File1.txt" -OutUnEscapedJSON
```

```
Description: Return a detailed function report in an UnEscaped JSON format
Notes:  The OutUnEscapedJSON is used to Beautify the JSON return and not Escape any Characters.  Normal return data is a Hash Table.
```

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

```
Command: Get-BluGenieFileADS -path "C:\Temp\File1.txt" -OutYaml
```

```
Description: Return a detailed function report in YAML format
Notes:  The OutUnEscapedJSON is used to Beautify the JSON return and not Escape any Characters.  Normal return data is a Hash Table.
```

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

```
Command: Get-BluGenieFileADS -path "C:\Temp\File1.txt" -ReturnObject
```

```
Description: Return Output as a Object
Notes:  The ReturnObject is used to return a PowerShell Object.  Normal return data is a Hash Table.
       This parameter is also used with the ForMat
```

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

```
Command: Get-BluGenieFileADS -path "C:\Temp\File1.txt" -ReturnObject -FormatView Yaml
```

```
Description: Output PSObject information in Yaml format
Notes:  Current formats supported by default are ('Table','Custom','CustomModified','None','JSON','OutUnEscapedJSON','CSV', 'Yaml', 'XML')
       Default is set to (None) and normal PSObject.
```

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

#### Path <a href="#path" id="path"></a>

```
-Path <String[]>
   Description: File Path
   Notes:
   Alias: 'Fullname'
   ValidateSet:
   
   Required?                    false
   Position?                    1
   Default value                
   Accept pipeline input?       true (ByValue, ByPropertyName)
   Accept wildcard characters?  false
```

#### ShowAll <a href="#showall" id="showall"></a>

```
-ShowAll [<SwitchParameter>]
   Description: Query all Data Stream values
   Notes: By default the :DATA Stream is bypassed
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### ClearGarbageCollecting <a href="#cleargarbagecollecting" id="cleargarbagecollecting"></a>

```
-ClearGarbageCollecting [<SwitchParameter>]
   Description: Garbage Collection in Powershell to Speed up Scripts and help lower memory consumption
   Notes: This is enabled by default.  To disable use -ClearGarbageCollecting:$False
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                True
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### UseCache <a href="#usecache" id="usecache"></a>

```
-UseCache [<SwitchParameter>]
   Description: Cache found objects to disk.  This is to not over tax Memory resources with found artifacts
   Notes: By default the Cache location is %SystemDrive%\Windows\Temp
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### CachePath <a href="#cachepath" id="cachepath"></a>

```
-CachePath <String>
   Description: Path to store the Cache information
   Notes: By default the Cache location is %SystemDrive%\Windows\Temp
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                $('{0}\Windows\Temp\{1}.log' -f $env:SystemDrive, $(New-BluGenieUID))
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### RemoveCache <a href="#removecache" id="removecache"></a>

```
-RemoveCache [<SwitchParameter>]
   Description: Remove Cache data on completion
   Notes: Cache information is removed right before the data is returned to the calling process
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

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

```
-Walkthrough [<SwitchParameter>]
   Description:  Start the dynamic help menu system to help walk through the current command and all of the parameters
   Notes:
   Alias: Help
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### ReturnObject <a href="#returnobject" id="returnobject"></a>

```
-ReturnObject [<SwitchParameter>]
   Description: Return information as an Object
   Notes: By default the data is returned as a Hash Table
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### OutUnEscapedJSON <a href="#outunescapedjson" id="outunescapedjson"></a>

```
-OutUnEscapedJSON [<SwitchParameter>]
   Description: Remove UnEsacped Char from the JSON information.
   Notes: This will beautify json and clean up the formatting.
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### OutYaml <a href="#outyaml" id="outyaml"></a>

```
-OutYaml [<SwitchParameter>]
   Description: Return detailed information in Yaml Format
   Notes: Only supported in Posh 3.0 and above
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### FormatView <a href="#formatview" id="formatview"></a>

```
-FormatView <String>
   Description: Automatically format the Return Object
   Notes: Yaml is only supported in Posh 3.0 and above
   Alias:
   ValidateSet: 'Table','Custom','CustomModified','None','JSON','OutUnEscapedJSON','CSV', 'Yaml'
   
   Required?                    false
   Position?                    named
   Default value                None
   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).


# Get-BluGenieFilePermissions

﻿

### Get-BluGenieFilePermissions <a href="#get-blugeniefilepermissions" id="get-blugeniefilepermissions"></a>

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

Query file(s) for NTFS Permissions

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

```
Get-BluGenieFilePermissions [[-Path] <String[]>] [-ClearGarbageCollecting] [-UseCache] [-CachePath <String>] [-RemoveCache] [-Walkthrough] [-ReturnObject] [-OutUnEscapedJSON] [-OutYaml] [-FormatView <String>] 
[<CommonParameters>]
```

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

Query file(s) for NTFS Permissions

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

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

```
Command: Get-BluGenieFilePermissions -path "C:\Temp\File1.txt","%SystemDrive%\Windows\Notepod.exe"
```

```
Description: Query file Permissions Information using the Path Parameter
Notes:
```

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

```
Command: Get-BluGenieFilePermissions -path "C:\Temp\File1.txt,%SystemDrive%\Windows\Notepod.exe"
```

```
Description: Query file Permissions Information using a Single String Array with a comma separator
Notes:
```

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

```
Command: Get-BluGenieFilePermissions -path "C:\Temp\File1.txt;%SystemDrive%\Windows\Notepod.exe"
```

```
Description: Query file Permissions Information using a Single String Array with a semicolon separator
Notes:
```

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

```
Command: Get-ChildItem -path $env:temp -File | Get-BluGenieFilePermissions
```

```
Description: Query file Permissions Information using Named value from Pipeline
Notes:
```

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

```
Command: Get-ChildItem -path $env:temp -File | Select-Object -ExpandProperty Fullname | Get-BluGenieFilePermissions
```

```
Description: Query file Permissions Information using value from Pipeline
Notes:
```

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

```
Command: Get-FileADS -path "C:\Temp\File1.txt"
```

```
Description: Query file Permissions Information using the Function Alias
Notes:
```

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

```
Command: Get-BluGenieFilePermissions -path "C:\Temp\File1.txt" -UseCache
```

```
Description: Cache found objects to disk to not over tax Memory resources
Notes: By default the Cache location is %SystemDrive%\Windows\Temp
```

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

```
Command: Get-BluGenieFilePermissions -path "C:\Temp\File1.txt" -UseCache -RemoveCache
```

```
Description: Remove Cache data
Notes:
```

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

```
Command: Get-BluGenieFilePermissions -path "C:\Temp\File1.txt" -UseCache -CachePath $Env:Temp
```

```
Description: Change the Cache path to the current users Temp directory
Notes: By default the Cache location is %SystemDrive%\Windows\Temp
```

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

```
Command: Get-ChildItem -path $env:temp -File | Get-BluGenieFilePermissions -UseCache -ClearGarbageCollecting
```

```
Description: Scan large directories and limit the memory used to track data
Notes:
```

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

```
Command: Get-BluGenieFilePermissions -Help
```

```
Description: Call Help Information
Notes: If Help / WalkThrough is setup as a parameter, this script will be called to setup the Dynamic Help Menu if not the normal 
Get-Help will be called with the -Full parameter
```

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

```
Command: Get-BluGenieFilePermissions -WalkThrough
```

```
Description: Call Help Information [2]
Notes: If Help / WalkThrough is setup as a parameter, this script will be called to setup the Dynamic Help Menu if not the normal 
Get-Help will be called with the -Full parameter
```

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

```
Command: Get-BluGenieFilePermissions -path "C:\Temp\File1.txt" -OutUnEscapedJSON
```

```
Description: Return a detailed function report in an UnEscaped JSON format
Notes:  The OutUnEscapedJSON is used to Beautify the JSON return and not Escape any Characters.  Normal return data is a Hash Table.
```

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

```
Command: Get-BluGenieFilePermissions -path "C:\Temp\File1.txt" -OutYaml
```

```
Description: Return a detailed function report in YAML format
Notes:  The OutUnEscapedJSON is used to Beautify the JSON return and not Escape any Characters.  Normal return data is a Hash Table.
```

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

```
Command: Get-BluGenieFilePermissions -path "C:\Temp\File1.txt" -ReturnObject
```

```
Description: Return Output as a Object
Notes:  The ReturnObject is used to return a PowerShell Object.  Normal return data is a Hash Table.
          This parameter is also used with the ForMat
```

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

```
Command: Get-BluGenieFilePermissions -path "C:\Temp\File1.txt" -ReturnObject -FormatView Yaml
```

```
Description: Output PSObject information in Yaml format
Notes:  Current formats supported by default are ('Table','Custom','CustomModified','None','JSON','OutUnEscapedJSON','CSV', 'Yaml', 'XML')
          Default is set to (None) and normal PSObject.
```

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

#### Path <a href="#path" id="path"></a>

```
-Path <String[]>
   Description: File Path
   Notes:  
   Alias: 'Fullname'
   ValidateSet:
   
   Required?                    false
   Position?                    1
   Default value                
   Accept pipeline input?       true (ByValue, ByPropertyName)
   Accept wildcard characters?  false
```

#### ClearGarbageCollecting <a href="#cleargarbagecollecting" id="cleargarbagecollecting"></a>

```
-ClearGarbageCollecting [<SwitchParameter>]
   Description: Garbage Collection in Powershell to Speed up Scripts and help lower memory consumption
   Notes: This is enabled by default.  To disable use -ClearGarbageCollecting:$False
   Alias: 
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                True
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### UseCache <a href="#usecache" id="usecache"></a>

```
-UseCache [<SwitchParameter>]
   Description: Cache found objects to disk.  This is to not over tax Memory resources with found artifacts
   Notes: By default the Cache location is %SystemDrive%\Windows\Temp
   Alias: 
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### CachePath <a href="#cachepath" id="cachepath"></a>

```
-CachePath <String>
   Description: Path to store the Cache information
   Notes: By default the Cache location is %SystemDrive%\Windows\Temp
   Alias: 
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                $('{0}\Windows\Temp\{1}.log' -f $env:SystemDrive, $(New-BluGenieUID))
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### RemoveCache <a href="#removecache" id="removecache"></a>

```
-RemoveCache [<SwitchParameter>]
   Description: Remove Cache data on completion
   Notes: Cache information is removed right before the data is returned to the calling process
   Alias: 
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

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

```
-Walkthrough [<SwitchParameter>]
   Description:  Start the dynamic help menu system to help walk through the current command and all of the parameters
   Notes:  
   Alias: Help
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### ReturnObject <a href="#returnobject" id="returnobject"></a>

```
-ReturnObject [<SwitchParameter>]
   Description: Return information as an Object
   Notes: By default the data is returned as a Hash Table
   Alias: 
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### OutUnEscapedJSON <a href="#outunescapedjson" id="outunescapedjson"></a>

```
-OutUnEscapedJSON [<SwitchParameter>]
   Description: Remove UnEsacped Char from the JSON information.
   Notes: This will beautify json and clean up the formatting.
   Alias: 
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### OutYaml <a href="#outyaml" id="outyaml"></a>

```
-OutYaml [<SwitchParameter>]
   Description: Return detailed information in Yaml Format
   Notes: Only supported in Posh 3.0 and above
   Alias: 
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### FormatView <a href="#formatview" id="formatview"></a>

```
-FormatView <String>
   Description: Automatically format the Return Object 
   Notes: Yaml is only supported in Posh 3.0 and above
   Alias: 
   ValidateSet: 'Table','Custom','CustomModified','None','JSON','OutUnEscapedJSON','CSV', 'Yaml'
   
   Required?                    false
   Position?                    named
   Default value                None
   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).


# Get-BluGenieFileSnapshot

﻿

### Get-BluGenieFileSnapshot <a href="#get-blugeniefilesnapshot" id="get-blugeniefilesnapshot"></a>

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

Get-BluGenieFileSnapshot takes a snapshot of the requested direcotry path

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

```
Get-BluGenieFileSnapshot [[-Path] <String>] [[-Walkthrough]] [[-ReturnObject]] [[-LeaveFile]] [[-OutUnEscapedJSON]] [[-Recurse]] [<CommonParameters>]
```

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

Get-BluGenieFileSnapshot takes a snapshot of the requested direcotry path. This can be the parent directory and / or a recursive sub directory snapshot.

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

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

```
Get-BluGenieFileSnapshot
```

```
This will output nothing.  If the Path is empty the command will Return $Null
```

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

```
Get-BluGenieFileSnapshot -Path 'C:\Windows\System32\Temp'
```

```
This will only take a file and directory Snapshot of the root directory defined 'C:\Windows\System32\Temp'
```

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

```
Get-BluGenieFileSnapshot -Path 'C:\Windows\System32\Temp' -Recurse
```

```
This will take a file and directory Snapshot of the root directory and all sub dictories for the path defined 'C:\Windows\System32\Temp'
```

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

```
Get-BluGenieFileSnapshot -Path 'C:\Windows\System32\Temp' -ReturnObject
```

```
This will only take a file and directory Snapshot of the root directory defined 'C:\Windows\System32\Temp'
and return just the Object content

Note:  The default output is a HashTable
```

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

```
Get-BluGenieFileSnapshot -Path 'C:\Windows\System32\Temp' -LeaveFile
```

```
This will only take a file and directory Snapshot of the root directory defined 'C:\Windows\System32\Temp'

The file is saved by default to the %WinDir%\Temp directory, the fil ename is saved as a GUID with no ext.
```

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

```
Get-BluGenieFileSnapshot -Path 'AllUsers\Desktop'
```

```
This will take a file and directory Snapshot of the each users Desktop direcotory
```

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

```
Get-BluGenieFileSnapshot -Path 'Temp' -Recurse
```

```
This will take a file and directory Snapshot of the each users Temp direcotory and snapshot all sub files and directories as well.
```

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

```
Get-BluGenieFileSnapshot -Path 'C:\Windows\System32\Temp' -OutUnEscapedJSON
```

```
This will only take a file and directory Snapshot of the root directory defined 'C:\Windows\System32\Temp'

The return data will be in a beautified json format
```

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

#### Path <a href="#path" id="path"></a>

```
-Path <String>
   The path to the parent directory
   
   If you specify "Temp" in the begining of the Path field all the %SystemDrive%\Users\* Temp directories will be prefixed to the rest of the path and a snapshot will be taken for each Path
   If you specify "AllUsers" in the begining of the Path field, all the User Profiles directories from %SystemDrive%\Users will be prefixed to the rest of the path and a snapshot will be taken for each Path
   
       Example:  -Path 'AllUsers\AppData\Roaming'
   
       Output:   C:\Users\Administrator\AppData\Roaming
                   C:\Users\User1\AppData\Roaming
                   C:\Users\User2\AppData\Roaming
                   C:\Users\User3\AppData\Roaming
                   C:\Users\User4\AppData\Roaming
   
   <Type>String<Type>
   
   Required?                    false
   Position?                    1
   Default value                
   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?                    2
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### ReturnObject <a href="#returnobject" id="returnobject"></a>

```
-ReturnObject [<SwitchParameter>]
   Return information as an Object.
   By default the data is returned as a Hash Table
   
   <Type>SwitchParameter<Type>
   
   Required?                    false
   Position?                    3
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### LeaveFile <a href="#leavefile" id="leavefile"></a>

```
-LeaveFile [<SwitchParameter>]
   Do not remove snapshot file.
   By default the data is saved as a GUID in the system temp directory
   
   <Type>SwitchParameter<Type>
   
   Required?                    false
   Position?                    4
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### OutUnEscapedJSON <a href="#outunescapedjson" id="outunescapedjson"></a>

```
-OutUnEscapedJSON [<SwitchParameter>]
   Removed UnEsacped Char from the JSON Return.
   This will beautify json and clean up the formatting.
   
   <Type>SwitchParameter<Type>
   
   Required?                    false
   Position?                    5
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### Recurse <a href="#recurse" id="recurse"></a>

```
-Recurse [<SwitchParameter>]
   Recurse through subdirectories
   
   <Type>SwitchParameter<Type>
   
   Required?                    false
   Position?                    5
   Default value                False
   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).


# Get-BluGenieFileStreams

﻿

### Get-BluGenieFileStreams <a href="#get-blugeniefilestreams" id="get-blugeniefilestreams"></a>

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

Query file(s) for NTFS ADS Content

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

```
Get-BluGenieFileStreams [[-Path] <String[]>] [-ClearGarbageCollecting] [-UseCache] [-CachePath <String>] [-RemoveCache] [-Walkthrough] [-ReturnObject] [-OutUnEscapedJSON] [-ShowAllStreamValues] [-OutYaml] 
[-FormatView <String>] [<CommonParameters>]
```

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

Query file(s) for NTFS ADS Content

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

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

```
Command: Get-BluGenieFileStreams -path "C:\Temp\File1.txt","%SystemDrive%\Windows\Notepod.exe"
```

```
Description: Query file Permissions Information using the Path Parameter
Notes:
```

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

```
Command: Get-BluGenieFileStreams -path "C:\Temp\File1.txt,%SystemDrive%\Windows\Notepod.exe"
```

```
Description: Query file Permissions Information using a Single String Array with a comma separator
Notes:
```

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

```
Command: Get-BluGenieFileStreams -path "C:\Temp\File1.txt;%SystemDrive%\Windows\Notepod.exe"
```

```
Description: Query file Permissions Information using a Single String Array with a semicolon separator
Notes:
```

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

```
Command: Get-ChildItem -path $env:temp -File | Get-BluGenieFileStreams
```

```
Description: Query file Permissions Information using Named value from Pipeline
Notes:
```

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

```
Command: Get-ChildItem -path $env:temp -File | Select-Object -ExpandProperty Fullname | Get-BluGenieFileStreams
```

```
Description: Query file Permissions Information using value from Pipeline
Notes:
```

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

```
Command: Get-FileADS -path "C:\Temp\File1.txt"
```

```
Description: Query file Permissions Information using the Function Alias
Notes:
```

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

```
Command: Get-BluGenieFileStreams -path "C:\Temp\File1.txt" -UseCache
```

```
Description: Cache found objects to disk to not over tax Memory resources
Notes: By default the Cache location is %SystemDrive%\Windows\Temp
```

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

```
Command: Get-BluGenieFileStreams -path "C:\Temp\File1.txt" -UseCache -RemoveCache
```

```
Description: Remove Cache data
Notes:
```

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

```
Command: Get-BluGenieFileStreams -path "C:\Temp\File1.txt" -UseCache -CachePath $Env:Temp
```

```
Description: Change the Cache path to the current users Temp directory
Notes: By default the Cache location is %SystemDrive%\Windows\Temp
```

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

```
Command: Get-ChildItem -path $env:temp -File | Get-BluGenieFileStreams -UseCache -ClearGarbageCollecting
```

```
Description: Scan large directories and limit the memory used to track data
Notes:
```

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

```
Command: Get-BluGenieFileStreams -Help
```

```
Description: Call Help Information
Notes: If Help / WalkThrough is setup as a parameter, this script will be called to setup the Dynamic Help Menu if not the normal
Get-Help will be called with the -Full parameter
```

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

```
Command: Get-BluGenieFileStreams -WalkThrough
```

```
Description: Call Help Information [2]
Notes: If Help / WalkThrough is setup as a parameter, this script will be called to setup the Dynamic Help Menu if not the normal
Get-Help will be called with the -Full parameter
```

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

```
Command: Get-BluGenieFileStreams -path "C:\Temp\File1.txt" -OutUnEscapedJSON
```

```
Description: Return a detailed function report in an UnEscaped JSON format
Notes:  The OutUnEscapedJSON is used to Beautify the JSON return and not Escape any Characters.  Normal return data is a Hash Table.
```

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

```
Command: Get-BluGenieFileStreams -path "C:\Temp\File1.txt" -OutYaml
```

```
Description: Return a detailed function report in YAML format
Notes:  The OutUnEscapedJSON is used to Beautify the JSON return and not Escape any Characters.  Normal return data is a Hash Table.
```

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

```
Command: Get-BluGenieFileStreams -path "C:\Temp\File1.txt" -ReturnObject
```

```
Description: Return Output as a Object
Notes:  The ReturnObject is used to return a PowerShell Object.  Normal return data is a Hash Table.
       This parameter is also used with the ForMat
```

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

```
Command: Get-BluGenieFileStreams -path "C:\Temp\File1.txt" -ReturnObject -FormatView Yaml
```

```
Description: Output PSObject information in Yaml format
Notes:  Current formats supported by default are ('Table','Custom','CustomModified','None','JSON','OutUnEscapedJSON','CSV', 'Yaml', 'XML')
       Default is set to (None) and normal PSObject.
```

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

#### Path <a href="#path" id="path"></a>

```
-Path <String[]>
   Description: File Path
   Notes:
   Alias: 'Fullname'
   ValidateSet:
   
   Required?                    false
   Position?                    1
   Default value                
   Accept pipeline input?       true (ByValue, ByPropertyName)
   Accept wildcard characters?  false
```

#### ClearGarbageCollecting <a href="#cleargarbagecollecting" id="cleargarbagecollecting"></a>

```
-ClearGarbageCollecting [<SwitchParameter>]
   Description: Garbage Collection in Powershell to Speed up Scripts and help lower memory consumption
   Notes: This is enabled by default.  To disable use -ClearGarbageCollecting:$False
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                True
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### UseCache <a href="#usecache" id="usecache"></a>

```
-UseCache [<SwitchParameter>]
   Description: Cache found objects to disk.  This is to not over tax Memory resources with found artifacts
   Notes: By default the Cache location is %SystemDrive%\Windows\Temp
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### CachePath <a href="#cachepath" id="cachepath"></a>

```
-CachePath <String>
   Description: Path to store the Cache information
   Notes: By default the Cache location is %SystemDrive%\Windows\Temp
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                $('{0}\Windows\Temp\{1}.log' -f $env:SystemDrive, $(New-BluGenieUID))
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### RemoveCache <a href="#removecache" id="removecache"></a>

```
-RemoveCache [<SwitchParameter>]
   Description: Remove Cache data on completion
   Notes: Cache information is removed right before the data is returned to the calling process
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

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

```
-Walkthrough [<SwitchParameter>]
   Description:  Start the dynamic help menu system to help walk through the current command and all of the parameters
   Notes:
   Alias: Help
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### ReturnObject <a href="#returnobject" id="returnobject"></a>

```
-ReturnObject [<SwitchParameter>]
   Description: Return information as an Object
   Notes: By default the data is returned as a Hash Table
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### OutUnEscapedJSON <a href="#outunescapedjson" id="outunescapedjson"></a>

```
-OutUnEscapedJSON [<SwitchParameter>]
   Description: Remove UnEsacped Char from the JSON information.
   Notes: This will beautify json and clean up the formatting.
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### ShowAllStreamValues <a href="#showallstreamvalues" id="showallstreamvalues"></a>

```
-ShowAllStreamValues [<SwitchParameter>]
   Description: Show all Stream Values including the :DATA Stream
   Notes: Default is to not show the :DATA Stream and only show any alternate data streams
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### OutYaml <a href="#outyaml" id="outyaml"></a>

```
-OutYaml [<SwitchParameter>]
   Description: Return detailed information in Yaml Format
   Notes: Only supported in Posh 3.0 and above
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### FormatView <a href="#formatview" id="formatview"></a>

```
-FormatView <String>
   Description: Automatically format the Return Object
   Notes: Yaml is only supported in Posh 3.0 and above
   Alias:
   ValidateSet: 'Table','Custom','CustomModified','None','JSON','OutUnEscapedJSON','CSV', 'Yaml'
   
   Required?                    false
   Position?                    named
   Default value                None
   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).


# Get-BluGenieFirewallRules

﻿Get-BluGenieFirewallRules

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

Get a list of Windows FireWall Rules

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

```
Get-BluGenieFirewallRules [[-Type] <Object>] [[-AllProperties]] [[-RuleName] <String>] [-ClearGarbageCollecting] [-UseCache] [-CachePath <String>] [-RemoveCache] [-DBName <String>] [-DBPath <String>] 
[-UpdateDB] [-ForceDBUpdate] [-NewDBTable] [-Walkthrough] [-ReturnObject] [-OutUnEscapedJSON] [-OutYaml] [-FormatView <String>] [<CommonParameters>]
```

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

Get a list of Windows FireWall Rules

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

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

```
Command: Get-BluGenieFirewallRules
```

```
Description: Report on all (Enabled) Windows Firewall Rules
Notes:
```

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

```
Command: Get-BluGenieFirewallRules -Type 'Enabled' -AllProperties
```

```
Description: Report on all Enabled Windows Firewall Rules
Notes:
```

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

```
Command: Get-BluGenieFirewallRules -Type 'Disabled' -AllProperties
```

```
Description: Report on all Disabled Windows Firewall Rules
Notes:
```

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

```
Command: Get-BluGenieFirewallRules -Type 'All' -AllProperties
```

```
Description: Report on all All Windows Firewall Rules
Notes:
```

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

```
Command: Get-BluGenieFirewallRules -UseCache
```

```
Description: Cache found objects to disk to not over tax Memory resources
Notes: By default the Cache location is %SystemDrive%\Windows\Temp
```

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

```
Command: Get-BluGenieFirewallRules -UseCache -RemoveCache
```

```
Description: Remove Cache data
Notes: By default the Cache information is removed right before the data is returned to the caller
```

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

```
Command: Get-BluGenieFirewallRules -UseCache -CachePath $Env:Temp
```

```
Description: Change the Cache path to the current users Temp directory
Notes: By default the Cache location is %SystemDrive%\Windows\Temp
```

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

```
Command: Get-BluGenieFirewallRules -UseCache -ClearGarbageCollecting
```

```
Description: Scan large directories and limit the memory used to track data
Notes:
```

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

```
Command: Get-BluGenieFirewallRules -Help
```

```
Description: Call Help Information
Notes: If Help / WalkThrough is setup as a parameter, this script will be called to setup the Dynamic Help Menu if not the normal
       Get-Help will be called with the -Full parameter
```

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

```
Command: Get-BluGenieFirewallRules -WalkThrough
```

```
Description: Call Help Information [2]
Notes: If Help / WalkThrough is setup as a parameter, this script will be called to setup the Dynamic Help Menu if not the normal
       Get-Help will be called with the -Full parameter
```

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

```
Command: Get-BluGenieFirewallRules -OutUnEscapedJSON
```

```
Description: Return a detailed function report in an UnEscaped JSON format
Notes:  The OutUnEscapedJSON is used to Beautify the JSON return and not Escape any Characters.  Normal return data is a Hash Table.
```

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

```
Command: Get-BluGenieFirewallRules -OutYaml
```

```
Description: Return a detailed function report in YAML format
Notes:  The OutUnEscapedJSON is used to Beautify the JSON return and not Escape any Characters.  Normal return data is a Hash Table.
```

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

```
Command: Get-BluGenieFirewallRules -ReturnObject
```

```
Description: Return Output as a Object
Notes:  The ReturnObject is used to return a PowerShell Object.  Normal return data is a Hash Table.
       This parameter is also used with the ForMat
```

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

```
Command: Get-BluGenieFirewallRules -ReturnObject -FormatView Yaml
```

```
Description: Output PSObject information in Yaml format
Notes:  Current formats supported by default are ('Table','Custom','CustomModified','None','JSON','OutUnEscapedJSON','CSV', 'Yaml')
       Default is set to (None) and normal PSObject.
```

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

#### Type <a href="#type" id="type"></a>

```
-Type <Object>
   Description: Select a specific rule type status
   Notes: Type status ('Enabled', 'Disabled', 'All')
   Alias:
   ValidateSet: 'Enabled','Disabled','All'
   
   Required?                    false
   Position?                    1
   Default value                Enabled
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### AllProperties <a href="#allproperties" id="allproperties"></a>

```
-AllProperties [<SwitchParameter>]
   Description: Query all firewall property values.
   Notes: The default values are [Name, Description, ApplicationName, Enabled]
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    2
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### RuleName <a href="#rulename" id="rulename"></a>

```
-RuleName <String>
   Description: Name of the Rule(s) you would like to report on.  If the value is not set, the report will be based on (Type) information
   Notes:
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    3
   Default value                .*
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### ClearGarbageCollecting <a href="#cleargarbagecollecting" id="cleargarbagecollecting"></a>

```
-ClearGarbageCollecting [<SwitchParameter>]
   Description: Garbage Collection in Powershell to Speed up Scripts and help lower memory consumption
   Notes: This is enabled by default.  To disable use -ClearGarbageCollecting:$False
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### UseCache <a href="#usecache" id="usecache"></a>

```
-UseCache [<SwitchParameter>]
   Description: Cache found objects to disk.  This is to not over tax Memory resources with found artifacts
   Notes: By default the Cache location is %SystemDrive%\Windows\Temp
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### CachePath <a href="#cachepath" id="cachepath"></a>

```
-CachePath <String>
   Description: Path to store the Cache information
   Notes: By default the Cache location is %SystemDrive%\Windows\Temp
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                $('{0}\Windows\Temp\{1}.log' -f $env:SystemDrive, $(New-BluGenieUID))
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### RemoveCache <a href="#removecache" id="removecache"></a>

```
-RemoveCache [<SwitchParameter>]
   Description: Remove Cache data on completion
   Notes: Cache information is removed right before the data is returned to the calling process
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### DBName <a href="#dbname" id="dbname"></a>

```
-DBName <String>
   Description: Database Name (Without extention)
   Notes: The default name is set to 'BluGenie'
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                BluGenie
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### DBPath <a href="#dbpath" id="dbpath"></a>

```
-DBPath <String>
   Description: Path to either Save or Update the Database
   Notes: The default path is $('{0}\BluGenie' -f $env:ProgramFiles)  Example: C:\Program Files\BluGenie
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                $('{0}\BluGenie' -f $env:ProgramFiles)
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### UpdateDB <a href="#updatedb" id="updatedb"></a>

```
-UpdateDB [<SwitchParameter>]
   Description: Save return data to the Sqlite Database
   Notes:
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### ForceDBUpdate <a href="#forcedbupdate" id="forcedbupdate"></a>

```
-ForceDBUpdate [<SwitchParameter>]
   Description: Force an update of the return data to the Sqlite Database
   Notes: By default only new items are saved.  The primary key is ( FullName )
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### NewDBTable <a href="#newdbtable" id="newdbtable"></a>

```
-NewDBTable [<SwitchParameter>]
   Description: Delete and Recreate the Database Table
   Notes:
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

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

```
-Walkthrough [<SwitchParameter>]
   Description:  Start the dynamic help menu system to help walk through the current command and all of the parameters
   Notes:
   Alias: Help
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### ReturnObject <a href="#returnobject" id="returnobject"></a>

```
-ReturnObject [<SwitchParameter>]
   Description: Return information as an Object
   Notes: By default the data is returned as a Hash Table
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### OutUnEscapedJSON <a href="#outunescapedjson" id="outunescapedjson"></a>

```
-OutUnEscapedJSON [<SwitchParameter>]
   Description: Remove UnEsacped Char from the JSON information.
   Notes: This will beautify json and clean up the formatting.
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### OutYaml <a href="#outyaml" id="outyaml"></a>

```
-OutYaml [<SwitchParameter>]
   Description: Return detailed information in Yaml Format
   Notes: Only supported in Posh 3.0 and above
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### FormatView <a href="#formatview" id="formatview"></a>

```
-FormatView <String>
   Description: Automatically format the Return Object
   Notes: Yaml is only supported in Posh 3.0 and above
   Alias:
   ValidateSet: 'Table','Custom','CustomModified','None','JSON','OutUnEscapedJSON','CSV', 'Yaml'
   
   Required?                    false
   Position?                    named
   Default value                None
   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).


# Get-BluGenieHashInfo

﻿

### Get-BluGenieHashInfo <a href="#get-blugeniehashinfo" id="get-blugeniehashinfo"></a>

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

Get-BluGenieHashInfo is a PowerShell Version 2 port of Get-FileHash

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

```
Get-BluGenieHashInfo [[-Path] <String[]>] [[-Algorithm] <String>] [[-Walkthrough]] [[-ReturnObject]] [[-OutUnEscapedJSON]] [-FormatView <String>] [<CommonParameters>]
```

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

Specifies the path to a file to hash. Wildcard characters are permitted.

Note: If more than 1 path is specified the return will output a list of items including the Paths and Hash information of each file.

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

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

```
Command: Get-BluGenieHashInfo -Path C:\Windows\Notepad.exe
```

```
Description: This will return the (MD5) hash value for C:\Windows\Notepad.exe
Notes:
```

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

```
Command: Get-BluGenieHashInfo -Path C:\Windows\Note* -Algorithm SHA256
```

```
Description: This will return the (SHA256) hash value for C:\Windows\Notepad.exe
Notes:
```

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

```
Command: Get-BluGenieHashInfo -Path '%Windir%\notepad.exe'
```

```
Description:  This will convert the path to the literal path and return the (MD5) hash value for C:\Windows\Notepad.exe
Notes:
```

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

```
Command: Get-BluGenieHashInfo -Help
```

```
Description: Call Help Information
Notes: If Help / WalkThrough is setup as a parameter, this script will be called to setup the Dynamic Help Menu if not the normal
Get-Help will be called with the -Full parameter
```

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

```
Command: Get-BluGenieHashInfo -WalkThrough
```

```
Description: Call Help Information [2]
Notes: If Help / WalkThrough is setup as a parameter, this script will be called to setup the Dynamic Help Menu if not the normal
Get-Help will be called with the -Full parameter
```

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

```
Command: Get-BluGenieHashInfo -OutUnEscapedJSON
```

```
Description: Get-BluGenieHashInfo and Return Output as UnEscaped JSON format
Notes:  The OutUnEscapedJSON is used to beatify the JSON return and not Escape any Characters.  Normal return data is a Hash Table.
```

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

```
Command: Get-BluGenieHashInfo -ReturnObject
```

```
Description: Get-BluGenieHashInfo and Return Output an Object
Notes:  The ReturnObject is used to return a PowerShell Object.  Normal return data is a Hash Table.
```

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

```
Command: Get-BluGenieHashInfo -ReturnObject -FormatView Custom
```

```
Description: Get-BluGenieHashInfo and Return Object formatted in a PSCustom view
Notes:  Format-Custom is designed to display views that are not just tables or just lists. You can use the views defined in the
       *format.PS1XML files in the PowerShell directory, or you can create your own views in new PS1XML files and use the
       Update-FormatData cmdlet to add them to PowerShell.
```

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

#### Path <a href="#path" id="path"></a>

```
-Path <String[]>
   
   Required?                    false
   Position?                    1
   Default value                
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### Algorithm <a href="#algorithm" id="algorithm"></a>

```
-Algorithm <String>
   Description:  Specifies the cryptographic hash to use for computing the hash value of the contents of the specified file.
   Notes:  The acceptable values for this parameter are:
   
               - SHA1
               - SHA256
               - SHA384
               - SHA512
               - MACTripleDES
               - MD5 = (Default)
               - RIPEMD160
   
           If no value is specified, or if the parameter is omitted, the default value is (MD5)
   Alias:
   ValidateSet: 'MACTripleDES','MD5','RIPEMD160','SHA1','SHA256','SHA384','SHA512'
   
   Required?                    false
   Position?                    2
   Default value                MD5
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

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

```
-Walkthrough [<SwitchParameter>]
   Description:  Start the dynamic help menu system to help walk through the current command and all of the parameters
   Notes:
   Alias: Help
   ValidateSet:
   
   Required?                    false
   Position?                    3
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### ReturnObject <a href="#returnobject" id="returnobject"></a>

```
-ReturnObject [<SwitchParameter>]
   Description: Return information as an Object
   Notes: By default the data is returned as a Hash Table
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    4
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### OutUnEscapedJSON <a href="#outunescapedjson" id="outunescapedjson"></a>

```
-OutUnEscapedJSON [<SwitchParameter>]
   Description: Remove UnEsacped Char from the JSON information.
   Notes: This will beautify json and clean up the formatting.
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    5
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### FormatView <a href="#formatview" id="formatview"></a>

```
-FormatView <String>
   Description: Select which format to return the object data in.
   Notes: Default value is set to (None).  This value is only valid when using the -ReturnObject parameter
   Alias:
   ValidateSet: 'Table','Custom','CustomModified','None','JSON','OutUnEscapedJSON','CSV'
   
   Required?                    false
   Position?                    named
   Default value                Table
   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).


# Get-BluGenieHelp

﻿

### Get-BluGenieHelp <a href="#get-blugeniehelp" id="get-blugeniehelp"></a>

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

Get-BluGenieHelp is a Blugenie Internal Function to Dynamically Pull and Display Synopsis Information for all of BluGenies Functions

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

```
Get-BluGenieHelp [[-Search] <String>] [-Force] [-Walkthrough] [<CommonParameters>]
```

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

Get-BluGenieHelp is a Blugenie Internal Function to Dynamically Pull and Display Synopsis Information for all of BluGenies Functions

To speed up this informational query a Help Index file is created --> $ScriptDirectory\Tools\Blubin\HelpMnu.dat If this file doesn't exist, Once help is called it will be created before displaying the information.

You can also do quick searches on the Commands and Discriptions using RegEx. Check the Examples for more information.

In BluGenie all references will be made using the follow command --> /Help In BluGenie all references will be made using the follow command --> /Help: In BluGenie all references will be made using the follow command --> BluGenie.exe /Help In BluGenie all references will be made using the follow command --> BluGenie.exe /Help: In BluGenie all references will be made using the follow command --> BluGenie.exe "/Help:"

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

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

```
Command: /Help
```

```
Description: Display general help while in the BluGenie Console
Notes:
```

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

```
Command: /help:enable
```

```
Description: Display help with (enable) in either the command or the synopsis
Notes:
```

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

```
Command: "/help:enable firewall"
```

```
Description: Display help with (enable firewall) in the synopsis field
Notes:
```

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

```
Command: BluGenie.exe /help
```

```
Description: Display general help and exit the program
Notes:
```

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

```
Command: BluGenie.exe /help:enable
```

```
Description: Display help with (enable) in either the command or the synopsis
Notes:
```

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

```
Command: BluGenie.exe "/help:enable firewall"
```

```
Description: Display help with (enable firewall) in the synopsis field
Notes:
```

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

```
Command: Get-BluGenieHelp -Help
```

```
Description: Call Help Information
Notes: If Help / WalkThrough is setup as a parameter, this script will be called to setup the Dynamic Help Menu if not the normal Get-Help will be called with the -Full parameter
```

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

```
Command: Get-BluGenieHelp -WalkThrough
```

```
Description: Call Help Information [2]
Notes: If Help / WalkThrough is setup as a parameter, this script will be called to setup the Dynamic Help Menu if not the normal Get-Help will be called with the -Full parameter
```

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

#### Search <a href="#search" id="search"></a>

```
-Search <String>
   
   Required?                    false
   Position?                    1
   Default value                
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### Force <a href="#force" id="force"></a>

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

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

```
-Walkthrough [<SwitchParameter>]
   Description:  Start the dynamic help menu system to help walk through the current command and all of the parameters
   Notes:
   Alias: Help
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   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).


# Get-BluGenieHostingVersion

﻿

### Get-BluGenieHostingVersion <a href="#get-blugeniehostingversion" id="get-blugeniehostingversion"></a>

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

Show Hosting Shell Version Information

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

```
Get-BluGenieHostingVersion [<CommonParameters>]
```

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

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

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

```
BluGenie Shell: Get-BluGenieHostingVersion
```

```
Command Line: BluGenie.exe "Get-BluGenieHostingVersion"

This will display the hosting shell version information
```

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

```
```

#### 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).


# Get-BluGenieIPrange

﻿

### Get-BluGenieIPrange <a href="#get-blugenieiprange" id="get-blugenieiprange"></a>

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

Get the IP addresses in a range

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

```
Get-BluGenieIPrange [[-start] <String>] [[-end] <String>] [[-ip] <String>] [[-mask] <String>] [[-cidr] <Int32>] [<CommonParameters>]
```

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

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

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

```
Get-BluGenieIPrange -start 192.168.8.2 -end 192.168.8.20
```

```
```

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

```
Get-BluGenieIPrange -ip 192.168.8.2 -mask 255.255.255.0
```

```
```

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

```
Get-BluGenieIPrange -ip 192.168.8.3 -cidr 24
```

```
```

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

#### start <a href="#start" id="start"></a>

```
-start <String>
   
   Required?                    false
   Position?                    1
   Default value                
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### end <a href="#end" id="end"></a>

```
-end <String>
   
   Required?                    false
   Position?                    2
   Default value                
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### ip <a href="#ip" id="ip"></a>

```
-ip <String>
   
   Required?                    false
   Position?                    3
   Default value                
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### mask <a href="#mask" id="mask"></a>

```
-mask <String>
   
   Required?                    false
   Position?                    4
   Default value                
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### cidr <a href="#cidr" id="cidr"></a>

```
-cidr <Int32>
   
   Required?                    false
   Position?                    5
   Default value                0
   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).


# Get-BluGenieLiteralPath

﻿

### Get-BluGenieLiteralPath <a href="#get-blugenieliteralpath" id="get-blugenieliteralpath"></a>

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

Get-BluGenieLiteralPath will convert System Variable defined paths to a Literal Path

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

```
Get-BluGenieLiteralPath [[-Path] <String>] [[-Walkthrough]] [<CommonParameters>]
```

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

Get-BluGenieLiteralPath will convert System Variable defined paths to a Literal Path

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

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

```
Command: Get-BluGenieLiteralPath -Path '%SystemDrive%\Users\%Username%'
```

```
Description: Return a literal path of ( C:\Users\Administrator )
Notes:
```

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

```
Command: Get-BluGenieLiteralPath -Help
```

```
Description: Call Help Information
Notes: If Help / WalkThrough is setup as a parameter, this script will be called to setup the Dynamic Help Menu if not the normal Get-Help will be called with the -Full parameter
```

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

```
Command: Get-BluGenieLiteralPath -WalkThrough
```

```
Description: Call Help Information [2]
Notes: If Help / WalkThrough is setup as a parameter, this script will be called to setup the Dynamic Help Menu if not the normal Get-Help will be called with the -Full parameter
```

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

#### Path <a href="#path" id="path"></a>

```
-Path <String>
   Description: Specifies the path to convert or validate
   Notes:  
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    2
   Default value                
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

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

```
-Walkthrough [<SwitchParameter>]
   Description:  Start the dynamic help menu system to help walk through the current command and all of the parameters
   Notes:  
   Alias: Help
   ValidateSet:
   
   Required?                    false
   Position?                    3
   Default value                False
   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).


# Get-BluGenieLoadedRegHives

﻿

### Get-BluGenieLoadedRegHives <a href="#get-blugenieloadedreghives" id="get-blugenieloadedreghives"></a>

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

Query all loaded registry hives

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

```
Get-BluGenieLoadedRegHives [[-ReturnObject]] [[-Walkthrough]] [<CommonParameters>]
```

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

Query all loaded registry hives

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

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

```
Get-BluGenieLoadedRegHives
```

```
This will return a list of all the loaded registry hives

- Sample Output -

UserName    : S-1-5-19
ProfilePath :
UserHive    : HKEY_USERS\S-1-5-19
UserFromSID : NT AUTHORITY\LOCAL SERVICE
LoadedShell : False

UserName    : S-1-5-20
ProfilePath :
UserHive    : HKEY_USERS\S-1-5-20
UserFromSID : NT AUTHORITY\NETWORK SERVICE
LoadedShell : False

UserName    : S-1-5-21-2041101783-1631109279-337038772-500
ProfilePath : C:\Users\Administrator.TESTLAB
UserHive    : HKEY_USERS\S-1-5-21-2041101783-1631109279-337038772-500
UserFromSID : TESTLAB\Administrator
LoadedShell : True

UserName    : S-1-5-18
ProfilePath :
UserHive    : HKEY_USERS\S-1-5-18
UserFromSID : NT AUTHORITY\SYSTEM
LoadedShell : False
```

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

#### ReturnObject <a href="#returnobject" id="returnobject"></a>

```
-ReturnObject [<SwitchParameter>]
   Return information as an Object.
   By default the data is returned as a Hash Table
   
   <Type>SwitchParameter<Type>
   
   Required?                    false
   Position?                    1
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

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

```
-Walkthrough [<SwitchParameter>]
   
   Required?                    false
   Position?                    2
   Default value                False
   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).


# Get-BluGenieLockingProcess

﻿

### Get-BluGenieLockingProcess <a href="#get-blugenielockingprocess" id="get-blugenielockingprocess"></a>

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

Report on which process is locking the file or directory

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

```
Get-BluGenieLockingProcess [[-Path] <String[]>] [[-ToolPath] <String>] [[-Algorithm] <String>] [-Walkthrough] [-ReturnObject] [-OutUnEscapedJSON] [-FormatView <String>] [<CommonParameters>]
```

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

Report on which process is locking the file or directory

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

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

```
Command: Get-BluGenieLockingProcess -Path 'C:\Users\Admin\AppData\Local\Temp\aria-debug-8020.log'
```

```
Description: Show the Process locking the file given
Notes: 
- Sample Output -
          LockedPath        : C:\Users\Admin\AppData\Local\Temp\aria-debug-8020.log                     
ProcessId         : 8020                                                                      
Name              : OneDrive.exe                                                              
CommandLine       : "C:\Users\Admin\AppData\Local\Microsoft\OneDrive\OneDrive.exe" /background
SessionId         : 1                                                                         
Path              : C:\Users\Admin\AppData\Local\Microsoft\OneDrive\OneDrive.exe              
Hash              : 78e5e5f44cc67195278179cd60453ec8                                          
ProcessOwner      : Admin                                                             
Caption           : OneDrive.exe                                                              
ParentProcessId   : 5792                                                                      
ParentProcessName : explorer                                                                  
ParentProcessPath : C:\Windows\Explorer.EXE                                                   
ParentHash        : 4e196cea0c9c46a7d656c67e52e8c7c7                                          
Comment           :
```

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

```
Command: Get-BluGenieLockingProcess -Path 'C:\Users\Admin\AppData\Local\Temp\aria-debug-8020.log,C:\Users\Admin\AppData\Local\Temp'
```

```
Description: Show the Process locking the paths in a sinlge string using a comma separator
Notes:
```

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

```
Command: Get-BluGenieLockingProcess -Path 'C:\Users\Admin\AppData\Local\Temp\aria-debug-8020.log','C:\Users\Admin\AppData\Local\Temp'
```

```
Description: Show the Process locking the paths in an Array
Notes:
```

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

```
Command: Get-BluGenieLockingProcess -Path 'C:\Users\Admin\AppData\Local\Temp\aria-debug-8020.log' -ReturnObject:$False
```

```
Description: Reset the default output to a Hash Table
Notes:
```

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

```
Command: Get-BluGenieLockingProcess -Path 'C:\Users\Admin\AppData\Local\Temp\aria-debug-8020.log' -ToolPath 'C:\Temp\Handle.exe'
```

```
Description: Locate the Handle.exe tool in C:\Temp and Show the Process locking the file given
Notes:
```

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

```
Command: Get-BluGenieLockingProcess -Help
```

```
Description: Call Help Information
Notes: If Help / WalkThrough is setup as a parameter, this script will be called to setup the Dynamic Help Menu if not the normal 
              Get-Help will be called with the -Full parameter
```

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

```
Command: Get-BluGenieLockingProcess -WalkThrough
```

```
Description: Call Help Information [2]
Notes: If Help / WalkThrough is setup as a parameter, this script will be called to setup the Dynamic Help Menu if not the normal 
              Get-Help will be called with the -Full parameter
```

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

```
Command: Get-BluGenieLockingProcess -Path 'C:\Users\Admin\AppData\Local\Temp\aria-debug-8020.log' -OutUnEscapedJSON
```

```
Description: Show the Authentication Handle Information and Return Output as UnEscaped JSON format
Notes:  The OutUnEscapedJSON is used to beatify the JSON return and not Escape any Characters.
```

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

```
Command: Get-BluGenieLockingProcess -Path 'C:\Windows\Notepad.exe' -ReturnObject
```

```
Description: Show the Authentication Handle Information and Return Output an Object
Notes:  The ReturnObject is used to return a PowerShell Object.  This is the default option
```

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

#### Path <a href="#path" id="path"></a>

```
-Path <String[]>
   Description: Path (file or directory)
   Notes:  This can be an Array, a single path, or a single string with a comma separator
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    2
   Default value                
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### ToolPath <a href="#toolpath" id="toolpath"></a>

```
-ToolPath <String>
   Description: Path to the Handle.exe SysInternals Utility
   Notes: The default ToolPath is ( .\Tools\SysinternalsSuite ) with a backup path of ( $env:Windir\Temp ) 
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    3
   Default value                
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### Algorithm <a href="#algorithm" id="algorithm"></a>

```
-Algorithm <String>
   Description:  Specifies the cryptographic hash to use for computing the hash value of the contents of the specified file. 
   Notes:  The acceptable values for this parameter are:
   
               - SHA1
               - SHA256
               - SHA384
               - SHA512
               - MACTripleDES
               - MD5 = (Default)
               - RIPEMD160
   Alias: 
   ValidateSet: 'MACTripleDES','MD5','RIPEMD160','SHA1','SHA256','SHA384','SHA512'
   
   Required?                    false
   Position?                    4
   Default value                MD5
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

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

```
-Walkthrough [<SwitchParameter>]
   Description:  Start the dynamic help menu system to help walk through the current command and all of the parameters
   Notes:  
   Alias: Help
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### ReturnObject <a href="#returnobject" id="returnobject"></a>

```
-ReturnObject [<SwitchParameter>]
   Description: Return information as an Object
   Notes: This is set to $true by default.  To change to false run -ReturnObject:$false
   Alias: 
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                True
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### OutUnEscapedJSON <a href="#outunescapedjson" id="outunescapedjson"></a>

```
-OutUnEscapedJSON [<SwitchParameter>]
   Description: Remove UnEsacped Char from the JSON information.
   Notes: This will beautify json and clean up the formatting.
   Alias: 
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### FormatView <a href="#formatview" id="formatview"></a>

```
-FormatView <String>
   
   Required?                    false
   Position?                    named
   Default value                None
   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).


# Get-BluGenieMRUActivityView

﻿

### Get-BluGenieMRUActivityView <a href="#get-blugeniemruactivityview" id="get-blugeniemruactivityview"></a>

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

Query MRU Activity

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

```
Get-BluGenieMRUActivityView [[-ReturnObject]] [[-Walkthrough]] [<CommonParameters>]
```

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

Query MRU Activity. Pull all known MRU information from the following location.

'HKEY\_CURRENT\_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\LastVisitedPidlMRU' 'HKEY\_CURRENT\_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\LastVisitedPidlMRULegacy' 'HKEY\_CURRENT\_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\FirstFolder' 'HKEY\_CURRENT\_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\RunMRU' 'HKEY\_CURRENT\_USER\Software\IvoSoft\ClassicStartMenu\MRU' 'HKEY\_CURRENT\_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\RecentDocs'

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

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

```
Get-BluGenieMRUActivityView
```

```
This will return all MRU Information for the following locations.

'HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\LastVisitedPidlMRU'
'HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\LastVisitedPidlMRULegacy'
'HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\FirstFolder'
'HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\RunMRU'
'HKEY_CURRENT_USER\Software\IvoSoft\ClassicStartMenu\MRU'
'HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\RecentDocs'
```

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

```
Invoke-LoadAllProfileHives -ReturnObject
```

```
This will return all MRU Information.
The returned data will be an Object
```

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

#### ReturnObject <a href="#returnobject" id="returnobject"></a>

```
-ReturnObject [<SwitchParameter>]
   Return information as an Object.
   By default the data is returned as a Hash Table
   
   <Type>SwitchParameter<Type>
   
   Required?                    false
   Position?                    1
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

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

```
-Walkthrough [<SwitchParameter>]
   
   Required?                    false
   Position?                    2
   Default value                False
   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).


# Get-BluGenieProcessList

﻿Get-BluGenieProcessList

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

Get a full list of Processes

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

```
Get-BluGenieProcessList [[-FilterType] <String>] [[-Pattern] <String>] [[-Managetype] <String>] [[-LazyPathSearch]] [[-Algorithm] <String>] [[-Walkthrough]] [[-Signature]] [[-NotMatch]] 
[-ClearGarbageCollecting] [-UseCache] [-CachePath <String>] [-RemoveCache] [-DBName <String>] [-DBPath <String>] [-UpdateDB] [-ForceDBUpdate] [-NewDBTable] [[-ReturnObject]] [[-OutUnEscapedJSON]] [-OutYaml] 
[-FormatView <String>] [<CommonParameters>]
```

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

Get a full list of Processes and all linked properties including parent processes and process owner information

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

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

```
Command: Get-BluGenieProcessList
```

```
Description: Return all the processes on the local machine
Notes: The default Hash Algorithm is (MD5)
```

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

```
Command: Get-BluGenieProcessList -FilterType NoFilter -Algorithm SHA256
```

```
Description: Return all the processes on the local machine (default option) with a differnet Hash type
Notes: The Hash Algorithm is (SHA256)
```

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

```
Command: Get-BluGenieProcessList -FilterType NullPaths -Algorithm SHA512
```

```
Description: Return all the processes on the local machine that do not have a valid path
Notes: The Hash Algorithm is (SHA512)
```

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

```
Command: Get-BluGenieProcessList -FilterType Name -Pattern shell
```

```
Description: Return all the processes on the local machine with a Name field that matches the RegEx pattern
Notes:
```

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

```
Command: Get-BluGenieProcessList -FilterType Name -Pattern '^powershell_ise\.exe$'
```

```
Description: This will return all the processes on the local machine with a Name field that matches the RegEx pattern with an Exact Match
Notes:
```

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

```
Command: Get-BluGenieProcessList -FilterType Name -Pattern '^powershell_ise\.exe$' -LazyPathSearch
```

```
Description: Return all the processes with an Exact Match and validate path with LazyPathSearch
Notes: By default the process path will be searched for under the entire System drive.  This is a (Slow Search).
```

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

```
Command: Get-BluGenieProcessList -FilterType Name -Pattern '^powershell_ise\.exe$' -Managetype Stop
```

```
Description: Return all the processes with an Exact Match and Terminate the process
Notes: -Managetype can also [Suspend and Resume]
```

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

```
Command: Get-BluGenieProcessList -Help
```

```
Description: Call Help Information
Notes: If Help / WalkThrough is setup as a parameter, this script will be called to setup the Dynamic Help Menu if not the normal
Get-Help will be called with the -Full parameter
```

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

```
Command: Get-BluGenieProcessList -WalkThrough
```

```
Description: Call Help Information [2]
Notes: If Help / WalkThrough is setup as a parameter, this script will be called to setup the Dynamic Help Menu if not the normal
Get-Help will be called with the -Full parameter
```

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

```
Command: Get-BluGenieProcessList -OutUnEscapedJSON
```

```
Description: The OutUnEscapedJSON is used to beatify the JSON return and not Escape any Characters
Notes:
```

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

```
Command: Get-BluGenieProcessList -ReturnObject
```

```
Description: The ReturnObject is used to return a PowerShell Object.  Normal return data is a Hash Table.
Notes:
```

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

#### FilterType <a href="#filtertype" id="filtertype"></a>

```
-FilterType <String>
   Description: Which property to filter by
   Notes:
       � Filter Option
   o	"Caption" Search the Caption Field
   o	"CommandLine" Search the CommandLine Field
   o	"Name" Search the Name Field
   o	"ProcessId" Search the ProcessID Field
   o	"Path" Search the Path Field
   o	"ProcessOwner" Search the ProcessOwner Field
   o	"Process_Hash" Search the Process_Hash Field
   o	"NoFilter" Return all items with no specific search terms processed
   o	"NullPaths" Return all items with no valid Path found
   o	"Signature_Comment" Display error message while pulling Signature Information
   [Note:  This is only available if you use the -Signature switch]
   o	"Signature_FileVersion" File Version and OS Build information in part of the OS
   [Note:  This is only available if you use the -Signature switch]
   o	"Signature_Description" The description of the files signature [Note:  This is only available if you use the -Signature switch]
   o	"Signature_Date" Date when the file was signed [Note:  This is only available if you use the -Signature switch]
   o	"Signature_Company" The company signing the file [Note:  This is only available if you use the -Signature switch]
   o	"Signature_Publisher" The Publisher signing the file [Note:  This is only available if you use the -Signature switch]
   o	"Signature_Verified" Verification ( Signed / UnSigned / Null ) [Note:  This is only available if you use the -Signature switch]
   Alias:
   ValidateSet: 'Caption','CommandLine','Name','ProcessId','Path','ProcessOwner','Process_Hash','NullPaths','Signature_Comment','Signature_FileVersion','Signature_Description','Signature_Date','Signature_Com
   pany','Signature_Publisher','Signature_Verified'
   
   Required?                    false
   Position?                    2
   Default value                Name
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### Pattern <a href="#pattern" id="pattern"></a>

```
-Pattern <String>
   Description: Search Pattern using RegEx
   Notes:
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    3
   Default value                .*
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### Managetype <a href="#managetype" id="managetype"></a>

```
-Managetype <String>
   Description: Manage the behavior of the process (Suspend, Resume, Stop)
   Notes:
   Alias:
   ValidateSet: 'Suspend','Resume','Stop'
   
   Required?                    false
   Position?                    4
   Default value                
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### LazyPathSearch <a href="#lazypathsearch" id="lazypathsearch"></a>

```
-LazyPathSearch [<SwitchParameter>]
   Description:  Search for processes that do not have a valid path
   Notes: The Search is only under any directory in the system environment path variable.
   By default the process would be searched for under the System drive.
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    5
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### Algorithm <a href="#algorithm" id="algorithm"></a>

```
-Algorithm <String>
   Description:  Specifies the cryptographic hash to use for computing the hash value of the contents of the specified file.
   Notes:  The acceptable values for this parameter are:
   
               - SHA1
               - SHA256
               - SHA384
               - SHA512
               - MACTripleDES
               - MD5 = (Default)
               - RIPEMD160
   Alias:
   ValidateSet: 'MACTripleDES','MD5','RIPEMD160','SHA1','SHA256','SHA384','SHA512'
   
   Required?                    false
   Position?                    6
   Default value                MD5
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

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

```
-Walkthrough [<SwitchParameter>]
   Description:  Start the dynamic help menu system to help walk through the current command and all of the parameters
   Notes:
   Alias: Help
   ValidateSet:
   
   Required?                    false
   Position?                    7
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### Signature <a href="#signature" id="signature"></a>

```
-Signature [<SwitchParameter>]
   Description: Query Signature information
   Notes:
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    8
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### NotMatch <a href="#notmatch" id="notmatch"></a>

```
-NotMatch [<SwitchParameter>]
   Description: This switch will filter out what items you don't want to query for.
   Notes: The search string is assigned to the (Pattern) property.
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    9
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### ClearGarbageCollecting <a href="#cleargarbagecollecting" id="cleargarbagecollecting"></a>

```
-ClearGarbageCollecting [<SwitchParameter>]
   Description: Garbage Collection in Powershell to Speed up Scripts and help lower memory consumption
   Notes: This is enabled by default.  To disable use -ClearGarbageCollecting:$False
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### UseCache <a href="#usecache" id="usecache"></a>

```
-UseCache [<SwitchParameter>]
   Description: Cache found objects to disk.  This is to not over tax Memory resources with found artifacts
   Notes: By default the Cache location is %SystemDrive%\Windows\Temp
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### CachePath <a href="#cachepath" id="cachepath"></a>

```
-CachePath <String>
   Description: Path to store the Cache information
   Notes: By default the Cache location is %SystemDrive%\Windows\Temp
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                $('{0}\Windows\Temp\{1}.log' -f $env:SystemDrive, $(New-BluGenieUID))
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### RemoveCache <a href="#removecache" id="removecache"></a>

```
-RemoveCache [<SwitchParameter>]
   Description: Remove Cache data on completion
   Notes: Cache information is removed right before the data is returned to the calling process
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### DBName <a href="#dbname" id="dbname"></a>

```
-DBName <String>
   Description: Database Name (Without extention)
   Notes: The default name is set to 'BluGenie'
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                BluGenie
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### DBPath <a href="#dbpath" id="dbpath"></a>

```
-DBPath <String>
   Description: Path to either Save or Update the Database
   Notes: The default path is $('{0}\BluGenie' -f $env:ProgramFiles)  Example: C:\Program Files\BluGenie
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                $('{0}\BluGenie' -f $env:ProgramFiles)
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### UpdateDB <a href="#updatedb" id="updatedb"></a>

```
-UpdateDB [<SwitchParameter>]
   Description: Save return data to the Sqlite Database
   Notes:
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### ForceDBUpdate <a href="#forcedbupdate" id="forcedbupdate"></a>

```
-ForceDBUpdate [<SwitchParameter>]
   Description: Force an update of the return data to the Sqlite Database
   Notes: By default only new items are saved.  The primary key is ( FullName )
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### NewDBTable <a href="#newdbtable" id="newdbtable"></a>

```
-NewDBTable [<SwitchParameter>]
   Description: Delete and Recreate the Database Table
   Notes:
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### ReturnObject <a href="#returnobject" id="returnobject"></a>

```
-ReturnObject [<SwitchParameter>]
   Description: Return information as an Object
   Notes: By default the data is returned as a Hash Table
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    10
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### OutUnEscapedJSON <a href="#outunescapedjson" id="outunescapedjson"></a>

```
-OutUnEscapedJSON [<SwitchParameter>]
   Description: Removed UnEsacped Char from the JSON information.
   Notes: This will beautify json and clean up the formatting.
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    11
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### OutYaml <a href="#outyaml" id="outyaml"></a>

```
-OutYaml [<SwitchParameter>]
   Description: Return detailed information in Yaml Format
   Notes: Only supported in Posh 3.0 and above
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### FormatView <a href="#formatview" id="formatview"></a>

```
-FormatView <String>
   Description: Automatically format the Return Object
   Notes: Yaml is only supported in Posh 3.0 and above
   Alias:
   ValidateSet: 'Table','Custom','CustomModified','None','JSON','OutUnEscapedJSON','CSV', 'Yaml'
   
   Required?                    false
   Position?                    named
   Default value                None
   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).


# Get-BluGenieRegistry

﻿

### Get-BluGenieRegistry <a href="#get-blugenieregistry" id="get-blugenieregistry"></a>

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

Searches the registry for a specified text pattern.

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

```
Get-BluGenieRegistry [[-StartKey] <String>] [[-Pattern] <String>] [[-ExcludePattern] <String>] [-MatchKey] [-MatchValueName] [-MatchData] [-RootKeyOnly] [-NotMatch] [-ExactMatch] [-Remove] [-Walkthrough] 
[-ReturnObject] [-OutUnEscapedJSON] [-FormatView <String>] [<CommonParameters>]
```

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

Searches the registry for a specified text pattern. Supports searching for any combination of key names, value names, and/or value data. The text pattern is a case-insensitive regular expression.

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

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

```
Command: Get-BluGenieRegistry -StartKey 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion' -MatchKey -RootKeyOnly
```

```
Description: Query Keys Only, Process the Root with No Sub Keys, Using the StartKey Param, Using the Short Hand Hive name
Notes:
```

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

```
Command: Get-BluGenieRegistry -StartKey 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion' -MatchKey -RootKeyOnly -Pattern 'run'
```

```
Description: Specify a specific pattern to search for, Query Keys Only, Process the Root with No Sub Keys
Notes:
```

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

```
Command: Get-BluGenieRegistry -StartKey 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion' -MatchKey -RootKeyOnly -Pattern 'run' -ExcludePattern 'once'
```

```
Description: Specify a specific pattern to search for while using an Exclude pattern, Query Keys Only, Process the Root with No Sub Keys
Notes:
```

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

```
Command: Get-BluGenieRegistry -StartKey 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion' -MatchKey -RootKeyOnly -Pattern 'run' -ExcludePattern 'once'  -ReturnObject
```

```
Description: Return Data as an Object
Notes:
```

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

```
Command: Get-BluGenieRegistry -StartKey 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion' -MatchKey -RootKeyOnly -Pattern 'run' -ExcludePattern 'once'  -ReturnObject -FormatView csv
```

```
Description: Return Data as an Object, Reformat the Object as CSV,JSON,CustomObject,UnEscapedJSON.
Notes:
```

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

```
Command: Get-BluGenieRegistry -Path 'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion' -MatchKey -RootKeyOnly
```

```
Description: Query Keys Only, Process the Root with No Sub Keys, Using the Path Param, Using the Long Name Hive Name
Notes:
```

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

```
Command: Get-BluGenieRegistry -Path 'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths'
```

```
Description: Query Value Names (Default), Process Sub Keys, Using the Long Name Hive Name
Notes:
```

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

```
Command: Get-BluGenieRegistry -Path 'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths' -MatchKey -Pattern 'Write' -Remove
```

```
Description: Query Key Names, Process Sub Keys, Using the Long Name Hive Name, Remove Keys Found
Notes:
```

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

```
Command: Get-BluGenieRegistry -Path 'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths' -MatchData -Pattern 'Word' -Remove
```

```
Description: Query Data Values, Process Sub Keys, Using the Long Name Hive Name, Remove ValueNames Found
Notes:
```

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

```
Command: Get-BluGenieRegistry -Path 'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon' -MatchValueName -Pattern '(?=.*Auto)(?=.*Logon)' -ExcludePattern 'Sid|Count'
```

```
Description: RegEx Search Pattern and Exclude Pattern
Notes:
```

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

```
Command: Get-BluGenieRegistry -Path 'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon' -OutUnEscapedJSON -MatchValueName -Pattern '(?=.*Auto)(?=.*Logon)' -ExcludePattern 'Sid|Count'
```

```
Description: RegEx Search Pattern and Exclude Pattern, Output UnEscaped JSON
Notes:
```

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

```
Command: Get-BluGenieRegistry -Help
```

```
Description: Call Help Information
Notes: If Help / WalkThrough is setup as a parameter, this script will be called to setup the Dynamic Help Menu if not the normal 
         Get-Help will be called with the -Full parameter
```

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

```
Command: Get-BluGenieRegistry -WalkThrough
```

```
Description: Call Help Information [2]
Notes: If Help / WalkThrough is setup as a parameter, this script will be called to setup the Dynamic Help Menu if not the normal 
         Get-Help will be called with the -Full parameter
```

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

```
Command: Get-BluGenieRegistry -OutUnEscapedJSON
```

```
Description: Get-BluGenieRegistry and Return Output as UnEscaped JSON format
Notes:  The OutUnEscapedJSON is used to beatify the JSON return and not Escape any Characters.  Normal return data is a Hash Table.
```

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

```
Command: Get-BluGenieRegistry -ReturnObject
```

```
Description: Get-BluGenieRegistry and Return Output an Object
Notes:  The ReturnObject is used to return a PowerShell Object.  Normal return data is a Hash Table.
```

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

```
Command: Get-BluGenieRegistry -ReturnObject -FormatView JSON
```

```
Description: Get-BluGenieRegistry and Return Object formatted in a JSON view
Notes:  The ReturnObject is used to return a PowerShell Object.  Normal return data is a Hash Table.
```

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

```
Command: Get-BluGenieRegistry -ReturnObject -FormatView Custom
```

```
Description: Get-BluGenieRegistry and Return Object formatted in a PSCustom view
Notes:  Format-Custom is designed to display views that are not just tables or just lists. You can use the views defined in the 
          *format.PS1XML files in the PowerShell directory, or you can create your own views in new PS1XML files and use the 
          Update-FormatData cmdlet to add them to PowerShell.
```

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

#### StartKey <a href="#startkey" id="startkey"></a>

```
-StartKey <String>
   Description: Starts searching at the specified key. 
   Notes: The key name uses the following format:
   
           HKEY_LOCAL_MACHINE\
           HKEY_CURRENT_USER\
           HKEY_USERS\
           HKEY_CLASSES_ROOT\
   Alias: Path
   ValidateSet:
   
   Required?                    false
   Position?                    1
   Default value                HKEY_LOCAL_MACHINE\SOFTWARE
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### Pattern <a href="#pattern" id="pattern"></a>

```
-Pattern <String>
   Description: Searches for the specified regular expression pattern. The pattern is not case-sensitive.
   Notes:  
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    2
   Default value                ^(?s:.)*
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### ExcludePattern <a href="#excludepattern" id="excludepattern"></a>

```
-ExcludePattern <String>
   Description: Used in conjuction with -Pattern.  Reparse found items from pattern with an Exclude pattern
   Notes:  This cannot be used on it's own and cannot be used with -NotMatch.
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    3
   Default value                
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### MatchKey <a href="#matchkey" id="matchkey"></a>

```
-MatchKey [<SwitchParameter>]
   Description: Matches registry key names.
   Notes: Default option is MatchData
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### MatchValueName <a href="#matchvaluename" id="matchvaluename"></a>

```
-MatchValueName [<SwitchParameter>]
   Description: Matches registry value names.
   Notes: Default option is MatchData
   Alias: MatchValue
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### MatchData <a href="#matchdata" id="matchdata"></a>

```
-MatchData [<SwitchParameter>]
   Description: Matches registry value data.
   Notes: This option is default
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### RootKeyOnly <a href="#rootkeyonly" id="rootkeyonly"></a>

```
-RootKeyOnly [<SwitchParameter>]
   Description: If Selected the Query will only parse the root of the Search Key given.  No sub keys will be queried.
   Notes: 
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### NotMatch <a href="#notmatch" id="notmatch"></a>

```
-NotMatch [<SwitchParameter>]
   Description: Not Matching or Exclude pattern queries
   Notes: 
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### ExactMatch <a href="#exactmatch" id="exactmatch"></a>

```
-ExactMatch [<SwitchParameter>]
   Description: The Match type is equal or exact to the Pattern string
   Notes: 
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### Remove <a href="#remove" id="remove"></a>

```
-Remove [<SwitchParameter>]
   Description: Removes any matching patterns found in the registry.
   Notes: 
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

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

```
-Walkthrough [<SwitchParameter>]
   Description:  Start the dynamic help menu system to help walk through the current command and all of the parameters
   Notes:  
   Alias: Help
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### ReturnObject <a href="#returnobject" id="returnobject"></a>

```
-ReturnObject [<SwitchParameter>]
   Description: Return information as an Object
   Notes: By default the data is returned as a Hash Table
   Alias: 
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### OutUnEscapedJSON <a href="#outunescapedjson" id="outunescapedjson"></a>

```
-OutUnEscapedJSON [<SwitchParameter>]
   Description: Remove UnEsacped Char from the JSON information.
   Notes: This will beautify json and clean up the formatting.
   Alias: 
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### FormatView <a href="#formatview" id="formatview"></a>

```
-FormatView <String>
   Description: Select which format to return the object data in.
   Notes: Default value is set to (None).  This value is only valid when using the -ReturnObject parameter
   Alias:
   ValidateSet: 'Table','Custom','CustomModified','None','JSON','OutUnEscapedJSON','CSV'
   
   Required?                    false
   Position?                    named
   Default value                None
   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).


# Get-BluGenieRegistryProcessTracking

﻿

### Get-BluGenieRegistryProcessTracking <a href="#get-blugenieregistryprocesstracking" id="get-blugenieregistryprocesstracking"></a>

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

Query User Registry Hives for Process Tracking Information

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

```
Get-BluGenieRegistryProcessTracking [[-Algorithm] <String>] [-Signature] [-ClearGarbageCollecting] [-UseCache] [[-CachePath] <String>] [-RemoveCache] [[-DBName] <String>] [[-DBPath] <String>] [-UpdateDB] 
[-ForceDBUpdate] [-NewDBTable] [-Walkthrough] [-ReturnObject] [-OutUnEscapedJSON] [-OutYaml] [[-FormatView] <String>] [<CommonParameters>]
```

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

Query User Registry Hives for Process Tracking Information

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

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

```
Get-BluGenieRegistryProcessTracking
```

```
This will report on any executed processes that is ran and tracked in the registry for all loaded user registry hives
The returned data will be a Hash Table

The default file Hash value is MD5
```

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

```
Get-BluGenieRegistryProcessTracking -Algorithm SHA512
```

```
This will report on any executed processes that is ran and tracked in the registry for all loaded user registry hives
The returned data will be a Hash Table

The file Hash value is SHA512
```

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

```
Command: Get-BluGenieRegistryProcessTracking -UseCache
```

```
Description: Cache found objects to disk to not over tax Memory resources
Notes: By default the Cache location is %SystemDrive%\Windows\Temp
```

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

```
Command: Get-BluGenieRegistryProcessTracking -UseCache -RemoveCache
```

```
Description: Remove Cache data
Notes: By default the Cache information is removed right before the data is returned to the caller
```

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

```
Command: Get-BluGenieRegistryProcessTracking -UseCache -CachePath $Env:Temp
```

```
Description: Change the Cache path to the current users Temp directory
Notes: By default the Cache location is %SystemDrive%\Windows\Temp
```

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

```
Command: Get-BluGenieRegistryProcessTracking -UseCache -ClearGarbageCollecting
```

```
Description: Scan large directories and limit the memory used to track data
Notes:
```

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

```
Command: Get-BluGenieRegistryProcessTracking -Help
```

```
Description: Call Help Information
Notes: If Help / WalkThrough is setup as a parameter, this script will be called to setup the Dynamic Help Menu if not the normal
       Get-Help will be called with the -Full parameter
```

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

```
Command: Get-BluGenieRegistryProcessTracking -WalkThrough
```

```
Description: Call Help Information [2]
Notes: If Help / WalkThrough is setup as a parameter, this script will be called to setup the Dynamic Help Menu if not the normal
       Get-Help will be called with the -Full parameter
```

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

```
Command: Get-BluGenieRegistryProcessTracking -OutUnEscapedJSON
```

```
Description: Return a detailed function report in an UnEscaped JSON format
Notes:  The OutUnEscapedJSON is used to Beautify the JSON return and not Escape any Characters.  Normal return data is a Hash Table.
```

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

```
Command: Get-BluGenieRegistryProcessTracking -OutYaml
```

```
Description: Return a detailed function report in YAML format
Notes:  The OutUnEscapedJSON is used to Beautify the JSON return and not Escape any Characters.  Normal return data is a Hash Table.
```

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

```
Command: Get-BluGenieRegistryProcessTracking -ReturnObject
```

```
Description: Return Output as a Object
Notes:  The ReturnObject is used to return a PowerShell Object.  Normal return data is a Hash Table.
       This parameter is also used with the FormatView
```

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

```
Command: Get-BluGenieRegistryProcessTracking -ReturnObject -FormatView Yaml
```

```
Description: Output PSObject information in Yaml format
Notes:  Current formats supported by default are ('Table','Custom','CustomModified','None','JSON','OutUnEscapedJSON','CSV', 'Yaml')
       Default is set to (None) and normal PSObject.
```

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

#### Algorithm <a href="#algorithm" id="algorithm"></a>

```
-Algorithm <String>
   Description: Specifies the cryptographic hash to use for computing the hash value of the contents of the specified file.
   Notes: The acceptable values for this parameter are:
           - SHA1
           - SHA256
           - SHA384
           - SHA512
           - MACTripleDES
           - MD5 = (Default)
           - RIPEMD160
   
           If no value is specified, or if the parameter is omitted, the default value is (MD5).
   Alias:
   ValidateSet:'MACTripleDES','MD5','RIPEMD160','SHA1','SHA256','SHA384','SHA512'
   
   Required?                    false
   Position?                    1
   Default value                MD5
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### Signature <a href="#signature" id="signature"></a>

```
-Signature [<SwitchParameter>]
   Description: Validate Signature information of the process if the item is still on disk.
   Notes:
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### ClearGarbageCollecting <a href="#cleargarbagecollecting" id="cleargarbagecollecting"></a>

```
-ClearGarbageCollecting [<SwitchParameter>]
   Description: Garbage Collection in Powershell to Speed up Scripts and help lower memory consumption
   Notes: This is enabled by default.  To disable use -ClearGarbageCollecting:$False
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### UseCache <a href="#usecache" id="usecache"></a>

```
-UseCache [<SwitchParameter>]
   Description: Cache found objects to disk.  This is to not over tax Memory resources with found artifacts
   Notes: By default the Cache location is %SystemDrive%\Windows\Temp
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### CachePath <a href="#cachepath" id="cachepath"></a>

```
-CachePath <String>
   Description: Path to store the Cache information
   Notes: By default the Cache location is %SystemDrive%\Windows\Temp
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    2
   Default value                $('{0}\Windows\Temp\{1}.log' -f $env:SystemDrive, $(New-BluGenieUID))
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### RemoveCache <a href="#removecache" id="removecache"></a>

```
-RemoveCache [<SwitchParameter>]
   Description: Remove Cache data on completion
   Notes: Cache information is removed right before the data is returned to the calling process
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### DBName <a href="#dbname" id="dbname"></a>

```
-DBName <String>
   Description: Database Name (Without extention)
   Notes: The default name is set to 'BluGenie'
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    3
   Default value                BluGenie
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### DBPath <a href="#dbpath" id="dbpath"></a>

```
-DBPath <String>
   Description: Path to either Save or Update the Database
   Notes: The default path is $('{0}\BluGenie' -f $env:ProgramFiles)  Example: C:\Program Files\BluGenie
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    4
   Default value                $('{0}\BluGenie' -f $env:ProgramFiles)
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### UpdateDB <a href="#updatedb" id="updatedb"></a>

```
-UpdateDB [<SwitchParameter>]
   Description: Save return data to the Sqlite Database
   Notes:
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### ForceDBUpdate <a href="#forcedbupdate" id="forcedbupdate"></a>

```
-ForceDBUpdate [<SwitchParameter>]
   Description: Force an update of the return data to the Sqlite Database
   Notes: By default only new items are saved.  The primary key is ( FullName )
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### NewDBTable <a href="#newdbtable" id="newdbtable"></a>

```
-NewDBTable [<SwitchParameter>]
   Description: Delete and Recreate the Database Table
   Notes:
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

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

```
-Walkthrough [<SwitchParameter>]
   Description:  Start the dynamic help menu system to help walk through the current command and all of the parameters
   Notes:
   Alias: Help
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### ReturnObject <a href="#returnobject" id="returnobject"></a>

```
-ReturnObject [<SwitchParameter>]
   Description: Return information as an Object
   Notes: By default the data is returned as a Hash Table
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### OutUnEscapedJSON <a href="#outunescapedjson" id="outunescapedjson"></a>

```
-OutUnEscapedJSON [<SwitchParameter>]
   Description: Remove UnEsacped Char from the JSON information.
   Notes: This will beautify json and clean up the formatting.
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### OutYaml <a href="#outyaml" id="outyaml"></a>

```
-OutYaml [<SwitchParameter>]
   Description: Return detailed information in Yaml Format
   Notes: Only supported in Posh 3.0 and above
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### FormatView <a href="#formatview" id="formatview"></a>

```
-FormatView <String>
   Description: Automatically format the Return Object
   Notes: Yaml is only supported in Posh 3.0 and above
   Alias:
   ValidateSet: 'Table','Custom','CustomModified','None','JSON','OutUnEscapedJSON','CSV', 'Yaml'
   
   Required?                    false
   Position?                    5
   Default value                None
   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).


# Get-BluGenieRegSnapshot

﻿

### Get-BluGenieRegSnapshot <a href="#get-blugenieregsnapshot" id="get-blugenieregsnapshot"></a>

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

Get-BluGenieRegSnapshot takes a snapshot of the Registry

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

```
Get-BluGenieRegSnapshot [[-Path] <String>] [[-Walkthrough]] [[-ReturnObject]] [[-LeaveFile]] [[-OutUnEscapedJSON]] [<CommonParameters>]
```

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

Get-BluGenieRegSnapshot takes a snapshot of the Registry

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

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

```
Get-BluGenieRegSnapshot -Path 'HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa'
```

```
This will take a Registry Snapshot of the path 'HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa'
and return a Hash Table with all the information
```

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

```
Get-BluGenieRegSnapshot -Path 'HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa' -ReturnObject
```

```
This will take a Registry Snapshot of the path 'HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa'
and return just the Object content
```

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

```
Get-BluGenieRegSnapshot -Path 'HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa' -LeaveFile
```

```
This will take a Registry Snapshot of the path 'HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa'

The temp snapshot file will be removed from the users temp directory.  The file is saved with a guid value
```

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

```
Get-BluGenieRegSnapshot -Path 'HKEY_CURRENT_USER\Software\7-Zip'
```

```
Any values that match HKEY_CURRENT_USER will be convert to HKU keys and all loaded registry hives will be enumerated and
parsed.  A Registry Snapshot of the path will be taken for each loaded hive that has the key path.
```

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

```
Get-BluGenieRegSnapshot -Path 'HKEY_CURRENT_USER\Software\7-Zip' -OutUnEscapedJSON
```

```
Any values that match HKEY_CURRENT_USER will be convert to HKU keys and all loaded registry hives will be enumerated and
parsed.  A Registry Snapshot of the path will be taken for each loaded hive that has the key path.

The return will be a beautified json format
```

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

#### Path <a href="#path" id="path"></a>

```
-Path <String>
   The path to the parent registry key
   
   <Type>String<Type>
   
   Required?                    false
   Position?                    1
   Default value                
   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?                    2
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### ReturnObject <a href="#returnobject" id="returnobject"></a>

```
-ReturnObject [<SwitchParameter>]
   Return information as an Object.
   By default the data is returned as a Hash Table
   
   <Type>SwitchParameter<Type>
   
   Required?                    false
   Position?                    3
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### LeaveFile <a href="#leavefile" id="leavefile"></a>

```
-LeaveFile [<SwitchParameter>]
   Do not remove snapshot file.
   By default the data is saved has a GUID in the users temp directory
   
   <Type>SwitchParameter<Type>
   
   Required?                    false
   Position?                    4
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### OutUnEscapedJSON <a href="#outunescapedjson" id="outunescapedjson"></a>

```
-OutUnEscapedJSON [<SwitchParameter>]
   Removed UnEsacped Char from the JSON Return.
   This will beautify json and clean up the formatting.
   
   <Type>SwitchParameter<Type>
   
   Required?                    false
   Position?                    5
   Default value                False
   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).


# Get-BluGenieRunSpaceSessionAliases

﻿

### Get-BluGenieRunSpaceSessionAliases <a href="#get-blugenierunspacesessionaliases" id="get-blugenierunspacesessionaliases"></a>

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

Get-BluGenieRunSpaceSessionAliases will display, the default powershell sessions Alias list

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

```
Get-BluGenieRunSpaceSessionAliases [-Walkthrough] [-ReturnObject] [[-FormatView] <String>] [-OutUnEscapedJSON] [<CommonParameters>]
```

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

Get-BluGenieRunSpaceSessionAliases will display, the default powershell sessions Alias list

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

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

```
Command: Get-BluGenieRunSpaceSessionAliases
```

```
Description: Get the default PowerShell's Alias list
Notes:
```

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

```
Command: Get-BluGenieRunSpaceSessionAliases -Help
```

```
Description: Call Help Information
Notes: If Help / WalkThrough is setup as a parameter, this script will be called to setup the Dynamic Help Menu if not the normal 
         Get-Help will be called with the -Full parameter
```

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

```
Command: Get-BluGenieRunSpaceSessionAliases -WalkThrough
```

```
Description: Call Help Information [2]
Notes: If Help / WalkThrough is setup as a parameter, this script will be called to setup the Dynamic Help Menu if not the normal 
         Get-Help will be called with the -Full parameter
```

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

```
Command: Get-BluGenieRunSpaceSessionAliases -OutUnEscapedJSON
```

```
Description: Get the default PowerShell's Function list and Return Output as UnEscaped JSON format
Notes:  The OutUnEscapedJSON is used to beatify the JSON return and not Escape any Characters.  Normal return data is a Hash Table.
```

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

```
Command: Get-BluGenieRunSpaceSessionAliases -ReturnObject
```

```
Description: Get the default PowerShell's Function list and Return Output an Object
Notes:  The ReturnObject is used to return a PowerShell Object.  Normal return data is a Hash Table.
```

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

```
Command: Get-BluGenieRunSpaceSessionAliases -ReturnObject -FormatView JSON
```

```
Description: Get the default PowerShell's Function list and Return Object formatted in a JSON view
Notes:  The ReturnObject is used to return a PowerShell Object.  Normal return data is a Hash Table.
```

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

```
Command: Get-BluGenieRunSpaceSessionAliases -ReturnObject -FormatView Custom
```

```
Description: Get the default PowerShell's Function list and Return Object formatted in a PSCustom view
Notes:  Format-Custom is designed to display views that are not just tables or just lists. You can use the views defined in the 
          *format.PS1XML files in the PowerShell directory, or you can create your own views in new PS1XML files and use the 
          Update-FormatData cmdlet to add them to PowerShell.
```

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

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

```
-Walkthrough [<SwitchParameter>]
   Description:  Start the dynamic help menu system to help walk through the current command and all of the parameters
   Notes:  
   Alias: Help
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### ReturnObject <a href="#returnobject" id="returnobject"></a>

```
-ReturnObject [<SwitchParameter>]
   Description: Return information as an Object
   Notes: This is the default return type
   Alias: 
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                True
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### FormatView <a href="#formatview" id="formatview"></a>

```
-FormatView <String>
   Description: Select which format to return the object data in.
   Notes: Default value is set to (None).  This value is only valid when using the -ReturnObject parameter
   Alias:
   ValidateSet: 'Table','Custom','CustomModified','None','JSON','OutUnEscapedJSON','CSV'
   
   Required?                    false
   Position?                    1
   Default value                None
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### OutUnEscapedJSON <a href="#outunescapedjson" id="outunescapedjson"></a>

```
-OutUnEscapedJSON [<SwitchParameter>]
   Description: Remove UnEsacped Char from the JSON information.
   Notes: This will beautify json and clean up the formatting.
   Alias: 
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   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).


# Get-BluGenieRunSpaceSessionFunctions

﻿

### Get-BluGenieRunSpaceSessionFunctions <a href="#get-blugenierunspacesessionfunctions" id="get-blugenierunspacesessionfunctions"></a>

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

Get-BluGenieRunSpaceSessionFunctions will display, export, and remove the default powershell sessions function list

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

```
Get-BluGenieRunSpaceSessionFunctions [-Walkthrough] [-ReturnObject] [[-FormatView] <String>] [-OutUnEscapedJSON] [<CommonParameters>]
```

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

Get-BluGenieRunSpaceSessionFunctions will display, export, and remove the default powershell sessions function list

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

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

```
Command: Get-BluGenieRunSpaceSessionFunctions
```

```
Description: Get the default PowerShell's Function list
Notes:
```

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

```
Command: Get-BluGenieRunSpaceSessionFunctions -Help
```

```
Description: Call Help Information
Notes: If Help / WalkThrough is setup as a parameter, this script will be called to setup the Dynamic Help Menu if not the normal 
         Get-Help will be called with the -Full parameter
```

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

```
Command: Get-BluGenieRunSpaceSessionFunctions -WalkThrough
```

```
Description: Call Help Information [2]
Notes: If Help / WalkThrough is setup as a parameter, this script will be called to setup the Dynamic Help Menu if not the normal 
         Get-Help will be called with the -Full parameter
```

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

```
Command: Get-BluGenieRunSpaceSessionFunctions -OutUnEscapedJSON
```

```
Description: Get the default PowerShell's Function list and Return Output as UnEscaped JSON format
Notes:  The OutUnEscapedJSON is used to beatify the JSON return and not Escape any Characters.  Normal return data is a Hash Table.
```

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

```
Command: Get-BluGenieRunSpaceSessionFunctions -ReturnObject
```

```
Description: Get the default PowerShell's Function list and Return Output an Object
Notes:  The ReturnObject is used to return a PowerShell Object.  Normal return data is a Hash Table.
```

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

```
Command: Get-BluGenieRunSpaceSessionFunctions -ReturnObject -FormatView JSON
```

```
Description: Get the default PowerShell's Function list and Return Object formatted in a JSON view
Notes:  The ReturnObject is used to return a PowerShell Object.  Normal return data is a Hash Table.
```

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

```
Command: Get-BluGenieRunSpaceSessionFunctions -ReturnObject -FormatView Custom
```

```
Description: Get the default PowerShell's Function list and Return Object formatted in a PSCustom view
Notes:  Format-Custom is designed to display views that are not just tables or just lists. You can use the views defined in the 
          *format.PS1XML files in the PowerShell directory, or you can create your own views in new PS1XML files and use the 
          Update-FormatData cmdlet to add them to PowerShell.
```

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

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

```
-Walkthrough [<SwitchParameter>]
   Description:  Start the dynamic help menu system to help walk through the current command and all of the parameters
   Notes:  
   Alias: Help
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### ReturnObject <a href="#returnobject" id="returnobject"></a>

```
-ReturnObject [<SwitchParameter>]
   Description: Return information as an Object
   Notes: This is the default return type
   Alias: 
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                True
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### FormatView <a href="#formatview" id="formatview"></a>

```
-FormatView <String>
   Description: Select which format to return the object data in.
   Notes: Default value is set to (None).  This value is only valid when using the -ReturnObject parameter
   Alias:
   ValidateSet: 'Table','Custom','CustomModified','None','JSON','OutUnEscapedJSON','CSV'
   
   Required?                    false
   Position?                    1
   Default value                None
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### OutUnEscapedJSON <a href="#outunescapedjson" id="outunescapedjson"></a>

```
-OutUnEscapedJSON [<SwitchParameter>]
   Description: Remove UnEsacped Char from the JSON information.
   Notes: This will beautify json and clean up the formatting.
   Alias: 
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   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).


# Get-BluGenieRunSpaceSessionVariables

﻿

### Get-BluGenieRunSpaceSessionVariables <a href="#get-blugenierunspacesessionvariables" id="get-blugenierunspacesessionvariables"></a>

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

Get-BluGenieRunSpaceSessionVariables will display the default powershell sessions variable list

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

```
Get-BluGenieRunSpaceSessionVariables [-Walkthrough] [-ReturnObject] [[-FormatView] <String>] [-OutUnEscapedJSON] [<CommonParameters>]
```

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

Get-BluGenieRunSpaceSessionVariables will display the default powershell sessions variable list

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

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

```
Command: Get-BluGenieRunSpaceSessionVariables
```

```
Description: Get the default PowerShell's variable list
Notes:
```

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

```
Command: Get-BluGenieRunSpaceSessionVariables -Help
```

```
Description: Call Help Information
Notes: If Help / WalkThrough is setup as a parameter, this script will be called to setup the Dynamic Help Menu if not the normal 
         Get-Help will be called with the -Full parameter
```

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

```
Command: Get-BluGenieRunSpaceSessionVariables -WalkThrough
```

```
Description: Call Help Information [2]
Notes: If Help / WalkThrough is setup as a parameter, this script will be called to setup the Dynamic Help Menu if not the normal 
         Get-Help will be called with the -Full parameter
```

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

```
Command: Get-BluGenieRunSpaceSessionVariables -OutUnEscapedJSON
```

```
Description: Get the default PowerShell's variable list and Return Output as UnEscaped JSON format
Notes:  The OutUnEscapedJSON is used to beatify the JSON return and not Escape any Characters.  Normal return data is a Hash Table.
```

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

```
Command: Get-BluGenieRunSpaceSessionVariables -ReturnObject
```

```
Description: Get the default PowerShell's variable list and Return Output an Object
Notes:  The ReturnObject is used to return a PowerShell Object.  Normal return data is a Hash Table.
```

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

```
Command: Get-BluGenieRunSpaceSessionVariables -ReturnObject -FormatView JSON
```

```
Description: Get the default PowerShell's variable list and Return Object formatted in a JSON view
Notes:  The ReturnObject is used to return a PowerShell Object.  Normal return data is a Hash Table.
```

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

```
Command: Get-BluGenieRunSpaceSessionVariables -ReturnObject -FormatView Custom
```

```
Description: Get the default PowerShell's variable list and Return Object formatted in a PSCustom view
Notes:  Format-Custom is designed to display views that are not just tables or just lists. You can use the views defined in the 
          *format.PS1XML files in the PowerShell directory, or you can create your own views in new PS1XML files and use the 
          Update-FormatData cmdlet to add them to PowerShell.
```

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

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

```
-Walkthrough [<SwitchParameter>]
   Description:  Start the dynamic help menu system to help walk through the current command and all of the parameters
   Notes:  
   Alias: Help
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### ReturnObject <a href="#returnobject" id="returnobject"></a>

```
-ReturnObject [<SwitchParameter>]
   Description: Return information as an Object
   Notes: This is the default return type
   Alias: 
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                True
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### FormatView <a href="#formatview" id="formatview"></a>

```
-FormatView <String>
   Description: Select which format to return the object data in.
   Notes: Default value is set to (None).  This value is only valid when using the -ReturnObject parameter
   Alias:
   ValidateSet: 'Table','Custom','CustomModified','None','JSON','OutUnEscapedJSON','CSV'
   
   Required?                    false
   Position?                    1
   Default value                None
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### OutUnEscapedJSON <a href="#outunescapedjson" id="outunescapedjson"></a>

```
-OutUnEscapedJSON [<SwitchParameter>]
   Description: Remove UnEsacped Char from the JSON information.
   Notes: This will beautify json and clean up the formatting.
   Alias: 
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   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).


# Get-BluGenieSchTaskInfo

﻿


# Get-BluGenieScriptDirectory

﻿

### Get-BluGenieScriptDirectory <a href="#get-blugeniescriptdirectory" id="get-blugeniescriptdirectory"></a>

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

Display the Script Directory Path

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

```
Get-BluGenieScriptDirectory [-Walkthrough] [<CommonParameters>]
```

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

Display the Script Directory Path

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

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

```
Command: Get-BluGenieScriptDirectory
```

```
Description: Display the Get-BluGenieScriptDirectory Path
Notes:
```

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

```
Command: Get-BluGenieScriptDirectory -Help
```

```
Description: Call Help Information
Notes: If Help / WalkThrough is setup as a parameter, this script will be called to setup the Dynamic Help Menu if not the normal Get-Help will be called with the -Full parameter
```

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

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

```
-Walkthrough [<SwitchParameter>]
   Description:  Start the dynamic help menu system to help walk through the current command and all of the parameters
   Notes:  
   Alias: Help
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   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).


# Get-BluGenieServiceList

﻿

### Get-BluGenieServiceList <a href="#get-blugenieservicelist" id="get-blugenieservicelist"></a>

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

Get a full list of Services, with Process Handle information

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

```
Get-BluGenieServiceList [[-FilterType] <String>] [-Pattern <String>] [-Managetype <String>] [-ManageServicetype <String>] [-Algorithm <String>] [-Signature] [-TrackChanges] [-OverrideTracked] [-RevertTracked] 
[-ClearGarbageCollecting] [-UseCache] [-CachePath <String>] [-RemoveCache] [-DBName <String>] [-DBPath <String>] [-UpdateDB] [-ForceDBUpdate] [-NewDBTable] [-Walkthrough] [-ReturnObject] [-OutUnEscapedJSON] 
[-OutYaml] [-FormatView <String>] [<CommonParameters>]
```

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

Get a full list of Services, with Process Handle information

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

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

```
Command: Get-BluGenieServiceList
```

```
Description: Return information for all running Services and associated Processes
Notes:
		- Sample Output -
                 "Name":  "WpnUserService_9faea",
                 "DesktopInteract":  false,
                 "PathName":  "C:\\WINDOWS\\system32\\svchost.exe -k UnistackSvcGroup",
                 "ServiceType":  "Unknown",
                 "StartMode":  "Auto",
                 "Caption":  "Windows Push Notifications User Service_9faea",
                 "Description":  "This service hosts Windows notification platform which provides support for local and push notifications. ",
                 "DisplayName":  "Windows Push Notifications User Service_9faea",
                 "InstallDate":  null,
                 "ProcessId":  1388,
                 "Started":  true,
                 "StartName":  null,
                 "State":  "Running",
                 "ProcessName":  "svchost.exe",
                 "ProcessPath":  "c:\\windows\\system32\\svchost.exe",
                 "ProcessCommandLine":  "c:\\windows\\system32\\svchost.exe -k unistacksvcgroup -s WpnUserService",
                 "ProcessSessionId":  1,
                 "ProcessOwner":  "TESTLAB\\Administrator",
                 "ServiceExecPath":  "C:\\WINDOWS\\system32\\svchost.exe",
                 "Hash":  "32569e403279b3fd2edb7ebd036273fa"
```

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

```
Command: Get-BluGenieServiceList -Algorithm SHA256
```

```
Description: Change the Algorithm to SHA256
Notes:
```

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

```
Command: Get-BluGenieServiceList -FilterType Name -Pattern Maps
```

```
Description: Filter running Services and associated Processes that match the search value
Notes:
```

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

```
Command: Get-BluGenieServiceList -FilterType Name -Pattern 'XboxNetApiSvc' -ManageServicetype Stop
```

```
Description: Stop the Service ( XboxNetApiSvc )
Notes:
```

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

```
Command: Get-BluGenieServiceList -FilterType Hash -Pattern 'bfbecf7e48cbdbf1fb2c51164ef9e5f5' -Managetype Stop
```

```
Description: Terminate the Process associated with the Service
Notes:
```

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

```
Command: Get-BluGenieServiceList -Pattern 'XboxNetApiSvc' -ManageServicetype Stop -TrackChanges
```

```
Description: Track changes to the Service.  All information will be added to the registr under HKEY_LOCAL_MACHINE\SOFTWARE\BluGenie\ServiceList
Notes:
```

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

```
Command: Get-BluGenieServiceList -Pattern 'XboxNetApiSvc' -ManageServicetype Stop -TrackChanges -OverrideTracked
```

```
Description: Override or Force the Tracked informatrion to be tracked again
Notes:
```

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

```
Command: Get-BluGenieServiceList -Pattern 'XboxNetApiSvc' -OutUnEscapedJSON -RevertTracked
```

```
Description:
Notes:
```

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

```
Command: Get-BluGenieServiceList -Help
```

```
Description: Call Help Information
Notes: If Help / WalkThrough is setup as a parameter, this script will be called to setup the Dynamic Help Menu if not the normal
			Get-Help will be called with the -Full parameter
```

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

```
Command: Get-BluGenieServiceList -WalkThrough
```

```
Description: Call Help Information [2]
Notes: If Help / WalkThrough is setup as a parameter, this script will be called to setup the Dynamic Help Menu if not the normal
			Get-Help will be called with the -Full parameter
```

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

```
Command: Get-BluGenieServiceList -OutUnEscapedJSON
```

```
Description: Get-BluGenieServiceList and Return Output as UnEscaped JSON format
Notes:  The OutUnEscapedJSON is used to beatify the JSON return and not Escape any Characters.  Normal return data is a Hash Table.
```

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

```
Command: Get-BluGenieServiceList -ReturnObject
```

```
Description: Get-BluGenieServiceList and Return Output an Object
Notes:  The ReturnObject is used to return a PowerShell Object.  Normal return data is a Hash Table.
```

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

```
Command: Get-BluGenieServiceList -OutYaml
```

```
Description: Return a detailed function report in YAML format
Notes:  The OutUnEscapedJSON is used to Beautify the JSON return and not Escape any Characters.  Normal return data is a Hash Table.
```

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

#### FilterType <a href="#filtertype" id="filtertype"></a>

```
-FilterType <String>
   Description:  Which property to filter by
         Notes:
             Filter Option
   	•	"Name"
   				Service Name (Default Value)
             •	"DesktopInteract"
   				Does the service interact with the Desktop [ True / False ]
             •	"PathName"
   				Service Path
             •	"ServiceType"
   				Service Type ( Share Process / Own Process )
             •	"StartMode"
   				Start Mode ( Manual / Started / Auto )
             •	"Caption"
   				Service Caption
             •	"Description"
   				Service Description
             •	"DisplayName"
   				Service Display Name
             •	"InstallDate"
   				Service Installed Date
             •	"ProcessId"
   				The current Process ID associated with the Service
             •	"Started"
   				Is the Service currently Started ( True / False )
             •	"StartName"
   				What Account is the Service associated with
             •	"State"
   				Running state of the currect service ( Running / Stopped )
             •	"ProcessName"
   				The Process name associated with the Service
             •	"ProcessPath"
   				The path of the Process associated with the Service
             •	"ProcessCommandLine"
   				The command line used with the Service
             •	"ProcessSessionId"
   				The Process ID (PID) associated with the Service
             •	"ProcessOwner"
   				The Owner of the Process
             •	"ServiceExecPath"
   				Path to the Service
             •	"Hash"
   				The Hash value of the Process ( MACTripleDES / MD5 / RIPEMD160 / SHA1 / SHA256 / SHA384 / SHA512 )
             •	"Signature_Comment"
   				Display error message while pulling Signature Information [Note: This is only available if you use the -Signature switch]
             •	"Signature_FileVersion"
   				File Version and OS Build information in part of the OS [Note:  This is only available if you use the -Signature switch]
             •	"Signature_Description"
   				The description of the files signature [Note:  This is only available if you use the -Signature switch]
             •	"Signature_Date"
   				Date when the file was signed [Note:  This is only available if you use the -Signature switch]
             •	"Signature_Company"
   				The company signing the file [Note:  This is only available if you use the -Signature switch]
             •	"Signature_Publisher"
   				The Publisher signing the file [Note:  This is only available if you use the -Signature switch]
             •	"Signature_Verified"
   				Verification ( Signed / UnSigned / Null ) [Note:  This is only available if you use the -Signature switch]
   Alias:
   ValidateSet: 'Name','DesktopInteract','PathName','ServiceType','StartMode','Caption','Description','DisplayName','InstallDate','ProcessId','Started','StartName','State','ProcessName','ProcessPath','ProcessComm
   andLine','ProcessSessionId','ProcessOwner','ServiceExecPath','Hash','Signature_Comment','Signature_FileVersion','Signature_Description','Signature_Date','Signature_Company','Signature_Publisher','Signature_Ver
   ified'
   
   Required?                    false
   Position?                    2
   Default value                Name
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### Pattern <a href="#pattern" id="pattern"></a>

```
-Pattern <String>
   Description: Search Pattern using RegEx
   Notes: Default Value = '.*'
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                .*
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### Managetype <a href="#managetype" id="managetype"></a>

```
-Managetype <String>
   Description: Manage the behavior of the process (Suspend, Resume, Stop)
   Notes:
   Alias:
   ValidateSet: Suspend,Resume,Stop
   
   Required?                    false
   Position?                    named
   Default value                
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### ManageServicetype <a href="#manageservicetype" id="manageservicetype"></a>

```
-ManageServicetype <String>
   Description: Manage the behavior of the Service (Suspend, Resume, Remove)
   Notes:
   Alias:
   ValidateSet: Suspend,Resume,Remove
   
   Required?                    false
   Position?                    named
   Default value                
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### Algorithm <a href="#algorithm" id="algorithm"></a>

```
-Algorithm <String>
   Description:  Specifies the cryptographic hash to use for computing the hash value of the contents of the specified file.
   Notes:  The acceptable values for this parameter are:
   
               - SHA1
               - SHA256
               - SHA384
               - SHA512
               - MACTripleDES
               - MD5 = (Default)
               - RIPEMD160
   Alias:
   ValidateSet: 'MACTripleDES','MD5','RIPEMD160','SHA1','SHA256','SHA384','SHA512'
   
   Required?                    false
   Position?                    named
   Default value                MD5
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### Signature <a href="#signature" id="signature"></a>

```
-Signature [<SwitchParameter>]
   Description: Query Signature information
   Notes:
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### TrackChanges <a href="#trackchanges" id="trackchanges"></a>

```
-TrackChanges [<SwitchParameter>]
   Description: Backup and Track the changes to the Service you are modifying
   Notes: Values stored in the registry under 'HKEY_LOCAL_MACHINE\SOFTWARE\BluGenie\ServiceList'
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### OverrideTracked <a href="#overridetracked" id="overridetracked"></a>

```
-OverrideTracked [<SwitchParameter>]
   Description: Force a Backup and Track the changes to the Service you are modifying
   Notes: Values stored in the registry under 'HKEY_LOCAL_MACHINE\SOFTWARE\BluGenie\ServiceList'
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### RevertTracked <a href="#reverttracked" id="reverttracked"></a>

```
-RevertTracked [<SwitchParameter>]
   Description: Restore the Tracked changes to the Service you originally modified
   Notes:
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### ClearGarbageCollecting <a href="#cleargarbagecollecting" id="cleargarbagecollecting"></a>

```
-ClearGarbageCollecting [<SwitchParameter>]
   Description: Garbage Collection in Powershell to Speed up Scripts and help lower memory consumption
   Notes: This is enabled by default.  To disable use -ClearGarbageCollecting:$False
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### UseCache <a href="#usecache" id="usecache"></a>

```
-UseCache [<SwitchParameter>]
   Description: Cache found objects to disk.  This is to not over tax Memory resources with found artifacts
   Notes: By default the Cache location is %SystemDrive%\Windows\Temp
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### CachePath <a href="#cachepath" id="cachepath"></a>

```
-CachePath <String>
   Description: Path to store the Cache information
   Notes: By default the Cache location is %SystemDrive%\Windows\Temp
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                $('{0}\Windows\Temp\{1}.log' -f $env:SystemDrive, $(New-BluGenieUID))
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### RemoveCache <a href="#removecache" id="removecache"></a>

```
-RemoveCache [<SwitchParameter>]
   Description: Remove Cache data on completion
   Notes: Cache information is removed right before the data is returned to the calling process
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### DBName <a href="#dbname" id="dbname"></a>

```
-DBName <String>
   Description: Database Name (Without extention)
   Notes: The default name is set to 'BluGenie'
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                BluGenie
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### DBPath <a href="#dbpath" id="dbpath"></a>

```
-DBPath <String>
   Description: Path to either Save or Update the Database
   Notes: The default path is $('{0}\BluGenie' -f $env:ProgramFiles)  Example: C:\Program Files\BluGenie
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                $('{0}\BluGenie' -f $env:ProgramFiles)
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### UpdateDB <a href="#updatedb" id="updatedb"></a>

```
-UpdateDB [<SwitchParameter>]
   Description: Save return data to the Sqlite Database
   Notes:
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### ForceDBUpdate <a href="#forcedbupdate" id="forcedbupdate"></a>

```
-ForceDBUpdate [<SwitchParameter>]
   Description: Force an update of the return data to the Sqlite Database
   Notes: By default only new items are saved.  The primary key is ( FullName )
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### NewDBTable <a href="#newdbtable" id="newdbtable"></a>

```
-NewDBTable [<SwitchParameter>]
   Description: Delete and Recreate the Database Table
   Notes:
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

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

```
-Walkthrough [<SwitchParameter>]
   Description:  Start the dynamic help menu system to help walk through the current command and all of the parameters
   Notes:
   Alias: Help
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### ReturnObject <a href="#returnobject" id="returnobject"></a>

```
-ReturnObject [<SwitchParameter>]
   Description: Return information as an Object
   Notes: By default the data is returned as a Hash Table
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### OutUnEscapedJSON <a href="#outunescapedjson" id="outunescapedjson"></a>

```
-OutUnEscapedJSON [<SwitchParameter>]
   Description: Remove UnEsacped Char from the JSON information.
   Notes: This will beautify json and clean up the formatting.
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### OutYaml <a href="#outyaml" id="outyaml"></a>

```
-OutYaml [<SwitchParameter>]
   Description: Return detailed information in Yaml Format
   Notes: Only supported in Posh 3.0 and above
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### FormatView <a href="#formatview" id="formatview"></a>

```
-FormatView <String>
   Description: Automatically format the Return Object
   Notes: Yaml is only supported in Posh 3.0 and above
   Alias:
   ValidateSet: 'Table','Custom','CustomModified','None','JSON','OutUnEscapedJSON','CSV', 'Yaml'
   
   Required?                    false
   Position?                    named
   Default value                None
   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).


# Get-BluGenieServiceStatus

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

Report on the Status of the BluGenie Windows Service

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

```
      Get-BluGenieServiceStatus [-Walkthrough] [-ReturnObject] [-OutUnEscapedJSON] [-OutYaml] [[-FormatView] <String>] [<CommonParameters>]

    
```

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

Report on the Status of the BluGenie Windows Service

Report includes

* Jobs that are currently waiting to run
* Processing Jobs
* Completed Jobs
* Completed JSON reports
* Service State
* Service CPU Resources
* Service Memory Resources
* BluGenie Service Event Viewer Logs

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

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

```
      Command: Get-BluGenieServiceStatus

    
```

```
      Description: Report on the Status of the BluGenie Windows Service
Notes:

    
```

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

```
      Command: Get-BGServiceStatus

    
```

```
      Description: Use the Alias to report on the Status of the BluGenie Windows Service
Notes:

    
```

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

```
      Command: Get-BluGenieServiceStatus -Help

    
```

```
      Description: Call Help Information
Notes: If Help / WalkThrough is setup as a parameter, this script will be called to setup the Dynamic Help Menu if not the normal Get-Help will be called with the -Full parameter

    
```

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

```
      Command: Get-BluGenieServiceStatus -WalkThrough

    
```

```
      Description: Call Help Information [2]
Notes: If Help / WalkThrough is setup as a parameter, this script will be called to setup the Dynamic Help Menu if not the normal Get-Help will be called with the -Full parameter

    
```

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

```
      Command: Get-BGServiceStatus -OutUnEscapedJSON

    
```

```
      Description: Return a detailed function report in an UnEscaped JSON format
Notes:  The OutUnEscapedJSON is used to Beautify the JSON return and not Escape any Characters.  Normal return data is a Hash Table.

    
```

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

```
      Command: Get-BGServiceStatus -OutYaml

    
```

```
      Description: Return a detailed function report in YAML format
Notes:  The OutUnEscapedJSON is used to Beautify the JSON return and not Escape any Characters.  Normal return data is a Hash Table.

    
```

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

```
      Command: Get-BGServiceStatus -ReturnObject

    
```

```
      Description: Return Output as a Object
Notes:  The ReturnObject is used to return a PowerShell Object.  Normal return data is a Hash Table.
       This parameter is also used with the ForMat

    
```

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

```
      Command: Get-BluGenieServiceStatus -ReturnObject -FormatView Yaml

    
```

```
      Description: Output PSObject information in Yaml format
Notes:  Current formats supported by default are ('Table','Custom','CustomModified','None','JSON','OutUnEscapedJSON','CSV', 'Yaml')
       Default is set to (None) and normal PSObject.

    
```

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

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

```
      -Walkthrough [<SwitchParameter>]
   Description:  Start the dynamic help menu system to help walk through the current command and all of the parameters
   Notes:
   Alias: Help
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false

    
```

#### ReturnObject <a href="#returnobject" id="returnobject"></a>

```
      -ReturnObject [<SwitchParameter>]
   Description: Return information as an Object
   Notes: By default the data is returned as a Hash Table
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false

    
```

#### OutUnEscapedJSON <a href="#outunescapedjson" id="outunescapedjson"></a>

```
      -OutUnEscapedJSON [<SwitchParameter>]
   Description: Remove UnEsacped Char from the JSON information.
   Notes: This will beautify json and clean up the formatting.
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false

    
```

#### OutYaml <a href="#outyaml" id="outyaml"></a>

```
      -OutYaml [<SwitchParameter>]
   Description: Return detailed information in Yaml Format
   Notes: Only supported in Posh 3.0 and above
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false

    
```

#### FormatView <a href="#formatview" id="formatview"></a>

```
      -FormatView <String>
   Description: Automatically format the Return Object
   Notes: Yaml is only supported in Posh 3.0 and above
   Alias:
   ValidateSet: 'Table','Custom','CustomModified','None','JSON','OutUnEscapedJSON','CSV', 'Yaml'
   
   Required?                    false
   Position?                    1
   Default value                None
   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).


# Get-BluGenieSessionAliasList

﻿

### Get-BluGenieSessionAliasList <a href="#get-blugeniesessionaliaslist" id="get-blugeniesessionaliaslist"></a>

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

Get-BluGenieSessionAliasList will display, remove, and export all user defined Aliases for the current powershell session

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

```
Get-BluGenieSessionAliasList [-RemoveAll] [-Force] [-Export] [[-ExportPath] <String>] [[-FormatView] <String>] [-Walkthrough] [-ReturnObject] [-OutUnEscapedJSON] [<CommonParameters>]
```

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

Get-BluGenieSessionAliasList will display, remove, and export all user defined Aliases for the current powershell session

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

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

```
Command: Get-BluGenieSessionAliasList
```

```
Description: Get the user defined Aliases for the current PowerShell session
Notes:
```

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

```
Command: Get-BluGenieSessionAliasList -RemoveAll
```

```
Description: Remove all user defined Aliases for the current PowerShell session
Notes:
```

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

```
Command: Get-BluGenieSessionAliasList -Help
```

```
Description: Call Help Information
Notes: If Help / WalkThrough is setup as a parameter, this script will be called to setup the Dynamic Help Menu if not the normal 
         Get-Help will be called with the -Full parameter
```

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

```
Command: Get-BluGenieSessionAliasList -WalkThrough
```

```
Description: Call Help Information [2]
Notes: If Help / WalkThrough is setup as a parameter, this script will be called to setup the Dynamic Help Menu if not the normal 
         Get-Help will be called with the -Full parameter
```

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

```
Command: Get-BluGenieSessionAliasList -OutUnEscapedJSON
```

```
Description: Get the user defined Aliases for the current PowerShell session and Return Output as UnEscaped JSON format
Notes:  The OutUnEscapedJSON is used to beatify the JSON return and not Escape any Characters.  Normal return data is a Hash Table.
```

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

```
Command: Get-BluGenieSessionAliasList -ReturnObject
```

```
Description: Get the user defined Aliases for the current PowerShell session and Return Output an Object
Notes:  The ReturnObject is used to return a PowerShell Object.  Normal return data is a Hash Table.
```

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

```
Command: Get-BluGenieSessionAliasList -ReturnObject -FormatView JSON
```

```
Description: Get the user defined Aliases for the current PowerShell session and Return Object formatted in a JSON view
Notes:  The ReturnObject is used to return a PowerShell Object.  Normal return data is a Hash Table.
```

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

```
Command: Get-BluGenieSessionAliasList -ReturnObject -FormatView Custom
```

```
Description: Get the user defined Aliases for the current PowerShell session and Return Object formatted in a PSCustom view
Notes:  Format-Custom is designed to display views that are not just tables or just lists. You can use the views defined in the 
          *format.PS1XML files in the PowerShell directory, or you can create your own views in new PS1XML files and use the 
          Update-FormatData cmdlet to add them to PowerShell.
```

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

#### RemoveAll <a href="#removeall" id="removeall"></a>

```
-RemoveAll [<SwitchParameter>]
   Description: Remove all user defined Aliases
   Notes: 
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### Force <a href="#force" id="force"></a>

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

#### Export <a href="#export" id="export"></a>

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

#### ExportPath <a href="#exportpath" id="exportpath"></a>

```
-ExportPath <String>
   
   Required?                    false
   Position?                    1
   Default value                
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### FormatView <a href="#formatview" id="formatview"></a>

```
-FormatView <String>
   Description: Select which format to return the object data in.
   Notes: Default value is set to (None).  This value is only valid when using the -ReturnObject parameter
   Alias:
   ValidateSet: 'Table','Custom','CustomModified','None','JSON','OutUnEscapedJSON','CSV'
   
   Required?                    false
   Position?                    2
   Default value                Table
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

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

```
-Walkthrough [<SwitchParameter>]
   Description:  Start the dynamic help menu system to help walk through the current command and all of the parameters
   Notes:  
   Alias: Help
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### ReturnObject <a href="#returnobject" id="returnobject"></a>

```
-ReturnObject [<SwitchParameter>]
   Description: Return information as an Object
   Notes: This is the default return type
   Alias: 
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                True
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### OutUnEscapedJSON <a href="#outunescapedjson" id="outunescapedjson"></a>

```
-OutUnEscapedJSON [<SwitchParameter>]
   Description: Remove UnEsacped Char from the JSON information.
   Notes: This will beautify json and clean up the formatting.
   Alias: 
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   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).


# Get-BluGenieSessionFunctionList

﻿

### Get-BluGenieSessionFunctionList <a href="#get-blugeniesessionfunctionlist" id="get-blugeniesessionfunctionlist"></a>

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

Get-BluGenieSessionFunctionList will display all user defined functions for the current powershell session

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

```
Get-BluGenieSessionFunctionList [-RemoveAll] [-Force] [-Export] [[-ExportPath] <String>] [[-FormatView] <String>] [-Walkthrough] [-ReturnObject] [-OutUnEscapedJSON] [<CommonParameters>]
```

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

Get-BluGenieSessionFunctionList will display all user defined functions for the current powershell session

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

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

```
Command: Get-BluGenieSessionFunctionList
```

```
Description: Get the user defined functions for the current PowerShell session
Notes:
```

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

```
Command: Get-BluGenieSessionFunctionList -RemoveAll
```

```
Description: Remove all user defined functions for the current PowerShell session
Notes:
```

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

```
Command: Get-BluGenieSessionFunctionList -RemoveAll -Force
```

```
Description: Remove all user defined functions including this function and its dependencies
Notes:
```

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

```
Command: Get-BluGenieSessionFunctionList -Help
```

```
Description: Call Help Information
Notes: If Help / WalkThrough is setup as a parameter, this script will be called to setup the Dynamic Help Menu if not the normal 
         Get-Help will be called with the -Full parameter
```

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

```
Command: Get-BluGenieSessionFunctionList -WalkThrough
```

```
Description: Call Help Information [2]
Notes: If Help / WalkThrough is setup as a parameter, this script will be called to setup the Dynamic Help Menu if not the normal 
         Get-Help will be called with the -Full parameter
```

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

```
Command: Get-BluGenieSessionFunctionList -OutUnEscapedJSON
```

```
Description: Get the user defined functions for the current PowerShell session and Return Output as UnEscaped JSON format
Notes:  The OutUnEscapedJSON is used to beatify the JSON return and not Escape any Characters.  Normal return data is a Hash Table.
```

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

```
Command: Get-BluGenieSessionFunctionList -ReturnObject
```

```
Description: Get the user defined functions for the current PowerShell session and Return Output an Object
Notes:  The ReturnObject is used to return a PowerShell Object.  Normal return data is a Hash Table.
```

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

```
Command: Get-BluGenieSessionFunctionList -ReturnObject -FormatView JSON
```

```
Description: Get the user defined functions for the current PowerShell session and Return Object formatted in a JSON view
Notes:  The ReturnObject is used to return a PowerShell Object.  Normal return data is a Hash Table.
```

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

```
Command: Get-BluGenieSessionFunctionList -ReturnObject -FormatView Custom
```

```
Description: Get the user defined functions for the current PowerShell session and Return Object formatted in a PSCustom view
Notes:  Format-Custom is designed to display views that are not just tables or just lists. You can use the views defined in the 
          *format.PS1XML files in the PowerShell directory, or you can create your own views in new PS1XML files and use the 
          Update-FormatData cmdlet to add them to PowerShell.
```

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

#### RemoveAll <a href="#removeall" id="removeall"></a>

```
-RemoveAll [<SwitchParameter>]
   Description: Remove all user defined functions
   Notes: This does not include this function or any of the dependencies
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### Force <a href="#force" id="force"></a>

```
-Force [<SwitchParameter>]
   Description: Remove all user defined functions including this function and its dependencies
   Notes: This function and its dependencies will be removed 
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### Export <a href="#export" id="export"></a>

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

#### ExportPath <a href="#exportpath" id="exportpath"></a>

```
-ExportPath <String>
   
   Required?                    false
   Position?                    1
   Default value                
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### FormatView <a href="#formatview" id="formatview"></a>

```
-FormatView <String>
   Description: Select which format to return the object data in.
   Notes: Default value is set to (None).  This value is only valid when using the -ReturnObject parameter
   Alias:
   ValidateSet: 'Table','Custom','CustomModified','None','JSON','OutUnEscapedJSON','CSV'
   
   Required?                    false
   Position?                    2
   Default value                Table
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

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

```
-Walkthrough [<SwitchParameter>]
   Description:  Start the dynamic help menu system to help walk through the current command and all of the parameters
   Notes:  
   Alias: Help
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### ReturnObject <a href="#returnobject" id="returnobject"></a>

```
-ReturnObject [<SwitchParameter>]
   Description: Return information as an Object
   Notes: This is the default return type
   Alias: 
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                True
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### OutUnEscapedJSON <a href="#outunescapedjson" id="outunescapedjson"></a>

```
-OutUnEscapedJSON [<SwitchParameter>]
   Description: Remove UnEsacped Char from the JSON information.
   Notes: This will beautify json and clean up the formatting.
   Alias: 
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   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).


# Get-BluGenieSessionVariableList

﻿Get-BluGenieSessionVariableList

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

Get-BluGenieSessionVariableList will display, export, and remove all user defined variables for the current powershell session

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

```
Get-BluGenieSessionVariableList [-RemoveAll] [-Export] [[-ExportPath] <String>] [[-FormatView] <String>] [-Walkthrough] [-ReturnObject] [-OutUnEscapedJSON] [<CommonParameters>]
```

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

Get-BluGenieSessionVariableList will display, export, and remove all user defined variables for the current powershell session

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

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

```
Command: Get-BluGenieSessionVariableList
```

```
Description: Get the user defined variables for the current PowerShell session
Notes:
```

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

```
Command: Get-BluGenieSessionVariableList -RemoveAll
```

```
Description: Remove all user defined variables for the current PowerShell session
Notes:
```

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

```
Command: Get-BluGenieSessionVariableList -RemoveAll -Force
```

```
Description: Remove all user defined variables including this function and its dependencies
Notes:
```

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

```
Command: Get-BluGenieSessionVariableList -Help
```

```
Description: Call Help Information
Notes: If Help / WalkThrough is setup as a parameter, this script will be called to setup the Dynamic Help Menu if not the normal 
         Get-Help will be called with the -Full parameter
```

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

```
Command: Get-BluGenieSessionVariableList -WalkThrough
```

```
Description: Call Help Information [2]
Notes: If Help / WalkThrough is setup as a parameter, this script will be called to setup the Dynamic Help Menu if not the normal 
         Get-Help will be called with the -Full parameter
```

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

```
Command: Get-BluGenieSessionVariableList -OutUnEscapedJSON
```

```
Description: Get the user defined variables for the current PowerShell session and Return Output as UnEscaped JSON format
Notes:  The OutUnEscapedJSON is used to beatify the JSON return and not Escape any Characters.  Normal return data is a Hash Table.
```

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

```
Command: Get-BluGenieSessionVariableList -ReturnObject
```

```
Description: Get the user defined variables for the current PowerShell session and Return Output an Object
Notes:  The ReturnObject is used to return a PowerShell Object.  Normal return data is a Hash Table.
```

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

```
Command: Get-BluGenieSessionVariableList -ReturnObject -FormatView JSON
```

```
Description: Get the user defined variables for the current PowerShell session and Return Object formatted in a JSON view
Notes:  The ReturnObject is used to return a PowerShell Object.  Normal return data is a Hash Table.
```

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

```
Command: Get-BluGenieSessionVariableList -ReturnObject -FormatView Custom
```

```
Description: Get the user defined variables for the current PowerShell session and Return Object formatted in a PSCustom view
Notes:  Format-Custom is designed to display views that are not just tables or just lists. You can use the views defined in the 
          *format.PS1XML files in the PowerShell directory, or you can create your own views in new PS1XML files and use the 
          Update-FormatData cmdlet to add them to PowerShell.
```

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

#### RemoveAll <a href="#removeall" id="removeall"></a>

```
-RemoveAll [<SwitchParameter>]
   Description: Remove all user defined variables
   Notes: This does not include this function or any of the dependencies
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### Export <a href="#export" id="export"></a>

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

#### ExportPath <a href="#exportpath" id="exportpath"></a>

```
-ExportPath <String>
   
   Required?                    false
   Position?                    1
   Default value                
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### FormatView <a href="#formatview" id="formatview"></a>

```
-FormatView <String>
   Description: Select which format to return the object data in.
   Notes: Default value is set to (None).  This value is only valid when using the -ReturnObject parameter
   Alias:
   ValidateSet: 'Table','Custom','CustomModified','None','JSON','OutUnEscapedJSON','CSV'
   
   Required?                    false
   Position?                    2
   Default value                Table
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

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

```
-Walkthrough [<SwitchParameter>]
   Description:  Start the dynamic help menu system to help walk through the current command and all of the parameters
   Notes:  
   Alias: Help
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### ReturnObject <a href="#returnobject" id="returnobject"></a>

```
-ReturnObject [<SwitchParameter>]
   Description: Return information as an Object
   Notes: This is the default return type
   Alias: 
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                True
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### OutUnEscapedJSON <a href="#outunescapedjson" id="outunescapedjson"></a>

```
-OutUnEscapedJSON [<SwitchParameter>]
   Description: Remove UnEsacped Char from the JSON information.
   Notes: This will beautify json and clean up the formatting.
   Alias: 
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   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).


# Get-BluGenieSettings

﻿Get-BluGenieSettings

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

Get-BluGenieSettings is an add-on to show all defined values for the current session in the BluGenie Console

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

```
Get-BluGenieSettings [[-OutputType] <String>] [-Walkthrough] [<CommonParameters>]
```

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

Get-BluGenieSettings is an add-on to show all defined values for the current session in the BluGenie Console

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

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

```
Command: Get-BluGenieSettings
```

```
Description: This will output the current BluGenie Console Settings in a JSON format
Notes:
```

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

```
Command: Get-BluGenieSettings -Help
```

```
Description: Call Help Information
Notes: If Help / WalkThrough is setup as a parameter, this script will be called to setup the Dynamic Help Menu if not the normal
       Get-Help will be called with the -Full parameter
```

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

```
Command: Get-BluGenieSettings -WalkThrough
```

```
Description: Call Help Information [2]
Notes: If Help / WalkThrough is setup as a parameter, this script will be called to setup the Dynamic Help Menu if not the normal
       Get-Help will be called with the -Full parameter
```

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

#### OutputType <a href="#outputtype" id="outputtype"></a>

```
-OutputType <String>
   Description:  Select the format of the Outpuut to display the settings configuration in
   Notes:  The default is 'YAML'
   Alias:
   ValidateSet: 'YAML','JSON','OutUnEscapedJSON'
   
   Required?                    false
   Position?                    1
   Default value                YAML
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

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

```
-Walkthrough [<SwitchParameter>]
   Description:  Start the dynamic help menu system to help walk through the current command and all of the parameters
   Notes:
   Alias: Help
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   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).


# Get-BluGenieSignature

﻿Get-BluGenieSignature

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

Report on the Files Authenication Signature Information

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

```
Get-BluGenieSignature [[-Path] <String[]>] [[-ToolPath] <String>] [[-Algorithm] <String>] [-Walkthrough] [-ReturnObject] [-OutUnEscapedJSON] [<CommonParameters>]
```

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

Report on the Files Authenication Signature Information

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

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

```
Command: Get-BluGenieSignature -Path 'C:\Windows\Notepad.exe'
```

```
Description: Show the Authentication Signature Information for the file given
Notes:
- Sample Output -
       Comment         :
       Path            : c:\windows\system32\cmd.exe
       File Version    : 10.0.17134.1 (WinBuild.160101.0800)
       Description     : Windows Command Processor
       Product Version : 10.0.17134.1
       Date            : 5:16 PM 4/11/2018
       Company         : Microsoft Corporation
       Publisher       : Microsoft Windows
       Verified        : Signed
       Product         : Microsoft� Windows� Operating System
       Machine Type    : 64-bit
       Hash            : 4e2acf4f8a396486ab4268c94a6a245f
```

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

```
Command: Get-BluGenieSignature -Path 'C:\Windows\Notepad.exe,C:\Windows\system32\cmd.exe'
```

```
Description: Show the Authentication Signature Information for the file(s) in a sinlge string using a comma separator
Notes:
```

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

```
Command: Get-BluGenieSignature -Path 'C:\Windows\Notepad.exe','C:\Windows\system32\cmd.exe'
```

```
Description: Show the Authentication Signature Information for the file(s) in an Array
Notes:
```

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

```
Command: Get-BluGenieSignature -Path 'C:\Windows\Notepad.exe' -ReturnObject:$False
```

```
Description: Reset the default output to a Hash Table
Notes:
```

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

```
Command: Get-BluGenieSignature -Path 'C:\Windows\Notepad.exe' -ToolPath 'C:\Temp\SigCheck.exe'
```

```
Description: Locate the SigCheck.exe tool in C:\Temp and Show the Authentication Signature Information for Notepad.exe
Notes:
```

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

```
Command: Get-BluGenieSignature -Help
```

```
Description: Call Help Information
Notes: If Help / WalkThrough is setup as a parameter, this script will be called to setup the Dynamic Help Menu if not the normal Get-Help will be called with the -Full parameter
```

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

```
Command: Get-BluGenieSignature -WalkThrough
```

```
Description: Call Help Information [2]
Notes: If Help / WalkThrough is setup as a parameter, this script will be called to setup the Dynamic Help Menu if not the normal Get-Help will be called with the -Full parameter
```

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

```
Command: Get-BluGenieSignature -Path 'C:\Windows\Notepad.exe' -ReturnObject:$False -OutUnEscapedJSON
```

```
Description: Show the Authentication Signature Information and Return Output as UnEscaped JSON format
Notes:  The OutUnEscapedJSON is used to beatify the JSON return and not Escape any Characters.  Normal return data is a Hash Table.
```

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

```
Command: Get-BluGenieSignature -Path 'C:\Windows\Notepad.exe' -ReturnObject
```

```
Description: Show the Authentication Signature Information and Return Output an Object
Notes:  The ReturnObject is used to return a PowerShell Object.  This is the default option
```

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

#### Path <a href="#path" id="path"></a>

```
-Path <String[]>
   Description: Path to the file(s) to determine the Signature Information
   Notes:
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    2
   Default value                
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### ToolPath <a href="#toolpath" id="toolpath"></a>

```
-ToolPath <String>
   Description: Path to the SigCheck.exe SysInternals Utility
   Notes: The default ToolPath is ( .\Tools\SysinternalsSuite ) with a backup path of ( $env:Windir\Temp )
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    3
   Default value                
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### Algorithm <a href="#algorithm" id="algorithm"></a>

```
-Algorithm <String>
   Description:  Specifies the cryptographic hash to use for computing the hash value of the contents of the specified file.
   Notes:  The acceptable values for this parameter are:
   
               - SHA1
               - SHA256
               - SHA384
               - SHA512
               - MACTripleDES
               - MD5 = (Default)
               - RIPEMD160
   Alias:
   ValidateSet: 'MACTripleDES','MD5','RIPEMD160','SHA1','SHA256','SHA384','SHA512'
   
   Required?                    false
   Position?                    4
   Default value                MD5
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

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

```
-Walkthrough [<SwitchParameter>]
   Description:  Start the dynamic help menu system to help walk through the current command and all of the parameters
   Notes:
   Alias: Help
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### ReturnObject <a href="#returnobject" id="returnobject"></a>

```
-ReturnObject [<SwitchParameter>]
   Description: Return information as an Object
   Notes: This is set to $true by default.  To change to false run -ReturnObject:$false
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                True
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### OutUnEscapedJSON <a href="#outunescapedjson" id="outunescapedjson"></a>

```
-OutUnEscapedJSON [<SwitchParameter>]
   Description: Remove UnEsacped Char from the JSON information.
   Notes: This will beautify json and clean up the formatting.
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   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).


# Get-BluGenieSystemInfo

﻿Get-BluGenieSystemInfo

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

Return Detailed System Information

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

```
Get-BluGenieSystemInfo [-ShowUpdates] [-ClearGarbageCollecting] [-UseCache] [[-CachePath] <String>] [-RemoveCache] [[-DBName] <String>] [[-DBPath] <String>] [-UpdateDB] [-ForceDBUpdate] [-NewDBTable] 
[-Walkthrough] [-ReturnObject] [-OutUnEscapedJSON] [-OutYaml] [[-FormatView] <String>] [<CommonParameters>]
```

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

Return Detailed System Information based on \* Logged In users \* Operating System & Installed Date \* System Start Time \* General Computer Information - Name - Domain - Description - Manufacturer - Model - NumberOfProcessors - SystemType - PrimaryOwnerName \* Disk size and freespace \* Memory size and freespace \* Domain and DC Names \* PowerShell Version \* Dot Net Version(s) \* Windows Updates

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

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

```
Command: Get-BluGenieSystemInfo
```

```
Description: General System Information
Notes: This does not include AD, GPO, or Windows Update information
```

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

```
Command: Get-BluGenieSystemInfo -ShowUpdates
```

```
Description: General System Information with Windows Updates
Notes:
```

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

```
Command: Get-BluGenieSystemInfo -Help
```

```
Description: Call Help Information
Notes: If Help / WalkThrough is setup as a parameter, this script will be called to setup the Dynamic Help Menu if not the normal
       Get-Help will be called with the -Full parameter
```

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

```
Command: Get-BluGenieSystemInfo -WalkThrough
```

```
Description: Call Help Information [2]
Notes: If Help / WalkThrough is setup as a parameter, this script will be called to setup the Dynamic Help Menu if not the normal
       Get-Help will be called with the -Full parameter
```

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

```
Command: Get-BluGenieSystemInfo -OutUnEscapedJSON
```

```
Description: Get-BluGenieSystemInfo and Return Output as UnEscaped JSON format
Notes:  The OutUnEscapedJSON is used to beatify the JSON return and not Escape any Characters.  Normal return data is a Hash Table.
```

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

```
Command: Get-BluGenieSystemInfo -ReturnObject
```

```
Description: Get-BluGenieSystemInfo and Return Output an Object
Notes:  The ReturnObject is used to return a PowerShell Object.  Normal return data is a Hash Table.
```

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

```
Command: Get-BluGenieSystemInfo -ReturnObject -FormatView JSON
```

```
Description: Get-BluGenieSystemInfo and Return Object formatted in a JSON view
Notes:  The ReturnObject is used to return a PowerShell Object.  Normal return data is a Hash Table.
```

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

```
Command: Get-BluGenieSystemInfo -ReturnObject -FormatView Custom
```

```
Description: Get-BluGenieSystemInfo and Return Object formatted in a PSCustom view
Notes:  Format-Custom is designed to display views that are not just tables or just lists. You can use the views defined in the
       *format.PS1XML files in the PowerShell directory, or you can create your own views in new PS1XML files and use the
       Update-FormatData cmdlet to add them to PowerShell.
```

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

#### ShowUpdates <a href="#showupdates" id="showupdates"></a>

```
-ShowUpdates [<SwitchParameter>]
   Description:  Show Windows Updates
   Notes: This is not set by default
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### ClearGarbageCollecting <a href="#cleargarbagecollecting" id="cleargarbagecollecting"></a>

```
-ClearGarbageCollecting [<SwitchParameter>]
   Description: Garbage Collection in Powershell to Speed up Scripts and help lower memory consumption
   Notes: This is enabled by default.  To disable use -ClearGarbageCollecting:$False
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### UseCache <a href="#usecache" id="usecache"></a>

```
-UseCache [<SwitchParameter>]
   Description: Cache found objects to disk.  This is to not over tax Memory resources with found artifacts
   Notes: By default the Cache location is %SystemDrive%\Windows\Temp
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### CachePath <a href="#cachepath" id="cachepath"></a>

```
-CachePath <String>
   Description: Path to store the Cache information
   Notes: By default the Cache location is %SystemDrive%\Windows\Temp
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    1
   Default value                $('{0}\Windows\Temp\{1}.log' -f $env:SystemDrive, $(New-BluGenieUID))
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### RemoveCache <a href="#removecache" id="removecache"></a>

```
-RemoveCache [<SwitchParameter>]
   Description: Remove Cache data on completion
   Notes: Cache information is removed right before the data is returned to the calling process
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### DBName <a href="#dbname" id="dbname"></a>

```
-DBName <String>
   Description: Database Name (Without extention)
   Notes: The default name is set to 'BluGenie'
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    2
   Default value                BluGenie
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### DBPath <a href="#dbpath" id="dbpath"></a>

```
-DBPath <String>
   Description: Path to either Save or Update the Database
   Notes: The default path is $('{0}\BluGenie' -f $env:ProgramFiles)  Example: C:\Program Files\BluGenie
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    3
   Default value                $('{0}\BluGenie' -f $env:ProgramFiles)
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### UpdateDB <a href="#updatedb" id="updatedb"></a>

```
-UpdateDB [<SwitchParameter>]
   Description: Save return data to the Sqlite Database
   Notes:
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### ForceDBUpdate <a href="#forcedbupdate" id="forcedbupdate"></a>

```
-ForceDBUpdate [<SwitchParameter>]
   Description: Force an update of the return data to the Sqlite Database
   Notes: By default only new items are saved.  The primary key is ( FullName )
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### NewDBTable <a href="#newdbtable" id="newdbtable"></a>

```
-NewDBTable [<SwitchParameter>]
   Description: Delete and Recreate the Database Table
   Notes:
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

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

```
-Walkthrough [<SwitchParameter>]
   Description:  Start the dynamic help menu system to help walk through the current command and all of the parameters
   Notes:
   Alias: Help
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### ReturnObject <a href="#returnobject" id="returnobject"></a>

```
-ReturnObject [<SwitchParameter>]
   Description: Return information as an Object
   Notes: By default the data is returned as a Hash Table
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### OutUnEscapedJSON <a href="#outunescapedjson" id="outunescapedjson"></a>

```
-OutUnEscapedJSON [<SwitchParameter>]
   Description: Remove UnEsacped Char from the JSON information.
   Notes: This will beautify json and clean up the formatting.
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### OutYaml <a href="#outyaml" id="outyaml"></a>

```
-OutYaml [<SwitchParameter>]
   Description: Return detailed information in Yaml Format
   Notes: Only supported in Posh 3.0 and above
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### FormatView <a href="#formatview" id="formatview"></a>

```
-FormatView <String>
   Description: Automatically format the Return Object
   Notes: Yaml is only supported in Posh 3.0 and above
   Alias:
   ValidateSet: 'Table','Custom','CustomModified','None','JSON','OutUnEscapedJSON','CSV', 'Yaml'
   
   Required?                    false
   Position?                    4
   Default value                None
   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).


# Get-BluGenieToolsDirectory

﻿Get-BluGenieToolsDirectory

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

Display the Tools Directory Path

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

```
Get-BluGenieToolsDirectory [-Walkthrough] [<CommonParameters>]
```

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

Display the Tools Directory Path

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

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

```
Command: Get-BluGenieToolsDirectory
```

```
Description: Display the ToolsDirectory Path
Notes:
```

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

```
Command: Get-BluGenieToolsDirectory -Help
```

```
Description: Call Help Information
Notes: If Help / WalkThrough is setup as a parameter, this script will be called to setup the Dynamic Help Menu if not the normal Get-Help will be called with the -Full parameter
```

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

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

```
-Walkthrough [<SwitchParameter>]
   Description:  Start the dynamic help menu system to help walk through the current command and all of the parameters
   Notes:  
   Alias: Help
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   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).


# Get-BluGenieTranscriptsDir

﻿Get-BluGenieTranscriptsDir

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

Display the Transcripts Directory Path

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

```
Get-BluGenieTranscriptsDir [-Walkthrough] [<CommonParameters>]
```

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

Display the Transcripts Directory Path

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

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

```
Command: Get-BluGenieTranscriptsDir
```

```
Description: Display the Get-BluGenieTranscriptsDir Path
Notes:
```

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

```
Command: Get-BluGenieTranscriptsDir -Help
```

```
Description: Call Help Information
Notes: If Help / WalkThrough is setup as a parameter, this script will be called to setup the Dynamic Help Menu if not the normal Get-Help will be called with the -Full parameter
```

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

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

```
-Walkthrough [<SwitchParameter>]
   Description:  Start the dynamic help menu system to help walk through the current command and all of the parameters
   Notes:  
   Alias: Help
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   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).


# Get-BluGenieTranscriptsFile

﻿

### Get-BluGenieTranscriptsFile <a href="#get-blugenietranscriptsfile" id="get-blugenietranscriptsfile"></a>

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

Display the Transcripts File Path

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

```
Get-BluGenieTranscriptsFile [-Walkthrough] [<CommonParameters>]
```

### DESCRIPTION <a href="#description" id="description"></a>

Display the Transcripts File Path

### EXAMPLES <a href="#examples" id="examples"></a>

#### EXAMPLE 1 <a href="#example-1" id="example-1"></a>

```
Command: Get-BluGenieTranscriptsFile
```

```
Description: Display the Get-BluGenieTranscriptsFile Path
Notes:
```

#### EXAMPLE 2 <a href="#example-2" id="example-2"></a>

```
Command: Get-BluGenieTranscriptsFile -Help
```

```
Description: Call Help Information
Notes: If Help / WalkThrough is setup as a parameter, this script will be called to setup the Dynamic Help Menu if not the normal Get-Help will be called with the -Full parameter
```

### PARAMETERS <a href="#parameters" id="parameters"></a>

#### Walkthrough <a href="#walkthrough" id="walkthrough"></a>

```
-Walkthrough [<SwitchParameter>]
   Description:  Start the dynamic help menu system to help walk through the current command and all of the parameters
   Notes:  
   Alias: Help
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   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).


# Get-BluGenieTrapData

﻿

### Get-BluGenieTrapData <a href="#get-blugenietrapdata" id="get-blugenietrapdata"></a>

### SYNOPSIS <a href="#synopsis" id="synopsis"></a>

Get-BluGenieTrapData will report back any captured BluGenie trap logs.

Functions as follows

* List - Display a list of all the Blugenie Logs captured on the remote machine
* Path - Specificy a path to query for Blugenie Logs (By defautl this is %SystemDrive%\Windows\Temp)
* FileName - Specifically select which file you want to report on (By default the last file created is picked). The file name can be picked using RegEx.
* JobID - Specify which file you want to remote on using the Job ID (Be default this is the last log created with the Job ID specified. You can have more then one log with the same Job ID)
* Remove - Remove a Specific log file
* RemoveAll - Remove BluGenie log files including the Debugging Log files
* Overwrite - Return the current JSON Job data to look just like the Trapped Log data for easier reporting and parsing

### SYNTAX <a href="#syntax" id="syntax"></a>

```
Get-BluGenieTrapData [[-Path] <String>] [[-FileName] <String>] [-JobID <String>] [-List] [-Remove] [-RemoveAll] [-OverWrite] [-Walkthrough] [-ReturnObject] [-OutUnEscapedJSON] [-FormatView <String>] 
[<CommonParameters>]
```

### DESCRIPTION <a href="#description" id="description"></a>

Invoke-WalkThrough is Dynamic Help. It will convert the static PowerShell help into an interactive menu system -Added with a few new tag descriptors for (Parameter and Examples). This information will structure the help information displayed and also help with bulding the dynamic help menu

### EXAMPLES <a href="#examples" id="examples"></a>

#### EXAMPLE 1 <a href="#example-1" id="example-1"></a>

```
Command: Get-BluGenieTrapData -List
```

```
Description: List all BluGenie log files from the default location $ENV:SystemDrive\Windows\Temp
Notes:
```

#### EXAMPLE 2 <a href="#example-2" id="example-2"></a>

```
Command: Get-TrapData -path '\\win7sp1001\c$\Windows\Temp' -ReturnObject -List
```

```
Description: List all BluGenie log files from a remote systems log location.  Return on the Name, File Size, and LastWriteTime
Notes:
```

#### EXAMPLE 3 <a href="#example-3" id="example-3"></a>

```
Command: Get-BluGenieTrapData
```

```
Description: Return the last written log file from the default log location
Notes:
```

#### EXAMPLE 4 <a href="#example-4" id="example-4"></a>

```
Command: Get-BluGenieTrapData -path '\\win7sp1001\c$\Windows\Temp' -ReturnObject -Remove
```

```
Description: Return the last written log file data in an object format and, remove the file from disk
Notes:
```

#### EXAMPLE 5 <a href="#example-5" id="example-5"></a>

```
Command: Get-BluGenieTrapData -Remove -List
```

```
Description: Remove all items that are found
Notes:
```

#### EXAMPLE 6 <a href="#example-6" id="example-6"></a>

```
Command: Get-BluGenieTrapData -RemoveAll -List
```

```
Description: Remove all items that are found
Notes:
```

#### EXAMPLE 7 <a href="#example-7" id="example-7"></a>

```
Command: Get-BluGenieTrapData -path '\\win7sp1001\c$\Windows\Temp' -Remove
```

```
Description: Remove the file on disk after grabbing the trapped data
Notes:
```

#### EXAMPLE 8 <a href="#example-8" id="example-8"></a>

```
Command: Get-BluGenieTrapData -Help
```

```
Description: Call Help Information
Notes: If Help / WalkThrough is setup as a parameter, this script will be called to setup the Dynamic Help Menu if not the normal Get-Help will be called with the -Full parameter
```

#### EXAMPLE 9 <a href="#example-9" id="example-9"></a>

```
Command: Get-BluGenieTrapData -WalkThrough
```

```
Description: Call Help Information [2]
Notes: If Help / WalkThrough is setup as a parameter, this script will be called to setup the Dynamic Help Menu if not the normal Get-Help will be called with the -Full parameter
```

#### EXAMPLE 10 <a href="#example-10" id="example-10"></a>

```
Command: Get-BluGenieTrapData -OutUnEscapedJSON
```

```
Description: <command_here> and Return Output as UnEscaped JSON format
Notes:  The OutUnEscapedJSON is used to beatify the JSON return and not Escape any Characters.  Normal return data is a Hash Table.
```

#### EXAMPLE 11 <a href="#example-11" id="example-11"></a>

```
Command: Get-BluGenieTrapData -ReturnObject
```

```
Description: <command_here> and Return Output an Object
Notes:  The ReturnObject is used to return a PowerShell Object.  Normal return data is a Hash Table.
```

### PARAMETERS <a href="#parameters" id="parameters"></a>

#### Path <a href="#path" id="path"></a>

```
-Path <String>
   Description:  Path to the BG*.log files.
   Notes: Default is set to $ENV:Systemdrive\Windows\Temp
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    1
   Default value                $('{0}\Windows\Temp' -f $env:SystemDrive)
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### FileName <a href="#filename" id="filename"></a>

```
-FileName <String>
   Description:  Specify which file to pull
   Notes:  You can determine what log files are saved using the -List parameter
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    2
   Default value                
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### JobID <a href="#jobid" id="jobid"></a>

```
-JobID <String>
   Description:  Specify the Job ID
   Notes:  The last file created with the Job ID specified will be the information returned
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### List <a href="#list" id="list"></a>

```
-List [<SwitchParameter>]
   Description:  List all the BG*.log files
   Notes:  You can return just file File Names, LastWriteTime, and Size by using the -ReturnObject parameter
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### Remove <a href="#remove" id="remove"></a>

```
-Remove [<SwitchParameter>]
   Description:  Remove the file specified or the last know log file found
   Notes:  
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### RemoveAll <a href="#removeall" id="removeall"></a>

```
-RemoveAll [<SwitchParameter>]
   Description:  Remove all BG*.log files
   Notes:  
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### OverWrite <a href="#overwrite" id="overwrite"></a>

```
-OverWrite [<SwitchParameter>]
   Description:  Flag used to return the Trapped data as the original return in BluGenie
   Notes:  
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### Walkthrough <a href="#walkthrough" id="walkthrough"></a>

```
-Walkthrough [<SwitchParameter>]
   Description:  Start the dynamic help menu system to help walk through the current command and all of the parameters
   Notes:  
   Alias: Help
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### ReturnObject <a href="#returnobject" id="returnobject"></a>

```
-ReturnObject [<SwitchParameter>]
   Description: Return information as an Object
   Notes: By default the data is returned as a Hash Table
   Alias: 
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### OutUnEscapedJSON <a href="#outunescapedjson" id="outunescapedjson"></a>

```
-OutUnEscapedJSON [<SwitchParameter>]
   Description: Remove UnEsacped Char from the JSON information.
   Notes: This will beautify json and clean up the formatting.
   Alias: 
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### FormatView <a href="#formatview" id="formatview"></a>

```
-FormatView <String>
   
   Required?                    false
   Position?                    named
   Default value                None
   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).


# Get-BluGenieWindowsTitle

﻿Get-BluGenieWindowsTitle

### SYNOPSIS <a href="#synopsis" id="synopsis"></a>

Get-BluGenieWindowsTitle is a Sample Script Template with predefined Help descriptors for Invoke-WalkThrough

### SYNTAX <a href="#syntax" id="syntax"></a>

```
Get-BluGenieWindowsTitle [[-Title] <String>] [-Walkthrough] [-ReturnObject] [-OutUnEscapedJSON] [-FormatView <String>] [<CommonParameters>]
```

### DESCRIPTION <a href="#description" id="description"></a>

Invoke-WalkThrough is Dynamic Help. It will convert the static PowerShell help into an interactive menu system -Added with a few new tag descriptors for (Parameter and Examples). This information will structure the help information displayed and also help with bulding the dynamic help menu

```
Example
 PARAMETER <parameter>
    Description:  Desciption of the Parameter
    Notes:        Any Notes
    Alias:        Alias if any
    ValidateSet:  ValidationSet Array Items

 EXAMPLE
    Command:     Your command string
    Description: Decription of what the command above will do
    Notes:       Any Notes
```

### EXAMPLES <a href="#examples" id="examples"></a>

#### EXAMPLE 1 <a href="#example-1" id="example-1"></a>

```
```

```
Description:
Notes:
```

#### EXAMPLE 2 <a href="#example-2" id="example-2"></a>

```
```

```
Description:
Notes:
```

#### EXAMPLE 3 <a href="#example-3" id="example-3"></a>

```
-Help
```

```
Description: Call Help Information
Notes: If Help / WalkThrough is setup as a parameter, this script will be called to setup the Dynamic Help Menu if not the normal Get-Help will be called with the -Full parameter
```

#### EXAMPLE 4 <a href="#example-4" id="example-4"></a>

```
-WalkThrough
```

```
Description: Call Help Information [2]
Notes: If Help / WalkThrough is setup as a parameter, this script will be called to setup the Dynamic Help Menu if not the normal Get-Help will be called with the -Full parameter
```

#### EXAMPLE 5 <a href="#example-5" id="example-5"></a>

```
-OutUnEscapedJSON
```

```
Description: <command_here> and Return Output as UnEscaped JSON format
Notes:  The OutUnEscapedJSON is used to beatify the JSON return and not Escape any Characters.  Normal return data is a Hash Table.
```

#### EXAMPLE 6 <a href="#example-6" id="example-6"></a>

```
-ReturnObject
```

```
Description: <command_here> and Return Output an Object
Notes:  The ReturnObject is used to return a PowerShell Object.  Normal return data is a Hash Table.
```

### PARAMETERS <a href="#parameters" id="parameters"></a>

#### Title <a href="#title" id="title"></a>

```
-Title <String>
   
   Required?                    false
   Position?                    1
   Default value                .*
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### Walkthrough <a href="#walkthrough" id="walkthrough"></a>

```
-Walkthrough [<SwitchParameter>]
   Description:  Start the dynamic help menu system to help walk through the current command and all of the parameters
   Notes:  
   Alias: Help
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### ReturnObject <a href="#returnobject" id="returnobject"></a>

```
-ReturnObject [<SwitchParameter>]
   Description: Return information as an Object
   Notes: By default the data is returned as a Hash Table
   Alias: 
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                True
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### OutUnEscapedJSON <a href="#outunescapedjson" id="outunescapedjson"></a>

```
-OutUnEscapedJSON [<SwitchParameter>]
   Description: Remove UnEsacped Char from the JSON information.
   Notes: This will beautify json and clean up the formatting.
   Alias: 
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### FormatView <a href="#formatview" id="formatview"></a>

```
-FormatView <String>
   
   Required?                    false
   Position?                    named
   Default value                None
   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).


# Get-BluGenieWindowsUpdates

﻿

### Get-BluGenieWindowsUpdates <a href="#get-blugeniewindowsupdates" id="get-blugeniewindowsupdates"></a>

### SYNOPSIS <a href="#synopsis" id="synopsis"></a>

Get Windows Update, Patch, Rollup, Service Pack, Hotfix, and Definition Update Information

### SYNTAX <a href="#syntax" id="syntax"></a>

```
Get-BluGenieWindowsUpdates [-ClearGarbageCollecting] [-UseCache] [[-CachePath] <String>] [-RemoveCache] [[-DBName] <String>] [[-DBPath] <String>] [-UpdateDB] [-ForceDBUpdate] [-NewDBTable] [-Walkthrough] 
[-ReturnObject] [-OutUnEscapedJSON] [-OutYaml] [[-FormatView] <String>] [<CommonParameters>]
```

### DESCRIPTION <a href="#description" id="description"></a>

Get-BluGenieWindowsUpdates is a much more robust version of Get-HotFix.

Get-Hotfix commandlet leverages the Win32\_QuickFixEngineering WMI class to list Windows Updates, but only returns updates supplied by Component Based Servicing (CBS). Updates supplied by the Microsoft Windows Installer (MSI) or the Windows Update Site are not returned.

Get-Hotfix is also not very descriptive.

Get-BluGenieWindowsUpdates uses 3 different methods to pull Windows Update, Patch, Rollup, Service Pack, Hotfix, and Definition Update Information

```
Methods (1) - Installer Files for Servicing\Packages
Methods (2) - The Microsoft.Update.Session COMObject
Methods (3) - HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Installer\Patches
```

Example Return: HotFixID : KB915597 Title : Definition Update for Windows Defender Antivirus - KB915597 (Definition 1.277.195.0) ReleaseType : Definition Update InstalledDate : 9/29/2018 9:50:46 PM QueryLocation : Microsoft.Update.Session ID : 915597 SupportUrl : <http://support.microsoft.com/?kbid=915597>

### EXAMPLES <a href="#examples" id="examples"></a>

#### EXAMPLE 1 <a href="#example-1" id="example-1"></a>

```
Command: Get-BluGenieWindowsUpdates
```

```
Description: Get Windows Update, Patch, Rollup, Service Pack, Hotfix, and Definition Update Information
Notes: The default return is a Hash Table
```

#### EXAMPLE 2 <a href="#example-2" id="example-2"></a>

```
Command: Get-BluGenieWindowsUpdates -Help
```

```
Description: Call Help Information
Notes: If Help / WalkThrough is setup as a parameter, this script will be called to setup the Dynamic Help Menu if not the normal Get-Help will be called with the -Full parameter
```

#### EXAMPLE 3 <a href="#example-3" id="example-3"></a>

```
Command: Get-BluGenieWindowsUpdates -WalkThrough
```

```
Description: Call Help Information [2]
Notes: If Help / WalkThrough is setup as a parameter, this script will be called to setup the Dynamic Help Menu if not the normal Get-Help will be called with the -Full parameter
```

#### EXAMPLE 4 <a href="#example-4" id="example-4"></a>

```
Command: Get-BluGenieWindowsUpdates -OutUnEscapedJSON
```

```
Description: Return a detailed function report in an UnEscaped JSON format
Notes:  The OutUnEscapedJSON is used to Beautify the JSON return and not Escape any Characters.  Normal return data is a Hash Table.
```

#### EXAMPLE 5 <a href="#example-5" id="example-5"></a>

```
Command: Get-BluGenieWindowsUpdates -OutYaml
```

```
Description: Return a detailed function report in YAML format
Notes:  The OutUnEscapedJSON is used to Beautify the JSON return and not Escape any Characters.  Normal return data is a Hash Table.
```

#### EXAMPLE 6 <a href="#example-6" id="example-6"></a>

```
Command: Get-BluGenieWindowsUpdates -ReturnObject
```

```
Description: Return Output as a Object
Notes:  The ReturnObject is used to return a PowerShell Object.  Normal return data is a Hash Table.
       This parameter is also used with the FormatView
```

#### EXAMPLE 7 <a href="#example-7" id="example-7"></a>

```
Command: Get-BluGenieWindowsUpdates -ReturnObject -FormatView Yaml
```

```
Description: Output PSObject information in Yaml format
Notes:  Current formats supported by default are ('Table','Custom','CustomModified','None','JSON','OutUnEscapedJSON','CSV', 'Yaml')
       Default is set to (None) and normal PSObject.
```

### PARAMETERS <a href="#parameters" id="parameters"></a>

#### ClearGarbageCollecting <a href="#cleargarbagecollecting" id="cleargarbagecollecting"></a>

```
-ClearGarbageCollecting [<SwitchParameter>]
   Description: Garbage Collection in Powershell to Speed up Scripts and help lower memory consumption
   Notes: This is enabled by default.  To disable use -ClearGarbageCollecting:$False
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### UseCache <a href="#usecache" id="usecache"></a>

```
-UseCache [<SwitchParameter>]
   Description: Cache found objects to disk.  This is to not over tax Memory resources with found artifacts
   Notes: By default the Cache location is %SystemDrive%\Windows\Temp
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### CachePath <a href="#cachepath" id="cachepath"></a>

```
-CachePath <String>
   Description: Path to store the Cache information
   Notes: By default the Cache location is %SystemDrive%\Windows\Temp
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    1
   Default value                $('{0}\Windows\Temp\{1}.log' -f $env:SystemDrive, $(New-BluGenieUID))
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### RemoveCache <a href="#removecache" id="removecache"></a>

```
-RemoveCache [<SwitchParameter>]
   Description: Remove Cache data on completion
   Notes: Cache information is removed right before the data is returned to the calling process
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### DBName <a href="#dbname" id="dbname"></a>

```
-DBName <String>
   Description: Database Name (Without extention)
   Notes: The default name is set to 'BluGenie'
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    2
   Default value                BluGenie
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### DBPath <a href="#dbpath" id="dbpath"></a>

```
-DBPath <String>
   Description: Path to either Save or Update the Database
   Notes: The default path is $('{0}\BluGenie' -f $env:ProgramFiles)  Example: C:\Program Files\BluGenie
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    3
   Default value                $('{0}\BluGenie' -f $env:ProgramFiles)
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### UpdateDB <a href="#updatedb" id="updatedb"></a>

```
-UpdateDB [<SwitchParameter>]
   Description: Save return data to the Sqlite Database
   Notes:
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### ForceDBUpdate <a href="#forcedbupdate" id="forcedbupdate"></a>

```
-ForceDBUpdate [<SwitchParameter>]
   Description: Force an update of the return data to the Sqlite Database
   Notes: By default only new items are saved.  The primary key is ( FullName )
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### NewDBTable <a href="#newdbtable" id="newdbtable"></a>

```
-NewDBTable [<SwitchParameter>]
   Description: Delete and Recreate the Database Table
   Notes:
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### Walkthrough <a href="#walkthrough" id="walkthrough"></a>

```
-Walkthrough [<SwitchParameter>]
   Description:  Start the dynamic help menu system to help walk through the current command and all of the parameters
   Notes:
   Alias: Help
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### ReturnObject <a href="#returnobject" id="returnobject"></a>

```
-ReturnObject [<SwitchParameter>]
   Description: Return information as an Object
   Notes: By default the data is returned as a Hash Table
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### OutUnEscapedJSON <a href="#outunescapedjson" id="outunescapedjson"></a>

```
-OutUnEscapedJSON [<SwitchParameter>]
   Description: Remove UnEsacped Char from the JSON information.
   Notes: This will beautify json and clean up the formatting.
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### OutYaml <a href="#outyaml" id="outyaml"></a>

```
-OutYaml [<SwitchParameter>]
   Description: Return detailed information in Yaml Format
   Notes: Only supported in Posh 3.0 and above
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### FormatView <a href="#formatview" id="formatview"></a>

```
-FormatView <String>
   Description: Automatically format the Return Object
   Notes: Yaml is only supported in Posh 3.0 and above
   Alias:
   ValidateSet: 'Table','Custom','CustomModified','None','JSON','OutUnEscapedJSON','CSV', 'Yaml'
   
   Required?                    false
   Position?                    4
   Default value                None
   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).


# Install-BluGenieHarvester

﻿Install-BluGenieHarvester

### SYNOPSIS <a href="#synopsis" id="synopsis"></a>

Install-BluGenieHarvester will copy and install the Windows Event Harvester (WinLogBeat)

### SYNTAX <a href="#syntax" id="syntax"></a>

```
Install-BluGenieHarvester [[-Source] <String>] [[-Destination] <String>] [[-ForceCopy]] [[-Walkthrough]] [[-ReturnObject]] [[-OutUnEscapedJSON]] [[-ComputerName] <String>] [[-Install]] [[-Uninstall]] 
[[-Path] <String>] [[-ForceInstall]] [[-CopyOnly]] [<CommonParameters>]
```

### DESCRIPTION <a href="#description" id="description"></a>

Install-BluGenieHarvester will copy and install the Windows Event Harvester (WinLogBeat)

### EXAMPLES <a href="#examples" id="examples"></a>

#### EXAMPLE 1 <a href="#example-1" id="example-1"></a>

```
Install-BluGenieHarvester
```

```
This will copy the Harvester Source to the remote systems destination and install the the Harvester service.
```

#### EXAMPLE 2 <a href="#example-2" id="example-2"></a>

```
Install-BluGenieHarvester -ForceCopy -ForceInstall
```

```
This will copy the Harvester Source to the remote systems destination and install the the Harvester service.
If the files and service already exist the ForceCopy will overwrite the current files and the ForceInstall will
remove and install the Harvester service.
```

#### EXAMPLE 3 <a href="#example-3" id="example-3"></a>

```
Install-BluGenieHarvester -Source C:\NewSource -Destination 'C:\Program Files\NewDest'
```

```
This will copy the Harvester Source to the remote systems destination and install the the Harvester service.
The Source and Destination can be changed.  The default values are below.

Source:       $ToolsDirectory\Blubin\WinlogBeat
Destination:  C:\Program Files\WinlogBeat623
```

#### EXAMPLE 4 <a href="#example-4" id="example-4"></a>

```
Install-BluGenieHarvester -Uninstall
```

```
This will remove all the source files for the Harvester and uninstall the service.
```

#### EXAMPLE 5 <a href="#example-5" id="example-5"></a>

```
Install-BluGenieHarvester -ReturnObject
```

```
This will copy the Harvester Source to the remote systems destination and install the the Harvester service
and return just the Object content

Note:  The default output is a HashTable
```

#### EXAMPLE 6 <a href="#example-6" id="example-6"></a>

```
Install-BluGenieHarvester -OutUnEscapedJSON
```

```
This will copy the Harvester Source to the remote systems destination and install the the Harvester service
and the return data will be in a beautified json format
```

### PARAMETERS <a href="#parameters" id="parameters"></a>

#### Source <a href="#source" id="source"></a>

```
-Source <String>
   The Source path to the items to want to send
   
   The default is set to $ToolsDirectory\Blubin\WinlogBeat
   
   <Type>String<Type>
   
   Required?                    false
   Position?                    1
   Default value                $('{0}\Blubin\WinlogBeat\*.*' -f $ToolsDirectory)
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### Destination <a href="#destination" id="destination"></a>

```
-Destination <String>
   The Destination path
   
   The default is set to 'C:\Program Files\WinlogBeat623'
   
   <Type>String<Type>
   
   Required?                    false
   Position?                    2
   Default value                $('{0}\WinlogBeat623' -f $env:ProgramFiles)
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### ForceCopy <a href="#forcecopy" id="forcecopy"></a>

```
-ForceCopy [<SwitchParameter>]
   Forces the file or directory creation or overwrite
   
   <Type>SwitchParameter<Type>
   
   Required?                    false
   Position?                    3
   Default value                False
   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?                    4
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### ReturnObject <a href="#returnobject" id="returnobject"></a>

```
-ReturnObject [<SwitchParameter>]
   Return information as an Object.
   By default the data is returned as a Hash Table
   
   <Type>SwitchParameter<Type>
   
   Required?                    false
   Position?                    5
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### OutUnEscapedJSON <a href="#outunescapedjson" id="outunescapedjson"></a>

```
-OutUnEscapedJSON [<SwitchParameter>]
   Removed UnEsacped Char from the JSON Return.
   This will beautify json and clean up the formatting.
   
   <Type>SwitchParameter<Type>
   
   Required?                    false
   Position?                    6
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### ComputerName <a href="#computername" id="computername"></a>

```
-ComputerName <String>
   Remote computer name
   
   <Type>String<Type>
   
   Required?                    false
   Position?                    7
   Default value                
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### Install <a href="#install" id="install"></a>

```
-Install [<SwitchParameter>]
   Install the Harvester (This is the default option, without being called)
   
   <Type>SwitchParameter<Type>
   
   Required?                    false
   Position?                    8
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### Uninstall <a href="#uninstall" id="uninstall"></a>

```
-Uninstall [<SwitchParameter>]
   Uninstall the Harvester
   
   <Type>SwitchParameter<Type>
   
   Required?                    false
   Position?                    9
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### Path <a href="#path" id="path"></a>

```
-Path <String>
   The Install path and file name for the Harvester
   
   The default is set to 'C:\Program Files\WinlogBeat623\winlogbeat.exe'
   
   <Type>String<Type>
   
   Required?                    false
   Position?                    10
   Default value                $('{0}\WinlogBeat623\winlogbeat.exe' -f $env:ProgramFiles)
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### ForceInstall <a href="#forceinstall" id="forceinstall"></a>

```
-ForceInstall [<SwitchParameter>]
   Overwrite the current installation and remove and reinstall the service.
   
   <Type>SwitchParameter<Type>
   
   Required?                    false
   Position?                    11
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### CopyOnly <a href="#copyonly" id="copyonly"></a>

```
-CopyOnly [<SwitchParameter>]
   Copies the files to the remote system but, does not process an installation
   
   <Type>SwitchParameter<Type>
   
   Required?                    false
   Position?                    12
   Default value                False
   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).


# Install-BluGenieSysMon

﻿

### Install-BluGenieSysMon <a href="#install-blugeniesysmon" id="install-blugeniesysmon"></a>

### SYNOPSIS <a href="#synopsis" id="synopsis"></a>

Install-BluGenieSysMon will Install, Update, or Uninstall SysMon

### SYNTAX <a href="#syntax" id="syntax"></a>

```
Install-BluGenieSysMon [[-SourcePath] <String>] [[-ConfigFile] <String>] [-Uninstall] [-ForceInstall] [-ClearGarbageCollecting] [[-DBName] <String>] [[-DBPath] <String>] [-UpdateDB] [-ForceDBUpdate] [-NewDBTable] 
[-Walkthrough] [-ReturnObject] [-OutUnEscapedJSON] [-OutYaml] [[-FormatView] <String>] [<CommonParameters>]
```

### DESCRIPTION <a href="#description" id="description"></a>

Install-BluGenieSysMon will Install, Update, or Uninstall the SysMon SysInternals tool

### EXAMPLES <a href="#examples" id="examples"></a>

#### EXAMPLE 1 <a href="#example-1" id="example-1"></a>

```
Command: Install-BluGenieSysMon
```

```
Description: This will copy the SysMon Source to the remote systems destination and install the the SysMon service.
Notes:
```

#### EXAMPLE 2 <a href="#example-2" id="example-2"></a>

```
Command: Install-BluGenieSysMon -Help
```

```
Description: Call Help Information
Notes: If Help / WalkThrough is setup as a parameter, this script will be called to setup the Dynamic Help Menu if not the normal
Get-Help will be called with the -Full parameter
```

#### EXAMPLE 3 <a href="#example-3" id="example-3"></a>

```
Command: Install-BluGenieSysMon -WalkThrough
```

```
Description: Call Help Information [2]
Notes: If Help / WalkThrough is setup as a parameter, this script will be called to setup the Dynamic Help Menu if not the normal
Get-Help will be called with the -Full parameter
```

#### EXAMPLE 4 <a href="#example-4" id="example-4"></a>

```
Command: Install-BluGenieSysMon -OutUnEscapedJSON
```

```
Description: Return a detailed function report in an UnEscaped JSON format
Notes:  The OutUnEscapedJSON is used to Beautify the JSON return and not Escape any Characters.  Normal return data is a Hash Table.
```

#### EXAMPLE 5 <a href="#example-5" id="example-5"></a>

```
Command: Install-BluGenieSysMon -OutYaml
```

```
Description: Return a detailed function report in YAML format
Notes:  The OutUnEscapedJSON is used to Beautify the JSON return and not Escape any Characters.  Normal return data is a Hash Table.
```

#### EXAMPLE 6 <a href="#example-6" id="example-6"></a>

```
Command: Install-BluGenieSysMon -ReturnObject
```

```
Description: Return Output as a Object
Notes:  The ReturnObject is used to return a PowerShell Object.  Normal return data is a Hash Table.
       This parameter is also used with the FormatView
```

#### EXAMPLE 7 <a href="#example-7" id="example-7"></a>

```
Command: Install-BluGenieSysMon -ReturnObject -FormatView Yaml
```

```
Description: Output PSObject information in Yaml format
Notes:  Current formats supported by default are ('Table','Custom','CustomModified','None','JSON','OutUnEscapedJSON','CSV', 'Yaml')
       Default is set to (None) and normal PSObject.
```

### PARAMETERS <a href="#parameters" id="parameters"></a>

#### SourcePath <a href="#sourcepath" id="sourcepath"></a>

```
-SourcePath <String>
   Description: The Source location of the SysMon tools
   Notes: The default is set to BluGenie's Tools Directory $ToolsDirectory\SysMonService
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    1
   Default value                $(Join-Path -Path $ToolsDirectory -ChildPath 'SysMon')
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### ConfigFile <a href="#configfile" id="configfile"></a>

```
-ConfigFile <String>
   Description: Full file path for a SysMon Configuation XML
   Notes:
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    2
   Default value                
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### Uninstall <a href="#uninstall" id="uninstall"></a>

```
-Uninstall [<SwitchParameter>]
   Description: Stop and Remove the SysMon Service
   Notes:
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### ForceInstall <a href="#forceinstall" id="forceinstall"></a>

```
-ForceInstall [<SwitchParameter>]
   Description: Overwrite the current installation and remove and reinstall the service.
   Notes:
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### ClearGarbageCollecting <a href="#cleargarbagecollecting" id="cleargarbagecollecting"></a>

```
-ClearGarbageCollecting [<SwitchParameter>]
   Description: Garbage Collection in Powershell to Speed up Scripts and help lower memory consumption
   Notes: This is enabled by default.  To disable use -ClearGarbageCollecting:$False
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### DBName <a href="#dbname" id="dbname"></a>

```
-DBName <String>
   Description: Database Name (Without extention)
   Notes: The default name is set to 'BluGenie'
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    3
   Default value                BluGenie
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### DBPath <a href="#dbpath" id="dbpath"></a>

```
-DBPath <String>
   Description: Path to either Save or Update the Database
   Notes: The default path is $('{0}\BluGenie' -f $env:ProgramFiles)  Example: C:\Program Files\BluGenie
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    4
   Default value                $('{0}\BluGenie' -f $env:ProgramFiles)
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### UpdateDB <a href="#updatedb" id="updatedb"></a>

```
-UpdateDB [<SwitchParameter>]
   Description: Save return data to the Sqlite Database
   Notes:
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### ForceDBUpdate <a href="#forcedbupdate" id="forcedbupdate"></a>

```
-ForceDBUpdate [<SwitchParameter>]
   Description: Force an update of the return data to the Sqlite Database
   Notes: By default only new items are saved.  The primary key is ( FullName )
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### NewDBTable <a href="#newdbtable" id="newdbtable"></a>

```
-NewDBTable [<SwitchParameter>]
   Description: Delete and Recreate the Database Table
   Notes:
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### Walkthrough <a href="#walkthrough" id="walkthrough"></a>

```
-Walkthrough [<SwitchParameter>]
   Description:  Start the dynamic help menu system to help walk through the current command and all of the parameters
   Notes:
   Alias: Help
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### ReturnObject <a href="#returnobject" id="returnobject"></a>

```
-ReturnObject [<SwitchParameter>]
   Description: Return information as an Object
   Notes: By default the data is returned as a Hash Table
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### OutUnEscapedJSON <a href="#outunescapedjson" id="outunescapedjson"></a>

```
-OutUnEscapedJSON [<SwitchParameter>]
   Description: Remove UnEsacped Char from the JSON information.
   Notes: This will beautify json and clean up the formatting.
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### OutYaml <a href="#outyaml" id="outyaml"></a>

```
-OutYaml [<SwitchParameter>]
   Description: Return detailed information in Yaml Format
   Notes: Only supported in Posh 3.0 and above
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### FormatView <a href="#formatview" id="formatview"></a>

```
-FormatView <String>
   Description: Automatically format the Return Object
   Notes: Yaml is only supported in Posh 3.0 and above
   Alias:
   ValidateSet: 'Table','Custom','CustomModified','None','JSON','OutUnEscapedJSON','CSV', 'Yaml'
   
   Required?                    false
   Position?                    5
   Default value                None
   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).


# Invoke-BluGenieAnalyzer

﻿Invoke-BluGenieAnalyzer

### SYNOPSIS <a href="#synopsis" id="synopsis"></a>

BGAnalyzer is a C# project that performs a number of security oriented host-survey "safety checks" relevant from both offensive and defensive security perspectives.

### SYNTAX <a href="#syntax" id="syntax"></a>

```
Invoke-BluGenieAnalyzer [[-FilterType] <String>] [[-FilterData] <String>] [-Full] [-AddException] [-LeaveException] [[-ToolPath] <String>] [-ClearGarbageCollecting] [-UseCache] [[-CachePath] <String>] 
[-RemoveCache] [[-DBName] <String>] [[-DBPath] <String>] [-UpdateDB] [-ForceDBUpdate] [-NewDBTable] [-Walkthrough] [-ReturnObject] [-OutUnEscapedJSON] [-OutYaml] [[-FormatView] <String>] [<CommonParameters>]
```

### DESCRIPTION <a href="#description" id="description"></a>

Invoke-BluGenieAnalyzer is a wrapper around the BGAnalyzer tool. BGAnalyzer is a C# project that performs a number of security oriented host-survey "safety checks" relevant from both offensive and defensive security perspectives.

### EXAMPLES <a href="#examples" id="examples"></a>

#### EXAMPLE 1 <a href="#example-1" id="example-1"></a>

```
Command: Invoke-BGAnalyzer -AddException
```

```
Description: Use this command to update the Windows Defender Exception list to allow for the BGAnalyzer .NET application to run
Notes: Some .NET code has been used in other open source projects and Microsoft has flagged any scans based on similar techniques
       to be potentially malicious.
```

#### EXAMPLE 2 <a href="#example-2" id="example-2"></a>

```
Command: Invoke-BGAnalyzer
```

```
Description: Use this BluGenie reference Alias to run BGAnalyzer and gather all security scan inventory
Notes:
```

#### EXAMPLE 3 <a href="#example-3" id="example-3"></a>

```
Command: Invoke-BGAnalyzer -LeaveException
```

```
Description: Use this command to gather all security scan inventory and leave the Windows Defender exception for future scans
Notes: By default the exception is removed after each execution
```

#### EXAMPLE 4 <a href="#example-4" id="example-4"></a>

```
Command: Invoke-BluGenieAnalyzer
```

```
Description: Use this command to run BGAnalyzer and gather all security scan inventory
Notes:
```

#### EXAMPLE 5 <a href="#example-5" id="example-5"></a>

```
Command: Invoke-BGAnalyzer
```

```
Description: Use this BluGenie reference Alias to run BGAnalyzer and gather all security scan inventory
Notes:
```

#### EXAMPLE 6 <a href="#example-6" id="example-6"></a>

```
Command: Invoke-Analyzer
```

```
Description: Use this Long-hand Alias to run BGAnalyzer and gather all security scan inventory
Notes:
```

#### EXAMPLE 7 <a href="#example-7" id="example-7"></a>

```
Command: Invoke-Analyzer -Full
```

```
Description: Use this command to Expand on the Data returned for LocalGroups, Processes, ScheduledTasks, Services, and the WindowsFirewall
Notes:  By default this option is not set
```

#### EXAMPLE 8 <a href="#example-8" id="example-8"></a>

```
Command: Invoke-BGAnalyzer -FilterType 'Install|Update'
```

```
Description: Use this command to filter the Query type for Installed Products and Windows Updates
Notes: Check the filter parameter to see all the filter options.  The filter uses Regex.
```

#### EXAMPLE 9 <a href="#example-9" id="example-9"></a>

```
Command: Invoke-BGAnalyzer -FilterType 'Install' -FilterData 'Python'
```

```
Description: Use this command to filter for a specific product installation.
Notes: You can change the type and data filters to select specific information you need.
```

#### EXAMPLE 10 <a href="#example-10" id="example-10"></a>

```
Command: Invoke-BGAnalyzer -FilterType 'Install' -FilterData 'Python' -UseCache -CachePath $Env:Temp
```

```
Description: Use the command to Cache the gathered information to a file on the current users Temp directory
Notes: By default the Cache location is %SystemDrive%\Windows\Temp
```

#### EXAMPLE 11 <a href="#example-11" id="example-11"></a>

```
Command: Invoke-BGAnalyzer -Help
```

```
Description: Call Help Information
Notes: If Help / WalkThrough is setup as a parameter, this script will be called to setup the Dynamic Help Menu if not the normal
Get-Help will be called with the -Full parameter
```

#### EXAMPLE 12 <a href="#example-12" id="example-12"></a>

```
Command: Invoke-BGAnalyzer -WalkThrough
```

```
Description: Call Help Information [2]
Notes: If Help / WalkThrough is setup as a parameter, this script will be called to setup the Dynamic Help Menu if not the normal
Get-Help will be called with the -Full parameter
```

#### EXAMPLE 13 <a href="#example-13" id="example-13"></a>

```
Command: Invoke-Analyzer -OutUnEscapedJSON
```

```
Description: Use this command to Return a detailed report in an UnEscaped JSON format
Notes:  The OutUnEscapedJSON is used to Beautify the JSON return and not Escape any Characters.  Normal return data is a Hash Table.
```

#### EXAMPLE 14 <a href="#example-14" id="example-14"></a>

```
Command: Invoke-Analyzer -OutYaml
```

```
Description: Use this command to Return a detailed report in YAML format
Notes:  The OutUnEscapedJSON is used to Beautify the JSON return and not Escape any Characters.  Normal return data is a Hash Table.
```

#### EXAMPLE 15 <a href="#example-15" id="example-15"></a>

```
Command: $Info = Invoke-Analyzer -ReturnObject
```

```
Description: Use this command to capture the return data as a Powershell Object
Notes:  The ReturnObject is used to return a PowerShell Object.  Normal return data is a Hash Table.
       This parameter is also used with the FormatView
```

#### EXAMPLE 16 <a href="#example-16" id="example-16"></a>

```
Command: Invoke-Analyzer -FilterType 'install' -FilterData 'python' -ReturnObject -FormatView CSV
```

```
Description: Use this command to Output the return data in CSV format
Notes:  Current formats supported by default are ('Table','Custom','CustomModified','None','JSON','OutUnEscapedJSON','CSV', 'Yaml')
       Default is set to (None) and normal PSObject.
```

### PARAMETERS <a href="#parameters" id="parameters"></a>

#### FilterType <a href="#filtertype" id="filtertype"></a>

```
-FilterType <String>
   Description: Command Types (Filtered with RegEx)
   Notes:  Default is set to '.*'
                 ** Other Types **
                 o AMSIProviders          - Providers registered for AMSI
                 o AntiVirus              - Registered antivirus (via WMI)
                 o AppLocker              - AppLocker settings, if installed
                 o ARPTable               - Lists the current ARP table and adapter information (equivalent to arp -a)
                 o AuditPolicies          - Enumerates classic and advanced audit policy settings
                 o AuditPolicyRegistry    - Audit settings via the registry
                 o AutoRuns               - Auto run executables/scripts/programs
                 o ChromiumBookmarks      - Parses any found Chrome/Edge/Brave/Opera bookmark files
                 o ChromiumHistory        - Parses any found Chrome/Edge/Brave/Opera history files
                 o ChromiumPresence       - Checks if interesting Chrome/Edge/Brave/Opera files exist
                 o CloudCredentials       - AWS/Google/Azure/Bluemix cloud credential files
                 o CloudSyncProviders     - All configured Office 365 endpoints (tenants and teamsites) which are synchronised by OneDrive.
                 o CredEnum               - Enumerates the current user's saved credentials using CredEnumerate()
                 o CredGuard              - CredentialGuard configuration
                 o Dir                    - Lists files/folders. By default, lists users' downloads, documents, and desktop folders
                 o DNSCache               - DNS cache entries (via WMI)
                 o DotNet                 - DotNet versions
                 o DpapiMasterKeys        - List DPAPI master keys
                 o EnvironmentPath        - Current environment %PATH$ folders and SDDL information
                 o EnvironmentVariables   - Current environment variables
                 o ExplicitLogonEvents    - Explicit Logon events (Event ID 4648) from the security event log. Default of 7 days
                 o ExplorerMRUs           - Explorer most recently used files (last 7 days)
                 o ExplorerRunCommands    - Recent Explorer "run" commands
                 o FileZilla              - FileZilla configuration files
                 o FirefoxHistory         - Parses any found FireFox history files
                 o FirefoxPresence        - Checks if interesting Firefox files exist
                 o Hotfixes               - Installed hotfixes (via WMI)
                 o IdleTime               - Returns the number of seconds since the current user's last input.
                 o IEFavorites            - Internet Explorer favorites
                 o IETabs                 - Open Internet Explorer tabs
                 o IEUrls                 - Internet Explorer typed URLs (last 7 days)
                 o InstalledProducts      - Installed products via the registry
                 o InterestingFiles       - "Interesting" files matching various patterns in the user's folder. Note: takes non-trivial time.
                 o InterestingProcesses   - "Interesting" processes - defensive products and admin tools
                 o InternetSettings       - Internet settings including proxy configs and zones configuration
                 o KeePass                - Finds KeePass configuration files
                 o LAPS                   - LAPS settings, if installed
                 o LastShutdown           - Returns the DateTime of the last system shutdown (via the registry).
                 o LocalGPOs              - Local Group Policy settings applied to the machine/local users
                 o LocalGroups            - Local groups
                 o LocalUsers             - Local users, whether they're active/disabled, and pwd last set
                 o LogonEvents            - Logon events (Event ID 4624) from the security event log. Default of 10 days.
                 o LogonSessions          - Windows logon sessions
                 o LOLBAS                 - Locates Living Off The Land Binaries and Scripts (LOLBAS) on the system. Note: takes non-trivial time.
                 o LSASettings            - LSA settings (including auth packages)
                 o MappedDrives           - Users' mapped drives (via WMI)
                 o McAfeeConfigs          - Finds McAfee configuration files
                 o McAfeeSiteList         - Decrypt any found McAfee SiteList.xml configuration files.
                 o MicrosoftUpdates       - All Microsoft updates (via COM)
                 o NamedPipes             - Named pipe names and any readable ACL information.
                 o NetworkProfiles        - Windows network profiles
                 o NetworkShares          - Network shares exposed by the machine (via WMI)
                 o NTLMSettings           - NTLM authentication settings
                 o OfficeMRUs             - Office most recently used file list (last 7 days)
                 o OracleSQLDeveloper     - Finds Oracle SQLDeveloper connections.xml files
                 o OSInfo                 - Basic OS info (i.e. architecture, OS version, etc.)
                 o OutlookDownloads       - List files downloaded by Outlook
                 o PoweredOnEvents        - Reboot and sleep schedule based on the System event log EIDs 1, 12, 13, 42, and 6008. Default of 7 days
                 o PowerShell             - PowerShell versions and security settings
                 o PowerShellEvents       - PowerShell script block logs (4104) with sensitive data.
                 o PowerShellHistory      - Searches PowerShell console history files for sensitive regex matches.
                 o Printers               - Installed Printers (via WMI)
                 o ProcessCreationEvents  - Process creation logs (4688) with sensitive data.
                 o Processes              - Running processes with file info company names that don't contain 'Microsoft'
                 o ProcessOwners          - Running non-session 0 process list with owners
                 o PSSessionSettings      - Enumerates PS Session Settings from the registry
                 o PuttyHostKeys          - Saved Putty SSH host keys
                 o PuttySessions          - Saved Putty configuration (interesting fields) and SSH host keys
                 o RDCManFiles            - Windows Remote Desktop Connection Manager settings files
                 o RDPSavedConnections    - Saved RDP connections stored in the registry
                 o RDPSessions            - Current incoming RDP sessions
                 o RDPsettings            - Remote Desktop Server/Client Settings
                 o RecycleBin             - Items in the Recycle Bin deleted in the last 30 days - only works from a user context!
                 o Reg                    - Registry key values (HKLM\Software)
                 o RPCMappedEndpoints     - Current RPC endpoints mapped
                 o SCCM                   - System Center Configuration Manager (SCCM) settings, if applicable
                 o ScheduledTasks         - Scheduled tasks (via WMI) that aren't authored by 'Microsoft'
                 o SearchIndex            - Query results from the Windows Search Index, default term of 'passsword'.
                 o SecPackageCreds        - Obtains credentials from security packages
                 o SecurityPackages       - Enumerates the security packages currently available using EnumerateSecurityPackagesA()
                 o Services               - Services with file info company names that don't contain 'Microsoft'
                 o SlackDownloads         - Parses any found 'slack-downloads' files
                 o SlackPresence          - Checks if interesting Slack files exist
                 o SlackWorkspaces        - Parses any found 'slack-workspaces' files
                 o SuperPutty             - SuperPutty configuration files
                 o Sysmon                 - Sysmon configuration from the registry
                 o SysmonEvents           - Sysmon process creation logs (1) with sensitive data.
                 o TcpConnections         - Current TCP connections and their associated processes and services
                 o TokenGroups            - The current token's local and domain groups
                 o TokenPrivileges        - Currently enabled token privileges (e.g. SeDebugPrivilege/etc.)
                 o UAC                    - UAC system policies via the registry
                 o UdpConnections         - Current UDP connections and associated processes and services
                 o UserRightAssignments   - Configured User Right Assignments (e.g. SeDenyNetworkLogonRight, SeShutdownPrivilege, etc.)
                 o WindowsAutoLogon       - Registry autologon information
                 o WindowsCredentialFiles - Windows credential DPAPI blobs
                 o WindowsDefender        - Windows Defender settings (including exclusion locations)
                 o WindowsEventForwarding - Windows Event Forwarding (WEF) settings via the registry
                 o WindowsFirewall        - Firewall rules - (allow/deny/tcp/udp/in/out/domain/private/public)
                 o WindowsVault           - Credentials saved in the Windows Vault (i.e. logins from Internet Explorer and Edge).
                 o WMIEventConsumer       - Lists WMI Event Consumers
                 o WMIEventFilter         - Lists WMI Event Filters
                 o WMIFilterBinding       - Lists WMI Filter to Consumer Bindings
                 o WSUS                   - Windows Server Update Services (WSUS) settings, if applicable
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    1
   Default value                .*
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### FilterData <a href="#filterdata" id="filterdata"></a>

```
-FilterData <String>
   Description: Return Data (Filtered with RegEx)
   Notes:  Default is set to '.*'
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    2
   Default value                .*
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### Full <a href="#full" id="full"></a>

```
-Full [<SwitchParameter>]
   Description: Expand on the Data returned for (LocalGroups, Processes, ScheduledTasks, Services, and the WindowsFirewall)
   Notes:  o LocalGroups     - "Full" displays all groups / Default: Non-empty local groups
                 o Processes       - "Full" enumerates all processes / Default: Running processes with file info company names that don't
                     contain 'Microsoft'
                 o ScheduledTasks  - "Full" dumps all Scheduled tasks / Default: Scheduled tasks (via WMI) that aren't authored by 'Microsoft'
                 o Services        - "Full" dumps all processes / Default: Services with file info company names that don't contain 'Microsoft'
                 o WindowsFirewall - "Full" dumps all FireWall rules (allow/deny/tcp/udp/in/out/domain/private/public) / Default: Non-standard
                     rules
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### AddException <a href="#addexception" id="addexception"></a>

```
-AddException [<SwitchParameter>]
   Description: Add an Exception to Windows Defender to allow the .NET process to run
   Notes: Windows Defender does not allow for adding an Exception and running the newly excluded process in the same runspace.
                 If you use the -AddException parameter (No other option will process)  There is also no return.  The script just adds the
                 exception and ends.
   
                 Running the command for a 2nd time without the -AddException parameter will execute the .NET process without issue.
   
                 The exception is removed by default.
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### LeaveException <a href="#leaveexception" id="leaveexception"></a>

```
-LeaveException [<SwitchParameter>]
   Description: Leave the Windows Defender Exception for continues runs at a later point
   Notes: Windows Defender does not allow for adding an Exception and running the newly excluded process in the same runspace.
                 If you use the -AddException parameter (No other option will process)  There is also no return.  The script just adds the
                 exception and ends.
   
                 Running the command for a 2nd time without the -AddException parameter will execute the .NET process without issue.
   
                 The exception is removed by default.  However if you use this parameter -LeaveException the Exception is not removed.
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### ToolPath <a href="#toolpath" id="toolpath"></a>

```
-ToolPath <String>
   Description:  This is the path to the BGAnalyzer tool.
   Notes: There are 2 subfolders.
                 .\3.5 which houses the .NET 3.5 version of the binary
                 .\4.0 wihch houses the .NET 4.0 version of the binary
   
                 This is automatically selected based on PowerShell's supported CRL Version.
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    3
   Default value                $(Resolve-Path -Path $ToolsDirectory | Select-Object -ExpandProperty Path)
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### ClearGarbageCollecting <a href="#cleargarbagecollecting" id="cleargarbagecollecting"></a>

```
-ClearGarbageCollecting [<SwitchParameter>]
   Description: Garbage Collection in Powershell to Speed up Scripts and help lower memory consumption
   Notes: This is enabled by default.  To disable use -ClearGarbageCollecting:$False
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### UseCache <a href="#usecache" id="usecache"></a>

```
-UseCache [<SwitchParameter>]
   Description: Cache found objects to disk.  This is to not over tax Memory resources with found artifacts
   Notes: By default the Cache location is %SystemDrive%\Windows\Temp
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### CachePath <a href="#cachepath" id="cachepath"></a>

```
-CachePath <String>
   Description: Path to store the Cache information
   Notes: By default the Cache location is %SystemDrive%\Windows\Temp
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    4
   Default value                $('{0}\Windows\Temp\{1}.log' -f $env:SystemDrive, $(New-BluGenieUID))
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### RemoveCache <a href="#removecache" id="removecache"></a>

```
-RemoveCache [<SwitchParameter>]
   Description: Remove Cache data on completion
   Notes: Cache information is removed right before the data is returned to the calling process
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### DBName <a href="#dbname" id="dbname"></a>

```
-DBName <String>
   Description: Database Name (Without extention)
   Notes: The default name is set to 'BluGenie'
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    5
   Default value                BluGenie
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### DBPath <a href="#dbpath" id="dbpath"></a>

```
-DBPath <String>
   Description: Path to either Save or Update the Database
   Notes: The default path is $('{0}\BluGenie' -f $env:ProgramFiles)  Example: C:\Program Files\BluGenie
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    6
   Default value                $('{0}\BluGenie' -f $env:ProgramFiles)
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### UpdateDB <a href="#updatedb" id="updatedb"></a>

```
-UpdateDB [<SwitchParameter>]
   Description: Save return data to the Sqlite Database
   Notes:
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### ForceDBUpdate <a href="#forcedbupdate" id="forcedbupdate"></a>

```
-ForceDBUpdate [<SwitchParameter>]
   Description: Force an update of the return data to the Sqlite Database
   Notes: By default only new items are saved.  The primary key is ( FullName )
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### NewDBTable <a href="#newdbtable" id="newdbtable"></a>

```
-NewDBTable [<SwitchParameter>]
   Description: Delete and Recreate the Database Table
   Notes:
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### Walkthrough <a href="#walkthrough" id="walkthrough"></a>

```
-Walkthrough [<SwitchParameter>]
   Description:  Start the dynamic help menu system to help walk through the current command and all of the parameters
   Notes:
   Alias: Help
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### ReturnObject <a href="#returnobject" id="returnobject"></a>

```
-ReturnObject [<SwitchParameter>]
   Description: Return information as an Object
   Notes: By default the data is returned as a Hash Table
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### OutUnEscapedJSON <a href="#outunescapedjson" id="outunescapedjson"></a>

```
-OutUnEscapedJSON [<SwitchParameter>]
   Description: Remove UnEsacped Char from the JSON information.
   Notes: This will beautify json and clean up the formatting.
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### OutYaml <a href="#outyaml" id="outyaml"></a>

```
-OutYaml [<SwitchParameter>]
   Description: Return detailed information in Yaml Format
   Notes: Only supported in Posh 3.0 and above
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### FormatView <a href="#formatview" id="formatview"></a>

```
-FormatView <String>
   Description: Automatically format the Return Object
   Notes: Yaml is only supported in Posh 3.0 and above
   Alias:
   ValidateSet: 'Table','Custom','CustomModified','None','JSON','OutUnEscapedJSON','CSV', 'Yaml'
   
   Required?                    false
   Position?                    7
   Default value                None
   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).


# Invoke-BluGenieFileBrowser

﻿

### Invoke-BluGenieFileBrowser <a href="#invoke-blugeniefilebrowser" id="invoke-blugeniefilebrowser"></a>

### SYNOPSIS <a href="#synopsis" id="synopsis"></a>

Invoke-BluGenieFileBrowser will display a graphical user interface to select a file

### SYNTAX <a href="#syntax" id="syntax"></a>

```
Invoke-BluGenieFileBrowser [[-Filter] <String>] [[-InitialDirectory] <String>] [-Multiselect] [[-Description] <String>] [-Walkthrough] [<CommonParameters>]
```

### DESCRIPTION <a href="#description" id="description"></a>

Invoke-BluGenieFileBrowser will display a graphical user interface to select a file.

By default all files are shown in the GUI

### EXAMPLES <a href="#examples" id="examples"></a>

#### EXAMPLE 1 <a href="#example-1" id="example-1"></a>

```
$MyFile = Invoke-BluGenieFileBrowser
```

```
This will display a GUI to select a single file.  The initial directory will be the root directory.
```

#### EXAMPLE 2 <a href="#example-2" id="example-2"></a>

```
$MyFile = Invoke-BluGenieFileBrowser -Filter *.json -initialDirectory C:\Temp
```

```
This will dispaly a GUI to select a single JSON file.  The initial direcotry will be the C:\Temp directory.
```

#### EXAMPLE 3 <a href="#example-3" id="example-3"></a>

```
$MyFiles = Invoke-BluGenieFileBrowser -Filter *.json -initialDirectory C:\Temp -Multiselect
```

```
This will dispaly a GUI to select multiple JSON files.  The initial direcotry will be the C:\Temp directory.
```

#### EXAMPLE 4 <a href="#example-4" id="example-4"></a>

```
Invoke-BluGenieFileBrowser -Help
```

```
This will display the dynamical help to walk you through all the parameters for this function.
```

### PARAMETERS <a href="#parameters" id="parameters"></a>

#### Filter <a href="#filter" id="filter"></a>

```
-Filter <String>
   Filter the list of files you would like shown in the dialog box
   
   Note:  The default is ( *.* )
   
   <Type>String<Type>
   
   Required?                    false
   Position?                    1
   Default value                *.*
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### InitialDirectory <a href="#initialdirectory" id="initialdirectory"></a>

```
-InitialDirectory <String>
   Select the Initial directory to open the file select dialog box in.
   
   Note:  The default $env:Homedrive
   
   <Type>String<Type>
   
   Required?                    false
   Position?                    2
   Default value                $('{0}\' -f $env:HOMEDRIVE)
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### Multiselect <a href="#multiselect" id="multiselect"></a>

```
-Multiselect [<SwitchParameter>]
   Allow to select multple files
   
   Note:  The default is ( False )
   
   <Type>SwitchParameter<Type>
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### Description <a href="#description-1" id="description-1"></a>

```
-Description <String>
   Description or Caption to be presented in the dialog box.
   
   <Type>String<Type>
   
   Required?                    false
   Position?                    3
   Default value                Select a File
   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
```

#### 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).


# Invoke-BluGenieLoadAllProfileHives

﻿

### Invoke-BluGenieLoadAllProfileHives <a href="#invoke-blugenieloadallprofilehives" id="invoke-blugenieloadallprofilehives"></a>

### SYNOPSIS <a href="#synopsis" id="synopsis"></a>

Load all known users profile hives

### SYNTAX <a href="#syntax" id="syntax"></a>

```
Invoke-BluGenieLoadAllProfileHives [[-ReturnObject]] [[-Walkthrough]] [<CommonParameters>]
```

### DESCRIPTION <a href="#description" id="description"></a>

Load all known users profile hives. Load all profile NTUSER.DAT from %SystemDrive%\Users

### EXAMPLES <a href="#examples" id="examples"></a>

#### EXAMPLE 1 <a href="#example-1" id="example-1"></a>

```
Invoke-BluGenieLoadAllProfileHives
```

```
This will load all profile NTUSER.DAT from %SystemDrive%\Users
The returned data will be a Hash Table
```

#### EXAMPLE 2 <a href="#example-2" id="example-2"></a>

```
Invoke-BluGenieLoadAllProfileHives -ReturnObject
```

```
This will load all profile NTUSER.DAT from %SystemDrive%\Users
The returned data will be an Object
```

### PARAMETERS <a href="#parameters" id="parameters"></a>

#### ReturnObject <a href="#returnobject" id="returnobject"></a>

```
-ReturnObject [<SwitchParameter>]
   Return information as an Object.
   By default the data is returned as a Hash Table
   
   <Type>SwitchParameter<Type>
   
   Required?                    false
   Position?                    1
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### Walkthrough <a href="#walkthrough" id="walkthrough"></a>

```
-Walkthrough [<SwitchParameter>]
   
   Required?                    false
   Position?                    2
   Default value                False
   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).


# Invoke-BluGenieNetStat

﻿

### Invoke-BluGenieNetStat <a href="#invoke-blugenienetstat" id="invoke-blugenienetstat"></a>

### SYNOPSIS <a href="#synopsis" id="synopsis"></a>

Report and Manage processes that have created a Listening port

### SYNTAX <a href="#syntax" id="syntax"></a>

```
Invoke-BluGenieNetStat [[-FilterType] <String>] [[-Pattern] <String>] [[-Managetype] <String>] [-Algorithm <String>] [-State <String>] [-Signature] [-NotMatch] [-ForeignAddressAsIP] [-Walkthrough] [-ReturnObject] 
[-OutUnEscapedJSON] [<CommonParameters>]
```

### DESCRIPTION <a href="#description" id="description"></a>

Report and Manage processes that have created a Listening port

### EXAMPLES <a href="#examples" id="examples"></a>

#### EXAMPLE 1 <a href="#example-1" id="example-1"></a>

```
Command: Invoke-BluGenieNetStat
```

```
Description: Output any (Listening or Established) connection information
Notes: 
The Default Hash Algorithm is (MD5)
- Sample Output -
              "State":  "LISTENING",
              "PID":  "664",
              "Protocol":  "TCP",
              "Local_Address":  "[::]:49701",
              "Foreign_Address":  "[::]:0",
              "Process_Name":  "lsass.exe",
              "Process_StartTime":  null,
              "Process_Path":  "C:\\WINDOWS\\system32\\lsass.exe",
              "Hash":  "3df3b76b19da92a8adc01ff38560282d",
              "CommandLine":  null,
              "Signature_Comment":  "",
              "Signature_FileVersion":  "10.0.17134.376 (WinBuild.160101.0800)",
              "Signature_Description":  "Local Security Authority Process",
              "Signature_Date":  "2:45 AM 10/21/2018",
              "Signature_Company":  "Microsoft Corporation",
              "Signature_Publisher":  "Microsoft Windows Publisher",
              "Signature_Verified":  "Signed"
```

#### EXAMPLE 2 <a href="#example-2" id="example-2"></a>

```
Command: Invoke-BluGenieNetStat -State ALL -Algorithm SHA256
```

```
Description: Connection information with Hash value of SHA256
Notes:
```

#### EXAMPLE 3 <a href="#example-3" id="example-3"></a>

```
Command: Invoke-BluGenieNetStat -FilterType Local_Address -Pattern 3389
```

```
Description: Report on all Listening or Established ports that have a port of 3389
Notes: The -Pattern is a (RegEx) query by default.  If you used :3389 for the port 
            you would have to escape the (:) like so '\:3389'
```

#### EXAMPLE 4 <a href="#example-4" id="example-4"></a>

```
Command: Invoke-BluGenieNetStat -FilterType Process_Name -Pattern Windows10FirewallService
```

```
Description: Connection information with with any ( Process Name ) of ( Windows10FirewallService )
Notes:
```

#### EXAMPLE 5 <a href="#example-5" id="example-5"></a>

```
Command: Invoke-BluGenieNetStat -FilterType Process_Name -Pattern Windows10FirewallService -Managetype Stop
```

```
Description: Terminate any connection based on the search terms
Notes:
```

#### EXAMPLE 6 <a href="#example-6" id="example-6"></a>

```
Command: Invoke-BluGenieNetStat -NotMatch -Pattern '\[\:\:\]\:0|0.0.0.0:0'
```

```
Description: Report on all Listening or Established ports that do not have a value for Foreign_Address of '[::]:0' or '0.0.0.0:0'
Notes: 	The -Pattern is a (RegEx) query by default.  If you used '[::]:0' for the Foreign_Address 
             you would have to escape the ascii charactors '\[\:\:\]\:0'.  You can also use the pipe command to do an (OR) in Regex.
```

#### EXAMPLE 7 <a href="#example-7" id="example-7"></a>

```
Command: Invoke-BluGenieNetStat -Help
```

```
Description: Call Help Information
Notes: If Help / WalkThrough is setup as a parameter, this script will be called to setup the Dynamic Help Menu if not the normal 
Get-Help will be called with the -Full parameter
```

#### EXAMPLE 8 <a href="#example-8" id="example-8"></a>

```
Command: Invoke-BluGenieNetStat -WalkThrough
```

```
Description: Call Help Information [2]
Notes: If Help / WalkThrough is setup as a parameter, this script will be called to setup the Dynamic Help Menu if not the normal 
Get-Help will be called with the -Full parameter
```

#### EXAMPLE 9 <a href="#example-9" id="example-9"></a>

```
Command: Invoke-BluGenieNetStat -OutUnEscapedJSON
```

```
Description: Invoke-BluGenieNetStat and Return Output as UnEscaped JSON format
Notes:  The OutUnEscapedJSON is used to beatify the JSON return and not Escape any Characters.  Normal return data is a Hash Table.
```

#### EXAMPLE 10 <a href="#example-10" id="example-10"></a>

```
Command: Invoke-BluGenieNetStat -ReturnObject
```

```
Description: Invoke-BluGenieNetStat and Return Output an Object
Notes:  The ReturnObject is used to return a PowerShell Object.  Normal return data is a Hash Table.
```

### PARAMETERS <a href="#parameters" id="parameters"></a>

#### FilterType <a href="#filtertype" id="filtertype"></a>

```
-FilterType <String>
   Description: Filter based on Property Type 
   Notes: 
   Filter Types
   •	"CommandLine"
   	Command line used to spawn the Network Connection
       •	"Foreign_Address"
   	The Remote Address for the currect connection with port information
       •	"Hash"
   	The Hash value of the Process ( MACTripleDES / MD5 / RIPEMD160 / SHA1 / SHA256 / SHA384 / SHA512 ) 
       •	"Local_Address"
   	The IP of the Local host with port information
       •	"PID"
   	The current Process ID associated with the Connection
       •	"ProcessName"
   	The Process name associated with the Connection
       •	"Path"
   	The path of the Process associated with the Connection
       •	"Protocol"
   	What Protocal is used for the currect Connection
   •	"Caption"
   	The Caption property of the associated process
   •	"Description"
   	The Description property of the associated process
   •	"Name"
   	The Name of the associated process
   •	"ProcessId"
   	The current Process ID associated with the Connection
   •	"SessionId"
   	The current Session associated with the Connection
       •	"Signature_Comment"
   	Display error message while pulling Signature Information [Note: This is only available if you use the -Signature switch]
       •	"Signature_FileVersion"
   	File Version and OS Build information in part of the OS [Note:  This is only available if you use the -Signature switch]
       •	"Signature_Description"
   	The description of the files signature [Note:  This is only available if you use the -Signature switch]
       •	"Signature_Date"
   	Date when the file was signed [Note:  This is only available if you use the -Signature switch]
       •	"Signature_Company"
   	The company signing the file [Note:  This is only available if you use the -Signature switch]
       •	"Signature_Publisher"
   	The Publisher signing the file [Note:  This is only available if you use the -Signature switch]
       •	"Signature_Verified"
   	Verification ( Signed / UnSigned / Null ) [Note:  This is only available if you use the -Signature switch]
   Alias:
   ValidateSet: 'CommandLine','Foreign_Address','Hash','Local_Address','PID','ProcessName','Path','Caption','Description','Name','ProcessId','SessionId','Proto','Signature_Comment','Signature_FileVersion','Signat
   ure_Description','Signature_Date','Signature_Company','Signature_Publisher','Signature_Verified'
   
   Required?                    false
   Position?                    1
   Default value                Foreign_Address
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### Pattern <a href="#pattern" id="pattern"></a>

```
-Pattern <String>
   Description: Search Pattern using RegEx
   Notes:  
   Alias:
   ValidateSet: 'Item1','Item2','Item3'
   
   Required?                    false
   Position?                    2
   Default value                .*
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### Managetype <a href="#managetype" id="managetype"></a>

```
-Managetype <String>
   Description: Manage the behavior of the process (Suspend, Resume, Stop) 
   Notes:  
   Alias:
   ValidateSet: Suspend,Resume,Stop
   
   Required?                    false
   Position?                    3
   Default value                
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### Algorithm <a href="#algorithm" id="algorithm"></a>

```
-Algorithm <String>
   Description:  Specifies the cryptographic hash to use for computing the hash value of the contents of the specified file. 
   Notes:  The acceptable values for this parameter are:
   
               - SHA1
               - SHA256
               - SHA384
               - SHA512
               - MACTripleDES
               - MD5 = (Default)
               - RIPEMD160
   Alias: 
   ValidateSet: 'MACTripleDES','MD5','RIPEMD160','SHA1','SHA256','SHA384','SHA512'
   
   Required?                    false
   Position?                    named
   Default value                MD5
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### State <a href="#state" id="state"></a>

```
-State <String>
   Description: What state is the Connection in ( LISTENING / CLOSE_WAIT / TIME_WAIT / ESTABLISHED )
   Notes:  
   Alias:
   ValidateSet: LISTENING,ESTABLISHED,LISTENING & ESTABLISHED,WAIT,ALL
   
   Required?                    false
   Position?                    named
   Default value                LISTENING|ESTABLISHED
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### Signature <a href="#signature" id="signature"></a>

```
-Signature [<SwitchParameter>]
   Description: Query Signature information 
   Notes:  
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### NotMatch <a href="#notmatch" id="notmatch"></a>

```
-NotMatch [<SwitchParameter>]
   Description: Not Matching or Exclude pattern queries 
   Notes:  
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### ForeignAddressAsIP <a href="#foreignaddressasip" id="foreignaddressasip"></a>

```
-ForeignAddressAsIP [<SwitchParameter>]
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### Walkthrough <a href="#walkthrough" id="walkthrough"></a>

```
-Walkthrough [<SwitchParameter>]
   Description:  Start the dynamic help menu system to help walk through the current command and all of the parameters
   Notes: Default Value = '.*'
   Alias: Help
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### ReturnObject <a href="#returnobject" id="returnobject"></a>

```
-ReturnObject [<SwitchParameter>]
   Description: Return information as an Object
   Notes: By default the data is returned as a Hash Table
   Alias: 
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### OutUnEscapedJSON <a href="#outunescapedjson" id="outunescapedjson"></a>

```
-OutUnEscapedJSON [<SwitchParameter>]
   Description: Remove UnEsacped Char from the JSON information.
   Notes: This will beautify json and clean up the formatting.
   Alias: 
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   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).


# Invoke-BluGenieParallel

﻿

### Invoke-BluGenieParallel <a href="#invoke-blugenieparallel" id="invoke-blugenieparallel"></a>

### SYNOPSIS <a href="#synopsis" id="synopsis"></a>

Function to control parallel processing using runspaces

### SYNTAX <a href="#syntax" id="syntax"></a>

```
Invoke-BluGenieParallel [[-ScriptBlock] <ScriptBlock>] [-InputObject <PSObject>] [-Parameter <PSObject>] [-ImportVariables] [-ImportModules] [-ImportFunctions] [-Throttle <Int32>] [-SleepTimer <Int32>] 
[-RunspaceTimeout <Int32>] [-NoCloseOnTimeout] [-MaxQueue <Int32>] [-AppendLog] [-LogFile <String>] [-Quiet] [-Walkthrough] [<CommonParameters>]

Invoke-BluGenieParallel [-ScriptFile <Object>] [-InputObject <PSObject>] [-Parameter <PSObject>] [-ImportVariables] [-ImportModules] [-ImportFunctions] [-Throttle <Int32>] [-SleepTimer <Int32>] [-RunspaceTimeout 
<Int32>] [-NoCloseOnTimeout] [-MaxQueue <Int32>] [-AppendLog] [-LogFile <String>] [-Quiet] [-Walkthrough] [<CommonParameters>]
```

### DESCRIPTION <a href="#description" id="description"></a>

Function to control parallel processing using runspaces

```
Note that each runspace will not have access to variables and commands loaded in your session or in other runspaces by default.
This behaviour can be changed with parameters.
```

### EXAMPLES <a href="#examples" id="examples"></a>

#### EXAMPLE 1 <a href="#example-1" id="example-1"></a>

```
Each example uses Test-ForPacs.ps1 which includes the following code:
```

```
param($computer)

   if(test-connection $computer -count 1 -quiet -BufferSize 16){
       $object = [pscustomobject] @{
           Computer=$computer;
           Available=1;
           Kodak=$(
               if((test-path "\\$computer\c$\users\public\desktop\Kodak Direct View Pacs.url") -or (test-path "\\$computer\c$\documents and settings\all users\desktop\Kodak Direct View Pacs.url") ){"1"}else{"0"}
           )
       }
   }
   else{
       $object = [pscustomobject] @{
           Computer=$computer;
           Available=0;
           Kodak="NA"
       }
   }

   $object
```

#### EXAMPLE 2 <a href="#example-2" id="example-2"></a>

```
Invoke-BluGenieParallel -scriptfile C:\public\Test-ForPacs.ps1 -inputobject $(get-content C:\pcs.txt) -runspaceTimeout 10 -throttle 10
```

```
Pulls list of PCs from C:\pcs.txt,
   Runs Test-ForPacs against each
   If any query takes longer than 10 seconds, it is disposed
   Only run 10 threads at a time
```

#### EXAMPLE 3 <a href="#example-3" id="example-3"></a>

```
Invoke-BluGenieParallel -scriptfile C:\public\Test-ForPacs.ps1 -inputobject c-is-ts-91, c-is-ts-95
```

```
Runs against c-is-ts-91, c-is-ts-95 (-computername)
   Runs Test-ForPacs against each
```

#### EXAMPLE 4 <a href="#example-4" id="example-4"></a>

```
$stuff = [pscustomobject] @{
```

```
ContentFile = "windows\system32\drivers\etc\hosts"
   Logfile = "C:\temp\log.txt"
}

$computers | Invoke-BluGenieParallel -parameter $stuff {
   $contentFile = join-path "\\$_\c$" $parameter.contentfile
   Get-Content $contentFile |
       set-content $parameter.logfile
}

This example uses the parameter argument.  This parameter is a single object.  To pass multiple items into the script block, we create a custom object (using a PowerShell v3 language) with properties we want to pass in.

Inside the script block, $parameter is used to reference this parameter object.  This example sets a content file, gets content from that file, and sets it to a predefined log file.
```

#### EXAMPLE 5 <a href="#example-5" id="example-5"></a>

```
$test = 5
```

```
1..2 | Invoke-BluGenieParallel -ImportVariables {$_ * $test}

Add variables from the current session to the session state.  Without -ImportVariables $Test would not be accessible
```

#### EXAMPLE 6 <a href="#example-6" id="example-6"></a>

```
$test = 5
```

```
1..2 | Invoke-BluGenieParallel {$_ * $Using:test}

Reference a variable from the current session with the $Using:<Variable> syntax.  Requires PowerShell 3 or later. Note that -ImportVariables parameter is no longer necessary.
```

### PARAMETERS <a href="#parameters" id="parameters"></a>

#### ScriptBlock <a href="#scriptblock" id="scriptblock"></a>

```
-ScriptBlock <ScriptBlock>
   Scriptblock to run against all computers.
   
   You may use $Using:<Variable> language in PowerShell 3 and later.
   
       The parameter block is added for you, allowing behaviour similar to foreach-object:
           Refer to the input object as $_.
           Refer to the parameter parameter as $parameter
   
   <Type>String<Type>
   
   Required?                    false
   Position?                    1
   Default value                
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### ScriptFile <a href="#scriptfile" id="scriptfile"></a>

```
-ScriptFile <Object>
   File to run against all input objects.  Must include parameter to take in the input object, or use $args.  Optionally, include parameter to take in parameter.  Example: C:\script.ps1
   
   <Type>String<Type>
   
   Required?                    false
   Position?                    named
   Default value                
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### InputObject <a href="#inputobject" id="inputobject"></a>

```
-InputObject <PSObject>
   Run script against these specified objects.
   
   <Type>String<Type>
   
   Required?                    false
   Position?                    named
   Default value                
   Accept pipeline input?       true (ByValue)
   Accept wildcard characters?  false
```

#### Parameter <a href="#parameter" id="parameter"></a>

```
-Parameter <PSObject>
   This object is passed to every script block.  You can use it to pass information to the script block; for example, the path to a logging folder
   
       Reference this object as $parameter if using the scriptblock parameterset.
   
   <Type>String<Type>
   
   Required?                    false
   Position?                    named
   Default value                
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### ImportVariables <a href="#importvariables" id="importvariables"></a>

```
-ImportVariables [<SwitchParameter>]
   If specified, get user session variables and add them to the initial session state
   
   <Type>SwitchParameter<Type>
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### ImportModules <a href="#importmodules" id="importmodules"></a>

```
-ImportModules [<SwitchParameter>]
   If specified, get loaded modules and pssnapins, add them to the initial session state
   
   <Type>SwitchParameter<Type>
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### ImportFunctions <a href="#importfunctions" id="importfunctions"></a>

```
-ImportFunctions [<SwitchParameter>]
   If specified, get loaded functions, and add them to the initial session state
   
   <Type>SwitchParameter<Type>
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### Throttle <a href="#throttle" id="throttle"></a>

```
-Throttle <Int32>
   Maximum number of threads to run at a single time.
   
   <Type>Int<Type>
   
   Required?                    false
   Position?                    named
   Default value                50
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### SleepTimer <a href="#sleeptimer" id="sleeptimer"></a>

```
-SleepTimer <Int32>
   Milliseconds to sleep after checking for completed runspaces and in a few other spots.  I would not recommend dropping below 200 or increasing above 500
   
   <Type>Int<Type>
   
   Required?                    false
   Position?                    named
   Default value                1000
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### RunspaceTimeout <a href="#runspacetimeout" id="runspacetimeout"></a>

```
-RunspaceTimeout <Int32>
   Maximum time in seconds a single thread can run.  If execution of your code takes longer than this, it is disposed.  Default: 0 (seconds)
   
   WARNING:  Using this parameter requires that maxQueue be set to throttle (it will be by default) for accurate timing.  Details here:
   http://gallery.technet.microsoft.com/Run-Parallel-Parallel-377fd430
   
   <Type>Int<Type>
   
   Required?                    false
   Position?                    named
   Default value                0
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### NoCloseOnTimeout <a href="#nocloseontimeout" id="nocloseontimeout"></a>

```
-NoCloseOnTimeout [<SwitchParameter>]
   Do not dispose of timed out tasks or attempt to close the runspace if threads have timed out. This will prevent the script from hanging in certain situations where threads become non-responsive, at the 
   expense of leaking memory within the PowerShell host.
   
   <Type>Int<Type>
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### MaxQueue <a href="#maxqueue" id="maxqueue"></a>

```
-MaxQueue <Int32>
   Maximum number of powershell instances to add to runspace pool.  If this is higher than $throttle, $timeout will be inaccurate
   
   If this is equal or less than throttle, there will be a performance impact
   
   The default value is $throttle times 3, if $runspaceTimeout is not specified
   The default value is $throttle, if $runspaceTimeout is specified
   
   <Type>Int<Type>
   
   Required?                    false
   Position?                    named
   Default value                0
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### AppendLog <a href="#appendlog" id="appendlog"></a>

```
-AppendLog [<SwitchParameter>]
   Append to existing log
   
   <Type>SwitchParameter<Type>
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### LogFile <a href="#logfile" id="logfile"></a>

```
-LogFile <String>
   Path to a file where we can log results, including run time for each thread, whether it completes, completes with errors, or times out.
   
   <Type>String<Type>
   
   Required?                    false
   Position?                    named
   Default value                
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### Quiet <a href="#quiet" id="quiet"></a>

```
-Quiet [<SwitchParameter>]
   Disable progress bar
   
   <Type>SwitchParameter<Type>
   
   Required?                    false
   Position?                    named
   Default value                False
   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
```

#### 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).


# 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).


# Invoke-BluGenieProcessHash

﻿

### Invoke-BluGenieProcessHash <a href="#invoke-blugenieprocesshash" id="invoke-blugenieprocesshash"></a>

### SYNOPSIS <a href="#synopsis" id="synopsis"></a>

Suspend, Resume, Stop and Export processes or process information based on the Hash value. This function is setup to take one or many hash descriptors, locate the running item, and manage it by either Suspending it Resuming it, or Stopping / Killing it.

### SYNTAX <a href="#syntax" id="syntax"></a>

```
Invoke-BluGenieProcessHash [[-Hash] <String[]>] [[-Managetype] <String>] [[-Algorithm] <String>] [-FilterType <String>] [-Pattern <String>] [-TimerLoop <Int32>] [-SleepTime <Int32>] [-Walkthrough] [-ReturnObject] 
[-OutUnEscapedJSON] [<CommonParameters>]
```

### DESCRIPTION <a href="#description" id="description"></a>

Suspend, Resume, Stop and Export processes or process information based on the 'Process','Handle','Path', or 'Hash' This function is setup to take one or many descriptors, locate the running item(s), and manage it by either Suspending it Resuming it, or Stopping / Killing it.

### EXAMPLES <a href="#examples" id="examples"></a>

#### EXAMPLE 1 <a href="#example-1" id="example-1"></a>

```
Invoke-BluGenieProcessHash
```

```
Description: Display the hash information for all running Processes.
Notes: The default Algorithm is (MD5)
```

#### EXAMPLE 2 <a href="#example-2" id="example-2"></a>

```
Command: Invoke-BluGenieProcessHash -Hash 80c6dd21910db50b90f0a5d00957ab6e011c43e23dfb4bf174c1448ce2863e0c81fbc8cc07e9b0bd4f4dbef2ada31c1dc7e676e9bc0b40bf7b85f2d052fdf5a9 -Algorithm SHA512
```

```
Description: Terminate the Process with the specific hash.
Notes: The Algorithm used is (SHA512)
```

#### EXAMPLE 3 <a href="#example-3" id="example-3"></a>

```
Command: Invoke-BluGenieProcessHash -Hash 74b64b52a66c242fe8a3119fb8445295e0b8719187653cd08cedeeaa26e97452 -Algorithm SHA256 -ManageType Suspend
```

```
Description: Suspend the Process with the specific hash.
Notes: The Algorithm used is (SHA256)
```

#### EXAMPLE 4 <a href="#example-4" id="example-4"></a>

```
Command: Invoke-BluGenieProcessHash -Hash 74b64b52a66c242fe8a3119fb8445295e0b8719187653cd08cedeeaa26e97452 -Algorithm SHA256 -ManageType Resume
```

```
Description: Resume the Process with the specific hash.
Notes: The Algorithm used is (SHA256)
```

#### EXAMPLE 5 <a href="#example-5" id="example-5"></a>

```
Command: Invoke-BluGenieProcessHash -FilterType 'Process' -Pattern 'notepad'
```

```
Description: Filter all processes by Process name and look for any process that matches ( notepad ) in the name
Notes:
```

#### EXAMPLE 6 <a href="#example-6" id="example-6"></a>

```
Command: Invoke-BluGenieProcessHash -FilterType 'Process' -Pattern '^notepad\.exe$'
```

```
Description: Filter all processes by Process name and look for the exact match of ( Notepad.exe )
Notes:
```

#### EXAMPLE 7 <a href="#example-7" id="example-7"></a>

```
Command: Invoke-BluGenieProcessHash -FilterType 'Hash' -Pattern 'f1139811bbf61362915958806ad30211|88c998e5af2e07a81c35d34b6edd0006'
```

```
Description: Search for multiple items with Regex
Notes:
```

#### EXAMPLE 8 <a href="#example-8" id="example-8"></a>

```
Command: Invoke-BluGenieProcessHash -FilterType 'Hash' -Pattern 'f1139811bbf61362915958806ad30211|88c998e5af2e07a81c35d34b6edd0006' -Managetype Stop
```

```
Description: Terminate multiple items with Regex
Notes:
```

#### EXAMPLE 9 <a href="#example-9" id="example-9"></a>

```
Command: Invoke-BluGenieProcessHash -Help
```

```
Description: Call Help Information
Notes: If Help / WalkThrough is setup as a parameter, this script will be called to setup the Dynamic Help Menu if not the normal 
Get-Help will be called with the -Full parameter
```

#### EXAMPLE 10 <a href="#example-10" id="example-10"></a>

```
Command: Invoke-BluGenieProcessHash -WalkThrough
```

```
Description: Call Help Information [2]
Notes: If Help / WalkThrough is setup as a parameter, this script will be called to setup the Dynamic Help Menu if not the normal 
Get-Help will be called with the -Full parameter
```

#### EXAMPLE 11 <a href="#example-11" id="example-11"></a>

```
Command: Invoke-BluGenieProcessHash -OutUnEscapedJSON
```

```
Description: Display the hash information for all running Processes and Return Output as UnEscaped JSON format
Notes:  The OutUnEscapedJSON is used to beatify the JSON return and not Escape any Characters.  Normal return data is a Hash Table.
```

#### EXAMPLE 12 <a href="#example-12" id="example-12"></a>

```
Command: Invoke-BluGenieProcessHash -ReturnObject
```

```
Description: Display the hash information for all running Processes and Return Output an Object
Notes:  The ReturnObject is used to return a PowerShell Object.  Normal return data is a Hash Table.
```

### PARAMETERS <a href="#parameters" id="parameters"></a>

#### Hash <a href="#hash" id="hash"></a>

```
-Hash <String[]>
   Description: The Hash value for a specific process
   Notes:  
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    1
   Default value                
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### Managetype <a href="#managetype" id="managetype"></a>

```
-Managetype <String>
   Description: Manage the behavior of the process (Suspend, Resume, Stop)
   Notes:  
   Alias:
   ValidateSet: 'Report','Suspend','Resume','Stop'
   
   Required?                    false
   Position?                    2
   Default value                Report
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### Algorithm <a href="#algorithm" id="algorithm"></a>

```
-Algorithm <String>
   Description:  Specifies the cryptographic hash to use for computing the hash value of the contents of the specified file. 
   Notes:  The acceptable values for this parameter are:
   
               - SHA1
               - SHA256
               - SHA384
               - SHA512
               - MACTripleDES
               - MD5 = (Default)
               - RIPEMD160
   Alias: 
   ValidateSet: 'MACTripleDES','MD5','RIPEMD160','SHA1','SHA256','SHA384','SHA512'
   
   Required?                    false
   Position?                    3
   Default value                MD5
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### FilterType <a href="#filtertype" id="filtertype"></a>

```
-FilterType <String>
   Description:  Which property to filter by
         Notes:  
             Filter Option
   	•	"Process"
   			Process Name
   	•	"Handle"
   			Handle of the Process
             •	"Path"
   			Full path with extension of the executable
             •	"Hash"
   			Hash value based on 'MACTripleDES','MD5','RIPEMD160','SHA1','SHA256','SHA384','SHA512' which is controlled wit the 
   		-Algorithm parameter
   Alias:
   ValidateSet: 'Process','Handle','Path','Hash'
   
   Required?                    false
   Position?                    named
   Default value                Hash
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### Pattern <a href="#pattern" id="pattern"></a>

```
-Pattern <String>
   Description:  RegEx supported Search patterns to help filter the returning criteria
   Notes:  
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                .*
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### TimerLoop <a href="#timerloop" id="timerloop"></a>

```
-TimerLoop <Int32>
   Description: Set how many loops the terminate process checks for validation
   Notes:  
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                12
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### SleepTime <a href="#sleeptime" id="sleeptime"></a>

```
-SleepTime <Int32>
   Description: Set the Sleep time between each loop
   Notes:  
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                5
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### Walkthrough <a href="#walkthrough" id="walkthrough"></a>

```
-Walkthrough [<SwitchParameter>]
   Description:  Start the dynamic help menu system to help walk through the current command and all of the parameters
   Notes:  
   Alias: Help
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### ReturnObject <a href="#returnobject" id="returnobject"></a>

```
-ReturnObject [<SwitchParameter>]
   Description: Return information as an Object
   Notes: By default the data is returned as a Hash Table
   Alias: 
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                True
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### OutUnEscapedJSON <a href="#outunescapedjson" id="outunescapedjson"></a>

```
-OutUnEscapedJSON [<SwitchParameter>]
   Description: Remove UnEsacped Char from the JSON information.
   Notes: This will beautify json and clean up the formatting.
   Alias: 
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   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).


# Invoke-BluGeniePSQuery

﻿

### Invoke-BluGeniePSQuery <a href="#invoke-blugeniepsquery" id="invoke-blugeniepsquery"></a>

### SYNOPSIS <a href="#synopsis" id="synopsis"></a>

Invoke-BluGeniePSQuery will sweep one or more IP addresses to determine if PowerShell 3 or higher is installed.

### SYNTAX <a href="#syntax" id="syntax"></a>

```
Invoke-BluGeniePSQuery [[-System] <String[]>] [[-Range] <String[]>] [[-PassThrough]] [[-PingTimeOut] <Int32>] [[-Force]] [[-JSONJob] <String>] [[-FilterType] <String>] [[-Pattern] <Object>] [[-Run]] [[-LogPath] 
<String>] [[-LogName] <String>] [[-Walkthrough]] [<CommonParameters>]
```

### DESCRIPTION <a href="#description" id="description"></a>

Invoke-BluGeniePSQuery will query system information over WMI for one or more IP addresses to determine if PowerShell 3 or higher is installed. A report is generated by default in the Transcripts directory called "PingReport\_D\_TG.CSV"

Captured Data fields Address - Remote IP Address ( 10.20.136.121 ) ComputerName - Remote Host Name ( win7sp1001 ) FQDN - Fully Qualified Domain Name ( WIN7SP1001.TestLab.Com ) FreePhysicalMemoryGB - Free Physical Memory Quote in GB ( .54 ) FreePhysicalMemoryMB - Free Physical Memory Quote in MB ( 558 ) Online - Online Status ( True or False ) OS - Operating System Name ( Microsoft Windows 7 Enterprise ) OSVersion - Operating Version ( 6.1.7601 ) Compliant - PowerShell Version 3 or Higher ( True ) PowerShellVer - Installed PowerShell Version ( 2.0 ) TotalPhysicalMemoryGB - Total Physical Memory Quote in GB ( 6 ) TotalPhysicalMemoryMB - Total Physical Memory Quote in MB ( 6291000 ) TotalVirtualMemorySizeGB - Total Virtual Memory Quote in GB ( 12 ) TotalVirtualMemorySizeMB - Total Virtual Memory Quote in MB ( 12285 )

### EXAMPLES <a href="#examples" id="examples"></a>

#### EXAMPLE 1 <a href="#example-1" id="example-1"></a>

```
Command: Invoke-BluGeniePSQuery -System 10.20.136.51
```

```
Description: Scan the ip address specified and pull System and PowerShell information if the computer is Online!
Notes: A report is generated by default in the Transcripts directory called "PingReport_D<DATE>_T<TIME>G<GUID>.CSV"
```

#### EXAMPLE 2 <a href="#example-2" id="example-2"></a>

```
Command: Invoke-BluGeniePSQuery -Range "10.20.136.50-10.20.136.100"
```

```
Description: Scan the ip address range specified and pull System and PowerShell information if the computer is Online!
Notes: A report is generated by default in the Transcripts directory called "PingReport_D<DATE>_T<TIME>G<GUID>.CSV"
```

#### EXAMPLE 3 <a href="#example-3" id="example-3"></a>

```
Command: Invoke-BluGeniePSQuery -System "10.20.136.1","10.20.136.2","10.20.136.3","10.20.136.4","10.20.136.5","10.20.136.10","10.20.136.11","10.20.136.50","10.20.136.51","10.20.136.52"
```

```
Description: Scan multiple ip addresses specified and pull System and PowerShell information if the computer is Online!
Notes: A report is generated by default in the Transcripts directory called "PingReport_D<DATE>_T<TIME>G<GUID>.CSV"
```

#### EXAMPLE 4 <a href="#example-4" id="example-4"></a>

```
Command: Invoke-BluGeniePSQuery -System 'TestPC001','TestPC002','TestPC003' -Force
```

```
Description: Scan the hosts and pull System and PowerShell information. Do not process an [ICMP / Ping] request prior to trying to connect.
Notes:
```

#### EXAMPLE 5 <a href="#example-5" id="example-5"></a>

```
Command: Invoke-BluGeniePSQuery -System 'TestPC001','TestPC002','TestPC003' -PassThrough
```

```
Description: Scan the hosts and updates the BluGenie Systems list with any remote computer that is PowerShell 3 or higher (Default Filter)
Notes:
```

#### EXAMPLE 6 <a href="#example-6" id="example-6"></a>

```
Command: Invoke-BluGeniePSQuery -Range "10.20.136.50-10.20.136.100" -PingTimeOut 5
```

```
Description: Scan the ip address range specified, and update the Ping Time Out to 5 ms.
Notes: This speeds up the process for systems that are not online.  The default value is 15 which is still very fast.
```

#### EXAMPLE 7 <a href="#example-7" id="example-7"></a>

```
\Job.JSON'
```

```
Description: Import settings from a JSON job file and Scan the specified systems from the JSON file and pull System and PowerShell information if the computer is Online!
Notes:
```

#### EXAMPLE 8 <a href="#example-8" id="example-8"></a>

```
\Job.JSON' -PassThrough
```

```
Description: Import settings from a JSON job file, Scan the specified systems from the JSON file, and update the BluGenie Systems list with any remote computer that is PowerShell 3 or higher
Notes: -FilterType is set to filter (Compliant) by default and -Pattern is set to (True) so only machines with PowerShell 3 or higher will be found.
```

#### EXAMPLE 9 <a href="#example-9" id="example-9"></a>

```
\Job.JSON' -PassThrough -FilterType OS -Patter 'Windows\s10'
```

```
Description: Import settings from a JSON job file, Scan the specified systems from the JSON file, and update the BluGenie Systems list with any remote computer that is (Windows 10)
Notes:
```

#### EXAMPLE 10 <a href="#example-10" id="example-10"></a>

```
\Job.JSON' -PassThrough -FilterType OS -Patter 'Windows\s10' -Run
```

```
Description: Import settings from a JSON job file, Scan the specified systems from the JSON file, update the BluGenie Systems list with any remote computer that is (Windows 10) and Run all remote commands on the updates computer list
Notes:
```

#### EXAMPLE 11 <a href="#example-11" id="example-11"></a>

```
\Job.JSON' -LogName 'BG_System_Query'
```

```
Description: Import settings from a JSON job file, Scan the specified systems from the JSON file, and save a report named (BG_System_Query.CSV and BG_System_Query.JSON) to the Current Transcript Directory
Notes:
```

#### EXAMPLE 12 <a href="#example-12" id="example-12"></a>

```
\Job.JSON' -LogName 'BG_System_Query' -LogPath 'C:\Temp'
```

```
Description: Import settings from a JSON job file, Scan the specified systems from the JSON file, and save a report named (BG_System_Query.CSV and BG_System_Query.JSON) to the Current Transcript Directory
Notes:
```

#### EXAMPLE 13 <a href="#example-13" id="example-13"></a>

```
Command: Invoke-BluGeniePSQuery -Help
```

```
Description: Call Help Information
Notes: If Help / WalkThrough is setup as a parameter, this script will be called to setup the Dynamic Help Menu if not the normal Get-Help will be called with the -Full parameter
```

#### EXAMPLE 14 <a href="#example-14" id="example-14"></a>

```
Command: Invoke-BluGeniePSQuery -WalkThrough
```

```
Description: Call Help Information [2]
Notes: If Help / WalkThrough is setup as a parameter, this script will be called to setup the Dynamic Help Menu if not the normal Get-Help will be called with the -Full parameter
```

### PARAMETERS <a href="#parameters" id="parameters"></a>

#### System <a href="#system" id="system"></a>

```
-System <String[]>
   Description: IP Address or Host name to Query
   Notes: System names can also be called from BluGenie's system list if the System parameter is not set.
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    1
   Default value                $global:ConsoleSystems
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### Range <a href="#range" id="range"></a>

```
-Range <String[]>
   Description: Range of IP Addresses to Query 
   Notes: Range information can also be called from BluGenie's range list if the Range parameter is not set.
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    2
   Default value                $global:ConsoleRange
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### PassThrough <a href="#passthrough" id="passthrough"></a>

```
-PassThrough [<SwitchParameter>]
   Description: Update the BGConsole System Array list with all systems that match the filtered information
   Notes:  
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    3
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### PingTimeOut <a href="#pingtimeout" id="pingtimeout"></a>

```
-PingTimeOut <Int32>
   Description: [TTL] - Time to live ping setting 
   Notes: The default is 15ms 
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    4
   Default value                15
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### Force <a href="#force" id="force"></a>

```
-Force [<SwitchParameter>]
   Description: Force connect without trying to run an ICMP (Internet Control Message Protocol)
   Notes:  
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    5
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### JSONJob <a href="#jsonjob" id="jsonjob"></a>

```
-JSONJob <String>
   Description: Use a JSON job file to import settings
   Notes:  
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    6
   Default value                
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### FilterType <a href="#filtertype" id="filtertype"></a>

```
-FilterType <String>
   Description:  Which property to filter by
   Notes:  
           Filter Option = Address                     - Remote IP Address                   ( 10.20.136.121 )
           Filter Option = ComputerName                - Remote Host Name                    ( win7sp1001 )
           Filter Option = FQDN                        - Fully Qualified Domain Name         ( WIN7SP1001.TestLab.Com )
           Filter Option = FreePhysicalMemoryGB        - Free Physical Memory Quote in GB    ( .54 )
           Filter Option = FreePhysicalMemoryMB        - Free Physical Memory Quote in MB    ( 558 )
           Filter Option = Online                      - Online Status                       ( True or False )
           Filter Option = OS                          - Operating System Name               ( Microsoft Windows 7 Enterprise )
           Filter Option = OSVersion                   - Operating Version                   ( 6.1.7601 )
           Filter Option = Compliant                 - PowerShell Version 3 or Higher      ( True or False ) **Default Search Field**
           Filter Option = PowerShellVer               - Installed PowerShell Version        ( 2.0 )
           Filter Option = TotalPhysicalMemoryGB       - Total Physical Memory Quote in GB   ( 6 )
           Filter Option = TotalPhysicalMemoryMB       - Total Physical Memory Quote in MB   ( 6291000 )
           Filter Option = TotalVirtualMemorySizeGB    - Total Virtual Memory Quote in GB    ( 12 )
           Filter Option = TotalVirtualMemorySizeMB    - Total Virtual Memory Quote in MB    ( 12285 )
   Alias:
   ValidateSet: 'Name','Address','ComputerName','FQDN','FreePhysicalMemoryGB','FreePhysicalMemoryMB','Online','OS','OSVersion','Compliant','PowerShellVer','TotalPhysicalMemoryGB','TotalPhysicalMemoryMB','TotalVir
   tualMemorySizeGB','TotalVirtualMemorySizeMB'
   
   Required?                    false
   Position?                    7
   Default value                Compliant
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### Pattern <a href="#pattern" id="pattern"></a>

```
-Pattern <Object>
   Description: Search Pattern using RegEx
   Notes: Using -SearchHidden will convert the Pattern to RegEx Automatically but without the comma or the -SearchHidden the -Pattern is viewed as as a Command Console Search pattern.  You can use (*) wildcards. 
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    8
   Default value                True
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### Run <a href="#run" id="run"></a>

```
-Run [<SwitchParameter>]
   Description: Process any command(s) from the JSON Job file on any of the systems filtered by PSQuery.
   Notes: 
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    9
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### LogPath <a href="#logpath" id="logpath"></a>

```
-LogPath <String>
   Description: Path to save the Log File
   Notes: Default is the ( $TranscriptsDir ) Transcript Directory
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    10
   Default value                $TranscriptsDir
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### LogName <a href="#logname" id="logname"></a>

```
-LogName <String>
   Description: Name of the Report(s)
   Notes: There are 2 reports that get generated (*.CSV, and *.JSON).  The default file name is ( PingReport_D<Current Date>_T<Current Time>G_<5 Digit UID> )
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    11
   Default value                $($('PingReport_D{0}G_{1}' -f $(New-TimeStamp), $(New-UID -NumPerSet 5 -NumOfSets 1)) -replace '(\d)_(\d)','$1_T$2')
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### Walkthrough <a href="#walkthrough" id="walkthrough"></a>

```
-Walkthrough [<SwitchParameter>]
   Description:  Start the dynamic help menu system to help walk through the current command and all of the parameters
   Notes:  
   Alias: Help
   ValidateSet:
   
   Required?                    false
   Position?                    12
   Default value                False
   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).


# Invoke-BluGeniePython

﻿Invoke-BluGeniePython

### SYNOPSIS <a href="#synopsis" id="synopsis"></a>

Invoke-BluGeniePython will enable a BluGenie Managed Portable version of Python

### SYNTAX <a href="#syntax" id="syntax"></a>

```
Invoke-BluGeniePython [-Reset] [-Remove] [[-PYFile] <String>] [-Console] [-WinPyConsole] [-ClearGarbageCollecting] [-Walkthrough] [-ReturnObject] [-OutUnEscapedJSON] [-OutYaml] [[-FormatView] <String>] 
[<CommonParameters>]
```

### DESCRIPTION <a href="#description" id="description"></a>

Invoke-BluGeniePython will enable a BluGenie Managed Portable version of Python

### EXAMPLES <a href="#examples" id="examples"></a>

#### EXAMPLE 1 <a href="#example-1" id="example-1"></a>

```
Command: Invoke-BluGeniePython
```

```
Description:  Use this command to Setup the Blugenie Managed version of Python
Notes:  This will not change the default Python if one is installed.
       However any internal BluGenie calls to Python will go to the BluGenie Managed Version and not the default.
```

#### EXAMPLE 2 <a href="#example-2" id="example-2"></a>

```
Command: Invoke-BluGeniePython -Remove
```

```
Description:  Use this command to remove the Blugenie Managed version of Python
Notes:  This will not change the default Python if one is installed.
```

#### EXAMPLE 3 <a href="#example-3" id="example-3"></a>

```
Command: Invoke-BluGeniePython -Reset
```

```
Description:  Use this command to reset the BluGenie Managed version of Python to it's default environment state.
Notes:  This command can also Setup the BluGenie Managed version of Python if it's not installed already.
```

#### EXAMPLE 4 <a href="#example-4" id="example-4"></a>

```
Command: Invoke-BluGeniePython -PYFile C:\Windows\Temp\MyTest.py
```

```
Description: Use this command to run a specifc Python script file
Notes:
```

#### EXAMPLE 5 <a href="#example-5" id="example-5"></a>

```
Command: Invoke-BluGeniePython -PYFile C:\Windows\Temp\MyTest.py -ReturnObject
```

```
Description:  Use this command to return the STDOut from the Python script as an Object.
Notes:  The Property name is called ( ProcessAction )
```

#### EXAMPLE 6 <a href="#example-6" id="example-6"></a>

```
Command: Invoke-BluGeniePython -PYFile C:\Windows\Temp\MyTest.py -ReturnObject | Select-Object -ExpandProperty ProcessAction
```

```
Description:  Use this command to return only the STDOut from the Python script.
Notes:  The Property name ( ProcessAction ) is expanded to only return the value.
```

#### EXAMPLE 7 <a href="#example-7" id="example-7"></a>

```
Command: Invoke-BluGeniePython -Console
```

```
Description:  Use this command to show the Console of the BluGenie Managed verison of Python
Notes:  You can use the Console to edit the BluGenie Managed version of Python or run command Python commands and scripts.
```

#### EXAMPLE 8 <a href="#example-8" id="example-8"></a>

```
Command: Invoke-BluGeniePython -Help
```

```
Description: Call Help Information
Notes: If Help / WalkThrough is setup as a parameter, this script will be called to setup the Dynamic Help Menu if not the normal Get-Help will be called with the -Full parameter
```

#### EXAMPLE 9 <a href="#example-9" id="example-9"></a>

```
Command: Invoke-BluGeniePython -WalkThrough
```

```
Description: Call Help Information [2]
Notes: If Help / WalkThrough is setup as a parameter, this script will be called to setup the Dynamic Help Menu if not the normal Get-Help will be called with the -Full parameter
```

#### EXAMPLE 10 <a href="#example-10" id="example-10"></a>

```
Command: Invoke-BluGeniePython -OutUnEscapedJSON
```

```
Description: Return a detailed function report in an UnEscaped JSON format
Notes:  The OutUnEscapedJSON is used to Beautify the JSON return and not Escape any Characters.  Normal return data is a Hash Table.
```

#### EXAMPLE 11 <a href="#example-11" id="example-11"></a>

```
Command: Invoke-BluGeniePython -OutYaml
```

```
Description: Return a detailed function report in YAML format
Notes:  The OutUnEscapedJSON is used to Beautify the JSON return and not Escape any Characters.  Normal return data is a Hash Table.
```

#### EXAMPLE 12 <a href="#example-12" id="example-12"></a>

```
Command: Invoke-BluGeniePython -ReturnObject
```

```
Description: Return Output as a Object
Notes:  The ReturnObject is used to return a PowerShell Object.  Normal return data is a Hash Table.
       This parameter is also used with the FormatView
```

#### EXAMPLE 13 <a href="#example-13" id="example-13"></a>

```
Command: Invoke-BluGeniePython -ReturnObject -FormatView Yaml
```

```
Description: Output PSObject information in Yaml format
Notes:  Current formats supported by default are ('Table','Custom','CustomModified','None','JSON','OutUnEscapedJSON','CSV', 'Yaml')
       Default is set to (None) and normal PSObject.
```

### PARAMETERS <a href="#parameters" id="parameters"></a>

#### Reset <a href="#reset" id="reset"></a>

```
-Reset [<SwitchParameter>]
   Description: Reset the BluGenie Managed Python to a predetermined (clean state)
   Notes:  Any changes to the current BluGenie Managed Python will be lost.
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### Remove <a href="#remove" id="remove"></a>

```
-Remove [<SwitchParameter>]
   Description:  Remove the BluGenie Managed Python from disk
   Notes:
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### PYFile <a href="#pyfile" id="pyfile"></a>

```
-PYFile <String>
   Description: Path to a Python Script
   Notes:  When running a Python Script Invoke-BluGeniePython will wait for the script to finish and return any information captured
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    1
   Default value                
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### Console <a href="#console" id="console"></a>

```
-Console [<SwitchParameter>]
   Description: Open up the current BluGenie Managed Python Console
   Notes:
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### WinPyConsole <a href="#winpyconsole" id="winpyconsole"></a>

```
-WinPyConsole [<SwitchParameter>]
   Description: Open up the current BluGenie Managed WinPython Command Prompt
   Notes:
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### ClearGarbageCollecting <a href="#cleargarbagecollecting" id="cleargarbagecollecting"></a>

```
-ClearGarbageCollecting [<SwitchParameter>]
   Description: Garbage Collection in Powershell to Speed up Scripts and help lower memory consumption
   Notes: This is enabled by default.  To disable use -ClearGarbageCollecting:$False
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### Walkthrough <a href="#walkthrough" id="walkthrough"></a>

```
-Walkthrough [<SwitchParameter>]
   Description:  Start the dynamic help menu system to help walk through the current command and all of the parameters
   Notes:
   Alias: Help
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### ReturnObject <a href="#returnobject" id="returnobject"></a>

```
-ReturnObject [<SwitchParameter>]
   Description: Return information as an Object
   Notes: By default the data is returned as a Hash Table
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### OutUnEscapedJSON <a href="#outunescapedjson" id="outunescapedjson"></a>

```
-OutUnEscapedJSON [<SwitchParameter>]
   Description: Remove UnEsacped Char from the JSON information.
   Notes: This will beautify json and clean up the formatting.
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### OutYaml <a href="#outyaml" id="outyaml"></a>

```
-OutYaml [<SwitchParameter>]
   Description: Return detailed information in Yaml Format
   Notes: Only supported in Posh 3.0 and above
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### FormatView <a href="#formatview" id="formatview"></a>

```
-FormatView <String>
   Description: Automatically format the Return Object
   Notes: Yaml is only supported in Posh 3.0 and above
   Alias:
   ValidateSet: 'Table','Custom','CustomModified','None','JSON','OutUnEscapedJSON','CSV', 'Yaml'
   
   Required?                    false
   Position?                    2
   Default value                None
   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).


# Invoke-BluGenieSQLLQuery

﻿

### Invoke-BluGenieSQLLQuery <a href="#invoke-blugeniesqllquery" id="invoke-blugeniesqllquery"></a>

### SYNOPSIS <a href="#synopsis" id="synopsis"></a>

Invoke-BluGenieSQLLQuery is a shim function to ( Invoke-SqliteQuery ) which helps manage SQL queries and gives us a correctly formatted return for BluGenie reporting

### SYNTAX <a href="#syntax" id="syntax"></a>

```
Invoke-BluGenieSQLLQuery [[-QueryString] <String[]>] [-File <String>] [-DBName <String>] [-DBPath <String>] [-ClearGarbageCollecting] [-Walkthrough] [-ReturnObject] [-OutUnEscapedJSON] [-FormatView <String>] 
[<CommonParameters>]
```

### DESCRIPTION <a href="#description" id="description"></a>

Invoke-BluGenieSQLLQuery is a shim function to ( Invoke-SqliteQuery ) which helps manage SQL queries and gives us a correctly formatted return for BluGenie reporting

### EXAMPLES <a href="#examples" id="examples"></a>

#### EXAMPLE 1 <a href="#example-1" id="example-1"></a>

```
Command: Invoke-BGSQLLQuery -QueryString "SELECT
```

```
FullName,
Hash
FROM
BGChildItemList
WHERE
Hash = 'd4d2883b821d5e95805336234a50c7e8'"Description: Return Fullname, and Hash information for a specific item that matches the requested Hash
Notes:
```

#### EXAMPLE 2 <a href="#example-2" id="example-2"></a>

```
Command: Invoke-BGSQLLQuery -File .\Tools\Blubin\Modules\BluGenie\Configs\SQL\grabhash.sql
```

```
Description: Query the Sqlite Database using a Query from a file
Notes:
```

#### EXAMPLE 3 <a href="#example-3" id="example-3"></a>

```
Command: Invoke-BluGenieSQLLQuery -Help
```

```
Description: Call Help Information
Notes: If Help / WalkThrough is setup as a parameter, this script will be called to setup the Dynamic Help Menu if not the normal
Get-Help will be called with the -Full parameter
```

#### EXAMPLE 4 <a href="#example-4" id="example-4"></a>

```
Command: Invoke-BluGenieSQLLQuery -WalkThrough
```

```
Description: Call Help Information [2]
Notes: If Help / WalkThrough is setup as a parameter, this script will be called to setup the Dynamic Help Menu if not the normal
Get-Help will be called with the -Full parameter
```

#### EXAMPLE 5 <a href="#example-5" id="example-5"></a>

```
Command: Invoke-BGSQLLQuery -File .\Tools\Blubin\Modules\BluGenie\Configs\SQL\grabhash.sql -OutUnEscapedJSON
```

```
Description: Return a detailed function report in an UnEscaped JSON format
Notes:  The OutUnEscapedJSON is used to Beautify the JSON return and not Escape any Characters.  Normal return data is a Hash Table.
```

#### EXAMPLE 6 <a href="#example-6" id="example-6"></a>

```
Command: Invoke-BGSQLLQuery -File .\Tools\Blubin\Modules\BluGenie\Configs\SQL\grabhash.sql -OutYaml
```

```
Description: Return a detailed function report in YAML format
Notes:  The OutUnEscapedJSON is used to Beautify the JSON return and not Escape any Characters.  Normal return data is a Hash Table.
```

#### EXAMPLE 7 <a href="#example-7" id="example-7"></a>

```
Command: Invoke-BGSQLLQuery -File .\Tools\Blubin\Modules\BluGenie\Configs\SQL\grabhash.sql -ReturnObject
```

```
Description: Return Output as a Object
Notes:  The ReturnObject is used to return a PowerShell Object.  Normal return data is a Hash Table.
       This parameter is also used with the ForMat
```

### PARAMETERS <a href="#parameters" id="parameters"></a>

#### QueryString <a href="#querystring" id="querystring"></a>

```
-QueryString <String[]>
   Description: SQL String to query for specific data from the SQlite Database
   Notes:
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    1
   Default value                
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### File <a href="#file" id="file"></a>

```
-File <String>
   Description: Full file path to a file housing a SQL Query string
   Notes:
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### DBName <a href="#dbname" id="dbname"></a>

```
-DBName <String>
   Description: Database Name (Without extention)
   Notes: The default name is set to 'BluGenie'
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                BluGenie
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### DBPath <a href="#dbpath" id="dbpath"></a>

```
-DBPath <String>
   Description: Path to either Save or Update the Database
   Notes: The default path is $('{0}\BluGenie' -f $env:ProgramFiles)  Example: C:\Program Files\BluGenie
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                $('{0}\BluGenie' -f $env:ProgramFiles)
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### ClearGarbageCollecting <a href="#cleargarbagecollecting" id="cleargarbagecollecting"></a>

```
-ClearGarbageCollecting [<SwitchParameter>]
   Description: Garbage Collection in Powershell to Speed up Scripts and help lower memory consumption
   Notes: This is enabled by default.  To disable use -ClearGarbageCollecting:$False
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### Walkthrough <a href="#walkthrough" id="walkthrough"></a>

```
-Walkthrough [<SwitchParameter>]
   Description:  Start the dynamic help menu system to help walk through the current command and all of the parameters
   Notes:
   Alias: Help
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### ReturnObject <a href="#returnobject" id="returnobject"></a>

```
-ReturnObject [<SwitchParameter>]
   Description: Return information as an Object
   Notes: By default the data is returned as a Hash Table
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### OutUnEscapedJSON <a href="#outunescapedjson" id="outunescapedjson"></a>

```
-OutUnEscapedJSON [<SwitchParameter>]
   Description: Remove UnEsacped Char from the JSON information.
   Notes: This will beautify json and clean up the formatting.
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### FormatView <a href="#formatview" id="formatview"></a>

```
-FormatView <String>
   Description: Automatically format the Return Object
   Notes: Yaml is only supported in Posh 3.0 and above
   Alias:
   ValidateSet: 'Table', 'Custom', 'CustomModified', 'None', 'JSON', 'OutUnEscapedJSON', 'CSV'
   
   Required?                    false
   Position?                    named
   Default value                None
   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).


# Invoke-BluGenieThreadLock

﻿

### Invoke-BluGenieThreadLock <a href="#invoke-blugeniethreadlock" id="invoke-blugeniethreadlock"></a>

### SYNOPSIS <a href="#synopsis" id="synopsis"></a>

Create a named Mutex

### SYNTAX <a href="#syntax" id="syntax"></a>

```
Invoke-BluGenieThreadLock [-ShowLocks] [-Walkthrough] [<CommonParameters>]

Invoke-BluGenieThreadLock [-setLock] [[-lockName] <String>] [-timeOut <Int32>] [-GlobalName <String>] [-Walkthrough] [<CommonParameters>]

Invoke-BluGenieThreadLock [-releaseLock] [[-lockName] <String>] [-timeOut <Int32>] [-GlobalName <String>] [-Walkthrough] [<CommonParameters>]
```

### DESCRIPTION <a href="#description" id="description"></a>

With a named mutex, we can specify a mutex with a name on one process and then tell it to take the mutex and on another process (yes, another PowerShell console would work) and call the same named mutex and if we attempt to take the mutex, it will create a blocking call until the other process relinquishes control of it. What this allows us to do is have multiple processes that can write to a single file without fear of missing data due to the file being locked.

### EXAMPLES <a href="#examples" id="examples"></a>

#### EXAMPLE 1 <a href="#example-1" id="example-1"></a>

```
Command: $mtx = Invoke-BluGenieMutux -Name Log
```

```
$mtx.WaitOne()
           'other important data' | Out-File C:\importantlogfile.txt -Append
           $mtx.ReleaseMutex()Description: Create Mutux Threading to lock Logging file.
Notes: 

..EXAMPLE
Command: $mtx = Invoke-BluGenieMutux -Name Log
           $mtx.WaitOne(1000)
           'other important data' | Out-File C:\importantlogfile.txt -Append
           $mtx.ReleaseMutex()Description: Create Mutux Threading with a 1000 second timeout.
Notes:
```

#### EXAMPLE 2 <a href="#example-2" id="example-2"></a>

```
-Help
```

```
Description: Call Help Information
Notes: If Help / WalkThrough is setup as a parameter, this script will be called to setup the Dynamic Help Menu if not the normal Get-Help will be called with the -Full parameter
```

#### EXAMPLE 3 <a href="#example-3" id="example-3"></a>

```
-WalkThrough
```

```
Description: Call Help Information [2]
Notes: If Help / WalkThrough is setup as a parameter, this script will be called to setup the Dynamic Help Menu if not the normal Get-Help will be called with the -Full parameter
```

### PARAMETERS <a href="#parameters" id="parameters"></a>

#### setLock <a href="#setlock" id="setlock"></a>

```
-setLock [<SwitchParameter>]
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### releaseLock <a href="#releaselock" id="releaselock"></a>

```
-releaseLock [<SwitchParameter>]
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### lockName <a href="#lockname" id="lockname"></a>

```
-lockName <String>
   
   Required?                    false
   Position?                    2
   Default value                ThreadLock
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### timeOut <a href="#timeout" id="timeout"></a>

```
-timeOut <Int32>
   
   Required?                    false
   Position?                    named
   Default value                600
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### GlobalName <a href="#globalname" id="globalname"></a>

```
-GlobalName <String>
   
   Required?                    false
   Position?                    named
   Default value                MyLock
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### ShowLocks <a href="#showlocks" id="showlocks"></a>

```
-ShowLocks [<SwitchParameter>]
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### Walkthrough <a href="#walkthrough" id="walkthrough"></a>

```
-Walkthrough [<SwitchParameter>]
   Description:  Start the dynamic help menu system to help walk through the current command and all of the parameters
   Notes:  
   Alias: Help
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   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).


# Invoke-BluGenieUnLoadAllProfileHives

﻿

### Invoke-BluGenieUnLoadAllProfileHives <a href="#invoke-blugenieunloadallprofilehives" id="invoke-blugenieunloadallprofilehives"></a>

### SYNOPSIS <a href="#synopsis" id="synopsis"></a>

Unload all known users profile hives

### SYNTAX <a href="#syntax" id="syntax"></a>

```
Invoke-BluGenieUnLoadAllProfileHives [[-ReturnObject]] [[-Walkthrough]] [<CommonParameters>]
```

### DESCRIPTION <a href="#description" id="description"></a>

Unload all known users profile hives

### EXAMPLES <a href="#examples" id="examples"></a>

#### EXAMPLE 1 <a href="#example-1" id="example-1"></a>

```
Invoke-BluGenieUnLoadAllProfileHives
```

```
This will unload all none used registry hives
The returned data will be a Hash Table
```

#### EXAMPLE 2 <a href="#example-2" id="example-2"></a>

```
Invoke-BluGenieUnLoadAllProfileHives -ReturnObject
```

```
This will unload all none used registry hives
The returned data will be an Object
```

### PARAMETERS <a href="#parameters" id="parameters"></a>

#### ReturnObject <a href="#returnobject" id="returnobject"></a>

```
-ReturnObject [<SwitchParameter>]
   Return information as an Object.
   By default the data is returned as a Hash Table
   
   <Type>SwitchParameter<Type>
   
   Required?                    false
   Position?                    1
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### Walkthrough <a href="#walkthrough" id="walkthrough"></a>

```
-Walkthrough [<SwitchParameter>]
   
   Required?                    false
   Position?                    2
   Default value                False
   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).


# Invoke-BluGenieWalkThrough

﻿Invoke-BluGenieWalkThrough

### SYNOPSIS <a href="#synopsis" id="synopsis"></a>

Invoke-BluGenieWalkThrough is an interactive help menu system

### SYNTAX <a href="#syntax" id="syntax"></a>

```
Invoke-BluGenieWalkThrough [[-Name] <String>] [[-RemoveRun]] [[-Walkthrough]] [<CommonParameters>]
```

### DESCRIPTION <a href="#description" id="description"></a>

Invoke-BluGenieWalkThrough is an interactive help menu system. It will convert the static PowerShell help into an interactive menu system -Added with a few new tag descriptors for (Parameter and Examples). This information will structure the help information displayed and also help with bulding the dynamic help menu

```
Example
 PARAMETER <parameter>
    Description:  Desciption of the Parameter
    Notes:        Any Notes
    Alias:        Alias if any
    ValidateSet:  ValidationSet Array Items

 EXAMPLE
    Command:     Your command string
    Description: Decription of what the command above will do
    Notes:       Any Notes
```

### EXAMPLES <a href="#examples" id="examples"></a>

#### EXAMPLE 1 <a href="#example-1" id="example-1"></a>

```
-Help
```

```
Description: If Help / WalkThrough is setup as a parameter, this script will be called to setup the Dynamic Help Menu if not the normal Get-Help will be called with the -Full parameter
Notes: Snippet to add to your script function (Read the #region WalkThrough (Dynamic Help)) as part of this script.  Make sure to add both the snippet and the parameter to your function.
```

#### EXAMPLE 2 <a href="#example-2" id="example-2"></a>

```
-WalkThrough
```

```
Description: If Help / WalkThrough is setup as a parameter, this script will be called to setup the Dynamic Help Menu if not the normal Get-Help will be called with the -Full parameter
Notes: Snippet to add to your script function (Read the #region WalkThrough (Dynamic Help)) as part of this script.  Make sure to add both the snippet and the parameter to your function.
```

#### EXAMPLE 3 <a href="#example-3" id="example-3"></a>

```
```

```
Description: This will start the Dynamic help menu system on the called function
Notes:
```

#### EXAMPLE 4 <a href="#example-4" id="example-4"></a>

```
-RemoveRun
```

```
Description: This will start the Dynamic help menu system on the called function
Notes: The menu system item ( Run ) will be disabled
```

### PARAMETERS <a href="#parameters" id="parameters"></a>

#### Name <a href="#name" id="name"></a>

```
-Name <String>
   Description:  Specify the Function name to help build a Dynamic Help menu for
   Notes:  
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    1
   Default value                
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### RemoveRun <a href="#removerun" id="removerun"></a>

```
-RemoveRun [<SwitchParameter>]
   Description:  This will remove the Run menu item and command from the Help menu
   Notes:  
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    2
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### Walkthrough <a href="#walkthrough" id="walkthrough"></a>

```
-Walkthrough [<SwitchParameter>]
   Description:  Start the dynamic help menu system to help walk through the current command and all of the parameters
   Notes:  
   Alias: Help
   ValidateSet:
   
   Required?                    false
   Position?                    3
   Default value                False
   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).


# Invoke-BluGenieWipe

﻿

### Invoke-BluGenieWipe <a href="#invoke-blugeniewipe" id="invoke-blugeniewipe"></a>

### SYNOPSIS <a href="#synopsis" id="synopsis"></a>

Invoke-BluGenieWipe is an add-on to reset all set options in the BluGenie Console

### SYNTAX <a href="#syntax" id="syntax"></a>

```
Invoke-BluGenieWipe [-Walkthrough] [<CommonParameters>]
```

### DESCRIPTION <a href="#description" id="description"></a>

Invoke-BluGenieWipe is an add-on to reset all set options in the BluGenie Console

### EXAMPLES <a href="#examples" id="examples"></a>

#### EXAMPLE 1 <a href="#example-1" id="example-1"></a>

```
Command: Invoke-BluGenieWipe
```

```
Description: Reset all parameters in the BluGenie Console
Notes: Parameters
       * Systems
       * Range
       * Commands
       * ParallelCommands
       * PostCommands
       * JSONJob
       * ThreadCount
       * JobID
       * Debug
       * JobTimeOut
       * Trap
```

#### EXAMPLE 2 <a href="#example-2" id="example-2"></a>

```
Command: Invoke-BluGenieWipe -Help
```

```
Description: Call Help Information
Notes: If Help / WalkThrough is setup as a parameter, this script will be called to setup the Dynamic Help Menu if not the normal
       Get-Help will be called with the -Full parameter
```

#### EXAMPLE 3 <a href="#example-3" id="example-3"></a>

```
Command: Invoke-BluGenieWipe -WalkThrough
```

```
Description: Call Help Information [2]
Notes: If Help / WalkThrough is setup as a parameter, this script will be called to setup the Dynamic Help Menu if not the normal
       Get-Help will be called with the -Full parameter
```

### PARAMETERS <a href="#parameters" id="parameters"></a>

#### Walkthrough <a href="#walkthrough" id="walkthrough"></a>

```
-Walkthrough [<SwitchParameter>]
   Description:  Start the dynamic help menu system to help walk through the current command and all of the parameters
   Notes:
   Alias: Help
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   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).


# Invoke-BluGenieYara

﻿

### Invoke-BluGenieYara <a href="#invoke-blugenieyara" id="invoke-blugenieyara"></a>

### SYNOPSIS <a href="#synopsis" id="synopsis"></a>

Yara Scanner

### SYNTAX <a href="#syntax" id="syntax"></a>

```
Invoke-BluGenieYara [[-ItemToScan] <String[]>] [-Rules <String>] [-RulesSource <String[]>] [-CompiledRules] [-ToolPath <String>] [-Count] [-Tag <String>] [-Identifier <String>] [-Negate] [-PrintTags] [-PrintMeta] 
[-MaxStringsPerRule <Int32>] [-PrintStrings] [-PrintStats] [-PrintNamespace] [-Threads <Int32>] [-PrintStringLength <Int32>] [-MaxRules <Int32>] [-Timeout <Int32>] [-Recurse] [-FastScan] [-StasckSize <Int32>] 
[-FailOnWarnings] [-NoWarnings] [-Version] [-CommandHelp] [-ClearGarbageCollecting] [-UseCache] [-CachePath <String>] [-RemoveCache] [-DBName <String>] [-DBPath <String>] [-UpdateDB] [-ForceDBUpdate] 
[-NewDBTable] [-Walkthrough] [-ReturnObject] [-OutUnEscapedJSON] [-OutYaml] [-FormatView <String>] [<CommonParameters>]
```

### DESCRIPTION <a href="#description" id="description"></a>

Invoke-BluGenieYara is a wrapper around the YARA tool. The Yara tools is designed to help malware researchers identify and classify malware samples. It’s been called the pattern-matching Swiss Army knife for security researchers (and everyone else).

### EXAMPLES <a href="#examples" id="examples"></a>

#### EXAMPLE 1 <a href="#example-1" id="example-1"></a>

```
Command: Invoke-BluGenieYara -ItemToScan $env:TEMP
```

```
Description: Scan all files under $env:temp directory with any .Yar rules found
Notes:
```

#### EXAMPLE 2 <a href="#example-2" id="example-2"></a>

```
Command: Invoke-BluGenieYara -ItemToScan $env:TEMP -Recurse
```

```
Description: Recursive Directory Scan
Notes:
```

#### EXAMPLE 3 <a href="#example-3" id="example-3"></a>

```
Command: Invoke-BGYara -ItemToScan $env:TEMP -Recurse
```

```
Description: Use the (BG) Alias to run Yara
Notes:
```

#### EXAMPLE 4 <a href="#example-4" id="example-4"></a>

```
Command: Yara -ItemToScan $env:TEMP -Recurse
```

```
Description: Use the Short Name Alias to run Yara scan
Notes:
```

#### EXAMPLE 5 <a href="#example-5" id="example-5"></a>

```
Command: Invoke-BluGenieYara -ItemToScan "$env:TEMP\AttachmentArchive.msg" -Rules 'Attachment'
```

```
Description: Run all Rules with Attachment in the name against the .MSG file in the temp direcotry
Notes:
```

#### EXAMPLE 6 <a href="#example-6" id="example-6"></a>

```
Command: Invoke-BluGenieYara -ItemToScan "$env:TEMP\AttachmentArchive.msg" -Rules 'Attachment' -RulesSource Z:\YaraRules\Email
```

```
Description: Run all Rules with Attachment in the name from a specific source, against the .MSG file in the temp direcotry
Notes:
```

#### EXAMPLE 7 <a href="#example-7" id="example-7"></a>

```
Command: Invoke-BluGenieYara -ItemToScan $(Get-Process -Name notepad++ | Select-Object -ExpandProperty ID)
```

```
Description: Scan a PID
Notes:
```

#### EXAMPLE 8 <a href="#example-8" id="example-8"></a>

```
Command: Invoke-BluGenieYara -ItemToScan 'AllPids'
```

```
Description: Scan all PID using all found .Yar rules
Notes:
```

#### EXAMPLE 9 <a href="#example-9" id="example-9"></a>

```
Command: Invoke-BluGenieYara -ItemToScan $env:TEMP -UseCache
```

```
Description: Cache found objects to disk to not over tax Memory resources
Notes: By default the Cache location is %SystemDrive%\Windows\Temp
```

#### EXAMPLE 10 <a href="#example-10" id="example-10"></a>

```
Command: Invoke-BluGenieYara -ItemToScan $env:TEMP -UseCache -RemoveCache
```

```
Description: Remove Cache data
Notes: By default the Cache information is removed right before the data is returned to the caller
```

#### EXAMPLE 11 <a href="#example-11" id="example-11"></a>

```
Command: Invoke-BluGenieYara -ItemToScan $env:TEMP -UseCache -CachePath $Env:Temp
```

```
Description: Change the Cache path to the current users Temp directory
Notes: By default the Cache location is %SystemDrive%\Windows\Temp
```

#### EXAMPLE 12 <a href="#example-12" id="example-12"></a>

```
Command: Invoke-BluGenieYara -ItemToScan $env:TEMP -UseCache -ClearGarbageCollecting
```

```
Description: Scan large directories and limit the memory used to track data
Notes:
```

#### EXAMPLE 13 <a href="#example-13" id="example-13"></a>

```
Command: Invoke-BluGenieYara -Help
```

```
Description: Call Help Information
Notes: If Help / WalkThrough is setup as a parameter, this script will be called to setup the Dynamic Help Menu if not the normal
Get-Help will be called with the -Full parameter
```

#### EXAMPLE 14 <a href="#example-14" id="example-14"></a>

```
Command: Invoke-BluGenieYara -WalkThrough
```

```
Description: Call Help Information [2]
Notes: If Help / WalkThrough is setup as a parameter, this script will be called to setup the Dynamic Help Menu if not the normal
Get-Help will be called with the -Full parameter
```

#### EXAMPLE 15 <a href="#example-15" id="example-15"></a>

```
Command: Invoke-BluGenieYara -ItemToScan $env:TEMP -OutUnEscapedJSON
```

```
Description: Return a detailed function report in an UnEscaped JSON format
Notes:  The OutUnEscapedJSON is used to Beautify the JSON return and not Escape any Characters.  Normal return data is a Hash Table.
```

#### EXAMPLE 16 <a href="#example-16" id="example-16"></a>

```
Command: Invoke-BluGenieYara -ItemToScan $env:TEMP -OutYaml
```

```
Description: Return a detailed function report in YAML format
Notes:  The OutUnEscapedJSON is used to Beautify the JSON return and not Escape any Characters.  Normal return data is a Hash Table.
```

#### EXAMPLE 17 <a href="#example-17" id="example-17"></a>

```
Command: Invoke-BluGenieYara -ItemToScan $env:TEMP -ReturnObject
```

```
Description: Return Output as a Object
Notes:  The ReturnObject is used to return a PowerShell Object.  Normal return data is a Hash Table.
       This parameter is also used with the FormatView
```

#### EXAMPLE 18 <a href="#example-18" id="example-18"></a>

```
Command: Invoke-BluGenieYara -ItemToScan $env:TEMP -ReturnObject -FormatView Yaml
```

```
Description: Output PSObject information in Yaml format
Notes:  Current formats supported by default are ('Table','Custom','CustomModified','None','JSON','OutUnEscapedJSON','CSV', 'Yaml')
       Default is set to (None) and normal PSObject.
```

### PARAMETERS <a href="#parameters" id="parameters"></a>

#### ItemToScan <a href="#itemtoscan" id="itemtoscan"></a>

```
-ItemToScan <String[]>
   Description: File(s), Directory, PID, or AllPids Scan
   Notes:  If ItemToScan = "AllPids", every PID on the System will be scanned
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    1
   Default value                
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### Rules <a href="#rules" id="rules"></a>

```
-Rules <String>
   Description: .Yar Rule Names (Filtered with RegEx)
   Notes:  Default is set to '.*'
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                .*
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### RulesSource <a href="#rulessource" id="rulessource"></a>

```
-RulesSource <String[]>
   Description: Source path to for your .Yar Rule files
   Notes:  Default Search Paths
   			* $Env:SystemDrive\Windows\Temp
   			* %Current Script Directory%
   			* $Env:Temp
   			This scan is not recursive.
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### CompiledRules <a href="#compiledrules" id="compiledrules"></a>

```
-CompiledRules [<SwitchParameter>]
   Description: Load compiled rules
   Notes:
   Alias: 'CR'
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### ToolPath <a href="#toolpath" id="toolpath"></a>

```
-ToolPath <String>
   Description:
   Notes: Default is set to  $('{0}\Windows\Temp' -f $env:SystemDrive)
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                $(Join-Path -Path $ToolsDirectory -ChildPath 'Yara')
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### Count <a href="#count" id="count"></a>

```
-Count [<SwitchParameter>]
   Description: Print only number of matches
   Notes:
   Alias: 'C'
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### Tag <a href="#tag" id="tag"></a>

```
-Tag <String>
   Description: Print only rules tagged as TAG
   Notes: tag=TAG
   Alias: 'T'
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### Identifier <a href="#identifier" id="identifier"></a>

```
-Identifier <String>
   Description: Print only rules named IDENTIFIER
   Notes: identifier=IDENTIFIER
   Alias: 'I'
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### Negate <a href="#negate" id="negate"></a>

```
-Negate [<SwitchParameter>]
   Description: Print only not satisfied rules (negate)
   Notes:
   Alias: 'N'
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### PrintTags <a href="#printtags" id="printtags"></a>

```
-PrintTags [<SwitchParameter>]
   Description: Print tags
   Notes:
   Alias: 'PT'
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### PrintMeta <a href="#printmeta" id="printmeta"></a>

```
-PrintMeta [<SwitchParameter>]
   Description: Print metadata
   Notes:
   Alias: 'PM'
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### MaxStringsPerRule <a href="#maxstringsperrule" id="maxstringsperrule"></a>

```
-MaxStringsPerRule <Int32>
   Description: Set maximum number of strings per rule (default=10000)
   Notes:
   Alias: 'MS'
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                0
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### PrintStrings <a href="#printstrings" id="printstrings"></a>

```
-PrintStrings [<SwitchParameter>]
   Description: Print matching strings
   Notes:
   Alias: 'PS'
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### PrintStats <a href="#printstats" id="printstats"></a>

```
-PrintStats [<SwitchParameter>]
   Description: Print rules' statistics
   Notes:
   Alias: 'PA'
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### PrintNamespace <a href="#printnamespace" id="printnamespace"></a>

```
-PrintNamespace [<SwitchParameter>]
   Description: Print rules' namespace
   Notes:
   Alias: 'PN'
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### Threads <a href="#threads" id="threads"></a>

```
-Threads <Int32>
   Description: Use the specified NUMBER of threads to scan a directory
   Notes:
   Alias: 'TR'
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                0
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### PrintStringLength <a href="#printstringlength" id="printstringlength"></a>

```
-PrintStringLength <Int32>
   Description: Print length of matched strings
   Notes:
   Alias: 'PL'
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                0
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### MaxRules <a href="#maxrules" id="maxrules"></a>

```
-MaxRules <Int32>
   Description: Abort scanning after matching a NUMBER of rules
   Notes:
   Alias: 'M'
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                0
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### Timeout <a href="#timeout" id="timeout"></a>

```
-Timeout <Int32>
   Description: Abort scanning after the given number of SECONDS
   Notes:
   Alias: 'TO'
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                0
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### Recurse <a href="#recurse" id="recurse"></a>

```
-Recurse [<SwitchParameter>]
   Description: Recursively search directories (follows symlinks)
   Notes:
   Alias: 'R'
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### FastScan <a href="#fastscan" id="fastscan"></a>

```
-FastScan [<SwitchParameter>]
   Description: Fast matching mode
   Notes:
   Alias: 'F'
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### StasckSize <a href="#stascksize" id="stascksize"></a>

```
-StasckSize <Int32>
   Description: Set maximum stack size (default=16384)
   Notes:
   Alias: 'SS'
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                0
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### FailOnWarnings <a href="#failonwarnings" id="failonwarnings"></a>

```
-FailOnWarnings [<SwitchParameter>]
   Description: Fail on warnings
   Notes:
   Alias: 'FW'
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### NoWarnings <a href="#nowarnings" id="nowarnings"></a>

```
-NoWarnings [<SwitchParameter>]
   Description: Disable warnings
   Notes:
   Alias: 'NW'
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### Version <a href="#version" id="version"></a>

```
-Version [<SwitchParameter>]
   Description: Show version information
   Notes:
   Alias: 'V'
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### CommandHelp <a href="#commandhelp" id="commandhelp"></a>

```
-CommandHelp [<SwitchParameter>]
   Description: Show the Yara command help
   Notes:
   Alias: 'CH'
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### ClearGarbageCollecting <a href="#cleargarbagecollecting" id="cleargarbagecollecting"></a>

```
-ClearGarbageCollecting [<SwitchParameter>]
   Description: Garbage Collection in Powershell to Speed up Scripts and help lower memory consumption
   Notes: This is enabled by default.  To disable use -ClearGarbageCollecting:$False
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### UseCache <a href="#usecache" id="usecache"></a>

```
-UseCache [<SwitchParameter>]
   Description: Cache found objects to disk.  This is to not over tax Memory resources with found artifacts
   Notes: By default the Cache location is %SystemDrive%\Windows\Temp
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### CachePath <a href="#cachepath" id="cachepath"></a>

```
-CachePath <String>
   Description: Path to store the Cache information
   Notes: By default the Cache location is %SystemDrive%\Windows\Temp
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                $('{0}\Windows\Temp\{1}.log' -f $env:SystemDrive, $(New-BluGenieUID))
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### RemoveCache <a href="#removecache" id="removecache"></a>

```
-RemoveCache [<SwitchParameter>]
   Description: Remove Cache data on completion
   Notes: Cache information is removed right before the data is returned to the calling process
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### DBName <a href="#dbname" id="dbname"></a>

```
-DBName <String>
   Description: Database Name (Without extention)
   Notes: The default name is set to 'BluGenie'
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                BluGenie
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### DBPath <a href="#dbpath" id="dbpath"></a>

```
-DBPath <String>
   Description: Path to either Save or Update the Database
   Notes: The default path is $('{0}\BluGenie' -f $env:ProgramFiles)  Example: C:\Program Files\BluGenie
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                $('{0}\BluGenie' -f $env:ProgramFiles)
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### UpdateDB <a href="#updatedb" id="updatedb"></a>

```
-UpdateDB [<SwitchParameter>]
   Description: Save return data to the Sqlite Database
   Notes:
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### ForceDBUpdate <a href="#forcedbupdate" id="forcedbupdate"></a>

```
-ForceDBUpdate [<SwitchParameter>]
   Description: Force an update of the return data to the Sqlite Database
   Notes: By default only new items are saved.  The primary key is ( FullName )
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### NewDBTable <a href="#newdbtable" id="newdbtable"></a>

```
-NewDBTable [<SwitchParameter>]
   Description: Delete and Recreate the Database Table
   Notes:
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### Walkthrough <a href="#walkthrough" id="walkthrough"></a>

```
-Walkthrough [<SwitchParameter>]
   Description:  Start the dynamic help menu system to help walk through the current command and all of the parameters
   Notes:
   Alias: Help
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### ReturnObject <a href="#returnobject" id="returnobject"></a>

```
-ReturnObject [<SwitchParameter>]
   Description: Return information as an Object
   Notes: By default the data is returned as a Hash Table
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### OutUnEscapedJSON <a href="#outunescapedjson" id="outunescapedjson"></a>

```
-OutUnEscapedJSON [<SwitchParameter>]
   Description: Remove UnEsacped Char from the JSON information.
   Notes: This will beautify json and clean up the formatting.
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### OutYaml <a href="#outyaml" id="outyaml"></a>

```
-OutYaml [<SwitchParameter>]
   Description: Return detailed information in Yaml Format
   Notes: Only supported in Posh 3.0 and above
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### FormatView <a href="#formatview" id="formatview"></a>

```
-FormatView <String>
   Description: Automatically format the Return Object
   Notes: Yaml is only supported in Posh 3.0 and above
   Alias:
   ValidateSet: 'Table','Custom','CustomModified','None','JSON','OutUnEscapedJSON','CSV', 'Yaml'
   
   Required?                    false
   Position?                    named
   Default value                None
   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).


# Invoke-PSipcalc

﻿


# Invoke-PSnmap

﻿

### Invoke-PSnmap <a href="#invoke-psnmap" id="invoke-psnmap"></a>

### SYNOPSIS <a href="#synopsis" id="synopsis"></a>

Linux nmap for PowerShell (almost). Ping sweeps and scans a network for specified open ports. Can also perform DNS lookups. Port connect timeout is custom (milliseconds). Multithreaded with a default of 32 concurrent threads.

If you get over about 20-25,000 threads, you'll experience significant slowdowns towards the end, so avoiding that is recommended. This number may vary in your environment.

Svendsen Tech. Copyright (c) 2015, Joakim Borger Svendsen. All rights reserved.

MIT license. <http://www.opensource.org/licenses/MIT>

Homepage/documentation: <https://www.powershelladmin.com/wiki/Port_scan_subnets_with_PSnmap_for_PowerShell>

### SYNTAX <a href="#syntax" id="syntax"></a>

```
Invoke-PSnmap [-ComputerName] <String[]> [[-Port] <Int32[]>] [-Dns] [-ScanOnPingFail] [[-ThrottleLimit] <Int32>] [-HideProgress] [[-Timeout] <Int32>] [[-PortConnectTimeoutMs] <Int32>] [-NoSummary] [-AddService] 
[<CommonParameters>]
```

### DESCRIPTION <a href="#description" id="description"></a>

### EXAMPLES <a href="#examples" id="examples"></a>

#### EXAMPLE 1 <a href="#example-1" id="example-1"></a>

```
$x = PSnmap -Cn 192.168.1.1/24, synology, ubuntuvm, vista64esxi -Port 22,3389,80,443 -Dns #-Verbose
```

```
PS C:\> $x | Where { $_.Ping } | Format-Table -AutoSize

ComputerName  IP/DNS                                    Ping Port 22 Port 80 Port 443 Port 3389
------------  ------                                    ---- ------- ------- -------- ---------
192.168.1.1   router.asus.com                           True   False    True    False     False
192.168.1.17  Chromecast                                True   False   False    False     False
192.168.1.25  android-xxxxxxxxxxxxxxx                   True   False   False    False     False
192.168.1.31  ubuntuvm                                  True    True    True    False     False
192.168.1.77                                            True    True   False    False     False
192.168.1.84  synology                                  True    True    True     True     False
192.168.1.122 desktop                                   True   False   False    False     False
192.168.1.124 PC58271                                   True   False    True     True      True
192.168.1.127 stuepc                                    True   False   False    False      True
192.168.1.131 2008r2esxi                                True   False    True    False      True
192.168.1.132 2008r2esxi2                               True   False    True    False      True
192.168.1.133 win7esxi                                  True   False   False    False      True
192.168.1.151 SERVER2008                                True   False   False    False      True
192.168.1.166                                           True    True    True     True     False
192.168.1.195                                           True   False   False    False     False
192.168.1.231 HPENVY4500                                True   False    True     True     False
192.168.1.234 elitebook                                 True    True   False    False      True
192.168.1.245 server2012                                True   False    True    False      True
192.168.1.253 vista64esxi                               True   False   False    False      True
synology      192.168.1.84                              True    True    True     True     False
ubuntuvm      192.168.1.31                              True    True    True    False     False
vista64esxi   fa70::614c:f45a:72f9:46a5%3;192.168.1.253 True   False   False    False      True
```

#### EXAMPLE 2 <a href="#example-2" id="example-2"></a>

```
$x = PSnmap -Cn 192.168.1.1/24, synology, ubuntuvm, vista64esxi -Port 22,3389,80,443 -Dns #-Verbose
```

```
PS C:\> $x | Where { $_.'Port 22' } | Format-Table -AutoSize

ComputerName  IP/DNS       Ping Port 22 Port 80 Port 443 Port 3389
------------  ------       ---- ------- ------- -------- ---------
192.168.1.31  ubuntuvm     True    True    True    False     False
192.168.1.77               True    True   False    False     False
192.168.1.84  synology     True    True    True     True     False
192.168.1.166              True    True    True     True     False
192.168.1.234 elitebook    True    True   False    False      True
synology      192.168.1.84 True    True    True     True     False
ubuntuvm      192.168.1.31 True    True    True    False     False
```

### PARAMETERS <a href="#parameters" id="parameters"></a>

#### ComputerName <a href="#computername" id="computername"></a>

```
-ComputerName <String[]>
   List of CIDR, IP/subnet, IP or DNS/NetBIOS name.
   
   Required?                    true
   Position?                    1
   Default value                
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### Port <a href="#port" id="port"></a>

```
-Port <Int32[]>
   Port or ports to check.
   
   Required?                    false
   Position?                    2
   Default value                
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### Dns <a href="#dns" id="dns"></a>

```
-Dns [<SwitchParameter>]
   Perform a DNS lookup.
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### ScanOnPingFail <a href="#scanonpingfail" id="scanonpingfail"></a>

```
-ScanOnPingFail [<SwitchParameter>]
   Scan all hosts even if ping fails.
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### ThrottleLimit <a href="#throttlelimit" id="throttlelimit"></a>

```
-ThrottleLimit <Int32>
   Number of concurrent threads. Default: 32.
   
   Required?                    false
   Position?                    3
   Default value                32
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### HideProgress <a href="#hideprogress" id="hideprogress"></a>

```
-HideProgress [<SwitchParameter>]
   Do not display progress with Write-Progress
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### Timeout <a href="#timeout" id="timeout"></a>

```
-Timeout <Int32>
   Timeout in seconds for each thread. Causes problems if too short. 30 as a default seems OK.
   
   Required?                    false
   Position?                    4
   Default value                30
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### PortConnectTimeoutMs <a href="#portconnecttimeoutms" id="portconnecttimeoutms"></a>

```
-PortConnectTimeoutMs <Int32>
   Port connect timeout in milliseconds. 5 seconds as a default for LAN scans. Increase for mobile/slow WAN.
   
   Required?                    false
   Position?                    5
   Default value                5000
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### NoSummary <a href="#nosummary" id="nosummary"></a>

```
-NoSummary [<SwitchParameter>]
   Do not display the end summary with start and end time, using Write-Host.
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### AddService <a href="#addservice" id="addservice"></a>

```
-AddService [<SwitchParameter>]
   Add IANA service for the port number in parentheses.
   
   Required?                    false
   Position?                    named
   Default value                False
   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).


# Invoke-SQLiteBulkCopy

﻿

### Invoke-SQLiteBulkCopy <a href="#invoke-sqlitebulkcopy" id="invoke-sqlitebulkcopy"></a>

### SYNOPSIS <a href="#synopsis" id="synopsis"></a>

Use a SQLite transaction to quickly insert data

### SYNTAX <a href="#syntax" id="syntax"></a>

```
Invoke-SQLiteBulkCopy [-DataTable] <DataTable> [-DataSource] <String> [-Table] <String> [[-ConflictClause] <String>] [-NotifyAfter <Int32>] [-Force] [-QueryTimeout <Int32>] [-WhatIf] [-Confirm] 
[<CommonParameters>]

Invoke-SQLiteBulkCopy [-DataTable] <DataTable> [-SQLiteConnection] <SQLiteConnection> [-Table] <String> [[-ConflictClause] <String>] [-NotifyAfter <Int32>] [-Force] [-QueryTimeout <Int32>] [-WhatIf] [-Confirm] 
[<CommonParameters>]
```

### DESCRIPTION <a href="#description" id="description"></a>

Use a SQLite transaction to quickly insert data. If we run into any errors, we roll back the transaction.

The data source is not limited to SQL Server; any data source can be used, as long as the data can be loaded to a DataTable instance or read with a IDataReader instance.

### EXAMPLES <a href="#examples" id="examples"></a>

#### EXAMPLE 1 <a href="#example-1" id="example-1"></a>

```
#
```

```
#Create a table
   Invoke-SqliteQuery -DataSource "C:\Names.SQLite" -Query "CREATE TABLE NAMES (
       fullname VARCHAR(20) PRIMARY KEY,
       surname TEXT,
       givenname TEXT,
       BirthDate DATETIME)" 

#Build up some fake data to bulk insert, convert it to a datatable
   $DataTable = 1..10000 | %{
       [pscustomobject]@{
           fullname = "Name $_"
           surname = "Name"
           givenname = "$_"
           BirthDate = (Get-Date).Adddays(-$_)
       }
   } | Out-DataTable

#Copy the data in within a single transaction (SQLite is faster this way)
   Invoke-SQLiteBulkCopy -DataTable $DataTable -DataSource $Database -Table Names -NotifyAfter 1000 -ConflictClause Ignore -Verbose
```

### PARAMETERS <a href="#parameters" id="parameters"></a>

#### DataTable <a href="#datatable" id="datatable"></a>

```
-DataTable <DataTable>
   
   Required?                    true
   Position?                    1
   Default value                
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### DataSource <a href="#datasource" id="datasource"></a>

```
-DataSource <String>
   Path to one ore more SQLite data sources to query
   
   Required?                    true
   Position?                    2
   Default value                
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### SQLiteConnection <a href="#sqliteconnection" id="sqliteconnection"></a>

```
-SQLiteConnection <SQLiteConnection>
   An existing SQLiteConnection to use.  We do not close this connection upon completed query.
   
   Required?                    true
   Position?                    2
   Default value                
   Accept pipeline input?       true (ByPropertyName)
   Accept wildcard characters?  false
```

#### Table <a href="#table" id="table"></a>

```
-Table <String>
   
   Required?                    true
   Position?                    3
   Default value                
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### ConflictClause <a href="#conflictclause" id="conflictclause"></a>

```
-ConflictClause <String>
   The conflict clause to use in case a conflict occurs during insert. Valid values: Rollback, Abort, Fail, Ignore, Replace
   
   See https://www.sqlite.org/lang_conflict.html for more details
   
   Required?                    false
   Position?                    4
   Default value                
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### NotifyAfter <a href="#notifyafter" id="notifyafter"></a>

```
-NotifyAfter <Int32>
   The number of rows to fire the notification event after transferring.  0 means don't notify.  Notifications hit the verbose stream (use -verbose to see them)
   
   Required?                    false
   Position?                    named
   Default value                0
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### Force <a href="#force" id="force"></a>

```
-Force [<SwitchParameter>]
   If specified, skip the confirm prompt
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### QueryTimeout <a href="#querytimeout" id="querytimeout"></a>

```
-QueryTimeout <Int32>
   Specifies the number of seconds before the queries time out.
   
   Required?                    false
   Position?                    named
   Default value                600
   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).


# Invoke-SqliteQuery

﻿

### Invoke-SqliteQuery <a href="#invoke-sqlitequery" id="invoke-sqlitequery"></a>

### SYNOPSIS <a href="#synopsis" id="synopsis"></a>

Runs a SQL script against a SQLite database.

### SYNTAX <a href="#syntax" id="syntax"></a>

```
Invoke-SqliteQuery [-DataSource] <String[]> [-Query] <String> [[-QueryTimeout] <Int32>] [[-As] <String>] [[-SqlParameters] <IDictionary>] [[-AppendDataSource]] [[-AssemblyPath] <String>] [<CommonParameters>]

Invoke-SqliteQuery [-DataSource] <String[]> [-InputFile] <String> [[-QueryTimeout] <Int32>] [[-As] <String>] [[-SqlParameters] <IDictionary>] [[-AppendDataSource]] [[-AssemblyPath] <String>] [<CommonParameters>]

Invoke-SqliteQuery [-Query] <String> [[-QueryTimeout] <Int32>] [[-As] <String>] [[-SqlParameters] <IDictionary>] [[-AppendDataSource]] [[-AssemblyPath] <String>] [-SQLiteConnection] <SQLiteConnection> 
[<CommonParameters>]

Invoke-SqliteQuery [-InputFile] <String> [[-QueryTimeout] <Int32>] [[-As] <String>] [[-SqlParameters] <IDictionary>] [[-AppendDataSource]] [[-AssemblyPath] <String>] [-SQLiteConnection] <SQLiteConnection> 
[<CommonParameters>]
```

### DESCRIPTION <a href="#description" id="description"></a>

Runs a SQL script against a SQLite database.

Paramaterized queries are supported.

Help details below borrowed from Invoke-Sqlcmd, may be inaccurate here.

### EXAMPLES <a href="#examples" id="examples"></a>

#### EXAMPLE 1 <a href="#example-1" id="example-1"></a>

```
#
```

```
# First, we create a database and a table
   $Query = "CREATE TABLE NAMES (fullname VARCHAR(20) PRIMARY KEY, surname TEXT, givenname TEXT, BirthDate DATETIME)"
   $Database = "C:\Names.SQLite"

   Invoke-SqliteQuery -Query $Query -DataSource $Database

# We have a database, and a table, let's view the table info
   Invoke-SqliteQuery -DataSource $Database -Query "PRAGMA table_info(NAMES)"
       
       cid name      type         notnull dflt_value pk
       --- ----      ----         ------- ---------- --
         0 fullname  VARCHAR(20)        0             1
         1 surname   TEXT               0             0
         2 givenname TEXT               0             0
         3 BirthDate DATETIME           0             0

# Insert some data, use parameters for the fullname and birthdate
   $query = "INSERT INTO NAMES (fullname, surname, givenname, birthdate) VALUES (@full, 'Cookie', 'Monster', @BD)"
   Invoke-SqliteQuery -DataSource $Database -Query $query -SqlParameters @{
       full = "Cookie Monster"
       BD   = (get-date).addyears(-3)
   }

# Check to see if we inserted the data:
   Invoke-SqliteQuery -DataSource $Database -Query "SELECT * FROM NAMES"
       
       fullname       surname givenname BirthDate            
       --------       ------- --------- ---------            
       Cookie Monster Cookie  Monster   3/14/2012 12:27:13 PM

# Insert another entry with too many characters in the fullname.
# Illustrate that SQLite data types may be misleading:
   Invoke-SqliteQuery -DataSource $Database -Query $query -SqlParameters @{
       full = "Cookie Monster$('!' * 20)"
       BD   = (get-date).addyears(-3)
   }

   Invoke-SqliteQuery -DataSource $Database -Query "SELECT * FROM NAMES"

       fullname              surname givenname BirthDate            
       --------              ------- --------- ---------            
       Cookie Monster        Cookie  Monster   3/14/2012 12:27:13 PM
       Cookie Monster![...]! Cookie  Monster   3/14/2012 12:29:32 PM
```

#### EXAMPLE 2 <a href="#example-2" id="example-2"></a>

```
Invoke-SqliteQuery -DataSource C:\NAMES.SQLite -Query "SELECT * FROM NAMES" -AppendDataSource
```

```
fullname       surname givenname BirthDate             Database       
   --------       ------- --------- ---------             --------       
   Cookie Monster Cookie  Monster   3/14/2012 12:55:55 PM C:\Names.SQLite

# Append Database column (path) to each result
```

#### EXAMPLE 3 <a href="#example-3" id="example-3"></a>

```
Invoke-SqliteQuery -DataSource C:\Names.SQLite -InputFile C:\Query.sql
```

```
# Invoke SQL from an input file
```

#### EXAMPLE 4 <a href="#example-4" id="example-4"></a>

```
$Connection = New-SQLiteConnection -DataSource :MEMORY:
```

```
Invoke-SqliteQuery -SQLiteConnection $Connection -Query "CREATE TABLE OrdersToNames (OrderID INT PRIMARY KEY, fullname TEXT);"
Invoke-SqliteQuery -SQLiteConnection $Connection -Query "INSERT INTO OrdersToNames (OrderID, fullname) VALUES (1,'Cookie Monster');"
Invoke-SqliteQuery -SQLiteConnection $Connection -Query "PRAGMA STATS"

# Execute a query against an existing SQLiteConnection
   # Create a connection to a SQLite data source in memory
   # Create a table in the memory based datasource, verify it exists with PRAGMA STATS
```

#### EXAMPLE 5 <a href="#example-5" id="example-5"></a>

```
$Connection = New-SQLiteConnection -DataSource :MEMORY:
```

```
Invoke-SqliteQuery -SQLiteConnection $Connection -Query "CREATE TABLE OrdersToNames (OrderID INT PRIMARY KEY, fullname TEXT);"
Invoke-SqliteQuery -SQLiteConnection $Connection -Query "INSERT INTO OrdersToNames (OrderID, fullname) VALUES (1,'Cookie Monster');"
Invoke-SqliteQuery -SQLiteConnection $Connection -Query "INSERT INTO OrdersToNames (OrderID) VALUES (2);"

# We now have two entries, only one has a fullname.  Despite this, the following command returns both; very un-PowerShell!
Invoke-SqliteQuery -SQLiteConnection $Connection -Query "SELECT * FROM OrdersToNames" -As DataRow | Where{$_.fullname}

   OrderID fullname      
   ------- --------      
         1 Cookie Monster
         2               

# Using the default -As PSObject, we can get PowerShell-esque behavior:
Invoke-SqliteQuery -SQLiteConnection $Connection -Query "SELECT * FROM OrdersToNames" | Where{$_.fullname}

   OrderID fullname                                                                         
   ------- --------                                                                         
         1 Cookie Monster
```

### PARAMETERS <a href="#parameters" id="parameters"></a>

#### DataSource <a href="#datasource" id="datasource"></a>

```
-DataSource <String[]>
   Path to one or more SQLite data sources to query
   
   Required?                    true
   Position?                    1
   Default value                
   Accept pipeline input?       true (ByValue, ByPropertyName)
   Accept wildcard characters?  false
```

#### Query <a href="#query" id="query"></a>

```
-Query <String>
   Specifies a query to be run.
   
   Required?                    true
   Position?                    2
   Default value                
   Accept pipeline input?       true (ByPropertyName)
   Accept wildcard characters?  false
```

#### InputFile <a href="#inputfile" id="inputfile"></a>

```
-InputFile <String>
   Specifies a file to be used as the query input to Invoke-SqliteQuery. Specify the full path to the file.
   
   Required?                    true
   Position?                    2
   Default value                
   Accept pipeline input?       true (ByPropertyName)
   Accept wildcard characters?  false
```

#### QueryTimeout <a href="#querytimeout" id="querytimeout"></a>

```
-QueryTimeout <Int32>
   Specifies the number of seconds before the queries time out.
   
   Required?                    false
   Position?                    3
   Default value                600
   Accept pipeline input?       true (ByPropertyName)
   Accept wildcard characters?  false
```

#### As <a href="#as" id="as"></a>

```
-As <String>
   Specifies output type - DataSet, DataTable, array of DataRow, PSObject or Single Value 
   
   PSObject output introduces overhead but adds flexibility for working with results: http://powershell.org/wp/forums/topic/dealing-with-dbnull/
   
   Required?                    false
   Position?                    4
   Default value                PSObject
   Accept pipeline input?       true (ByPropertyName)
   Accept wildcard characters?  false
```

#### SqlParameters <a href="#sqlparameters" id="sqlparameters"></a>

```
-SqlParameters <IDictionary>
   Hashtable of parameters for parameterized SQL queries.  http://blog.codinghorror.com/give-me-parameterized-sql-or-give-me-death/
   
   Limited support for conversions to SQLite friendly formats is supported.
       For example, if you pass in a .NET DateTime, we convert it to a string that SQLite will recognize as a datetime
   
   Example:
       -Query "SELECT ServerName FROM tblServerInfo WHERE ServerName LIKE @ServerName"
       -SqlParameters @{"ServerName = "c-is-hyperv-1"}
   
   Required?                    false
   Position?                    5
   Default value                
   Accept pipeline input?       true (ByPropertyName)
   Accept wildcard characters?  false
```

#### AppendDataSource <a href="#appenddatasource" id="appenddatasource"></a>

```
-AppendDataSource [<SwitchParameter>]
   If specified, append the SQLite data source path to PSObject or DataRow output
   
   Required?                    false
   Position?                    6
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### AssemblyPath <a href="#assemblypath" id="assemblypath"></a>

```
-AssemblyPath <String>
   
   Required?                    false
   Position?                    7
   Default value                $SQLiteAssembly
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### SQLiteConnection <a href="#sqliteconnection" id="sqliteconnection"></a>

```
-SQLiteConnection <SQLiteConnection>
   An existing SQLiteConnection to use.  We do not close this connection upon completed query.
   
   Required?                    true
   Position?                    8
   Default value                
   Accept pipeline input?       true (ByPropertyName)
   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).


# Invoke-WalkThrough

﻿

### Invoke-BluGenieWalkThrough <a href="#invoke-blugeniewalkthrough" id="invoke-blugeniewalkthrough"></a>

### SYNOPSIS <a href="#synopsis" id="synopsis"></a>

Invoke-BluGenieWalkThrough is an interactive help menu system

### SYNTAX <a href="#syntax" id="syntax"></a>

```
Invoke-BluGenieWalkThrough [[-Name] <String>] [[-RemoveRun]] [[-Walkthrough]] [<CommonParameters>]
```

### DESCRIPTION <a href="#description" id="description"></a>

Invoke-BluGenieWalkThrough is an interactive help menu system. It will convert the static PowerShell help into an interactive menu system -Added with a few new tag descriptors for (Parameter and Examples). This information will structure the help information displayed and also help with bulding the dynamic help menu

```
Example
 PARAMETER <parameter>
    Description:  Desciption of the Parameter
    Notes:        Any Notes
    Alias:        Alias if any
    ValidateSet:  ValidationSet Array Items

 EXAMPLE
    Command:     Your command string
    Description: Decription of what the command above will do
    Notes:       Any Notes
```

### EXAMPLES <a href="#examples" id="examples"></a>

#### EXAMPLE 1 <a href="#example-1" id="example-1"></a>

```
-Help
```

```
Description: If Help / WalkThrough is setup as a parameter, this script will be called to setup the Dynamic Help Menu if not the normal Get-Help will be called with the -Full parameter
Notes: Snippet to add to your script function (Read the #region WalkThrough (Dynamic Help)) as part of this script.  Make sure to add both the snippet and the parameter to your function.
```

#### EXAMPLE 2 <a href="#example-2" id="example-2"></a>

```
-WalkThrough
```

```
Description: If Help / WalkThrough is setup as a parameter, this script will be called to setup the Dynamic Help Menu if not the normal Get-Help will be called with the -Full parameter
Notes: Snippet to add to your script function (Read the #region WalkThrough (Dynamic Help)) as part of this script.  Make sure to add both the snippet and the parameter to your function.
```

#### EXAMPLE 3 <a href="#example-3" id="example-3"></a>

```
```

```
Description: This will start the Dynamic help menu system on the called function
Notes:
```

#### EXAMPLE 4 <a href="#example-4" id="example-4"></a>

```
-RemoveRun
```

```
Description: This will start the Dynamic help menu system on the called function
Notes: The menu system item ( Run ) will be disabled
```

### PARAMETERS <a href="#parameters" id="parameters"></a>

#### Name <a href="#name" id="name"></a>

```
-Name <String>
   Description:  Specify the Function name to help build a Dynamic Help menu for
   Notes:  
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    1
   Default value                
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### RemoveRun <a href="#removerun" id="removerun"></a>

```
-RemoveRun [<SwitchParameter>]
   Description:  This will remove the Run menu item and command from the Help menu
   Notes:  
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    2
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### Walkthrough <a href="#walkthrough" id="walkthrough"></a>

```
-Walkthrough [<SwitchParameter>]
   Description:  Start the dynamic help menu system to help walk through the current command and all of the parameters
   Notes:  
   Alias: Help
   ValidateSet:
   
   Required?                    false
   Position?                    3
   Default value                False
   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).


# Join-BluGenieObjects

﻿

### Join-BluGenieObjects <a href="#join-blugenieobjects" id="join-blugenieobjects"></a>

### SYNOPSIS <a href="#synopsis" id="synopsis"></a>

Combine 2 Object into 1 Super Object

### SYNTAX <a href="#syntax" id="syntax"></a>

```
Join-BluGenieObjects [-Object1] <Object> [-Object2] <Object> [<CommonParameters>]
```

### DESCRIPTION <a href="#description" id="description"></a>

Combine 2 Object into 1 Super Object

### EXAMPLES <a href="#examples" id="examples"></a>

#### EXAMPLE 1 <a href="#example-1" id="example-1"></a>

```
$SuperObject = Join-BluGenieObjects -Object1 $FirstObject -Object2 $SecondObject
```

```
This will create a new object called $SuperObject and both Object1 and Object2 are now combined into it
```

### PARAMETERS <a href="#parameters" id="parameters"></a>

#### Object1 <a href="#object1" id="object1"></a>

```
-Object1 <Object>
   The Source for the first Object
   
   <Type>String<Type>
   
   Required?                    true
   Position?                    2
   Default value                
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### Object2 <a href="#object2" id="object2"></a>

```
-Object2 <Object>
   The Source for the second Object
   
   <Type>String<Type>
   
   Required?                    true
   Position?                    3
   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).


# New-BluGenieCommand

﻿

### New-BluGenieCommand <a href="#new-blugeniecommand" id="new-blugeniecommand"></a>

### SYNOPSIS <a href="#synopsis" id="synopsis"></a>

New-BluGenieCommand will take a list of arguments and build out a command line string for \[ScriptBlock] execution

### SYNTAX <a href="#syntax" id="syntax"></a>

```
New-BluGenieCommand [[-Name] <String>] [[-BoundParameters] <Object>] [[-Walkthrough]] [<CommonParameters>]
```

### DESCRIPTION <a href="#description" id="description"></a>

New-BluGenieCommand will take a list of arguments and build out a command line string for \[ScriptBlock] execution

The advantage of this script is to take arguments from the parent functions $PSBoundParameters and use them to execute nested cmdlets

### EXAMPLES <a href="#examples" id="examples"></a>

#### EXAMPLE 1 <a href="#example-1" id="example-1"></a>

```
$Source = "$ScriptDirectory\Tools\SysinternalsSuite"
```

```
$Destination = "C:\Source"
$Container = $true
$Recurse = $false
$Force = $false

$ArrParamList = [PSCustomObject]@{
   'Path' = $Source
   'Destination' = $Destination
   'Filter' = $Filter
   'Container' = $Container
   'Include' = $Include
   'Exclude' = $Exclude
   'Recurse' = $Recurse
   'Force' = $Force
}

New-BluGenieCommand -Name 'Copy-Item' -BoundParameters $ArrParamList -ErrorAction SilentlyContinue

$NewCommand.Invoke()

This will dynamically build out the Copy-Item string from the variables defined (normally $PSBoundParameters from the parent script)
and invoke the command.
```

### PARAMETERS <a href="#parameters" id="parameters"></a>

#### Name <a href="#name" id="name"></a>

```
-Name <String>
   The name of the command [cmdlet] you're building the string for.
   
   <Type>String<Type>
   
   Required?                    false
   Position?                    1
   Default value                
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### BoundParameters <a href="#boundparameters" id="boundparameters"></a>

```
-BoundParameters <Object>
   [PSCustomObject] with all the parameters needed to build the new cmdlet / command
   
   <Type>String<Type>
   
   Required?                    false
   Position?                    2
   Default value                
   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?                    3
   Default value                False
   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).


# New-BluGenieHelpMenu

﻿New-BluGenieHelpMenu

### SYNOPSIS <a href="#synopsis" id="synopsis"></a>

New-BluGenieHelpMenu is a Dynamic Console menu system creator for any CmdLet that has a valid Help header

### SYNTAX <a href="#syntax" id="syntax"></a>

```
New-BluGenieHelpMenu [-Command] <String> [[-Console]] [[-Walkthrough]] [<CommonParameters>]
```

### DESCRIPTION <a href="#description" id="description"></a>

### EXAMPLES <a href="#examples" id="examples"></a>

#### EXAMPLE 1 <a href="#example-1" id="example-1"></a>

```
New-BluGenieHelpMenu -Command Get-HashInfo
```

```
This will parse the Get-HashInfo help information and display a dynamic console menu system
```

#### EXAMPLE 2 <a href="#example-2" id="example-2"></a>

```
New-BluGenieHelpMenu -Command Get-HashInfo -Console
```

```
This will parse the Get-HashInfo help information and display a dynamic console menu system.
The Run command is removed and a BluGenie Console sample script is created as well.
```

#### EXAMPLE 3 <a href="#example-3" id="example-3"></a>

```
New-BluGenieHelpMenu -Help
```

```
This will display the dynamic console menu for this command
```

### PARAMETERS <a href="#parameters" id="parameters"></a>

#### Command <a href="#command" id="command"></a>

```
-Command <String>
   Select which Command to buld the menu for
   
   <Type>ValidateSet<Type>
   <ValidateSet>Add-FirewallRule,Disable-FirewallRule,Enable-AllFirewallRules,Get-ProcessList,Set-RemoteDesktopProcess,Enable-FirewallRule,Disable-AllFirewallRules,Set-FirewallStatus,Get-SystemInfo,Remove-Fi
   rewallRule,Update-FirewallProfileStatus,Get-ChildItemList,Manage-ProcessHash,Get-LiteralPath,Get-FirewallRules,Set-FirewallGPOStatus,Get-HashInfo,Invoke-NetStat,Get-Registry,Get-ServiceList,Get-SchTaskInf
   o,Update-Sysinternals,Get-Signature,Get-COMObjectInfo,Get-LoadedRegHives,Invoke-LoadAllProfileHives,Invoke-UnLoadAllProfileHives,Get-MRUActivityView,Get-ADMachineInfo,Get-RegistryProcessTracking,Set-Prefe
   tch,Get-AuditProcessTracking,Set-AuditProcessPol,Get-WindowsUpdates,Get-AutoRuns,Get-RegSnapshot,Get-FileSnapshot,Build-Command,Send-Item,Install-Harvester,Expand-ArchivePS2,Install-SysMon,Systems,Paralle
   lCommands,PostCommands,ThreadCount,Range,Json,Wipe,Settings,Resolve-BgDnsName,Ping,Connect-ToSystem,Connect,SetTrapping,Invoke-PSQuery,PSQuery,Invoke-Process,Run,Enable-WinRMoverWMI,Enable-WinRM<ValidateS
   et>
   
   Required?                    true
   Position?                    2
   Default value                
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### Console <a href="#console" id="console"></a>

```
-Console [<SwitchParameter>]
   Specify if this is an internal BluGenie call.  Remove the Run command and build out a BluGenie Console sample command
   
   <Type>SwitchParameter<Type>
   
   Required?                    false
   Position?                    3
   Default value                True
   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?                    4
   Default value                False
   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).


# New-BluGenieService

﻿

### New-BluGenieService <a href="#new-blugenieservice" id="new-blugenieservice"></a>

### SYNOPSIS <a href="#synopsis" id="synopsis"></a>

Create a New Windows Service called BluGenie

### SYNTAX <a href="#syntax" id="syntax"></a>

```
New-BluGenieService [-Force] [-Walkthrough] [-ReturnObject] [-OutUnEscapedJSON] [-OutYaml] [[-FormatView] <String>] [<CommonParameters>]
```

### DESCRIPTION <a href="#description" id="description"></a>

Create a New Windows Service called BluGenie

Service binary resides in the Module Directory

Once started 3 directories will be created. \~ .\Logs \~ .\Jobs \~ .\Processing

Log Information \~ All verbose logging is captured to the Windows Event Log under the Application Log. \~ The source is named ( BGService )

Polling Period and Performance \~ Polling period is set to 60 seconds. A scan for a BluGenie JSON Job file will be queried in the .\Jobs directory. Once found the actions are processed \~ Be default the service is set to run at the lowest CPU Prioirty

### EXAMPLES <a href="#examples" id="examples"></a>

#### EXAMPLE 1 <a href="#example-1" id="example-1"></a>

```
Command: New-BluGenieService
```

```
Description: Create a New Windows Service called BluGenie
Notes:
```

#### EXAMPLE 2 <a href="#example-2" id="example-2"></a>

```
Command: New-BluGenieService
```

```
Description: Use the Alias to create a New Windows Service called BluGenie
Notes:
```

#### EXAMPLE 3 <a href="#example-3" id="example-3"></a>

```
Command: New-BluGenieService -Help
```

```
Description: Call Help Information
Notes: If Help / WalkThrough is setup as a parameter, this script will be called to setup the Dynamic Help Menu if not the normal Get-Help will be called with the -Full parameter
```

#### EXAMPLE 4 <a href="#example-4" id="example-4"></a>

```
Command: New-BluGenieService -WalkThrough
```

```
Description: Call Help Information [2]
Notes: If Help / WalkThrough is setup as a parameter, this script will be called to setup the Dynamic Help Menu if not the normal Get-Help will be called with the -Full parameter
```

#### EXAMPLE 5 <a href="#example-5" id="example-5"></a>

```
-OutUnEscapedJSON
```

```
Description: Return a detailed function report in an UnEscaped JSON format
Notes:  The OutUnEscapedJSON is used to Beautify the JSON return and not Escape any Characters.  Normal return data is a Hash Table.
```

#### EXAMPLE 6 <a href="#example-6" id="example-6"></a>

```
-OutYaml
```

```
Description: Return a detailed function report in YAML format
Notes:  The OutUnEscapedJSON is used to Beautify the JSON return and not Escape any Characters.  Normal return data is a Hash Table.
```

#### EXAMPLE 7 <a href="#example-7" id="example-7"></a>

```
-ReturnObject
```

```
Description: Return Output as a Object
Notes:  The ReturnObject is used to return a PowerShell Object.  Normal return data is a Hash Table.
       This parameter is also used with the ForMat
```

#### EXAMPLE 8 <a href="#example-8" id="example-8"></a>

```
Command: New-BluGenieService -ReturnObject -FormatView Yaml
```

```
Description: Output PSObject information in Yaml format
Notes:  Current formats supported by default are ('Table','Custom','CustomModified','None','JSON','OutUnEscapedJSON','CSV', 'Yaml')
       Default is set to (None) and normal PSObject.
```

### PARAMETERS <a href="#parameters" id="parameters"></a>

#### Force <a href="#force" id="force"></a>

```
-Force [<SwitchParameter>]
   Description: Force the Service to be created even if the Service already exists
   Notes:
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### Walkthrough <a href="#walkthrough" id="walkthrough"></a>

```
-Walkthrough [<SwitchParameter>]
   Description:  Start the dynamic help menu system to help walk through the current command and all of the parameters
   Notes:
   Alias: Help
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### ReturnObject <a href="#returnobject" id="returnobject"></a>

```
-ReturnObject [<SwitchParameter>]
   Description: Return information as an Object
   Notes: By default the data is returned as a Hash Table
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### OutUnEscapedJSON <a href="#outunescapedjson" id="outunescapedjson"></a>

```
-OutUnEscapedJSON [<SwitchParameter>]
   Description: Remove UnEsacped Char from the JSON information.
   Notes: This will beautify json and clean up the formatting.
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### OutYaml <a href="#outyaml" id="outyaml"></a>

```
-OutYaml [<SwitchParameter>]
   Description: Return detailed information in Yaml Format
   Notes: Only supported in Posh 3.0 and above
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### FormatView <a href="#formatview" id="formatview"></a>

```
-FormatView <String>
   Description: Automatically format the Return Object
   Notes: Yaml is only supported in Posh 3.0 and above
   Alias:
   ValidateSet: 'Table','Custom','CustomModified','None','JSON','OutUnEscapedJSON','CSV', 'Yaml'
   
   Required?                    false
   Position?                    1
   Default value                None
   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).


# New-BluGenieSessionInfo

﻿

### New-BluGenieSessionInfo <a href="#new-blugeniesessioninfo" id="new-blugeniesessioninfo"></a>

### SYNOPSIS <a href="#synopsis" id="synopsis"></a>

New-BluGenieSessionInfo will query a Current Session Environment varialbe and build Posh variables back into new PSSession Runspaces

### SYNTAX <a href="#syntax" id="syntax"></a>

```
New-BluGenieSessionInfo [[-EnvVarName] <String>] [-Walkthrough] [<CommonParameters>]
```

### DESCRIPTION <a href="#description" id="description"></a>

New-BluGenieSessionInfo will query a Current Session Environment varialbe and build Posh variables back into new PSSession Runspaces

### EXAMPLES <a href="#examples" id="examples"></a>

#### EXAMPLE 1 <a href="#example-1" id="example-1"></a>

```
```

```
Description:
Notes:
```

#### EXAMPLE 2 <a href="#example-2" id="example-2"></a>

```
```

```
Description:
Notes:
```

#### EXAMPLE 3 <a href="#example-3" id="example-3"></a>

```
Command: New-BluGenieSessionInfo -Help
```

```
Description: Call Help Information
Notes: If Help / WalkThrough is setup as a parameter, this script will be called to setup the Dynamic Help Menu if not the normal Get-Help will be called with the -Full parameter
```

#### EXAMPLE 4 <a href="#example-4" id="example-4"></a>

```
Command: New-BluGenieSessionInfo -WalkThrough
```

```
Description: Call Help Information [2]
Notes: If Help / WalkThrough is setup as a parameter, this script will be called to setup the Dynamic Help Menu if not the normal Get-Help will be called with the -Full parameter
```

### PARAMETERS <a href="#parameters" id="parameters"></a>

#### EnvVarName <a href="#envvarname" id="envvarname"></a>

```
-EnvVarName <String>
   Description: Name of the Current Systems Envinroment Variable
   Notes: The default is 'BGSessionInfo'
   Alias:
   ValidateSet:
   
   Required?                    false
   Position?                    1
   Default value                BGSessionInfo
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### Walkthrough <a href="#walkthrough" id="walkthrough"></a>

```
-Walkthrough [<SwitchParameter>]
   Description:  Start the dynamic help menu system to help walk through the current command and all of the parameters
   Notes:  
   Alias: Help
   ValidateSet:
   
   Required?                    false
   Position?                    named
   Default value                False
   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).


# New-BluGenieTimeStamp

﻿


# New-BluGenieUID

﻿

### New-BluGenieUID <a href="#new-blugenieuid" id="new-blugenieuid"></a>

### SYNOPSIS <a href="#synopsis" id="synopsis"></a>

Create a New UID

### SYNTAX <a href="#syntax" id="syntax"></a>

```
New-BluGenieUID [[-NumPerSet] <Int32>] [[-NumOfSets] <Int32>] [[-Delimiter] <String>] [[-Walkthrough]] [<CommonParameters>]
```

### DESCRIPTION <a href="#description" id="description"></a>

Create a New UID

You can specify any delimter, how many char per set, and how many sets

* Sample Output -
* 086
* 1-3-8
* 80.46
* 4\_6\_1\_6
* 6366*8083*1176\*1972
* 85221-93304-78886-45563-09558

### EXAMPLES <a href="#examples" id="examples"></a>

#### EXAMPLE 1 <a href="#example-1" id="example-1"></a>

```
New-BluGenieUID
```

```
This will output a random UID based on the default settings
5 Chars per set, with 5 Sets of Chars, and the delimiter is ( - )

54555-13241-72594-03233-72927
```

#### EXAMPLE 2 <a href="#example-2" id="example-2"></a>

```
New-BluGenieUID -NumbPerSet 2 -NumbOfSets 4 -Delimiter '.'
```

```
This will output a random UID based on the default settings
2 Chars per set, with 4 Sets of Chars, and the delimiter is ( . )

61.01.26.89
```

### PARAMETERS <a href="#parameters" id="parameters"></a>

#### NumPerSet <a href="#numperset" id="numperset"></a>

```
-NumPerSet <Int32>
   Option = "1"    - 1 Char Per Set    #
   Option = "2"    - 2 Char's Per Set  ##
   Option = "3"    - 3 Char's Per Set  ###
   Option = "4"    - 4 Char's Per Set  ####
   Option = "5"    - 5 Char's Per Set  #####
   
   <Type>ValidateSet<Type>
   <ValidateSet>1,2,3,4,5<ValidateSet>
   
   Required?                    false
   Position?                    1
   Default value                5
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### NumOfSets <a href="#numofsets" id="numofsets"></a>

```
-NumOfSets <Int32>
   Option = "1"    - 1 Set    *
   Option = "2"    - 2 Sets   *-*
   Option = "3"    - 3 Sets   *-*-*
   Option = "4"    - 4 Sets   *-*-*-*
   Option = "5"    - 5 Sets   *-*-*-*-*
   
   <Type>ValidateSet<Type>
   <ValidateSet>1,2,3,4,5<ValidateSet>
   
   Required?                    false
   Position?                    2
   Default value                5
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### Delimiter <a href="#delimiter" id="delimiter"></a>

```
-Delimiter <String>
   Delimiter used to seperate each char set
   
   Default = '-'
   
   <Type>String<Type>
   
   Required?                    false
   Position?                    3
   Default value                -
   Accept pipeline input?       false
   Accept wildcard characters?  false
```

#### Walkthrough <a href="#walkthrough" id="walkthrough"></a>

```
-Walkthrough [<SwitchParameter>]
   
   Required?                    false
   Position?                    2
   Default value                False
   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).


# New-SQLiteConnection

﻿

### New-SQLiteConnection <a href="#new-sqliteconnection" id="new-sqliteconnection"></a>

### SYNOPSIS <a href="#synopsis" id="synopsis"></a>

Creates a SQLiteConnection to a SQLite data source

### SYNTAX <a href="#syntax" id="syntax"></a>

```
New-SQLiteConnection [-DataSource] <String[]> [[-Password] <SecureString>] [[-ReadOnly]] [[-Open] <Boolean>] [<CommonParameters>]
```

### DESCRIPTION <a href="#description" id="description"></a>

Creates a SQLiteConnection to a SQLite data source

### EXAMPLES <a href="#examples" id="examples"></a>

#### EXAMPLE 1 <a href="#example-1" id="example-1"></a>

```
$Connection = New-SQLiteConnection -DataSource C:\NAMES.SQLite
```

```
Invoke-SQLiteQuery -SQLiteConnection $Connection -query $Query

# Connect to C:\NAMES.SQLite, invoke a query against it
```

#### EXAMPLE 2 <a href="#example-2" id="example-2"></a>

```
$Connection = New-SQLiteConnection -DataSource :MEMORY:
```

```
Invoke-SqliteQuery -SQLiteConnection $Connection -Query "CREATE TABLE OrdersToNames (OrderID INT PRIMARY KEY, fullname TEXT);"
Invoke-SqliteQuery -SQLiteConnection $Connection -Query "INSERT INTO OrdersToNames (OrderID, fullname) VALUES (1,'Cookie Monster');"
Invoke-SqliteQuery -SQLiteConnection $Connection -Query "PRAGMA STATS"

# Create a connection to a SQLite data source in memory
# Create a table in the memory based datasource, verify it exists with PRAGMA STATS

$Connection.Close()
$Connection.Open()
Invoke-SqliteQuery -SQLiteConnection $Connection -Query "PRAGMA STATS"

#Close the connection, open it back up, verify that the ephemeral data no longer exists
```

### PARAMETERS <a href="#parameters" id="parameters"></a>

#### DataSource <a href="#datasource" id="datasource"></a>

```
-DataSource <String[]>
   SQLite Data Source to connect to.
   
   Required?                    true
   Position?                    1
   Default value                
   Accept pipeline input?       true (ByValue, ByPropertyName)
   Accept wildcard characters?  false
```

#### Password <a href="#password" id="password"></a>

```
-Password <SecureString>
   Specifies A Secure String password to use in the SQLite connection string.
           
   SECURITY NOTE: If you use the -Debug switch, the connectionstring including plain text password will be sent to the debug stream.
   
   Required?                    false
   Position?                    3
   Default value                
   Accept pipeline input?       true (ByPropertyName)
   Accept wildcard characters?  false
```

#### ReadOnly <a href="#readonly" id="readonly"></a>

```
-ReadOnly [<SwitchParameter>]
   If specified, open SQLite data source as read only
   
   Required?                    false
   Position?                    4
   Default value                False
   Accept pipeline input?       true (ByPropertyName)
   Accept wildcard characters?  false
```

#### Open <a href="#open" id="open"></a>

```
-Open <Boolean>
   We open the connection by default.  You can use this parameter to create a connection without opening it.
   
   Required?                    false
   Position?                    5
   Default value                True
   Accept pipeline input?       true (ByPropertyName)
   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).




---

[Next Page](/llms-full.txt/1)

