As Built Report is a configuration document framework which uses Windows PowerShell and PScribo, to generate and build as built report documents in HTML, XML, Text & MS Word document formats.

As Built Report is an open source project developed primarily for IT professionals to allow them to easily produce ‘as built’ configuration documentation which is clear and consistent, across multiple IT vendors and technologies.

The framework allows users to easily run and generate reports against their IT environments, and provides contributors the ability to easily create new reports for any IT vendor and/or technology which supports Windows PowerShell and/or a RESTful API.

Features

As Built Report provides the following features;

  • Support for multiple document formats; HTML, XML, Text & DOC
  • Support for custom styling of reports; Cover Page, TOC, colours & fonts
  • Health checks which highlight configuration issues within the environment
  • Append time and date to reports
  • Deliver reports via email
PScribo PowerShell cmdlets

Components

As Built Report uses PScribo, which is an open source project for Windows PowerShell, which creates documents in standardised formats. PScribo provides a set of functions that makes it easy to create a document-like structure within PowerShell scripts, without having to be concerned with handling output formatting or supporting multiple output formats.

The other As Built Report components are as follows;

  • As Built Report Configuration – a JSON configuration file used to store information relating to Author’s name, Company information & SMTP mail server configuration. Individual configuration files can be saved and specified also.
  • Reports Configuration – the report configuration is a JSON file which stores information specific to the related report. It holds information such as the report name, version, and release status. The report configuration can also provide functionality such as configurable report options, health checks and granular information levels.
  • Reports Module – the report module is specific to each vendor and/or technology and is used to extract information from the specific environment. The report module will be written to utilise PowerShell modules or RESTful APIs which the vendor/technology provides.
  • Styles Script (.ps1) – the styles script sets the default layout, fonts, colours and sizes used within the report. Style scripts can be used to layout cover pages, table of contents and other unique tables or sections.

Getting Started

To start using As Built Report, you will need to do the following;

  1. Ensure you are running Windows PowerShell 5.1 or later
  2. Install any 3rd party PowerShell modules / cmdlets e.g. VMware PowerCLI, Cisco UCS PowerTool
  3. Install AsBuiltReport modules from the PowerShell Gallery;
    • To install the complete library of report modules;
      Install-Module -Name AsBuiltReport
    • To install individual report modules;
      Install-Module -Name AsBuiltReport.<Vendor>.<Product>

Parameters

PARAMETER Report

Specifies the type of report that will be generated.
This is a mandatory parameter.

PARAMETER Target

Specifies the IP/FQDN of the system to connect.
This is a mandatory parameter.

PARAMETER Credential

Specifies the stored credential of the target system.
This is a mandatory parameter.

PARAMETER Username

Specifies the username of the target system.
This is a mandatory parameter.

PARAMETER Password

Specifies the password of the target system.
This is a mandatory parameter.

PARAMETER Format

Specifies the output format of the report.
The supported output formats are Word, HTML, XML & Text.
Multiple output formats may be specified, separated by a comma.
This is an optional parameter.
If the parameter is not specified, the document format will default to Word.

PARAMETER Orientation

Sets the page orientation of the report to Portrait or Landscape.
This is an optional parameter.
If the parameter is not specified, page orientation will be set to Portrait.

PARAMETER StylePath

Specifies a custom document style .ps1 to be used for the report.
This is an optional parameter and does not have a default value.

PARAMETER OutputPath

Specifies the path to save the report.
This is a mandatory parameter.

PARAMETER AsBuiltConfigPath

Specifies the path to the As Built Report configuration file.
This is an optional parameter.
If the parameter is not specified the user will be prompted to provide the configuration information.

PARAMETER ReportConfigPath

Specifies the path to a report JSON configuration file.
This is an optional parameter.
If this parameter is not specified, a default report configuration JSON is copied to the specified user folder.

PARAMETER Timestamp

Specifies whether to append a timestamp string to the report filename.
This is an optional parameter.
By default, the timestamp string is not added to the report filename.

PARAMETER EnableHealthcheck

Highlights certain issues within the system report.
Some reports may not provide this functionality.
This is an optional parameter.
If the parameter is not specified, health checks are not enabled.

PARAMETER SendEmail

Sends report to specified recipients as email attachments.
This is an optional parameter.

Examples

Creates a VMware vSphere As Built Report in HTML & DOC formats. Appends timestamp to the filename. Highlights configuration issues within the report. Saves report to specified path.

New-AsBuiltReport -Report VMware.vSphere -Target 192.168.1.110 -Credential (Get-Credential) -Format HTML,Word -OutputPath 'C:\Reports\' -TimeStamp -EnableHealthcheck

Sample Report

Sample Report – VMware vSphere As Built Report