Yearly Archives: 2017

Apply Chat Automation today – Work smarter tomorrow

Over the past two weeks I have had the opportunity to speak at both the Mississippi and the Munich PowerShell user groups to share my thoughts on how to apply Chat Automation. For those of you who have been following my blog you know this has not been the first time talking on this subject.

Chat Automation is an interesting subject as it allows for applying existing scripted resources, modules and automations in a new context. For example I showed how an existing script can be leveraged by PoshBot and made available to non technical users, while adhering to existing security constraints.

As I gave the presentation to the Mississippi PowerShell user group remotely I do not have any photos available of that presentation, but it was recorded and made available on MSPSUG YouTube channel:

Mississippi PowerShell User Group  – Apply Chat Automation today, work smarter tomorrow

At the Munich PowerShell Saturday we had a crowd of 90 attendees and a fun-filled day with great speakers. To get an impression of the event I have shared the following photos taken at the event:

The code has been shared on GitHub in my Events repository:
Mississippi PowerShell User Group

The code has been shared on GitHub in my Events repository:
PSSaturday Munich

I also shared the slides I used and my other presentations on SlideShare:


Share

A week in Singapore – DevOps Days and PowerShell Conference Asia

Last week was a very busy for us over in Singapore, together with the PowerShell Conference Asia team we organized a 3-day conference in Singapore. In the same week the DevOps Days Singapore team hosted their conference and I was a speaker at this event as well.

This year marked the third year of being a part of PSConfAsia, the first two years I was a speaker there, this year I joined the PSConfAsia team and helped organize the event. We were all very pleased with the quality of content that the speakers have provided us with as well as with the attendance of the PowerShell Team. We have seen both speakers and attendees fly from far and beyond to join us and the conference and we can proudly say we made it worth their time.

DevOps Days Singapore

At DevOps Days I presented an ignite talk, a five minute speech on a single topic. Now 5 minutes for a talk is already a challenging, but the second condition was that the slides should automatically advance to the next every 15 seconds. While I have been giving short talks for a while, the challenge of timing a talk to match up with the slides.

The code has been shared on GitHub in my Events repository:
Automation – How I came to see the light

A video of the whole day of DevOps Days is also available, here is the link to the start of my Ignite session:

PowerShell Conference Asia

The PowerShell Conference Asia resumes for its 3rd year this October, bringing speakers from Asia and around the world to deliver in-depth PowerShell and DevOps sessions. Speakers include the Microsoft PowerShell Product Team from headquarters in Redmond and a strong line-up of MVPs, well-known international speakers, and community contributors.

At PSConfAsia I spoke on Automation and how to secure your environment. This is a story of how I used some low-level techniques to investigate, re mediate and patch vulnerabilities of a mixed infrastructure environment.

The code has been shared on GitHub in my Events repository:
Secure your environment by automation

I also shared the slides I used and my other presentations on SlideShare:

Share

Paint it blue with PowerShell – China MVP Community Connection

Earlier this week I was invited to attend and speak at the Chinese MVP event, China MVP Community Connection in Hangzhou. As a foreign MVP at a local event it was a very interesting experience to discuss the common issues they ran into and compare that to the struggle and challenges we face back over at Europe.

To paraphrase the description of the MVP CC site:

2017 Microsoft’s MVP China Summit – China MVP Community Connection will be held in Hangzhou, China on October 20-21, 2017. The Microsoft MVP team is here to invite you to participate in this fall summit, with hundreds of MVPs from all over the country gathered together to discuss the future direction in which we are headed.

There have been some photos taken at the event which are available here:

My session was called Paint it blue with PowerShell, a session about implementing PowerShell in your workflow to prevent context switching. For engineers and developers working on a diverse range of operating systems and cloud platform having a uniform scripting language can be beneficial and I highlighted the benefits in this presention. The slides have been shared on GitHub in my Events repository:

China MVP Community Connection 2017

I also shared the slides I used and my other presentations on SlideShare:

Share

EIC Inspiration Night – Chat Ops session

Tonight I was invited to speak at the EIC Inspiration event, located in Groningen. It was my first time attending, and as a result, speaking at this event. If you living in the neighborhood or if you are interested in the events they host have a look over here:

IEC Inspiration

There was a photographer, Melanie S, present, the photos of the event are posted here: IEC Inspiration. To get an impression of the event here is a first impression based on the photos on Twitter:

All the code and slides are as always available in my Events GitHub repository:

I also shared the slides I used and my other presentations on SlideShare:

Share

Dutch PowerShell User Group – Basics part Deux

It had already been well over a year since the first iteration of the DuPSUG Basics day, but yesterday we finally had the opportunity to host our second day of basic PowerShell training. This time we were hosted at the Sogeti office in Vianen.

