• Stars
    star
    110
  • Rank 316,770 (Top 7 %)
  • Language
    PowerShell
  • License
    MIT License
  • Created about 5 years ago
  • Updated about 2 years ago

Reviews

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

Repository Details

Let's you automate PowerShell Notebooks with PowerShell at the command line, exports to Excel and more. On the gallery

PowerShell Notebook

This module includes the function Invoke-PowerShellNotebook which enables you to run the cells inside the PowerShell notebook.

Continuous Integration Status


GitHub Actions
.github/workflows/ci.yml

Parameterizing a PowerShell Notebook

To parameterize your notebook designate a cell with the tag parameters. This is easy using Azure Data Studio.

Invoke-ExecuteNotebook looks for the parameters cell and treats this cell as defaults for the parameters passed in at execution time. Invoke-ExecuteNotebook will add a new cell tagged with injected-parameters with input parameters in order to overwrite the values in parameters. If no cell is tagged with parameters the injected cell will be inserted at the top of the notebook.

Executing a Notebook

You can execute the notebook in either a PowerShell script or at the command line.

Import-Module PowerShellNotebook

Invoke-ExecuteNotebook `
    -InputNotebook 'path/to/input.ipynb' `
    -OutputNotebook 'path/to/output.ipynb' `
    -Parameters @{ alpha=0.6; ratio=0.1 }

Execute via CLI

This executes the .\input.ipynb and outputs the results to the console.

Invoke-ExecuteNotebook .\input.ipynb
alpha = 1.2, ratio = 3.7, and alpha * ratio = 4.44

a = 5 and twice = 10

This executes the .\input.ipynb, injects the parameters, and outputs the results to the console.

Invoke-ExecuteNotebook .\input.ipynb -Parameters @{ alpha=0.6; ratio=0.1; a=10}
alpha = 0.6, ratio = 0.1, and alpha * ratio = 0.06

a = 10 and twice = 20

Save to a new notebook

You can execute the notebook and save it to a new notebook either locally, or as a a GitHub gist.

Note: You'll need to get a GitHub Public Access Token (PAT) and set $env:GITHUB_TOKEN to it.

Invoke-ExecuteNotebook .\input.ipynb gist://input_run1.ipynb -Parameters @{ alpha=0.6; ratio=0.1 }

More

Short video on Invoke-ExecuteNotebook

One of the uses of this Powershell tool is for parameterizing, and executing Jupyter Notebooks, Invoke-ExecuteNotebook. This opens up new opportunities for how notebooks can be used. For example you may have a financial report that you want to run with different values on the first or last day of a month using parameters makes this task easier.

Check out the Video Here

In a nutshell.

  1. Author your markdown with Chapter Start and End, then use fence blocks ``` to indic
  2. In Azure Data Studio PowerShell console, run Convert-MarkdownToNoteBook .\demo.md -watch
    • When you save the file, Convert-MarkdownToNoteBook detects and auto converts it to a PowerShell Notebook
  3. The converted Interactive PowerShell Notebook. Note: Convert-MarkdownToNoteBook also runs the code from the markdown file and includes the results.
  4. Thanks to Aaron Nelson and friends. Easily turn your SQL scripts into an interactive Jupyter Notebook with ConvertTo-SqlNoteBook. Plus, you can go the other way and turn an interactive Jupyter Notebook that has SQL in it, to a pure SQL script with Export-NotebookToSqlScript.

Convert a Markdown File to a PowerShell Notebook

Convert-MarkdownToNoteBook converts your markdown, recognizes fenced code blocks and converts it, and "runs" the PowerShell, including that snippets results in an executable document, a PowerShell notebook.

  • Share it with colleagues to better illustrate concepts
  • Develop workflows other can use, for diagnostics, testing, and more
Convert-MarkdownToNoteBook .\multiplePSLines.md

Exclude Results

Sometimes you don't want the results to be included in the converted PowerShell Notebook.

You can suppress evaluating the PowerShell code being run and the results being included by have the following comment as the first line in the fence block.

