Archive

Author Archive

Make working with types in PowerShell easier with TypePx

October 8, 2014 Leave a comment

It is often the little things in life that make a big difference.

1.week.ago

Isn’t that a beautiful programming example? That wasn’t a heading you just read, it was a piece of code. It’s simple, it’s very expressive, it’s self-documenting, and it’s pretty hard to misunderstand the intent when you look at it.  That’s not PowerShell code though…it’s Ruby.

Over the past year or so I have taken some MOOCs offered by Coursera and edX.  After playing games that I created for my assignments in Python, I started learning more about Ruby.  Ruby is a wonderful, expressive, dynamic programming language with a vibrant community that has a lot in common with PowerShell.  It also offers more functionality than PowerShell does in some areas, and I started missing some of that expressive syntax that I was able to use in Ruby when I would switch back to working in PowerShell.

Here’s how you can accomplish the same task natively in PowerShell:

(Get-Date).AddDays(-7)

It doesn’t offer quite the same punch, does it?  Between all of the brackets, the need to call out to Get-Date, and adding negative days to be able to get a timestamp representing 1 week ago, it just isn’t quite as palatable to me.

The beauty of a more mature language like Ruby is that it’s not just about the availability of a week method for numeric classes, nor the availability of an ago method for a time span class.  It’s the availability of years, months, weeks, days, hours, minutes, seconds and milliseconds, all in singular or plural.  It’s the availability of ago to refer to a date in the past, or fromnow to refer to a date in the future.  Want UTC instead of local time?  There’s a inutc method too, as well as so many other cool things.  Small details matter.

Fortunately, like Ruby, PowerShell is also a dynamic language that has all sorts of extensibility built-in, allowing me to continue to enjoy expressive, Ruby-like syntax, even while working in PowerShell.  I know PowerShell’s extensibility quite well, and have been leveraging it since version 1.  These Ruby features inspired me to create a new PowerShell module, bringing some of the method simplicity, elegance, and usefulness from Ruby into PowerShell for the rest of the PowerShell community to enjoy.  I called it TypePx.  It’s open source, and it defines useful type extensions and simplifies type acceleration to reduce much of the typing that would otherwise be required when working with types in PowerShell.  Also, it works on PowerShell 3.0 or later, and it’s available now.

Here are examples of some of the beautiful things you can do with TypePx:

# Get a timespan in a human readable way
(10).years
(2).months
(12).hours

# Use relative dates, as mentioned above
(1).week.ago
(30).days.ago.inutc

# How about using relative dates in a practical way with event logs?
Get-EventLog -LogName System -After (2).Days.Ago
# You can use it when monitoring file age too
dir *.ps*1 | where LastWriteTime -lt (1).year.ago

# Compact (remove null values) from an array
$a = 1,$null,2,$null,3
$a.Compact()
# Return unique elements in an array
$a = 1,1,2,3,3,4,4,5,6
$a.Unique()
# Reverse an array
$a = 1,2,3,4
$a.Reverse()
# Slice an array into chunks
$a = 1,2,3,4,5,6
$a.Slice(3)[1]
# Flatten a multi-dimensional array
$a = (1,2),(3,4),(5,6)
$a.Flatten() 

These are only a few examples of what you can do with TypePx.  Have you ever worked with hashtables and noticed how annoying collection management is when it comes to hashtable values?  June Blender was looking for a solution to this the other day, and TypePx solves that problem.

$ht = @{}
$ht.Add(‘A’,’This is not a collection’)
$ht.AddArrayItem(‘B’,’This is a collection’)
$ht.AddArrayItem(‘B’,’This adds to the collection’)
$ht

By now you have probably seen the cool foreach and where “magic” methods that were added to PowerShell as part of version 4.0.  What about version 3.0 though?  TypePx solves that problem too by adding foreach and where methods to PowerShell 3.0 with all of the bells and whistles that are available in PowerShell 4.0.

Here are a handful of other problems that TypePx makes easier:

  • comparing an array to multiple search strings at the same time in a single call;
  • comparing a string to multiple search strings at the same time in a single call;
  • calculating the sum of an array or of a property on a collection of items;
  • accessing the value hidden inside of a SecureString;

TypePx isn’t just about type extensions either.  It’s also about type acceleration.  In fact, it was originally released as my old TypeAccelerator module that I had previously shared on PowerShell Magazine and posted in the PowerShell Resource Gallery, but then I renamed it and included full documentation for the *-TypeAccelerator commands as well as all of the type extension goodness I described above.  Type acceleration support is a great way to improve the quality of your PowerShell code when you are working with long type names.  Rather than explain it here though, you might want to give my article on PowerShell Magazine a read if you haven’t already since it explains what type acceleration is in more detail and gives examples that show why you might want to know more about it.

To download the latest version of TypePx, please refer to the installation instructions in the readme documentation on GitHub.

That wraps up this article.  Please let me know what you think in the comments!

Now if only PowerShell would properly recognize numeric literals as objects so that you could invoke methods and access properties on them without having to use brackets…

Kirk out.

Watch this space

October 6, 2014 Leave a comment
Categories: PowerShell Tags:

New Technical Product Manager at Provance Technologies

April 30, 2013 2 comments

Today is my first day working in my new role as Technical Product Manager at Provance Technologies.  A little while back Provance approached me to talk about this position, and it seemed like a very natural fit.  Rarely have I felt such a positive vibe from a company through the interview process, so I was really happy to accept the position of Technical Product Manager with them and I have been looking forward to starting work with them.

Now that I am working full-time with Provance, I’ll be getting up to speed as quickly as I can on the IT Asset Management Pack and the Data Management Pack products that we offer to help companies properly manage the assets they have inside their organization.  I know there is already some PowerShell support in one of the products, although I haven’t personally taken a look at it yet (but you can bet I will be soon).

For those of you who regularly follow my blog, if you happen to use either of these products in your organization, I’d love to hear about it.

Kirk out.

Categories: PowerShell, Provance Tags: ,

Hands-on Workshop at the 2013 PowerShell Summit

November 6, 2012 Leave a comment

In my last post I hinted about more news coming soon for the 2013 PowerShell Summit.  In addition to the fantastic list of sessions that attendees will be able to attend, we also have a special event lined up for the last day of the event.  On Wednesday, April 24th, for the entire afternoon attendees will be able to attend a half-day Windows PowerShell scenario walkthrough, presented by the PowerShell Team.

The event will take place on April 24 from 1pm – 5pm.  During this time the PowerShell Team will work with attendees to collectively solve a problem from the ground up using many of the new features in Windows PowerShell 3.0 and Windows Server 2012.

Starting from base Windows Server 2012 images, you will walk through:

  • Writing a PowerShell script workflow to perform Server deployments
  • Creating a constrained endpoint that hosts only the deployment workflow
  • Delegate a set of credentials for the workflow to use
  • Exposing the workflow and it’s results through a RESTful web service
  • Using Windows PowerShell Web Access to manage the workflow

This is a BYOD event, so please don’t forget to bring your own laptop to follow along!

The facilities we have for the conference can only accommodate 50 people at this event.  To give everyone a fair chance to sign up, on December 1st we will send an email from EventBrite to everyone who has already purchased their conference ticket so that they can then sign-up for this free event.  If you want to have a chance to attend this workshop, you will have a much better chance if you buy your ticket before that date!

There will also be other activities that afternoon for those who cannot attend this event due to their travel plans, or if all of the workshop tickets are all gone. If you are able to stick around though and if you can attend this workshop, this should be a fantastic way to end the conference!

Kirk out.

PowerShell Summit Community Sessions List [Updated]

November 2, 2012 9 comments

[Update: April 19, 2013] Important Note: Due to some last minute schedule changes for some of our speakers, several of the sessions below were replaced with other sessions.  To see the final list of sessions offered at the 2013 PowerShell Summit, please visit this page: http://powershell.org/wp/2013/04/19/powershell-summit-2013-conference-schedule/

After almost 100 people voted for the sessions they would like to see the most at the 2013 PowerShell Summit, the results are in!  These votes are for the sessions chosen by the community, and additional sessions from the PowerShell Team will be announced at a later date (as soon as I have them).

Below you will find the not-quite-finalized list of community sessions that will be included in the 2013 PowerShell Summit, sorted alphabetically by speaker.  It is not quite finalized because I am still awaiting final confirmation from a handful of speakers (those marked with an asterisk).  I will update this post as the final confirmations come in.

Thank you to everyone who submitted a session proposal for this conference.  There were a lot of great proposals this year, and I personally think no matter which sessions were voted for, the conference would have been fantastic.  Also thank you to anyone who took the time to vote for their favorite sessions.  Your votes really helped us a lot here, both for the upcoming 2013 conference and for conferences we’ll be planning in the future too!

If you would like to attend this conference so that you can learn from these great sessions and others that are not yet announced, and so that you can participate in the fantastic conversations that happen at such an event, you can purchase your ticket here: http://powershell.org/summit/.

Here is the list of sessions that made the final cut:

