6th DuPSUG meeting announced

It is about time for a new meeting, so here we are.

In the world of IT it is good to keep up to speed with new technologies, of which PowerShell used to be one. These days it has become more of a commodity and a required skill for automation.
The technology to invest in for your future? We feel that Desired State Configuration fits that bill.
So for this meeting, on the 26th of May, we’ll offer you an entire day filled with DSC, OneGet and much more!
Note that all sessions will be in English…

Here is the agenda:

Introduction: 09:00 – 09:30

Time: 09:30 – 10:30
Speaker: Jeff Wouters
Title: One-0-OneGet
Abstract: OneGet is a package manager manager. No, that is not a typo.
Package managers, such as NuGet offer the ability to manage packages. But there are more package managers in this world than just NuGet. OneGet is about providing a single way to manage them all, hence the name package manager manager. During this session we will show you considerations you need to make before the implementation, show you how to implement OneGet and configure it appropriately.

Coffee break (10:30 – 10:45)

Time: 10:45 – 11:45
Speaker: Bartek Bielawski
Title: Home-made partial configurations in WMF4 using AST
Abstract: Do you like the segregation of configuration that you get with partial configurations, but you are stuck with WMF 4? In this session Bartek will share practical implementation that allows for similar model without updating WMF to the “latest and greatest”. Separate scripts for each configuration level with some Abstract Syntax Tree (AST) magic will do the work for us.

Time: 11:45 – 12:45
Speaker: Ben Gelens
Title: Lessons learned: Introducing DSC Configuration into an existing environment
Abstract: In this session we look at my lessons learned on how to introduce DSC into existing environments. The session handles topics like security, resource compatibility and integration into deployment methods.

Lunch break (12:45 – 13:45) sponsored by Inovativ

Time: 13:45 – 14:45
Speaker: Jeff Wouters
Title: DSC, OMI, DAL and DevOps – Going beyond the technology
Abstract: This session will not be technical, but a conceptual session about the DevOps, Desired State Configuration and the road Microsoft has taken in the last decade to make all of this possible.
This session will be highly interactive.

Time: 14:45 – 15:45
Speaker: Bartek Bielawski
Title: DSC for Linux
Abstract: Remember OMI session Bartek did last year? If yes, than he has a surprise for you: OMI is not designed to manage only Linux processes (and find unicorns). It’s a platform that other solutions can build on. Linux DSC is a perfect example of that approach. This session is all about this relationship and opportunities it brings for IT people that would like to use PowerShell to manage systems.

Coffee break (15:45 – 16:00)

Time: 16:00 – 16:30
Speaker: Jeff Wouters (Methos)
Subject: Announcing Methos MONK.

Time: 16:00 – 18:00
Subject : Talk about PowerShell solutions in the market.
Dinner (18:00 – 19:00) sponsored by Methos

Evening program:

Speaker: Jeffrey Snover
Title: Overview Build/Ignite announcements and Q&A
Abstract: I’ll start with a brief overview of some amazing Build/Ignite announcements and maybe some demos but then I’ll turn it over to Q&A. We’ll use a method that I’ve using with internal teams that has worked very well. I’ll collect all the questions up front and then try to weave together an overall narrative which answers the questions. Come with questions about topics not bugs (it won’t be a support session).

The event will be hosted at Inovativ, Startbaan 8 in Amstelveen.
There is free parking at the location, but be aware that ‘full is full’.


Call to action: If you’re attending, please send any questions you have for Jeffrey Snover to admin@dupsug.com before the 20th of May!

Date: 26th of May 2015
Time: 09:00 – 20:30+
Location: Inovativ, Startbaan 8 in Amstelveen
Language: English

Use PowerShell to list installed applications on remote Windows devices


This has been done a lot of times, by multiple people.
I thought it was about time to share my function with you which allows you to list installed applications / programs on remote (Windows) devices.

function Get-RemoteApplication {
        [string[]]$ComputerName = $env:COMPUTERNAME
    begin {
        $RegistryPath = 'SOFTWAREMicrosoftWindowsCurrentVersionUninstall',
    } process {
        foreach ($Computer in $ComputerName) {
            $Registry = [Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey([Microsoft.Win32.RegistryHive]::LocalMachine,$Computer)
            foreach ($RegPath in $RegistryPath) {
                ($Registry.OpenSubKey($RegPath)) | foreach {
                    $_.GetSubKeyNames() | ForEach-Object {
                        $ApplicationName = ($Registry.OpenSubKey("$RegPath$_")).GetValue('DisplayName')
                        if ([bool]$ApplicationName) {
                            New-Object -TypeName PSCustomObject -Property @{
                                'ComputerName' = $Computer
                                'Application' = $ApplicationName

An easy way in PowerShell to check if a variable has a value


Checking if a variable has a value is something I do very often in my scripts.
Most of the times, I do this by checking if the variable equals to $null.
However, there is a more performance friendly way to do this…

First, let’s create a few variables, which have the four most common types:


Next, let’s verify the types, just to show you that check it in the way I will show you, works for most (if not all) variable types:


Now to actually check if the variables have values:


…and to show you it correctly tells me if the parameter does exist, yet has no value in it:


  • Pluralsight

  • Sapien

Go to Top