# Exclude Results

    ```ps
    # Exclude Results
    1+1
    ```

This will include the 1+1 in the interactive notebook, but will not evaluate the PowerShell statement and include it.

Available Functions

Function Synopsis
Add-NotebookCode Add-NotebookCode adds PowerShell code to a code block
Add-NotebookMarkdown Add-NotebookMarkdown adds Markdown to a markdown block
Add-NotebookMarkdown Add-NotebookMarkdown is intended to be used in a New-PSNotebook scriptblock
ConvertFrom-NotebookToMarkdown Take and exiting PowerShell Notebook and convert it to markdown
Convert-MarkdownToNoteBook Convert a markdown file to an interactive PowerShell Notebook
ConvertTo-SqlNoteBook Converts a .SQL file to a Notebook file
Export-NotebookToPowerShellScript Exports all code blocks from a PowerShell Notebook to a PowerShell script
Export-NotebookToSqlScript Exports all text & code blocks from a SQL Notebook to a .SQL file
Get-Notebook Get-Notebook reads the metadata of a single (or folder of) Jupyter Notebooks
Get-NotebookContent Get-NotebookContents reads the contents of a Jupyter Notebooks
Invoke-PowerShellNotebook Invoke-PowerShellNotebook executes all the PowerShell code blocks in a PowerShell Notebook.
New-PSNotebook Creates a new PowerShell Notebook that can be returned as text or saves as a ipynb file.
New-PSNotebookRunspace New-PSNotebookRunspace instantiates the PSNotebookRunspace
New-SqlNotebook Creates a new SQL Notebook that is saved as an .ipynb file

A PowerShell Notebook with Cells

Below is a PowerShell Notebook with three cells, each containing a PowerShell "script".

Notice the second cell has the results of running get-process | select company, name, handles -first 10

Automate the PowerShell Notebook

Bonus Points: Using the -AsExcel switch

Invoke-PowerShellNotebook sports an AsExcel switch. This lets you execute each cell in the PowerShell notebook and the function exports the results to a separate sheet in an Excel file.

You need to have the PowerShell ImportExcel module installed. The module is on the PowerShell Gallery, use Install-Module ImportExcel to install it on you machine.

A Little Language to Create PowerShell Notebooks

PowerShell Little Language

Create and Save a PowerShell Notebook

You can also create PowerShell Notebooks outside if Azure Data Studio with this module. Here is an example. It creates two code blocks and a markdown block, and saves it to a file C:\Temp\test.ipnyb.

New-PSNotebook -NoteBookName c:\temp\test.ipynb {
            Add-NotebookCode '$a=8'
            Add-NotebookCode '$a+12'
            Add-NotebookCode '$a+3'
            Add-NotebookMarkdown @'
## Math

- show addition
- show other
'@
}

Open the PowerShell Notebook in Azure Data Studio

You can open c:\temp\test.ipynb in Azure Data Studio and click Run Cells

image

Convert a demo.txt file to a PowerShell Notebook

If you've used start-demo.ps1 to setup PowerShell demos, this function will convert that format into a PowerShell Notebook.

ConvertTo-PowerShellNoteBook .\demo.txt .\demo.ipynb

Converts this to a PowerShell Notebook.

# Get first 10 process
ps | select -first 10

# Get first 10 services
gsv | select -first 10

# Create a function
function SayHello($p) {"Hello $p"}

# Use the function
SayHello World

Here it is in Azure Data Studio

SQL Notebooks

This module includes three functions for converting or creating SQL Notebooks which are compliant with the format used in Azure Data Studio.

For file conversion scenarios the ConvertTo-SqlNoteBook & Export-NotebookToSqlScript commands are available.

  1. ConvertTo-SqlNoteBook Will convert a .SQL file to a Notebook file (.ipynb)
  2. Export-NotebookToSqlScript Will export all text & code blocks from a SQL Notebook to a .SQL file
  3. The New-SqlNotebook Can creates a new SQL Notebook, and content can be added to that new SQL Notebook using the Add-NotebookMarkdown & Add-NotebookCode commands