Speaker Title Description
June Blender Help for Help: A Help Authoring Deep Dive A comprehensive 400-level talk for module authors about authoring techniques for all types of Windows PowerShell Help, including About help and help for all command types, including cmdlets (and the MAML schema), scripts, functions, CIM commands, workflows (script and XAML), providers (including custom cmdlet help), and snippets. What you can and cannot do, and what’s worth doing when time and resources are short. We’ll cover online help, Updatable Help, and all the gotchas (HelpInfo XML, HelpInfoUri, HelpUri, CHMs), and I’ll share the scripts that I use to generate help files and verify the accuracy of parameters, parameter values, parameter attributes, GUIDs, and URIs.
James Brundage* The Powers of PowerShell Pipeworks Ever wanted to make PowerShell easy for others? Or realize that a simple script you have would be a great backbone of a business (if only you could charge for it)? PowerShell Pipeworks is a web platform built in PowerShell that makes is simple to build compelling web applications and software services in a snap. In this session, you will see: – How to use Pipeworks to store your data to the cloud – How to create a monitoring dashboard with Pipeworks – How to build a Facebook application with PowerShell Pipeworks – How to put a price tag on a cmdlet
Ian Davis Metaprogramming PowerShell PowerShell can be a fun and crazy language to use, but we can take it a step further with metaprogramming. By taking advantage of PowerShell’s flexible language features including dynamic scoping, modules, deferred evaluation, and ScriptBlocks, we can create simple and powerful applications applications leveraging metaprogramming idioms.
Ian Davis Automated Builds With PowerShell Automated builds are a critical part of application lifecycle management. PowerShell is very well suited for making this process easier. We have gone full circle with scripting builds and by leveraging PowerShell on the command line and building DSLs, our builds can be more robust and intuitive than ever.
Adam Driscoll Inside PowerShell: Abstract Syntax Tree Manipulation In this session we will take apart PowerShell. This session will highlight the new abstract syntax tree and node visitor API that is exposed in v3. An instrumentation profiler will be used as an example of how to traverse and manipulate PowerShell scripts from within the engine.
Adam Driscoll .NET Reverse Engineering with PowerShell In this session we will look at how to utilize ILSpy to decompile .NET assemblies and quickly access internal aspects of them using PowerShell. We will see how to easily expose private members for access and manipulation within scripts. Adam Driscoll
Jeffery Hicks Adding a GUI to PowerShell without WinForms Graphical PowerShell scripts seem all the rage these days. But most often that means using Windows Forms which can be very tedious to work with. But that is not the only game in town. Depending on your requirements there are a number of techniques you can use to add graphical elements to your PowerShell scripts. This session will explore how to create message boxes, input forms and more, all without a single Windows Form. If you are just getting started with writing PowerShell scripts, you’ll find these techniques simple to use, plus there will be plenty of sample code for all!
Don Jones Workflow Walkthrough It seems like everyone’s interested in v3’s new Workflow feature, so let’s do a quick walkthrough of building one from scratch. We’ll skip the usual “provisioning” example and go for something a bit more constrained, and perhaps real-world, where workflow’s unique features can really be put to solid use. This’ll also be an opportunity to discuss what workflow can and can’t do, and discuss some of the options and permutations of using it.
Don Jones Remoting Configuration Deep Dive What do you do when Enable-PSRemoting isn’t enough? Dig deeper. We’ll run through all of the major configuration scenarios, including how to use (and not abuse) TrustedHosts, how to set up an HTTPS listener (and use it), how to do non-domain authentication, how to enable CredSSP and configure it to be less than a major security hole, and more. Pretty much every possible Remoting config, we’ll cover. With detailed, step-by-step instructions!
Kirk Munro Creating Add-on Tools for PowerShell ISE PowerShell 3 includes a ton of improvements to the integrated scripting editor, PowerShell ISE. As great as PowerShell ISE is in this version, there is still a lot of room for improvement. Fortunately, Microsoft anticipated that they wouldn’t be able to do everything, so they extended their support for creating Add-on Tools for PowerShell ISE.In this session, the worlds first self-proclaimed Poshoholic and PowerShell MVP Kirk Munro will provide a soup to nuts demonstration of PowerShell ISE Add-on Tools, showing how you can create everything from simple menu extensions to feature rich windows that respond to ISE events and that are docked right inside of the ISE.

Technologies covered in this session include the PowerShell ISE object model, C#, WPF, eventing, Visual Studio 2012, and of course several core PowerShell features.

Kirk Munro Authoring PowerShell like a Poshoholic I’ve been using PowerShell for over 6 years. Blogging about it for over 5 years. Creating and managing products based on PowerShell for about that long as well, and writing a whole lot of scripts during the process. During this time I’ve come up with a trick or three to make that work easier. Some of these tricks are simple time savers, while others are ground breaking opportunities that just might change the way you write PowerShell.Come and join me in this session to get a bird’s eye view at some of the work I’ve been doing with PowerShell, as I talk about tips, tricks, and best practices while demonstrating some of the extensions I’ve written specifically to make authoring with PowerShell easier to do.

Topics discussed include proxy functions, WMI/CIM, Microsoft Office, DSVs, WiX, merge modules, type accelerators, and more.