BEGIN END SPEAKER TITLE
09:15 10:30 Mark van de Waarsenburg Powershell basics
10:40 11:25 Erik Heeres Powershell Remoting
11:30 12:15 Jaap Brasser [MVP] Manage your infrastructure with PowerShell
13:15 14:00 Robert Prust Improving your scripts
14:00 14:45 Ralph Eckhard Powershell for Office 365 Administrators
15:20 16:05 Jeff Wouters [MVP] Tips and tricks
16:10 16:45 DuPSUG Speakers Ask us (almost) anything

The Dutch PowerShell User Group has a GitHub repository where all the demos and slides of the presenters will be gathered:

Dutch PowerShell User Group – Basics Deux

To give you an impression of the event I have included the following photos:

The code and the presentation has been shared on GitHub in my Events repository:
Manage your Infrastructure with PowerShell

I also shared the slides I used and my other presentations on SlideShare:

Share

Austin PowerShell Users Group – Slides and Code

Last week I had the pleasure of presenting for the Austin PowerShell UG, this is a group run by Ricc Babbitt. During this session I presented the following topic:

Reach the next level with PowerShell

During this presentation I walked the audience through the process of developing a short script to gather information from a system. I pinpointed a number of steps that you can take while developing a script and how to combine the output from different sources in order to get a complete picture of what is running in your environment.

The code has been shared on GitHub in my Events repository:

Reach the next level with PowerShell

I also shared the slides I used and my other presentations on SlideShare:


Share

Updated Events GitHub repository – Convert pptx to pdf

As I have been speaking at a number of events recently I also have been updating my GitHub Events repository. Usually I include a markdown file with a short description, my demos and my slides. I had been uploading my files as .pptx and I noticed that the repository edged over 100 MB. This prompted me into reconsidering this approach, I felt I needed to address the following:

  • Use the most compatible format available, presentations should be viewable on any device
  • Fonts should be correctly represented
  • File size should be minimal

In an effort to more efficiently use the space I have available and to use a more compatible format I decided to convert my presentations to .pdf.

Because I do not like doing stuff manually I decided to use PowerShell in combination with a bit of bash scripting to get my repository updated. First lets take a look what kind of data we are dealing with:

1
2
Get-ChildItem C:\git\Events -File -Filter *pptx -Recurse |
Select-Object -Property FullName

In total 29 presentations uploaded in .pptx format, if I would have to convert these by hand it would take about 30 minutes. Taking a look at what is possible with the PowerPoint.Application Com-Object took about 5 minutes and an additional 5 to put together the following script:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
Get-ChildItem C:\git\Events -File -Filter *pptx -Recurse |
ForEach-Object -Begin {
    $null = Add-Type -AssemblyName Microsoft.Office.Interop.PowerPoint
    $SaveOption = [Microsoft.Office.Interop.PowerPoint.PpSaveAsFileType]::ppSaveAsPDF
    $PowerPoint = New-Object -ComObject "PowerPoint.Application"
} -Process {
    $Presentation = $PowerPoint.Presentations.Open($_.FullName)
    $PdfNewName  = $_.FullName -replace '\.pptx$','.pdf'
    $Presentation.SaveAs($PdfNewName,$SaveOption)
    $Presentation.Close()
} -End {
    $PowerPoint.Quit()
    Stop-Process -Name POWERPNT -Force
}

This script will recursively look for all .pptx files in the Events repository and the run the following code:

  • In the begin block load the PowerPoint Com-Object and the required type for storing files as .pdf
  • For each presentation, open the presentation, generate a new name and convert it to .pdf
  • Finally at the end close the PowerPoint application and afterwards using Stop-Process to close the window, note that if you had any other PowerPoint windows open they will also be closed.

Now I have both the .pdf and the .pptx stored in the folder, let’s take a look what the difference in file size is:

1
2
3
4
5
6
7
8
9
foreach ($Extension in ('pptx','pdf')) {
    Get-ChildItem C:\git\Events -File -Filter "*$Extension" -Recurse |
    Measure-Object -Property Length -Sum | ForEach-Object {
        [pscustomobject]@{
            'SizeinMB'  = [math]::Round($_.Sum/1MB,2)
            'Extension' = $Extension
        }
    }
}

A nice decrease in size and a format that is more suitable for sharing, this is looking good. After verifying that the .pdf files are looking good we can remove the .pptx files with the following code:

1
2
Get-ChildItem C:\git\Events -File -Filter *pptx -Recurse |
Remove-Item -Force

The last step is to commit everything to GitHub and make it available to everyone. I found a nice Stack Overflow thread that explained how to mass remove files:

Removing multiple files from a Git repo that have already been deleted from disk

Which left me with the following commands to run to commit everything to the repository using bash:

1
2
3
4
git ls-files --deleted -z | xargs -0 git rm 
git add *
git commit -m "Removed pesky pptx and added glorious pdf"
git push origin master

And to view the result here is what is looks like on GitHub now and the commit:

GitHub – JaapBrasser – Events – Commits

Let me know what you think, is .pdf a more useful format over .pptx to share presentations or would you rather see it the other way around?

Share