Examples

The example below downloads the latest version of the BPCheck Jupyter Notebook from the TigerToolbox repository, converts it into a .SQL file (named BPCheck.SQL), and gets the content.

Export-NotebookToSqlScript "https://raw.githubusercontent.com/microsoft/tigertoolbox/master/BPCheck/BPCheck.ipynb"
Get-Content .\BPCheck.sql

The example below converts the AdventureWorksMultiStatementSBatch.sql file into a SQL Notebook.

ConvertTo-SQLNoteBook -InputFileName 'C:\temp\AdventureWorksMultiStatementSBatch.sql' -OutputNotebookName 'C:\temp\AdventureWorksMultiStatementSBatch.ipynb'

More Repositories

1

ImportExcel

PowerShell module to import/export Excel spreadsheets, without Excel
PowerShell
2,215
star
2

PowerShellAI

PowerShell AI module for OpenAI GPT-3 and DALL-E
PowerShell
689
star
3

Tiny-PowerShell-Projects

Learning PowerShell through test-driven development of games and puzzles
PowerShell
368
star
4

powershell-for-developers

PowerShell examples for the book "PowerShell for Developers"
C#
158
star
5

NameIT

PowerShell module for randomly generating data
PowerShell
131
star
6

PowerShellHumanizer

PowerShell Humanizer wraps Humanizer: meets all your .NET needs for manipulating and displaying strings, enums, dates, times, timespans, numbers and quantities
Jupyter Notebook
120
star
7

vscode-pandoc

Visual Studio Code extension lets you render markdown to pdf, word doc or html with pandoc
TypeScript
120
star
8

powershell-algorithms

Algorithms and data structures implemented in PowerShell with explanations and links to further readings - port of https://github.com/trekhleb/javascript-algorithms
PowerShell
117
star
9

PSharp

Productivity tool that makes PowerShell ISE better
PowerShell
110
star
10

powershell-notebooks

Get started learning PowerShell with PowerShell notebooks powered by .NET Interactive and VS Code.
PowerShell
92
star
11

InstallModuleFromGitHub

Install PowerShell Modules from GitHub
PowerShell
80
star
12

OutTabulatorView

PowerShell - Sending output to an interactive table in a browser
PowerShell
71
star
13

PSFuzzySearch

PowerShell Fuzzy search applies fuzzy searching to text
PowerShell
58
star
14

PoShLucene

PowerShell WPF GUI over Lucene.NET
PowerShell
52
star
15

PSAI

PowerShell AI module. Brings OpenAI to the console and scripts
PowerShell
51
star
16

PSStringScanner

Provides lexical scanning operations on a String
PowerShell
49
star
17

OneGetGistProvider

Gist-as-a-Package - PackageManagement PowerShell Provider to interop with Github Gists
PowerShell
45
star
18

PowerShellAIAssistant

Enhance PowerShell scripting with AI using PowerShell AI Assistant module.
PowerShell
43
star
19

edge-powershell

Run Powershell in node.js
C#
42
star
20

PSAdvantage

GitHub Actions at your Fingertips! ✨ - via PowerShell
PowerShell
40
star
21

PowerShellJson

Query JSON with PowerShell
PowerShell
38
star
22

Posh-Gist

PowerShell cmdlets for interacting with GitHub Gist
PowerShell
38
star
23

PSKit

A suite of command-line tools for working with PowerShell Arrays. From querying to doing array statistics.
PowerShell
37
star
24

edge-ps

PowerShell compiler for edge.js
JavaScript
37
star
25

IsePester

Module to integrate PowerShell Pester into ISE
PowerShell
34
star
26

PowerShellMicroservice

A PowerShell REST API running as a microservice in a Docker container.
PowerShell
32
star
27

ConvertToClass

PowerShell module to convert JSON or CSV to a PowerShell class definition
PowerShell
30
star
28

ConvertFromMarkdown