Aleksandar Nikolic How to Delegate Administration and Customize PowerShell Session Configuration In this session you will learn how to customize PowerShell session configuration, and then use it to assign specific administrative tasks to the appropriate users and groups without changing the membership of local Administrators group. By using new Windows PowerShell and Windows Remote Management 3.0 capabilities we will enable dynamic creation of customized automation environments that users can access through the Windows PowerShell Web Access.
Aleksandar Nikolic Configuring Your Windows PowerShell Workflow Environment In this session you will learn how to set up your environment to run Windows PowerShell workflows. We will discuss different workflow configurations, how to prepare computers to run workflows, what is workflow session configuration and how to customize it. At the end, you will learn how to properly run your Windows PowerShell workflows.
Aleksandar Nikolic Build Your Demo Environment or a Test Lab with Windows PowerShell With Windows PowerShell 3.0 and the new Client Hyper-V available in Windows 8, it is so easy, and fun, to automate creation of your demo environment or a test lab infrastructure. You can easily convert ISO files to VHDs, deploy your VMs and configure networking and storage. Join us for this demo-heavy session to see all the steps.
Alan Renouf Creating a complex and reusable HTML reporting structure In this session I will show you the shortcuts and tricks picked up when creating a complex reporting structure with PowerShell, how a simple HTML output script grew to be a reporting structure which can adapt to give detailed, nicely formatted reports on any application or system that has a PowerShell interface, and even some that don’t!
Alan Renouf Practical PowerShell Integration from Bare Metal to the Cloud See how PowerShell can be used as the glue of the datacenter, take information from VMware, Cisco and Microsoft, Glue them all together and go from bare metal up to the cloud and beyond. Learn how PowerShell is now expanding to be the language of choice and how Microsoft and third party products can be tied together to create fantastic solutions.
Andy Schneider PowerShell and Source Control for the IT Pro Are you ever concerned about updating a script, having it break, and can’t remember what you changed. This is source control by an IT Pro for IT Pros. Come check out some best practices and lessons learned on how to incorporate source control as part of writing scripts. Learn how to have your code available via the web and easily accessed on multiple machines. We’ll take a look at using GIT to ensure your code is always up to date and you can always get back to where you were if you break something.
Andy Schneider PowerShell and Active Directory This session will provide a quick overview of different options to manage AD using PowerShell. It will quickly jump into some of the shortcomings of the MSFT provided Active Directory module and how to work around them, and even “fix” them using proxy functions and the new Default Parameter Set feature in V3.
Richard Siddaway CIM sessions The introduction of the CIM cmdlets and “cmdlets over objects” in PowerShell v3 provide new ways to work with WMI. In addition, they bring a new way to access remote systems ? CIM sessions. Analogous to PowerShell remoting sessions they provide a new flexibility when working with WMI and remote machines. This session will demonstrate:
– How to use CIM sessions against systems running PowerShell v3
– How to work with legacy installations of PowerShell v2
– How to use the available CIM session options to configure the session to meet your requirements
– Compare and contrast working with WMI, CIM and WSMAN cmdlets against remote machines to illustrate the strengths and weaknesses of each
– How to mix and match CIM sessions using WSMAN and DCOM.The key takeaways from this session will be:
– The CIM cmdlets provide a new way to access WMI
– WSMAN is required knowledge
– WSMAN and DCOM can both be used with the CIM cmdlets
– CIM sessions are easy to use and very powerful
– No more DCOM problems
Richard Siddaway PowerShell Web Access PowerShell Web Access is a new feature in Windows Server 2012 that provides a web based PowerShell console. You don’t need PowerShell on your client to administer remote machines as long as you have PWA. This session will demonstrate how to configure PWA, its strengths and weaknesses – you might even see PowerShell being accessed from a non-Windows machine! The security implications of PWA will be discussed. PWA will be compared to other ways to access remote machines through PowerShell including PS Remoting and CIM sessions.
Richard Siddaway PowerShell events The PowerShell event engine enables you to work with .NET; WMI and PowerShell engine events. What are these and how do they work? What can I do with them? Want to stop a process that shouldn’t be running? Want to start a process that’s stopped? That’s what this session will show you with PowerShell events.
Ed Wilson Write modules, not scripts Learn how to get the most from Windows PowerShell by learning a simple five-step method to transform your Windows PowerShell code into a highly reusable module. This presentation is a live demo that begins with a single line of Windows PowerShell code, transforms the code into a function, adds comment based help to the function, and converts it into a module. Next, the installation and discovery of Windows PowerShell modules is covered, as is updating the module and creating a Windows PowerShell module manifest. Ed Wilson
Ed Wilson What I learned by grading 2000 PowerShell Scripts in the 2012 Scripting Games The 2012 Scripting Games attracted both experienced and novice scripters from more than 100 countries around the world. In grading the 2000 submitted scripts, I noticed a common theme emerged. Some of the things that were consistently confused by both beginners and advanced scripters include the following: failure to return objects from functions, not creating reusable functions, spending too much duplicating capabilities of native PowerShell, using meaningless comments, omission of error handling, and an overreliance on Write-Host. In this session, I will address each of these areas of concern and show both good and bad examples from the games. A thorough discussion of each of these topics rounds out the presentation. This presentation uses live demos to illustrate the techniques that are discussed. Ed Wilson
Ed Wilson PoshMon: PowerShell does performance counters One of the cool features on Windows PowerShell 3.0 is easy consumption of WMI performance counters into Windows PowerShell. In the past, leveraging these performance counters meant writing long lines of cryptic code, calling refresher objects, and dealing with weird timestamp issues. But no more! Using a simple cmdlet, Windows PowerShell throws open the door to the treasure trove of performance counter information. But where does the oversubscribed IT pro begin? A question on my Windows NT 3.51 MCSE exam stated there are four areas for performance monitoring: disk, memory, network, and CPU. These four resources have not changed much, regardless of the application these basic areas of investigation still ring true. In this session, I talk about discovering performance counters, using performance counters, and storing information gathered from performance counters. The talk will be strengthened by live demos at each stage of the presentation.
Matt Wrock* Unit Testing PowerShell This talk will provide a walk through of Unit Testing PowerShell scripts. The OSS project Pester (https://github.com/pester/Pester) will be used to illustrate popular unit testing patterns such as ArrangeActAssert and Mocking to provide testability to PowerShell. There will be discussion on why and when to use unit testing in PowerShell as well.

Keep an eye on my blog for additional news about this conference, because more exciting news is on the way!

Thanks,

Kirk out.

Voting for the 2013 PowerShell Summit sessions is now open!

October 15, 2012 Leave a comment

Voting is now open!

As of this morning you can vote for the sessions that you want to see at the 2013 PowerShell Summit!  We have 97 session proposals (see below), plus additional content from the PowerShell Team.  Your vote is really important, so please take some time to indicate what you would like to see from a PowerShell-specific conference with deep technical depth.

Here’s what you need to do:

1. Open the voting survey in a new tab or window (this link will automatically open in a new window).

2. Review the list of proposed sessions side by side with the table below.  The table below contains the titles, descriptions, and presenter details for every proposal that is in the survey.  This should save you a ton of time when you’re trying to identify the sessions that you want to see.

3. Pick your top 20 sessions that you would like to see at this conference.  There will be more than 20 sessions, but if everyone sticks to voting for their top 20 we’ll get a good distribution in the survey and it will provide a better sample of what everyone wants to see.

Once you’ve done that, then just sit back and wait until we announce the official agenda after voting closes on midnight, October 28, 2012.  That gives you 2 full weeks to vote for what you would like to see.  Once voting closes, myself and other conference organizers will review the votes, coordinate with speakers, include additional content from the PowerShell team, and build an agenda for the conference.  Building the agenda and confirming with presenters will take a little time, so don’t expect to see it posted the morning of October 29. Smile

Here are the session proposals that you can choose from:

Title Description
How VMware does PowerShell Presented by: Alan Renouf

Learn the top 5 things VMware does in PowerShell that is different to anything you have seen before, see how a 3rd Party can take the awesome sauce of PowerShell and add their own flare. This session will show you some cool features of VMware’s PowerShell snapin (PowerCLI) and show how VMware became the largest PowerShell community outside of Microsoft. This session is relevant to anyone who uses PowerShell as it will show the key features VMware included in their snapin and the benefits these give to system administrators.

Creating a complex and reusable HTML reporting structure Presented by: Alan Renouf

In this session I will show you the shortcuts and tricks picked up when creating a complex reporting structure with PowerShell, how a simple HTML output script grew to be a reporting structure which can adapt to give detailed, nicely formatted reports on any application or system that has a PowerShell interface, and even some that don’t!

Creating Add-on Tools for PowerShell ISE Presented by: Kirk Munro

PowerShell 3 includes a ton of improvements to the integrated scripting editor, PowerShell ISE. As great as PowerShell ISE is in this version, there is still a lot of room for improvement. Fortunately, Microsoft anticipated that they wouldn’t be able to do everything, so they extended their support for creating Add-on Tools for PowerShell ISE.

In this session, the worlds first self-proclaimed Poshoholic and PowerShell MVP Kirk Munro will provide a soup to nuts demonstration of PowerShell ISE Add-on Tools, showing how you can create everything from simple menu extensions to feature rich windows that respond to ISE events and that are docked right inside of the ISE.

Technologies covered in this session include the PowerShell ISE object model, C#, WPF, eventing, Visual Studio 2012, and of course several core PowerShell features.

Workflow Walkthrough Presented by: Don Jones

It seems like everyone’s interested in v3’s new Workflow feature, so let’s do a quick walkthrough of building one from scratch. We’ll skip the usual "provisioning" example and go for something a bit more constrained, and perhaps real-world, where workflow’s unique features can really be put to solid use. This’ll also be an opportunity to discuss what workflow can and can’t do, and discuss some of the options and permutations of using it.

Remoting Configuration Deep Dive Presented by: Don Jones

What do you do when Enable-PSRemoting isn’t enough? Dig deeper. We’ll run through all of the major configuration scenarios, including how to use (and not abuse) TrustedHosts, how to set up an HTTPS listener (and use it), how to do non-domain authentication, how to enable CredSSP and configure it to be less than a major security hole, and more. Pretty much every possible Remoting config, we’ll cover. With detailed, step-by-step instructions!

Remoting Security Smackdown Presented by: Don Jones

You know you want to turn on Remoting. Heck, Win2012 turns it on for you and can’t be managed without it! But your "Security Guys" are freaking out, which is odd, because they don’t seem to mind RDP. So we’ll run through every single aspect of Remoting security: Mutual authentication. Auditing. Authentication. Delegation. Impersonation. Double-hop. Triple-hop. CredSSP. Kerberos. SSL. Everything. You bring the security guys’ questions, we’ll get you the most accurate answers possible to take back with you.

Delegated Administration via Remoting and GUI Presented by: Don Jones

It’s an age-old problem: You want to set up some of your users to perform some basic task, but you don’t actually want to give them permissions to do it, and you certainly don’t want to give them the MMC necessary to do it. Thanks to Remoting and a little WinForms action, that’s no problem. We’ll walk through how to set up a constrained Remoting endpoint that can run a highly limited set of predefined commands, and that runs them under alternate credentials. Then we’ll build a simple GUI app, suitable for end-user consumption, that utilizes the endpoint to accomplish the task. It’s the perfect way to build end-user tools, help desk utilities, and more!

Building Self-Service Web Tools with PowerShell Presented by: Don Jones

We all want to make our lives easier… and often, that means giving users self-service tools to accomplish specific tasks. Deploying those tools can be a pain in the next, though, unless you can create them as a Web page. After all, a Web server provides a centralized platform. In this session, we’ll look at a couple of ways of building self-service Web pages. One, using /n software’s tool that lets a .PS1 become a Web page, and another in building a simple ASP.NET page that hosts PowerShell’s engine.

Help for Help: A Help Authoring Deep Dive Presented by: June Blender, Senior Programming Writer, Windows PowerShell Team

A comprehensive 400-level talk for module authors about authoring techniques for all types of Windows PowerShell Help, including About help and help for all command types, including cmdlets (and the MAML schema), scripts, functions, CIM commands, workflows (script and XAML), providers (including custom cmdlet help), and snippets. What you can and cannot do, and what’s worth doing when time and resources are short. We’ll cover online help, Updatable Help, and all the gotchas (HelpInfo XML, HelpInfoUri, HelpUri, CHMs), and I’ll share the scripts that I use to generate help files and verify the accuracy of parameters, parameter values, parameter attributes, GUIDs, and URIs.

Practical PowerShell Integration from Bare Metal to the Cloud Presented by: Alan Renouf

See how PowerShell can be used as the glue of the datacenter, take information from VMware, Cisco and Microsoft, Glue them all together and go from bare metal up to the cloud and beyond. Learn how PowerShell is now expanding to be the language of choice and how Microsoft and third party products can be tied together to create fantastic solutions.

PowerShell for the Security Professional Presented by: Carlos Perez

How can PowerShell be leveraged by the security professional doing Incident Response, Penetration Testing (Enumeration and Post-Exploitation) or performing an audit. The presentation will cover how PowerShell can be used to gather volatile information during an incident response, what cmdlets and technologies work best to gather the proper info and alter the least the system state. Use PowerShell to help in the documentation of the integrity of the results gathered. For the Pentester how to use PowerShell to write enumeration tools leveraging .Net and use PowerShell in post-exploitation running PowerShell in Shell,Leveraging Metasploit PowerShell mixing for running scripts to gain further foothold on target systems, escalate privileges and log all keystrokes on a target.

PowerCLI and vSphere API integration Presented by: Luc Dekens

The PowerCLI snapin is used to manage and automate your VMware vSphere and vCD environments. One of the strengths of the PowerCLI snapin from day 1 is it’s ability to flawlessly integrate with the rich API ecosystem vSphere and vCD offer. A byproduct of this tight API integration is the ability to scale your automation scripts for bigger environments. This session will show how it’s done, how you can use it and how easy it is.

PowerCLI and performance reports Presented by: Luc Dekens

The VMware vSphere environment provides many performance metrics to see what is going on inside. You can use these metrics for problem solving, performance reports and capacity planning. This session will explain how to tackle the collection and handling of these performance metrics. It will also show all the possibilities you have to present your data in a meaningful way. There will be some math and statistics involved, but that’ should be no problem for PowerShell and the average administrator.

PowerCLI automates the lifecycle management of your VM Presented by: Luc Dekens

With VMware’s PowerCLI snapin it is easy to automate the complete lifecycle management of your VMs. This sessions will show how this is done. With the available cmdlets you can create, configure, administer and remove any VM. Needless to say that the session will discuss the best practices. But it will also show some lesser known tricks to get your VMs in exactly the state you want them to be. And you’ll learn how you can produce meaningful reports at every step of the way. In short, "The Automated Life of a VM".

PowerShell and Source Control for the IT Pro Presented by: Andy Schneider

Are you ever concerned about updating a script, having it break, and can’t remember what you changed. This is source control by an IT Pro for IT Pros. Come check out some best practices and lessons learned on how to incorporate source control as part of writing scripts. Learn how to have your code available via the web and easily accessed on multiple machines. We’ll take a look at using GIT to ensure your code is always up to date and you can always get back to where you were if you break something.

PowerShell and Active Directory Presented by: Andy Schneider

This session will provide a quick overview of different options to manage AD using PowerShell. It will quickly jump into some of the shortcomings of the MSFT provided Active Directory module and how to work around them, and even "fix" them using proxy functions and the new Default Parameter Set feature in V3.

Disconnected Sessions: How they work. How they’ll work for you Presented by: Paul Higinbotham, Software Development Engineer, Microsoft and June Blender, Senior Programming Writer, Windows PowerShell Team

An in-depth talk for script authors and IT professionals interested in learning how to disconnect from live remote sessions and reconnect to those sessions later from an arbitrary client machine. What you can and can’t do with disconnected remote sessions, how remote sessions can be automatically disconnected because of network problems, how to query remote machines for available sessions you can connect to, and how to use disconnect session options.

Paul Higinbotham, the developer who coded the feature, and June Blender, Windows PowerShell programming writer, describe the design and architecture of disconnected sessions and explain how session information is retained and disconnected sessions are reconnected. We will cover the details of several remote session disconnect scenarios using the new and modified cmdlets for this feature and demonstrate how to use them.

PowerCLI: how to run PS scripts inside the VM’s guest OS Presented by: Luc Dekens

You can use PSRemoting to run PowerShell scripts inside the guest OS of your VM. But what to do when PSRemoting isn’t possible or available ? Think for example of VMs in a DMZ or on a pvlan. This session will show some alternatives. Run scripts as part of the guest OS deployment, run scripts through the VMware Tools interface or use an external trigger, via the VMware Tools, to influence PS jobs scheduled inside the guest OS.

CIM sessions Presented by: Richard Siddaway

The introduction of the CIM cmdlets and “cmdlets over objects” in PowerShell v3 provide new ways to work with WMI. In addition, they bring a new way to access remote systems ? CIM sessions. Analogous to PowerShell remoting sessions they provide a new flexibility when working with WMI and remote machines. This session will demonstrate:
- How to use CIM sessions against systems running PowerShell v3
- How to work with legacy installations of PowerShell v2
- How to use the available CIM session options to configure the session to meet your requirements
- Compare and contrast working with WMI, CIM and WSMAN cmdlets against remote machines to illustrate the strengths and weaknesses of each
- How to mix and match CIM sessions using WSMAN and DCOM.

The key takeaways from this session will be:
- The CIM cmdlets provide a new way to access WMI
- WSMAN is required knowledge
- WSMAN and DCOM can both be used with the CIM cmdlets
- CIM sessions are easy to use and very powerful
- No more DCOM problems

PowerShell and the Legacy Presented by: Sean Kearney

There is a belief that using PowerShell means rejecting the use of legacy environments like vbScript and Console applications. Some may also believe that just because they have an older system it is not possible to manage it with PowerShell Watch as the most Energized MVP, Sean Kearney takes you into a world of wonder where the old and the new Co-Exist. See possibilities you may not have considered before.

Key take-aways:
- Interaction between modern day PowerShell and older apps
- Repurposing older tools as PowerShell cmdlets

Tastes Great! Less Scripting! Presented by: Sean Kearney

The fight continues on. the argument between the great Lords above that PowerShell is a scripting Environment vs whether it is a Management console! Watch an Actual ITPro on Stage as he shows how he REALLY uses PowerShell in a day to day environment, from basic management and reporting needs, to building out a script to manage needed tasks Take aways Understanding that learning PowerShell does NOT mean a heavy reschooling.

PowerShell and Hyper-V3 – Flying by the Seat of your Pants Presented by: Sean Kearney

Go hardcore. Or in this case FULL SERVER CORE 2012! Learn how you can fully manage a complete clustered Hyper-V core environment in Server 2012 from Creation of the Cluster to management of the Virtual machines including Site replication all without the GUI.

Take aways? Be hard core and go CORE! :)

