• Stars
    star
    760
  • Rank 57,529 (Top 2 %)
  • Language
    PowerShell
  • License
    MIT License
  • Created over 5 years ago
  • Updated 3 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

PSWriteHTML is PowerShell Module to generate beautiful HTML reports, pages, emails without any knowledge of HTML, CSS or JavaScript. To get started basics PowerShell knowledge is required.

PSWriteHTML - PowerShell Module

wakatime

PSWriteHTML is PowerShell Module to generate beautiful HTML reports, pages, emails without any knowledge of HTML, CSS or JavaScript. To get started basics PowerShell knowledge is required. PSWriteHTML is a fork of ReportHTML module. I've forked ReportHTML due to it being outdated and not maintained. I also wanted to address some problems it had and add more features. As it stands PSWriteHTML is a complete rewrite. Make sure to read blog posts provided to understand the concepts and how you can use PSWriteHTML for your own needs.

How to install

While you can take sources and use it from here, PSWriteHTML actually is composed of multiple other of my modules. To get it up and running you will need *PSSharedGoods, and PSSharedGoods will need Connectimo and PSWriteColor. While Connectimo or PSWriteColor aren't needed for PSWriteHTML, PSSharedGoods uses them for some of the commands and it will fail without them. You can get all that from sources but if you just want to use my modules you should use the Install-Module command. It's available in PowerShell 5.1. As an added bonus when I publish modules to PowerShellGallery I remove any junk, minimize modules to a single file which makes them faster to load and use. I really encourage you to use the module from PowerShellGallery and treat GitHub as a highly development version. Since version 0.0.61 when PSWriteHTML is published every dependency is baked into PSWriteHTML. That means you don't need to download any other modules unless you want to contribute to this project.

Installing

Install-Module -Name PSWriteHTML -AllowClobber -Force

Force and AllowClobber aren't necessary but they do skip errors in case some appear.

Updating

Update-Module -Name PSWriteHTML

That's it. Whenever there's a new version you simply run the command and you can enjoy it. Remember, that you may need to close, reopen the PowerShell session if you have already used the module before updating it.

The important thing is if something works for you on production, keep using it till you test the new version on a test computer. I do changes that may not be big, but big enough that auto-update will break your code. For example, small rename to a parameter and your code stops working! Be responsible!

Dependencies: PSSharedGoods, PSWriteColor and Connectimo are only used during development. When published to PSGallery / Releases it's a merged release without any dependencies.

Articles worth reading to understand use cases

Changelog

PSWriteHTML undergoes changes that hopefully will make it more versalite, consistent and better. Please make sure to read changes before updating, as we're undergoing some breaking changes from time to time. Full changelog can be found here.

Advantages over ReportHTML

  • complete rewrite
  • faster report building (from 20+ seconds to 0-2 seconds)
  • updated libraries
  • bunch of different, new features
  • easier building HTML

Credits

Matthew Quickenden (@lucidqdreams) - author of ReportHTML - without him this wouldn't be possible.

Projects using PSWriteHTML (to give you ideas of what you can do)

  • Statusimo is a PowerShell module that is able to generate a Status Page entirely from PowerShell.
  • Dashimo is a PowerShell module that makes generating Dashboards, nice looking HTML, a breeze.
  • Emailimo is a PowerShell module that makes writing nice looking HTML emails, easy!
  • Out-HTMLView is a PowerShell cross-platform command alternative to Out-GridView

Out-HTMLView

For colors, you can visit this online page.

3rd Party Libraries

PSWriteHTML uses some 3rd party libraries to deliver its functionality. It requires those and without them - this project would have a basic functionality. There are two ways to use it

  • With links to CSS/JS which makes code cleaner and easy to see what is happening
  • With code inline in HTML which makes HTML much bigger (default, but makes PSWriteHTML usage offline possible)

Below you can find 3rd party libraries being used.

More Repositories

1

GPOZaurr

Group Policy Eater is a PowerShell module that aims to gather information about Group Policies but also allows fixing issues that you may find in them.
PowerShell
772
star
2

