DSC Resource Kit Wave 8 coming?

Looks like the next wave of the DSC resource kit is on its way – a set of resources for Exchange 2013 have been published - with a wave 8 tag.


I’ve been waiting for the Exchange resources – they’re going to make my life soooooo much easier

Default formatting

If you run get-process you will see something like this for each process

£> Get-Process | select -f 1

Handles NPM(K) PM(K) WS(K) VM(M)  CPU(s)   Id ProcessName
------- ------ ----- ----- -----  ------   -- -----------
     80      7   960  4096    44         1560 armsvc


You’ll get the same display if you use

£> Get-Process | select -f 1 | ft


If you ask for a list – you get something different

£> Get-Process | select -f 1 | fl

Id      : 1560
Handles : 80
CPU     :
Name    : armsvc


Looking at all of the data for a single process give you this:

£> Get-Process | select -f 1 | fl *

__NounName                 : Process
Name                       : armsvc
Handles                    : 80
VM                         : 46186496
WS                         : 4194304
PM                         : 983040
NPM                        : 7136
Path                       :
Company                    :
CPU                        :
FileVersion                :
ProductVersion             :
Description                :
Product                    :
Id                         : 1560
PriorityClass              :
HandleCount                : 80
WorkingSet                 : 4194304
PagedMemorySize            : 983040
PrivateMemorySize          : 983040
VirtualMemorySize          : 46186496
TotalProcessorTime         :
BasePriority               : 8
ExitCode                   :
HasExited                  :
ExitTime                   :
Handle                     :
MachineName                : .
MainWindowHandle           : 0
MainWindowTitle            :
MainModule                 :
MaxWorkingSet              :
MinWorkingSet              :
Modules                    :
NonpagedSystemMemorySize   : 7136
NonpagedSystemMemorySize64 : 7136
PagedMemorySize64          : 983040
PagedSystemMemorySize      : 89712
PagedSystemMemorySize64    : 89712
PeakPagedMemorySize        : 1212416
PeakPagedMemorySize64      : 1212416
PeakWorkingSet             : 4300800
PeakWorkingSet64           : 4300800
PeakVirtualMemorySize      : 50155520
PeakVirtualMemorySize64    : 50155520
PriorityBoostEnabled       :
PrivateMemorySize64        : 983040
PrivilegedProcessorTime    :
ProcessName                : armsvc
ProcessorAffinity          :
Responding                 : True
SessionId                  : 0
StartInfo                  : System.Diagnostics.ProcessStartInfo
StartTime                  :
SynchronizingObject        :
Threads                    : {1564, 1572}
UserProcessorTime          :
VirtualMemorySize64        : 46186496
EnableRaisingEvents        : False
StandardInput              :
StandardOutput             :
StandardError              :
WorkingSet64               : 4194304
Site                       :
Container                  :


Notice that you don’t see anything corresponding to  any of these fields from the default display - NPM(K)    PM(K)      WS(K) VM(M)   CPU(s)


That’s because they are calculated by PowerShell when the data is formatted to display.  See about_Format.ps1xml for more details

PowerShell Summit Europe 2014 – All videos available

All of the recordings from the recent PowerShell Summit in Amsterdam are now available through the channel on youtube. The playlist for the Summit is


Thank you again to the speakers, and attendees, who made for a wonderful first Summit in Europe and more thanks to the people who donated to our appeal to raise funds for the recording equipment.

PowerShell Summit Europe 2014 – – videos from day 1

The videos from day 1 of the Powershell Summit Europe 2014 are now available on the youtube channel. The European Summit playlist can be found at


Uploading of day 2 is in progress and I'll supply notification when complete



PowerShell Summit Europe 2014 – – slides and code

All of the slides and demo code the speakers wanted to share are available for your enjoyment at


I'm currently uploading the videos which is a slow process.  I'll post when hat activity is completed.

Windows 10 and PowerShell 5

With the release of the technical previews of Windows 10 and Windows server you can see PowerShell v5 in its native environment. There’s a good introduction to the new features in PowerShell v5 here -


Its worth comparing the information given for PowerShell v4 and v3 (in the same article) to see where PowerShell has changed.

PowerShell Summit Europe 2014 – – Wednesday afternoon

Tobias Weltner started the last part of the Summit with a session on AST – Abstract Syntax Tree - and the PowerShell parser.

You can access the tokens used by the parser for instance to create a variable inventory.

AST takes you beyond the parser tokens and enables to do wonderful things to your scripts such as applying code formatting standards and expanding alias to the full

cmdlet and parameter names.


The second session was delivered by Jeff Wouters – Securing Remoting.  How do you secure remoting across the Internet?  How do you authenticate users?

Jeff showed us the issues around credentials and how to manage authentication – especially how to manage passwords.


The third session was a Best Practice discussion lead by Don Jones.

Code – If you don’t understand it don’t run it

PowerShell gallery – trusting the code?  Who wrote it? Feedback on code. Code should have ratings.

Module storage – where and why?

What are your thoughts?


Jeffrey Snover closed the Summit with a look at Just Enough Admin – RBAC through PowerShell.

Admins are part of the attack surface.

Need to Incrementally reduce admin exposure

JEA controls admin actions through PowerShell constrained endpoints and proxy functions.

JEA toolkit available for download through DSC resource kit

Use DSC for endpoint configuration – makes it simpler and easier

Example – allow access to manage file system but not view contents of files

PowerShell Summit Europe 2014 – Wednesday morning

The last morning started with me covering OMI (WMI) and DSC on Linux. OMI can be set up but wed need more classes; DSC on Linux works in push mode and integrates very nicely with DSC for Windows.


The second session consisted of Lee Holmes and Jim Truher introducing the Await module which provides Expect type functionality for PowerShell.

They demonstrated using FTP through ISE; automating Vi and automating SSH.

I can think of lots of uses for this.


Final session of the morning was Bartosz Bielawski on dynamic parameters

Dynamic parameters only work in context – the provider context

After demonstrating using dynamic parameters Bartek then showed how to add dynamic parameters to your code – and the hoops you have to go through to get them to work

Quotes from the Summit

Two quotes that stuck in my mind for the future of IT:


DSC is last chance for click next admins”


If you can just click you’re not a professional

PowerShell Summit Europe – Tuesday afternoon

Mike Pfeiffer kicked off the afternoon talking about DSC in the AWS cloud.  Using DSC to bootstrap new machines and configuration scripts to complete configuration. This works in push mode but pull servers being experimented with.


Second session was Jim Truher, a founder member of the PowerShell team, talking about Testing Frameworks.

Testing frameworks are essential.  Pester is a an excellent test framework for Test Driven Development. Pester is extensible as its a script module.


Our third session was Mike Marin speaking about PowerShell, devops and Windows Azure.


The final session was Lee Holmes - What Goes Bump in the Night? – looking at auditing to see what PowerShell is doing on your system

Security boundaries – once attackers get access to your machine its not your machine. Post exploitation.

Compromising administrators – means need just enough admin – don’t give unfettered access

Event forwarding great for detecting intrusions.

Forwarding occurs over WSMAN

Two days down and more good stuff to come