From your Markdown to generated chapters, run ScriptAnalyzer on your examples and generate HTML, a Word Doc or PDF. Table of Contents included
PowerShell
29
star
29

PSMatcher

PSMatcher is a test utility, that lets you easily test responses and json, when some part of the response is something out of your control (autogenerated id, guid, datetime etc). (And More)
PowerShell
29
star
30

PSWeave

PSWeave: a PowerShell module bringing OpenAI's GPT to your fingertips, and simplified prompt engineering
PowerShell
28
star
31

awesome-powershell-azure-functions

Curating the Best PowerShell Resources for Azure Functions
27
star
32

PSDataFrame

Use PowerShell to make data exploration easy
PowerShell
26
star
33

ServerlessPowerShell

PowerShell module that let's you rapidly deploy PowerShell scripts as Azure http trigger functions
PowerShell
25
star
34

OneGetGitHubProvider

GitHub-as-a-Package - PackageManagement PowerShell Provider to interop with Github
PowerShell
25
star
35

PowerShellAI-ContentGenerator

A versatile content generator using GPT and PowerShell
PowerShell
24
star
36

powershellScripts

PowerShell Scripts
JavaScript
24
star
37

PowerShellScottPlot

Jupyter Notebook
23
star
38

PSProse

PowerShell module for the Microsoft Program Synthesis SDK https://github.com/Microsoft/prose
PowerShell
23
star
39

dfinke

Use automation to increase bandwidth in order to address technical debt
PowerShell
21
star
40

PowerShellPivot

PowerShell
20
star
41

ODataExplorer

An 'OData Explorer' PowerShell application designed to allow ad-hoc browsing of OData Services
PowerShell
18
star
42

PowerShellCombinations

Using PowerShell Classes & Script to generate and manipulate combinations and permutations
PowerShell
18
star
43

PSPx

PowerShell module that can execute scripts written in markdown that can be accessed either locally or via a URL
PowerShell
17
star
44

PSYamlQuery

PowerShell wrapper for `yq`, enables a better PowerShell pipeline experience
PowerShell
16
star
45

SharePowerShell

Easily share (and get) PowerShell Scripts from ISE or the command line!
PowerShell
15
star
46

PowerShellCheatSheets

15
star
47

PowerShellConsole

Create a PowerShell Console using the AvalonEdit control
C#
14
star
48

PowerShellGemini

PowerShell integration for Google's versatile Gemini Pro API
PowerShell
14
star
49

PSDuckDB

PSDuckDB is a PowerShell module that provides seamless integration with DuckDB, enabling efficient execution of analytical SQL queries directly from the PowerShell environment.
PowerShell
14
star
50

openai-powershell-samples

Jupyter Notebook
13
star
51

SortingAlgorithms

Sorting in PowerShell
PowerShell
12
star
52

PowerShellAI.Functions

PowerShell module bridging PowerShell functions and OpenAI
Jupyter Notebook
12
star
53

PowerShellPhantomJS

PowerShell over PhantomJS, a headless WebKit scriptable with a JavaScript API
PowerShell
12
star
54

WebScraping

PowerShell
11
star
55

PowerShellASTDemo

PowerShell - Showing Tokenization and the Abstract Syntax Tree
PowerShell
11
star
56

PSJsonTerm

PowerShell UI for exploring and querying JSON
PowerShell
10
star
57

PowerShellJsonObject

PowerShell
10
star
58

PowerShellArrayMethods

Use PowerShell's Extended Type System and Ruby language methods
PowerShell
10
star
59

config-ps

Write your .NET configuration files in PowerShell
C#
10
star
60

PowerShellKV

A key value store that allows you to save snippets of text that you can later find and copy to your clipboard
PowerShell
10
star
61

PasteJSONasPowerShell

Converting your JSON objects into PowerShell functions
PowerShell
10
star
62

SimplePSHttpServer

Simple PowerShell Http Server
10
star
63

dfinke.github.io

https://dfinke.github.io/
Ruby
10
star
64

PowerShellExcel-Snippets

Contains the code snippets for PowerShell Excel development in the VS Code editor
PowerShell
10
star
65