PSWinReporting

This PowerShell Module has multiple functionalities, but one of the signature features of this module is the ability to parse Security logs on Domain Controllers providing easy to use access to AD Events.
PowerShell
689
star
3

Testimo

Testimo is a PowerShell module for running health checks for Active Directory against a bunch of different tests
PowerShell
496
star
4

PSTeams

PSTeams is a PowerShell Module working on Windows / Linux and Mac. It allows sending notifications to Microsoft Teams via WebHook Notifications. It's pretty flexible and provides a bunch of options. Initially, it only supported one sort of Team Cards but since version 2.X.X it supports Adaptive Cards, Hero Cards, List Cards, and Thumbnail Cards. All those new cards have their own cmdlets and the old version of creating Teams Cards stays as-is for compatibility reasons.
PowerShell
391
star
5

ADEssentials

PowerShell Active Directory helper functions to manage healthy Active Directory
PowerShell
372
star
6

PSWinDocumentation

PowerShell Module that creates Word/Excel/SQL documentation from Active Directory (AD), AWS, Office 365 and others. It's a work in progress!
PowerShell
241
star
7

PSWriteWord

PSWriteWord is powershell module to create Microsoft Word documents without Microsoft Word installed...
PowerShell
228
star
8

OfficeIMO

Fast and easy to use cross-platform .NET library that creates or modifies Microsoft Word (DocX) and later also Excel (XLSX) files without installing any software. Library is based on Open XML SDK
C#
228
star
9

PSSharedGoods

PSSharedGoods is little PowerShell Module that primary purpose is to be useful for multiple tasks, unrelated to each other. I've created this module as β€œa glue” between my other modules.
PowerShell
203
star
10

PSWritePDF

PowerShell Module to create, edit, split, merge PDF files on Windows / Linux and MacOS
PowerShell
172
star
11

PSWriteColor

Write-Color is a wrapper around Write-Host allowing you to create nice looking scripts, with colorized output.
PowerShell
151
star
12

Mailozaurr

Mailozaurr is a PowerShell module that aims to provide SMTP, POP3, IMAP and probably some other ways to interact with Email. Underneath it uses MimeKit and MailKit libraries written by Jeffrey Stedfast.
PowerShell
134
star
13

O365Essentials

A module that helps to manage some tasks on Office 365/Azure via undocumented API
PowerShell
120
star
14

PSWinDocumentation.AD

PowerShell module delivering a lot of Active Directory Forest/Domain information
PowerShell
117
star
15

Dashimo

Dashimo is very simple, intuitive PowerShell generated HTML file. That's right. A single, static HTML file that you can send to email or host on a website.
HTML
102
star
16

PSEventViewer

PSEventViewer (Get-Events) is really useful PowerShell wrapper around Get-WinEvent. One of the features you may be interested in is a simple way of getting β€œhidden” events data
PowerShell
98
star
17

PowerBGInfo

PowerBGInfo is a PowerShell module that is used to generate background information for Windows machines. It's a replacement for BGInfo that doesn't require installation and is much more flexible.
PowerShell
92
star
18

Statusimo

PowerShell Generated Status Page
PowerShell
91
star
19

PasswordSolution

This module allows the creation of password expiry emails for users, managers, administrators, and security according to defined templates. It's able to work with different rules allowing to fully customize who gets the email and when.
PowerShell
81
star
20

PSWriteOffice

Experimental PowerShell Module to create and edit Microsoft Word, Microsoft Excel, and Microsoft PowerPoint documents without having Microsoft Office installed.
PowerShell
78
star
21

PSAutomator

This PowerShell Module is new approach to onboarding, offboarding and business as usual processes running in companies infrastructure.
PowerShell
68
star
22

Emailimo

Small project that simplifies (according to me) sending colorful emails in PowerShell
PowerShell
63
star
23

PSParseHTML

PSParseHTML is PowerShell module that's main purpose is to be a helper module for PSWriteHTML. However it's functionality can be utilized in other projects, not related to PSWriteHTML, therefore it's available as a separate module.
PowerShell
62
star
24