Highway to PowerShell – The Story behind the Story Presented by: Sean Kearney

Ok this isn’t Deep Dive and I don’t expect anybody to PAY for this but I’m willing to talk about just HOW and WHY I turned into a musical Madman :)

Authoring PowerShell like a Poshoholic Presented by: Kirk Munro

I’ve been using PowerShell for over 6 years. Blogging about it for over 5 years. Creating and managing products based on PowerShell for about that long as well, and writing a whole lot of scripts during the process. During this time I’ve come up with a trick or three to make that work easier. Some of these tricks are simple time savers, while others are ground breaking opportunities that just might change the way you write PowerShell.

Come and join me in this session to get a bird’s eye view at some of the work I’ve been doing with PowerShell, as I talk about tips, tricks, and best practices while demonstrating some of the extensions I’ve written specifically to make authoring with PowerShell easier to do.

Topics discussed include proxy functions, WMI/CIM, Microsoft Office, DSVs, WiX, merge modules, type accelerators, and more.

Introduction to the Storage Management API Presented by: Bruce Langworthy, Senior Program Manager, Storage and File Systems

SMAPI is what exposes the Storage module for Windows PowerShell. This session would be focused on providing some details on what it is, how it works, in which cases 3rd party drivers are required, and how it’s surfaced as a PowerShell module. More information: This session is recommended as a background for the "Managing Storage with PowerShell" and "Managing Storage Spaces with PowerShell" sessions.

Managing Storage with PowerShell Presented by: Bruce Langworthy, Senior Program Manager, Storage and File Systems

A dive into using the Storage module for Windows PowerShell to manage local storage, Storage Spaces, and array-based storage using PowerShell. More information: The focus of this session will be on the management of Disk, Partition, and Volume objects, with a brief overview of how this applies to Storage Spaces.

Managing Storage Spaces with PowerShell Presented by: Bruce Langworthy, Senior Program Manager, Storage and File Systems

This topic will focus specifically on deploying, configuring, and managing Storage Spaces using PowerShell. More information: Will cover deployment of Storage Spaces from beginning to end using PowerShell, and focus on using PowerShell to manage Storage Spaces. The "Introduction to the Storage Management API" session is strongly recommended before attending this session.

Managing the iSCSI Initiator and MPIO using PowerShell Presented by: Bruce Langworthy, Senior Program Manager, Storage and File Systems

This topic introduces users to the iSCSI and MPIO modules in Windows PowerShell on Server 2012, and discusses how to configure these features using PowerShell.

The Powers of PowerShell Pipeworks Presented by: James Brundage

Ever wanted to make PowerShell easy for others? Or realize that a simple script you have would be a great backbone of a business (if only you could charge for it)? PowerShell Pipeworks is a web platform built in PowerShell that makes is simple to build compelling web applications and software services in a snap. In this session, you will see: – How to use Pipeworks to store your data to the cloud – How to create a monitoring dashboard with Pipeworks – How to build a Facebook application with PowerShell Pipeworks – How to put a price tag on a cmdlet

Networking cmdlets Presented by: Richard Siddaway

Windows 8/2012 introduces a large number of cmdlets for working with networks and network configurations. This session will introduce those cmdlets and see how you can get the best out of them in your environment. There are a number of interesting quirks associated with these cmdlets that you need to be aware of and they will be demonstrated in the session. Like so much of the functionality in Windows 8/2012 these cmdlets are based on WMI using the CDXML functionality. This will be briefly explained with a look inside one of the networking modules. These cmdlets are only available on Windows 8/2012 but with a bit of WMI you can duplicate the functionality in your environment.

PowerShell Web Access Presented by: Richard Siddaway