GPT-FunctionCalling

Jupyter Notebook
9
star
66

NPMTabCompletion

Enables tab completion for npm commands
PowerShell
9
star
67

PowerShellScaffold

Quickly create a suite of PowerShell functions
PowerShell
8
star
68

PSPulumi

PowerShell module for Pulumi: Program the Cloud
PowerShell
8
star
69

PowerShell_Roslyn_Code_Quoter

PowerShell Roslyn Code Quoter Tool - generating syntax tree API calls that result in a given C# program.
PowerShell
8
star
70

PowerShellSlackathon

Stupid ideas for the PowerShell Slackathon
PowerShell
7
star
71

known-calendar

PowerShell wrapper for nChronic, a natural language date/time parser
PowerShell
7
star
72

PowerShellContextSplit

The Invoke-ContextSplit command copies the specified file and separates the copy into segments.
PowerShell
7
star
73

PSRunFromZip

PowerShell script to deploy Azure Functions from the command line using Run-From-Zip
PowerShell
7
star
74

PowerShellTools

Collection of PowerShell modules and scirpts to make things simpler
PowerShell
7
star
75

PoShDotNet

.NET Core PowerShell wrapper for dotnet
PowerShell
7
star
76

PowerShellAylien

PowerShell Module to interact with AYLIEN Text Analysis API - a package consisting of eight different Natural Language Processing, Information Retrieval and Machine Learning APIs that can be adapted to your processes and applications with relative ease
PowerShell
7
star
77

SpellingCorrector

PowerShell Spelling Corrector
PowerShell
6
star
78

PSSpeak

HTML
6
star
79

PowerShellSequenceUtils

Jupyter Notebook
6
star
80

SlackDSCResource

PowerShell Slack DSC Provider lets you send messages to Slack
PowerShell
6
star
81

PSGitHubCLICrescendo

PowerShell
5
star
82

VSCETabCompletion

Enables tab completion for vsce commands
PowerShell
5
star
83

powershell-azure-function-stockdata

PowerShell Azure Function for displaying stock information
PowerShell
5
star
84

PowerShell_Highlighter

Reads a PowerShell Script, writes it to the screen and color encodes it
5
star
85

PowerShellTranslate

PowerShell Invoke-Translate and New-TranslationTable typically used in substitution ciphers
PowerShell
5
star
86

StartPowerShellDemo

Start PowerShell demo from a Markdown file
PowerShell
5
star
87

PowerShell_Search_Bing

PowerShell function to interact with the new Bing Web Search API on Azure
PowerShell
5
star
88

GetBingPics

PowerShell script for searching and downloading images from the Bing API
PowerShell
5
star
89

HtmlPageFromPowerShellAzureFunction

PowerShell
5
star
90

PSCargoCompletion

PowerShell - Two for one. Auto complete for ruts's 'cargo' command and the script that does the code generation for it
PowerShell
5
star
91

PowerShellISE

A PowerShell module that lists all the ISE shortcut keys
PowerShell
4
star
92

PSGitQL

A PowerShell git query language
PowerShell
4
star
93

PowerShellNancy

PowerShell using the Nancy framework for building HTTP based
PowerShell
4
star
94

vscode-PSStackoverflow

From VS Code Search for selected text + the PowerShell tag on Stack Overflow
TypeScript
4
star
95

BladePS

Implementation of mustache.js for PowerShell
PowerShell
4
star
96

powershell-azure-function-mashup-dad-jokes-cat-pics

Powershell Azure Function Mashup - Dad Jokes and Cat Pics
PowerShell
4
star
97

PowerShell_And_Microsoft_Roslyn

Integrating PowerShell and Roslyn,the next generation of language object models for code generation, analysis, and refactoring
4
star
98

PowerShellShorts

PowerShell
3
star
99

AzureFunctions

PowerShell module for Azure Functions
PowerShell
3
star
100

PSGistIT

Create Github gists of files using one single command, Export-Gist
PowerShell
3
star