PSWriteExcel

PSWriteExcel is very basic (at the moment) PowerShell module to create Microsoft Excel workbooks without Microsoft Excel installed.
PowerShell
60
star
25

ImagePlayground

ImagePlayground is a PowerShell module that provides a set of functions for image processing. Among other things it can create QRCodes, BarCodes, Charts, and do image processing that can help with daily tasks.
C#
58
star
26

PSBlackListChecker

Basic functionality of this module is ability to quickly verify if given IP address is on any of over 80 defined DNSBL lists. Below code will return results only if IP is on any of the lists. Advanced functionality of this module is ability to send reports to your email when things get bad on one of those 80 defined DNSBL listrs.
PowerShell
54
star
27

PSPGP

PSPGP is a PowerShell module that provides PGP functionality in PowerShell. It allows encrypting and decrypting files/folders and strings using PGP.
PowerShell
53
star
28

Transferetto

Small PowerShell module with FTPS/SFTP functionality
PowerShell
47
star
29

PSDiscord

Simple PowerShell module allowing to send messages to Discord Channel over webhooks
PowerShell
42
star
30

PowerShellManager

Little PowerShell module to extract PowerShell scripts that no longer exists on disk but were run and are still in Event Logs.
PowerShell
39
star
31

PSPasswordExpiryNotifications

Following PowerShell Module provides different approach to scheduling password notifications for expiring Active Directory based accounts. While most of the scripts require knowledge on HTML... this one is just one config file and a bit of tingling around with texts. Whether this is good or bad it's up to you to decide. I do plan to add an option to use external HTML template if there will be requests for that.
PowerShell
39
star
32

PSLansweeper

PowerShell Module to interact with Lansweeper Database
TSQL
30
star
33

VirusTotalAnalyzer

PowerShell module that intearacts with the VirusTotal service using a VirusTotal API (free)
PowerShell
26
star
34

PSWinDocumentation.O365HealthService

PSWinDocumentation.O365HealthService is a Powershell module that has a single goal of getting Office 365 Health Status
PowerShell
24
star
35

PSPublishModule

This module is a module builder helper that helps build PowerShell modules "Evotec way". It allows us to make sure our modules are built the same way every time making the process really easy to build and publish new versions.
PowerShell
24
star
36

CleanupMonster

This module provides an easy way to cleanup Active Directory from dead/old objects based on various criteria. It can also disable, move or delete objects. It can utilize Azure AD, Intune and Jamf to get additional information about objects before deleting them.
PowerShell
21
star
37

IISParser

IISParser is a PowerShell module to read IIS logs. It's very fast and easy to use. This module is based on IISLogParser library that does all the heavy lifting.
PowerShell
18
star
38

ConsoleMonster

ConsoleMonster is a PowerShell module to build cool GUI applications using Spectre Console and Terminal GUI.
PowerShell
14
star
39

O365Synchronizer

O365Synchronizer is a PowerShell module that allows you to synchronize users/contacts to user mailboxes contact list. It can also be used to synchronize users between tenants as contacts or guests.
PowerShell
13
star
40

Documentimo

This PowerShell module allows you to create Microsoft Word documents without Word being installed on the machine
PowerShell
13
star
41

DesktopManager

DesktopManager is a C# library and PowerShell module that allows to get and set wallpapers to given monitor.
PowerShell
12
star
42

Connectimo

PowerShell
11
star
43

PSWebToolbox

Simple PowerShell Module to get RSS feeds
PowerShell
11
star
44

PSOutlookProfile

Tool to manage (to some degree) Outlook Profile in PowerShell
PowerShell
10
star
45

UnifiStockTracker

UnifiStockTracker is a PowerShell module to get current stock on Europe, Brazil or USA Ubiquiti stores. Since I was constantly checking stock on Ubiquiti store waiting for specific products I decided to automate it.
PowerShell
10
star
46

SecurityPolicy