PowerShell Web Access is a new feature in Windows Server 2012 that provides a web based PowerShell console. You don’t need PowerShell on your client to administer remote machines as long as you have PWA. This session will demonstrate how to configure PWA, its strengths and weaknesses – you might even see PowerShell being accessed from a non-Windows machine! The security implications of PWA will be discussed. PWA will be compared to other ways to access remote machines through PowerShell including PS Remoting and CIM sessions.

Writing your Hyper-V deployment script in 30 minutes Presented by: Jeff Wouters

In this session I’ll show you just how easy it is to write a simple deployment script for a Hyper-V cluster… in only 30 minutes!

BOFH through PowerShell Presented by: Jeff Wouters

Ever wondered how you could annoy your users, managers and even your colleagues with PowerShell? Come to this session and let me show you how you can become a BOFH with PowerShell!

How to avoid the pipeline Presented by: Jeff Wouters

The pipeline… although it is a wonderful concept and very powerful it is also slow. Lots of people pipe everything together and although it may work, you may have some time to get some more coffee before your script is done running. Let me show you how you can avoid the pipeline by utilizing the full potential of cmdlets and their parameters… and with logical thinking.

PowerShell one-liners to the max Presented by: Jeff Wouters

The readers of my blog know that I simply love one-liners in PowerShell… Over the years I’ve learned lots of tricks which allow you to put just about anything in a single line of code. Although it’s not pretty, it’s fun to do and wouldn’t it be cool to make a developer cry just by looking at such a one-liner?

My learning experience with PowerShell Presented by: Jeff Wouters

This will not be a technical session… Back when PowerShell v1 was introduced the first thing I though was: "I can do a heck of a lot more with VBS!". Then PowerShell v2 came along and I was sold! A lot of people would have bought books to learn it… I did not. Instead I started to play around in the prompt. Only after two years I bought my first PowerShell book. In this session I will share with you both the rise and fall of my learning experience of learning PowerShell from the prompt.

How to sell PowerShell to your customers and colleagues Presented by: Jeff Wouters

You:"Let’s enable PowerShell Remoting!". Manager:"Why?" You:"So I can manage the entire environment through PowerShell from a single management server?". Manager:"No!" Does this discussion sound familiar? If that’s the case, let me share with you the things I’ve learned which make it easy for you to ‘sell’ PowerShell to managers from a practical point of view.

PSDD – PowerShell Deduplication Presented by: Jeff Wouters

With Windows Server 2012 there comes a new feature named Data Deduplication. How can you configure and manage this through PowerShell? But more importantly, how can you do more with it than the native PowerShell module offers you? This and more will be shown in a very fast-paced session… so faster your seat belts Dorothy ’cause Kansas is going bye-bye!

Unit Testing PowerShell Presented by: Matt Wrock

