To discover the rich conference content, you can always browse the agenda, and a couple of weeks before the event opens, we’ll have a smartphone app ready for you to build your personal agenda.
Meanwhile, on this page we collect a number of small PowerShell code snippets that you can use to download the agenda and session information.
With just a few lines of PowerShell code, you can download the latest agenda and session information:
(irm powershell.fun) | ogv
Invoke-RestMethod) is a powerful cmdlet to download and convert web-based content. In contrast to
Invoke-WebRequest, the cmdlet also analyzes the content type and converts the data into the appropriate format.
Our agenda is available in json format, and
Invoke-RestMethod converts the data automatically to PowerShell objects. Just make sure you place the command in parenthesis, or assign the results to a variable. Else, due to a bug in the cmdlet implementation the data isn’t automatically unwrapped.
Browsing Sessions By Tag
The conference and three parallel tracks offer sessions for almost every taste and specialty. We carefully tagged all sessions, so you can quickly filter sessions by tags:
$d = irm http://powershell.fun $t = $d.tags.Split(',').Trim() | sort -u | ogv -o s -t 'Select Tag' $d | Where tags -match $t | ogv
The code above downloads the agenda information and then splits the comma-separated list of tags into single tags. These are then sorted, and duplicate tags are automatically filtered out. The result in $t is a sorted list of all unique tags.
Out-GridView isn’t necessarily a one-way-street: with the parameter
-OutputMode, you can turn it into a general purpose selection dialog. This way, you can choose the tag that you are interested in.
For example, if you’d like to polish your PowerShell language skills, select the tag
PowerShell. If you are working in the cloud, choose
Cloud, or be more specific and choose i.e.
Azure PowerShell Functions. And to see all security-related content,
Security is your tag. Again, you can also filter by
Defense, and there are many more popular tags to choose from.
The code then takes the downloaded session information in $d and filters it by the chosen tag in $t. All related sessions are displayed in a gridview dialog.
You can easily combine this example with the next one, and export the tagged sessions to Excel (see below).
Output Agenda to Excel
Thanks to the awesome module ImportExcel, co-authored by our speaker James O`Neill and Doug Finke, you can report all sessions to a nicely formatted excel sheet:
inmo ImportExcel -Sc CurrentUser (irm http://powershell.fun) | Select St*,Tr*,Sp*,N*,D*,Ta* | Export-Excel
The first line uses
Install-Module to download and install the free module ImportExcel from the PowerShell Gallery into your user context. If the module is already present the line will do nothing.
The second line downloads the agenda data, selects the order of properties to display, then exports the agenda to xlsx and opens the file in Excel. Microsoft Office is required only to open the file, and if you prefer the free OpenOffice instead, this works just as well. The module ImportExcel does not depend on any installed office version.
Export-Exceldoes all the heavy lifting: it creates a temporary file name, exports the data to xlsx format, and applies the most popular formats like auto-filtering and frozen header row. Of course, all of this can also be controlled individually via parameters.
Agenda Calendar with Universal Dashboard
Adam Driscoll, another one of our speakers this year and author of Universal Dashboard, created a solution to import our agenda information directly into a UniversalDashboard calendar control.
In Adams post he walks you through the PowerShell code that creates the calendar.
And here’s a quick PowerShell code snippet that isn’t directly related to our conference but illustrates how you can download and install software with just a few lines of PowerShell code, for example the brand new Windows Terminal application:
The code below first installs Chocolatey, the software packaging used to download and install applications.
Next, the command choco grabs the brand new Windows Terminal application that can run PowerShell consoles (and any other console application) side-by-side in a modern tabbed window.
IMPORTANT: Chocolatey is designed to be a light-weight administrative software deployment tool. While it can be used without administrative privileges with some tricks, it is not designed for this. To not run into issues, make sure you run below code in an elevated PowerShell!
# install chocolatey: iex (irm 'https://chocolatey.org/install.ps1' -UseB) # then install windows terminal: choco install microsoft-windows-terminal -y # then launch terminal: wt
Chocolatey-driven software deployment is yet another topic in some of our conference sessions. Use the script above to browse for sessions with tag
Chocolatey to find out more. And if you’d like to use the code above to install other software, visit the Chocolatey package page - simply replace the name of the package to install - that’s it!
We are constantly updating this page, so if you are inspired by some of the code examples on this page and build another agenda viewer, please contact us or leave a comment, and share it with us.