Provides a way to configure user rights assignments in local security policies using PowerShell without using secedit.exe.
PowerShell
10
star
47

PSPulsewayManager

Following is an easy to use Powershell module to control some of Pulseway Manager functionality. While Pulseway Manager offers GUI for enterprise deployments configuring some things from GUI is time consuming and not always easy.
PowerShell
9
star
48

PSWinDocumentation.O365

PowerShell
9
star
49

Excelimo

PowerShell
8
star
50

Graphimo

Small PowerShell module that helps with Microsoft GraphApi calls
PowerShell
7
star
51

PSFreshService

PowerShell Module to control FreshService via their api (https://freshservice.com/)
PowerShell
7
star
52

PSWinDocumentation.DNS

PowerShell
6
star
53

PSWinDocumentation.AzureHealthService

PowerShell module that helps providing Azure Health as PowerShell data.
PowerShell
5
star
54

PowerFederatedDirectory

PowerFederatedDirectory is a PowerShell module to interact with service https://www.federated.directory/. This module uses API exposed by Federated Directory and allows to Add, Get, Set and Remove users from Federated Directory.
PowerShell
5
star
55

LittleInfrastructureManager

PowerShell
5
star
56

PSMyPassword

This little PowerShell module provides a simple way to change password of any user account if you know it. This is very useful for situations when you can't login to RDP
PowerShell
5
star
57

DelegationModel

DelegationModel PowerShell module provides a simplified way to manage delegation in Active Directory. It's based on ADEssentials module and builts on top of it.
PowerShell
5
star
58

PSWinDocumentation.DHCP

PowerShell
4
star
59

LocalSecurityEditor

.NET library for managing local security policy (User Rights Assignment).
C#
4
star
60

AuditPolicy

AuditPolicy module aims to replace auditpol.exe to get or set Auditing Policies in Windows in more native PowerShell way
PowerShell
4
star
61

PSUnifi

PowerShell
4
star
62

PSFilePermissions

PowerShell
3
star
63

PSWinDocumentation.AWS

PSWinDocumentation.AWS is a PowerShell module that has a single goal of getting AWS Information
PowerShell
3
star
64

MarkdownPrince

PowerShell module that helps converting HTML files into Markdown
PowerShell
3
star
65

O365EmailAddressPolicy

O365EmailAddressPolicy PowerShell module replicates Exchange On-Premise functionality when it comes to Email Address Policy allowing cloud-only environments. Office 365 doesn't provide an option to autogenerate email addresses for users. This module enables the creation of email addresses for users based on their first name and last name.
PowerShell
3
star
66

evotecit.github.io

HTML
2
star
67

PSWordPress

PSWordPress is PowerShell Module that allows interacting with WordPress using PowerShell via Rest API. It allows to list, create, edit or remove posts, pages, etc.
PowerShell
2
star
68

PSManageService

Proof of concept for reading services (Get-Service -ComputerName -Name ) with runspaces (parallel processing)
PowerShell
2
star
69

PSWindowsUpdates

PowerShell
2
star
70

CDN

This is a support project for PSWriteHTML to be able to provide CDN functionality for its own code, or code modified for PSWriteHTML needs.
JavaScript
2
star
71

PSWinDocumentation.Azure

PowerShell
2
star
72

PSDevSummary

PowerShell
2
star
73

PSWriteHTML.Maps

PSWriteHTML.Maps is an example plugin/extension to PSWriteHTML that adds ability to display MAPS in PSWriteHTML reports. This is proof of concept and good example for adding a single functionality to PSWriteHTML.
PowerShell
2
star
74

TheDashboard

TheDashboard is a PowerShell module that generates nice HTML dashboard that's main goal is to integrate multiple reports created by other PowerShell modules. It's main goal is to provide a single place to see all the information you need. It's not meant to be a replacement for other modules.
PowerShell
2
star
75

PSWinDocumentation.ADConnect

1
star
76

PSWinDocumentation.Exchange

PowerShell
1
star
77

PowerInfoblox

PowerShell module to manage Infoblox
PowerShell
1
star