This talk will provide a walk through of Unit Testing PowerShell scripts. The OSS project Pester (https://github.com/pester/Pester) will be used to illustrate popular unit testing patterns such as ArrangeActAssert and Mocking to provide testability to PowerShell. There will be discussion on why and when to use unit testing in PowerShell as well.

Bootstrapping a new machine in an hour with Chocolatey Presented by: Matt Wrock

Sick of losing a day’s productivity to setting up a new Machine? Do you find it tedious keeping track of your favorite tools, software settings and windows settings? Do you find using VMs for this task to be awkward and fragile? Learn how to use Chocolatey (http://chocolatey.org) and other PowerShell tricks to bring this entire process into a single script that will run on its own in just about an hour (give or take depending on installs). You can even have several bootstrapping configurations depending on your scenarios. One for work, another light weight one for Remoting on to a new serer and another for personal machines.

Inside PowerShell: Abstract Syntax Tree Manipulation Presented by: Adam Driscoll

In this session we will take apart PowerShell. This session will highlight the new abstract syntax tree and node visitor API that is exposed in v3. An instrumentation profiler will be used as an example of how to traverse and manipulate PowerShell scripts from within the engine.

.NET Reverse Engineering with PowerShell Presented by: Adam Driscoll

In this session we will look at how to utilize ILSpy to decompile .NET assemblies and quickly access internal aspects of them using PowerShell. We will see how to easily expose private members for access and manipulation within scripts. Adam Driscoll

FIM 2010 DevOps with PowerShell Presented by: Craig Martin

Forefront Identity Manager 2010 (FIM) is a complex product that benefits greatly in a DevOps world facilitated by PowerShell. Come learn how PowerShell improves FIM deployments, highlighting the PowerShell lessons learned from a non-PowerShell MVP, and arguably a non-developer. Topics will include: FIM Test Automation with PowerShell FIM Deployment Automation with PowerShell FIM Extensibility with PowerShell FIM Workflow with PowerShell FIM Diagnostics with PowerShell Craig Martin is a FIM MVP with a passion for improving integration and automation quality with PowerShell.

PowerShell as a SQL Reporting Services DataSource Presented by: Craig Martin

PowerShell turns out to be an excellent tool for collecting data about just anything. This session shows you how to get objects from PowerShell into SSRS reports quickly and simply, and all without using a data warehouse. This session will explain and demonstrate the use of a CodePlex project (psdpe.codeplex.com) to marry PowerShell and SSRS to provide some of the following benefits:

SSRS Report Designers – Produce Reports in a Simple Design Experience using Objects from a PowerShell Pipeline SSRS Data

Driven Subscriptions – Automatically distribute custom reports to users with data that pertains only to them

SSRS Caching – Cache reports in SSRS for later viewing so that your script does not need to reproduce the data

SSRS Data Processing Extensions – use SSRS to report on PowerShell objects (the core of the topic)

Providing APIs Using Management OData IIS Extension Presented by: Craig Martin

The API Economy is all the rage, at least when we’re not hearing about how cool PowerShell is. The idea is a replacement for ODBC, LDAP, or any other API, and preference by application developers to use OData and RESTful web services. Should we all get busy writing APIs then? Turns out PowerShell users already have, by writing scripts and modules. This new feature in PowerShell exposes the investment in commands to developers that may not care about about PowerShell, but instead demand to consume an API based on OData. Got a command for getting User objects? well now you can share that as an URL such as http://myServer/User (gets all the user objects) or http://myServer/User(‘Craig’)/Manager (gets Craig’s manager). The magic here is that the developer is reaping all the rewards of your hard PowerShell work, but that developer never needs to know that the URLs are actually powered by, well PowerShell. This talk will share the experience of an IT Pro with scripting experience, learning how to create APIs using the new Management OData IIS Extension.

Creating Reports with PowerShell that Managers will Read Presented by: Jeffery Hicks

We all know there is a wealth of information that you can uncover with PowerShell. Sometimes, getting this into a format that someone can read can be a challenge. In this session I’ll explain a number of techniques you can use for creating dazzling reports from PowerShell. From simple text files, to snazzy HTML reports to full-on Microsoft Word documents.

PowerShell and Microsoft Excel: A Love Story Presented by: Jeffery Hicks

After PowerShell, Microsoft Excel is probably an IT Pro’s most often used management tool. We store data in spreadsheets. We use spreadsheets as sources for our scripts and functions. Or maybe you would like to do these things but don’t know where to start. In this session I’ll explain how to integrate Excel into your PowerShell experience. From pulling data from simple spreadsheets to creating stunning reports complete with tables, charts and graphs.

PowerShell and Windows Server 2012 Active Directory Tricks Presented by: Jeffery Hicks

IT Pro’s have been able to manage Active Directory with PowerShell for while. But that was only the beginning. Windows Server 2012 offers a tantalizing array of Active Directory management options. In this session I will offer a number of tips and tricks that take advantage of these new features.

Zip It! Adding Compression to your PowerShell Scripting Presented by: Jeffery Hicks

PowerShell is a natural tool for file system management. IT Pros copy, delete and move files all the time. Even though storage is cheap and plentiful these days, wouldn’t it be nice to add some compression techniques to your PowerShell scripts and functions? This session will demonstrate a number of ways you can add compression to your file management tasks. From simple file and folder compression to creating complete archives. We’ll look at using the shell, 3rd party tools and WMI.

PowerShell v3 ISE Snippets Presented by: Jeffery Hicks

Without question the ISE in PowerShell v3 is a vast and welcome improvement over v2. One of the best features, which hasn’t gotten much attention, is the use of snippets. These little code gems can make writing a new script or function a breeze and even fun. But you can also add your own snippets. In this session I’ll explain how the snippet system works, demonstrate how you can add your own snippets and manage your snippet library, all from the ISE.

Adding a GUI to PowerShell without WinForms Presented by: Jeffery Hicks

Graphical PowerShell scripts seem all the rage these days. But most often that means using Windows Forms which can be very tedious to work with. But that is not the only game in town. Depending on your requirements there are a number of techniques you can use to add graphical elements to your PowerShell scripts. This session will explore how to create message boxes, input forms and more, all without a single Windows Form. If you are just getting started with writing PowerShell scripts, you’ll find these techniques simple to use, plus there will be plenty of sample code for all!

Building a Quick and Dirty PowerShell Backup System Presented by: Jeffery Hicks

It is a safe bet to say that most IT Pros have a backup solution in place for their organization. But sometimes you need something a bit more flexible or for special situations. Perhaps you have a lab or home test environment that needs protection. In this session, I will walk you through how to use PowerShell to set up a quick and dirty backup solution. This isn’t necessarily a replacement for a full-fledged backup product, but it just might help fill the gaps.

File & Folder Provisioning with Win8, Win2012 and PowerShell Presented by: Jeffery Hicks

If you manage file servers and aren’t using PowerShell, you are working much too hard. Or if you are using PowerShell v2 you are still working pretty hard. Fortunately PowerShell v3 along with Windows 8 and Windows Server 2012 offer a much better solution. This session will demonstrate how to provision and manage folders, files and file shares using PowerShell from a Windows 8 client. With a little up-front work, you ‘ll be able to create provisioning scripts to deploy a new file share in seconds.

Manage DFS the PowerShell Way Presented by: Jeffery Hicks

Most of the time, managing a distributed file system (DFS) infrastructure is pretty simple and graphical tools are fine. But all the cool kids will use PowerShell. Windows 8 and Windows Server 2012 offer a better way for managing DFS. From creating new folders to getting a handle on what it looks like now, to troubleshooting access problems, this session will demonstrate how to have it all from a PowerShell prompt.

Write modules, not scripts Presented by: Ed Wilson, Scripting Guy, Microsoft

Learn how to get the most from Windows PowerShell by learning a simple five-step method to transform your Windows PowerShell code into a highly reusable module. This presentation is a live demo that begins with a single line of Windows PowerShell code, transforms the code into a function, adds comment based help to the function, and converts it into a module. Next, the installation and discovery of Windows PowerShell modules is covered, as is updating the module and creating a Windows PowerShell module manifest. Ed Wilson

What I learned by grading 2000 PowerShell Scripts in the 2012 Scripting Games Presented by: Ed Wilson, Scripting Guy, Microsoft

The 2012 Scripting Games attracted both experienced and novice scripters from more than 100 countries around the world. In grading the 2000 submitted scripts, I noticed a common theme emerged. Some of the things that were consistently confused by both beginners and advanced scripters include the following: failure to return objects from functions, not creating reusable functions, spending too much duplicating capabilities of native PowerShell, using meaningless comments, omission of error handling, and an overreliance on Write-Host. In this session, I will address each of these areas of concern and show both good and bad examples from the games. A thorough discussion of each of these topics rounds out the presentation. This presentation uses live demos to illustrate the techniques that are discussed. Ed Wilson

Use PowerShell to manage the remote Windows 8 workstation Presented by: Ed Wilson, Scripting Guy, Microsoft

There are three different ways to manage a remote Windows 8 workstation. The first is to use WMI remoting, the second is to use the computername cmdlets and the third is to use WinRm and Windows PowerShell native remoting. Each approach has advantages and disadvantages for the network administrator. In this session, I will examine each approach, and provide a checklist of criteria to aid the enterprise network administrator in choosing the appropriate technology for a variety of real world scenarios. This presentation combines live demos and interactive discussion to heighten learning.

Use PowerShell to troubleshoot the reliability issues Presented by: Ed Wilson, Scripting Guy, Microsoft

Using the reliability provider on Windows 8 workstation or on a Windows Server 2012 machine provides a plethora of information about the health of your system. Unfortunately, the reliability provider is not enabled by default on Windows Server 2012, and attempts to enable it do not always work. In this session, I discuss the issues surrounding the reliability provider, illustrate the type of information available, and hint at how to incorporate its use into a normal monitoring program. Live demos using easily created Windows PowerShell scripts round out the discussion.

PoshMon: PowerShell does performance counters Presented by: Ed Wilson, Scripting Guy, Microsoft

One of the cool features on Windows PowerShell 3.0 is easy consumption of WMI performance counters into Windows PowerShell. In the past, leveraging these performance counters meant writing long lines of cryptic code, calling refresher objects, and dealing with weird timestamp issues. But no more! Using a simple cmdlet, Windows PowerShell throws open the door to the treasure trove of performance counter information. But where does the oversubscribed IT pro begin? A question on my Windows NT 3.51 MCSE exam stated there are four areas for performance monitoring: disk, memory, network, and CPU. These four resources have not changed much, regardless of the application these basic areas of investigation still ring true. In this session, I talk about discovering performance counters, using performance counters, and storing information gathered from performance counters. The talk will be strengthened by live demos at each stage of the presentation.

Why IT Pros must learn Windows PowerShell Now Presented by: Ed Wilson, Scripting Guy, Microsoft

”IT Pros don’t script.” I have heard this mantra for more than a decade – ever since I wrote my best selling Windows Scripting Self-Paced Learning Guide for Microsoft Press. But Windows PowerShell is more than just a new scripting language – in fact, some PowerShell MVPs have stated that Windows PowerShell is not a scripting language at all. Also, and more to the point, Windows PowerShell is not even all that new, with Windows 8, Windows PowerShell enters the 3rd version – it is therefore established technology. Simply put, Windows PowerShell is the future automation story in the Microsoft world, but it is also the present, and the IT Pro who learns how to use this tool will immediately become a more productive, and consequently more valuable employee. In this session I will discuss the extent to which Windows PowerShell permeates the Microsoft eco system, and offer real world scenarios that illustrate both the power, and the simplicity of this management tool.

CDXML Presented by: Richard Siddaway

Windows 2012 brings 2500 cmdlets – over 60% of them are CDXML. That’s a WMI class wrapped in XML and published as a module. In this session you will discover how this technology works and more importantly how to easily create your own cmdlets to simplify the use of WMI

New Active Directory PowerShell cmdlets Presented by: Richard Siddaway

PowerShell for Active Directory gets a major boost in Windows 2012. The AD administrative center now exposes the PowerShell it uses and we get cmdlets for working the topology. In this session you’ll learn about AD admin center and how to get the best out if the new AD cmdlets with a look at some tips and tricks for working with AD in general. You’ll also discover that the AD provider does a lot more than you think it can.

CIM Presented by: Richard Siddaway

WMI is dead! Long live CIM! PowerShell v3 introduces the CIM cmdlets. Are they a replacement for the WMI cmdlets? Are they easier to use? In this session we’ll take them apart and see what makes them tick. A compare and contrast with the WMI cmdlets will show you when to use one or the other and how to get the best out of both.

Scheduled tasks Presented by: Richard Siddaway

You’ve used the back ground jobs functionality in PowerShell v2. In PowerShell v3 you get the chance to work with the task scheduler. A set of cmdlets straight out of the PowerShell box for working with scheduled tasks. Automation rises to a new level when you can tell the job to run in the middle of the night and you don’t need to be there. Learn how to do this and more in this session

Integrated reports Presented by: Richard Siddaway

Managers always want reports. Can’t be avoided but the task can be made easier. In this session we’ll look at creating some reports based on real world examples: 1. Get the size of your Exchange databases and free disk space. Store the results in SQL Server. Create reports that show current situation and trends over time. 2. All administrators hate documenting their servers. Learn how to create a report that writes itself – literally. Keep your server documentation up to date with no effort on your part.

PowerShell events Presented by: Richard Siddaway

The PowerShell event engine enables you to work with .NET; WMI and PowerShell engine events. What are these and how do they work? What can I do with them? Want to stop a process that shouldn’t be running? Want to start a process that’s stopped? That’s what this session will show you with PowerShell events.

WSMAN cmdlets Presented by: Richard Siddaway

PowerShell remoting uses the WS-Management protocols as transport between the local and remote machines. This is implemented as the WinRm service. We can utilise the WS-Management layer (WSMAN) directly to access WMI providers. This session opens up one of the least used areas of PowerShell v2. We will see how to use the WSMAN cmdlets:
- Connect-WSMan
- Disconnect-WSMan
- Get-WSManInstance
- Invoke-WSManAction
- New-WSManInstance
- New-WSManSessionOption
- Remove-WSManInstance
- Set-WSManInstance
- Test-WSMan

With these we can access a remote machine in a similar manner to using the WMI cmdlets or PowerShell remoting. The advantage over WMI cmdlets is that we don’t need DCOM. These cmdlets aren’t straight forward to use but there is an untapped administration opportunity that potentially also enables us to administer remote machines that aren’t Windows based. The session will be heavy on code and short on slides as this is a subject best demonstrated.

PowerShell jobs Presented by: Richard Siddaway

PowerShell normally runs tasks in the fore ground. This ties up the PowerShell prompt and stops you doing other work. We could just open lots of PowerShell prompts but a better way is to use PowerShell jobs. PowerShell jobs run in the background. You can have multiple jobs running simultaneously and still work at the prompt. Better still the jobs? results are saved until you are ready to use them. PowerShell jobs are an under used item in the administrators tool box. This session will show what they can do and how we can make the most of them. Lots of code and minimal slides make the session very interactive.

PowerShell and SQL Server Presented by: Richard Siddaway

Storing data in SQL server is not a new idea. Accessing SQL Server using PowerShell opens up this data store for us. This session will show how to use SQL Server to store your data; how you can read, update and if necessary delete the data. Simple PowerShell routines that open a lot of power.

DNS Apocalypse (Notes From The Field) Presented by: Ashley McGlone, Microsoft PFE

Hear Microsoft PFE Ashley McGlone explain how he got out of this one. Global 24×7 mission-critical customer had a single text file DNS primary zone hosting all 10 Active Directory domain zones in the forest. Needed to switch to AD-integrated DNS, split out all zones into separate domains, and delegate DNS administration. Then they explained there are no change control maintenance windows, and it had to be done with zero down time. He did it. Come find out how PowerShell saved this customer.

AD Migration Nightmare (Notes From The Field) Presented by: Ashley McGlone, Microsoft PFE

I got a panic call from the customer. Half way through the AD domain migration their third party migration tool database crashed and was unrecoverable. They lost all SID history conversion tracking. The vendor doing the migration was unsure how to proceed. Hear Microsoft PFE Ashley McGlone explain how PowerShell saved the customer. Do you know where your SID history is hiding?

Mass File Server ACL Migration (Notes From The Field) Presented by: Ashley McGlone, Microsoft PFE

I had a customer who acquires 13 new companies each year. They have more than 35 domains in the forest and another 80 trusts. With over 170,000 instances of SID history in the forest they had no idea where to begin fixing SID history on file shares. They needed a way to migrate ACLs on their file servers, to report on the impact, and to manage it effectively in the future. Where would you begin? Hear Microsoft PFE Ashley McGlone explain how PowerShell saved the customer.

Automated Server Setup with Carbon Presented by: Aaron Jensen

Aren’t manual setup checklists the greatest? How about virtual machine images that have been cloned for so long nobody knows where they come from? Nobody likes spending hours doing the same things over and over again, or reverse engineering what configuration changes someone made to a server before walking out the door. Come learn about Carbon (http://get-carbon.org), the DevOps module I created that enables us to spin up dozens of servers in just a few hours. I’ll give an overview of all the functionality available in Carbon, then dive deep into some of the things I’ve learned and discovered during development.

Connecting ERP to AD with PowerShell – A Two-way Street Presented by: Steve Moss

When we implemented Jenzabar CX as our college’s ERP solution, it became our authoritative data source and the driver for things like Active Directory account creation and maintenance. Initially, we used a series of VBScripts to handle the integration with AD. When I was tasked with fixing and maintaining that code, two things because clear. First, The existing code was virtually unmaintainable. Second, PowerShell made it relatively easy to create a solution that was modular, flexible and easily maintained. I’ll look at how we implemented the communication from CX to AD and from AD to CX using /nSoftware’s PowerShell Server and ODBC. I’ll also look at the way we decomposed the creation and maintenance various types of AD accounts into discrete tasks and used that to create a modular library of functions that allows us to use a building block approach to not only implementing the automated processes that we needed, but also create an interactive set of tools for our Service Desk people to view and modify AD accounts in a controlled way.

Deploy and manage certificates for your IIS servers using PS Presented by: Jason Helmick

Need to deploy and manage certificates for your websites? When was the last time you checked to see if your website certificates were about to expire? In this session with renowned PowerShell and IIS expert Jason Helmick, you will deploy, manage, revoke and remove certificates to multiple remote IIS servers running Windows Server Core. Discover and alert when certificates are about to expire and handle creating and changing SSLBindings in IIS.

Automatically Provisioning an IIS 8 Web Farm Presented by: Jason Helmick

Increase productivity while increasing time off using PowerShell! In this session with renowned PowerShell and IIS expert Jason Helmick, you will learn to provision a web farm of servers, sites and applications. Quickly adapt your web farm to the needs of the business with rapid scale load balancing. You will leave with the slides, demonstration steps and Jason’s tips to rapidly provision IIS. Don’t lose another weekend to web farm deployment and management!

Securely Manage your network anytime on any Device with PSWA Presented by: Jason Helmick

Are you “on-call” and worried to leave the office? Not anymore! In this session with renowned PowerShell and IIS expert Jason Helmick, you will learn to implement and securely configure Windows Server 8 PowerShell Web Access. Take control with any device and cmdlets at your fingertips without the overhead of installing additional administration tools. You will leave with the slides, demonstration steps and Jason’s tips to securely deploy and utilize PowerShell Web Access.

System Center 2012 Configuration Manager and PowerShell Presented by: Greg Ramsey

ConfigMgr and PowerShell – we have finally arrived! ConfigMgr and WMI have been a match made in heaven for the since at least SMS 2.0, so we’ve always been able to use PowerShell with ConfigMgr. But finally, we have real cmdlets that will allow you to fully automate the administrative experience with ConfigMgr. Are you ready to take your Configuration Manager Admin experience to the next level? Greg shows you how to leverage PowerShell with Microsoft System Center 2012 Configuration Manager SP1. Manage Deployments, Collections, Applications, Packages, Programs, and even Software Updates!

Working with script blocks Presented by: Rob Campbell

Creating script blocks for remote jobs and filters using local variables. Using script blocks to: create collections simplify code maintenance get user input pipeline output from foreach loops

Metaprogramming PowerShell Presented by: Ian Davis

PowerShell can be a fun and crazy language to use, but we can take it a step further with metaprogramming. By taking advantage of PowerShell’s flexible language features including dynamic scoping, modules, deferred evaluation, and ScriptBlocks, we can create simple and powerful applications applications leveraging metaprogramming idioms.

Chewie: PowerShell DSL for Managing NuGet Dependencies Presented by: Ian Davis

Have you ever tried to figure out which dependencies your application has? Tired of messing with NuGet repository.config and packages.config files? Are you fed up with having to load Visual Studio and enabling package restore by hand? Ruby has had a solution for a long time with gems and bundler. By leveraging the features of PowerShell, .NET developers can have their own DSL for managing dependencies efficiently with Chewie.

Internal DSLs in PowerShell Presented by: Ian Davis

To write a DSL or to not write a DSL, that is an important question. PowerShell gives us great power to create DSLs, but it doesn’t mean that we should create one. This talk will cover when to create a DSL along with techniques specific to PowerShell for creating them (deferred evaluation, first class objects, dynamic scoping, semantic models, dependency graphs, etc). Some existing PowerShell DSLs will be analyzed including as psake, pester, and chewie.

PowerShell: Beyond Scripting Presented by: Ian Davis

PowerShell is missing a few language features, but that doesn’t mean we can pretend. By changing our perspective slightly, we can apply parasitic and prototypal inheritance, open classes, monkey patching, and more. PowerShell was designed for solving problems for system administrators, but it isn’t limited to that domain.

Automated Builds With PowerShell Presented by: Ian Davis

Automated builds are a critical part of application lifecycle management. PowerShell is very well suited for making this process easier. We have gone full circle with scripting builds and by leveraging PowerShell on the command line and building DSLs, our builds can be more robust and intuitive than ever.

Troubleshooting SQL Server with PowerShell Presented by: Laerte Junior

It is normal for us to have to face poorly performing queries or even complete failure in our SQL server environments. This can happen for a variety of reasons including poor Database Designs, hardware failure, improperly-configured systems and OS Updates applied without testing. As Database Administrators, we need to take precaution to minimize the impact of these problems when they occur, and so we need the tools and methodology required to identify and solve issues quickly. In this Session we will use PowerShell to explore some common troubleshooting techniques used in our day-to-day work as DBA. This will include a variety of such activities including gathering Blocked SQL Server Process, Reading & filtering the SQL Error Log even if the Instance is offline, Listing SQL Server and Database information and Register Temporary and Specific Events in the SQL Server WMI. The approach will be using PowerShell techniques that allow us to scale the code for multiple servers and run the data collection in asynchronous mode.

PowerShell in Windows 8/2012 Presented by: Richard Siddaway

PowerShell has 2500 cmdlets available in Windows 2012 This session will give you a quick overview of what’s available and more importantly what you can do with it. There is so much functionality available that if you don’t know its there you can miss it. A quick overview of what’s available and lots of demos

PowerShell and WMI Presented by: Richard Siddaway

With all the new WMI based functionality in PowerShell v3 its easy to forget the old WMI cmdlets. They are still there, still have their place and can teach us a few things about administering our systems. Some of the new PowerShell v3 functionality makes them easier to use – learn how Some of the WMI gotchas still remain – see what they are, how you overcome them and what effect they have on the new CIM cmdlets

Building Enterprise Modules Presented by: Adam Driscoll

In this session we will look at how to author enterprise-level modules using a combination of both PowerShell and C#. We’ll examine the common pitfalls and considerations that should be made when thinking about enterprise PowerShell support. We will look at how to build modules that are easy to test and maintain.

Tame Your Event Logs with Windows PowerShell and WinRM Presented by: Aleksandar Nikolic

In this session you will learn how to manage your Event Logs with PowerShell cmdlets, leverage the power of Event Forwarding to centralize events to a central server and trigger execution of PowerShell scripts from a specific Windows event.

Automate Server Manager in Windows Server 2012 Presented by: Aleksandar Nikolic

Server Manager in Windows Server 2012 has evolved to include many new multi-server management features. It uses Windows PowerShell behind the scenes, but can we use Windows PowerShell to automate customization of Server Manager? Yes, we can. Join us for this session to learn how.

How to Delegate Administration and Customize PowerShell Session Configuration Presented by: Aleksandar Nikolic

In this session you will learn how to customize PowerShell session configuration, and then use it to assign specific administrative tasks to the appropriate users and groups without changing the membership of local Administrators group. By using new Windows PowerShell and Windows Remote Management 3.0 capabilities we will enable dynamic creation of customized automation environments that users can access through the Windows PowerShell Web Access.

Configuring Your Windows PowerShell Workflow Environment Presented by: Aleksandar Nikolic

In this session you will learn how to set up your environment to run Windows PowerShell workflows. We will discuss different workflow configurations, how to prepare computers to run workflows, what is workflow session configuration and how to customize it. At the end, you will learn how to properly run your Windows PowerShell workflows.

Build Your Demo Environment or a Test Lab with Windows PowerShell Presented by: Aleksandar Nikolic

With Windows PowerShell 3.0 and the new Client Hyper-V available in Windows 8, it is so easy, and fun, to automate creation of your demo environment or a test lab infrastructure. You can easily convert ISO files to VHDs, deploy your VMs and configure networking and storage. Join us for this demo-heavy session to see all the steps.

Is Server Core without Windows PowerShell still remotely manageable? Presented by: Aleksandar Nikolic

In this, some might say blasphemous, session you will learn that uninstallation of Windows PowerShell doesn’t leave your Windows Server 2012 Server Core remotely unmanageable from the command line. We can still use Windows PowerShell on a client computer to access system CIM modules on a Server Core. Even better, we can increase its manageability by deploying our own CIM modules. Join us to see the power of CIM sessions and CIM modules.

Scripting for Scale in the Virtual Datacenter Presented by: Josh Atwell and Jade Lester

The virtual datacenter is growing at a high rate. The increasing size and complexities can make scripting and reporting take too long to complete in a reasonable time period. Attendees will learn a variety of techniques and strategies you can use to speed up your scripting and reporting with PowerCLI and UCSPowerTool from two members of Cisco internal IT.

PowerCLI for the PowerShell Inclined Presented by: Josh Atwell

In this session I highlight many of the built in functionalities of PowerCLI that are extremely powerful but often underutilized. These cmdlets will increase your flexibility with PowerCLI and help increase efficiency.

Managing your Cisco UCS with UCSPowerTool Presented by: Josh Atwell and Jade Lester

Attendees will get a crash course in the unique and powerful cmdlets of the UCSPowerTool, PowerShell for the Cisco Unified Compute System.

Thank you for helping us create this great conference!

Kirk out.

PowerShell Summit North America 2013 Call for Content

September 13, 2012 8 comments

In case you haven’t heard already, there is a great opportunity to learn a lot more about PowerShell coming up next year.  It’s the PowerShell Summit North America 2013 conference, and it is held on Microsoft campus in Redmond, WA from April 22 to 24, 2013.  This conference is run by the PowerShell.org community, and it will present a ton of deep technical content on anything to do with PowerShell.  What content will be covered, you ask?  Well, that’s up to you.

We are now accepting content proposals from anyone who wants to present at this conference.  All you need to do to submit your session proposals is to add a new topic to the Session Submissions forum on PowerShell.org for each session you want to present.

Who can present?

Anyone who has something to share with other PowerShell experts and enthusiasts that will help them learn more about PowerShell can propose a topic they would like to present at this conference.  There will be a survey shared with the community that allows them to vote for the sessions they want to see, so ultimately the community will decide who can present at this conference.  Note that when reviewing the community results, the conference organizers reserve the right to make some modifications to the sessions that are selected to balance the topics that are discussed and to be able to better accommodate speakers who are offering to present multiple sessions.

What topics will be discussed?

There will be around 100 PowerShell experts and enthusiasts at this conference, including some PowerShell MVPs, some non-PowerShell MVPs, and some members of the PowerShell team.

At a conference like this they will be looking for advanced sessions that show them deep technical content on various aspects of PowerShell as well as real-world practical applications of PowerShell.  They’ll likely want to learn more about workflow, remoting, CIM, and many other technologies used by PowerShell.  They’ll also likely want to learn about how PowerShell is used in practice with PowerShell extensions like PowerCLI to manage vSphere deployments at Scale, or how PowerShell is being used with multiple technologies (SharePoint, System Center Orchestrator, Exchange, NetApp, Active Directory, etc.) to deal with the real-world management challenges that exist in enterprise organizations.  These are just some examples of the topics that might be discussed in sessions at this conference.  It is important to note that no presentations will include any NDA information.  As mentioned, topics will be voted on by the community and then those results will be reviewed by conference organizers to come up with the final list of topics that will be presented at the conference.

Please keep in mind that there will be two tracks for this event: one will have the content with the deepest technical depth, and another will have real world and more intermediate to advanced level content.  With two tracks, you really shouldn’t be shy about submitting sessions if you think you might have something to add.  Chances are, if you’ve been using PowerShell for a while and if you continue to use it very regularly, you probably have knowledge and experience that you can share with others.  Don’t worry about which track your session will ultimately fall in.  The conference organizers will figure those details out as part of their agenda planning.

Where will the conference be held?

The conference will be held on Microsoft campus in Redmond in buildings 40 and 41 from April 22 to 24th, 2013. There may be additional activities surrounding the conference, but the core sessions will be April 22, 23 and 24.

When can I submit a proposal?

You can submit a proposal now.  Simply post your proposal as a new topic on the Session Submissions forum on PowerShell.org for any sessions that you want to present.  Session proposals will be accepted on that forum until October 14, 2012 at midnight PST (take note of that date!).  Once that deadline is met, on October 15, 2012 we will publish a list of all proposals with a voting system that will allow community members to vote for their favorite sessions.  Votes will be accepted over a 2 week period, and the week of October 29th the conference organizers will review the votes and sessions and put together the list of accepted sessions, contact speakers for confirmation, etc.

We strongly encourage you to submit multiple session proposals so that you increase your chances of having a session accepted.  Note that you can submit a proposal even if a related session has already been proposed by someone else.  In fact, if you want to present multiple sessions, I would encourage you to submit the sessions that you want to present, without holding back if a similar session is already proposed.  There are advantages to presenting multiple sessions (see below), and the community will indicate what they want to see in the end anyway.

If you will be attending the conference whether you have a session proposal accepted or not, you should buy your conference ticket as soon as possible to take advantage of the early bird pricing.  If you can only attend this conference if you have enough proposals accepted to cover the bulk of your expenses (see below for details on the benefits of being a presenter), you should submit your sessions now regardless and once the session review process is completed, conference organizers will contact you to make sure you are able to commit to attending and presenting at the conference.  You can also fire me a note if you want to make me aware ahead of time that you can only attend if you have at least 3 sessions accepted, either using my contact me form or via email (on gmail or hotmail, either works, using the nickname I use on this blog as the user id).

Why should I submit a proposal?

Personally speaking, I find presenting information that has been learned through hard work to be very rewarding.  I also find receiving information that others have learned through their hard work to be very rewarding as well.  It’s all about the community participation and sharing of knowledge.  Aside from being proud of your work and sharing it with others, there are more tangible benefits for speakers with accepted sessions as well.

For every session proposal that is accepted (voted high enough by the community and accepted in the final review by the conference organizers), speakers will receive a $300 travel stipend as well as up to $200 to offset 1/3 of their registration cost.  That means someone presenting 3 sessions will receive $900 that they can use towards their travel expenses and a full refund of their registration fee.  This should make it much clearer why it is advantageous to submit multiple session proposals.

One last reason why you should submit a proposal: the value of the conversation that comes with an event like this is extremely high.  You’ll be able to talk to others about your challenges and ideas, learn from their efforts, perhaps find people you want to work with on various community projects, etc.  It’s the networking alone that drives me to attend events like this.

How do I write a proposal?

Each proposal you enter must include three pieces of information:

  • a title for the session you are proposing,
  • your full name, and
  • a 1-2 paragraph description of what the session will contain.

You must create one topic per proposal.  Don’t put all of your sessions on one topic, and don’t reply to current topics when creating proposals, please.

In general when planning your proposal, focus on content that will come with more demos, and less on slide-heavy content.  This is a conference for experts and enthusiasts who are looking for deep technical content on PowerShell-related topics in interactive sessions.  With this crowd, rich, demo-focused sessions will be preferred over slide-heavy sessions.

You should also review some of the proposals that are already submitted as examples.  Keep in mind that the sessions are 35 minutes long with 10 minutes of Q&A at the end (although questions often come up during the sessions at an event like this).  35 minutes may seem like a lot of time, but it goes by quickly, especially when doing demos.

Summary

That’s a lot of information, so here is a summary of the essential points along with links to additional information.

Conference Title PowerShell Summit North America 2013
Conference Website http://powershellsummit.com
Conference Dates April 22-24, 2013*
Location Microsoft Campus, Buildings 40 and 41, Redmond, WA
Session Proposal Forum http://powershell.org/discuss/viewforum.php?f=22
Session Proposal Deadline October 14, 2012 at midnight PST
Session Voting Period October 15, 2012 to October 28, 2012
Final Tally and Processing The week of October 29, 2012
Sessions Announced As soon as possible after October 29th, once the final tally and processing is done and accepted presenters have confirmed their sessions
Forum for Conference- and Session-Related Questions http://powershell.org/discuss/viewforum.php?f=20
Speakers Page http://powershell.org/summit/speak.php
Conference FAQ http://powershell.org/summit/faq.php
Best location to ask PowerShell questions and to help the community with answers http://powershell.org

* With a high probability for a short, half-day event adjacent to this.

I look forward to reading your session proposals!

Thanks,

Kirk out.

Follow

Get every new post delivered to your Inbox.

Join 1,889 other followers

%d bloggers like this: