Category Archives: PowerShell for Admins

February 2015 NoVa PSUG Meeting Notes


Matt had to cancel so we had a mini-scripting games. Bellow are the challenges.


 

Challenge 1

Generate a list of US Presidents sorted by last name alphabetically.

Hints:
Invoke-WebRequest http://www.presidentsusa.net/presvplist.html
Microsoft.PowerShell.Commands.HtmlWebResponseObject

Challenge 2

Create a DSC Configuration that verifies the w32time service is set to Automatic startup and is in a Running state.


 

Some links of note from our discussions:

The next meeting will be on March 25th at the Reston Microsoft Office.

NJ PowerShell UG Meeting March 5th: Presenter Adam Bertram


The NJ PowerShell User Group is having a meetup on Thursday, March 6th from 6:00 – 8:00 PM.  The first half hour will be for socializing, pizza, and playing pool at our coffee bar. 

Registration: EventBrite  You must register to attend in person.

Agenda:
                6:00 – 6:30: Pizza and socializing
                6:30 – 7:30: Presentation
                7:30 – 8:00: Q & A

Please note that the Webex meeting will start at 6:00 PM, but the actual presentation won’t start until 6:30In-Person attendees must register, print out their EventBrite ticket, and present it at the door.  Walk-ins will not be permitted.  

Presenter: Adam Bertram

Bio: Adam has been in the IT industry since 1998 and has mostly focused his career on Microsoft technologies.  He’s a child of autoexec.bat and batch menus, graduated to VBscript 10 years ago and made his way to Powershell 3 years ago.  Adam’s passion is breaking complicated problems down and developing creative solutions using Powershell.  Due to his experience with Microsoft’s Configuration Manager he’s been known to write a lot of scripts around software management.

Presentation Description:

Managing Software Installs with Powershell

If you’ve ever tried to script a software install or uninstall to a lot of different applications you’ll know how hard it can be. Every piece of software seems to work in a different manner. This talk will go over a Powershell module I’ve created that allows me to easily find, install and uninstall MSIs, InstallShield and other EXE installers. It also has the ability to perform various cleanup routines and perform many other functions necessary for the software to work as you would expect.

Twitter: @adbertram

  AdamBertram 

Coffee Bar, Pool Table, and XBox

Coffee Bar

Conference Room

Conference Room

 

 

 

 

 

 

 

 

 

 

 

 

NJ PowerShell Users Group Meeting: Presenter Doug Finke – Microsoft MVP


The NJ PowerShell User Group is having a meetup on Thursday, January 8th from 6:00 – 8:00 PM. If interested, please register through the Eventbrite website to track attendance for ordering pizza.  For those attending online (Webex) we will send a follow-up email with the meeting link based on Eventbrite online registrants. 

Agenda:
6:00 – 6:30: Pizza and socializing
6:30 – 7:30: Presentation
7:30 – 8:00: Q & A

Please note that the Webex meeting will start at 6:00 PM, but the actual presentation won’t start until 6:30
In-Person attendees must register, print out their EventBrite ticket, and present it at the door. Walk-ins will not be permitted.

Presenter: Doug Finke

Bio: Doug Finke, author of “PowerShell for Developers”, a Microsoft Most Valuable Professional (MVP) for PowerShell and works at Start-Automating, a company specializing in all aspects of PowerShell development, including consulting, training and tool building. Doug has been a developer and author working with numerous technologies. You can catch up with Doug at his blog Development in a Blink at http://dougfinke.com/blog.

Microsoft Most Valuable Professional (MVP) Doug Finke takes us through PowerShell from a developer’s point of view. Doug shows techniques for integrating/debugging PowerShell from
and to C# code as well as using PowerShell with a Windows Presentation Foundation (WPF) application. He also addresses using reflection at the command line, object pipelining, and
PowerShell’s REPL. Plus, time permitting, Doug will highlight some of the new features in the PowerShell v5 November Preview.

Twitter:@DFinke

Doug Finke    Windows PowerShell for Developers

NJ PowerShell Meetup Coffee Bar and Conference room at Mathematica Policy Research

Conference Room

Coffee Bar

Shortly – announcing the NA 2015 Summit speakers and agenda


We’ve been working feverishly to go through all the great presentation abstracts and make our selections. Everyone submitted really good abstracts, so if don;t receive an email by the end of the week, please understand that we only had so much room available.  This has been a difficult process, but we think we have built an excellent show for the NA 2015 PowerShell Summit.

We will be sending emails to the accepted speakers for confirmation by the end of the week.  WE will then post the agenda after we have had confirmation.

 

The current and future state of the Windows Management Framework


At the 2nd of October, Lee Holmes gave a presentation about the current and future state of the Windows Management Framework (WMF) during the Dutch PowerShell User Group (DuPSUG) at the Microsoft headquarters in The Netherlands.

The slide decks and recorded videos will be made available soon, but this is what was discussed:

The release cycle of the Windows Management Framework (WMF)

Faster incremental releases of preview versions are being released. This rapid development means that companies that need specific new functionalities to tackle current problems they’re having, don’t have to wait as long as they had to in the past.

Everyone should keep in mind that documentation for preview versions can be more limited, but should still read the release notes carefully. They contain descriptions of some of the improvements that are discussed in this blog post, but also cover other things that aren’t discussed here. Also be sure to take a look at What’s New in Windows PowerShell at TechNet.

A request from the audience was to include more helpful real-life examples until documentation is fully up-to-date.

 

Desired State Configuration (DSC) partial/split configurations

With DSC partial/split configuration it is possible to combine multiple separate DSC configurations to a single desired state. This could be useful when a company has different people or departments that are responsible for a specific part of the configuration (by example Windows, database, applications).

 

OneGet

OneGet is a Package Manager Manager (it manages package managers). It enables companies to find, get, install and uninstall packages from both internal and public sources. Public repositories can contain harmful files and should be treated accordingly.

Besides the OneGet module included in the Windows Management Framework Preview, updated versions are continuously being uploaded to https://github.com/OneGet/oneget by Microsoft. These can include bug fixes and new functionality like support for more provider types.

While in the past it seemed that Nuget was required, during the PowerShell Summit it was demonstrated that a file share can be used as well.

From the audience a question was raised whether BITS (Background Intelligent Transfer Service) could be used. This is currently not the case and there were also no plans yet to implement it.

 

PowerShellGet

PowerShellGet is a module manager which should make it easier to find the many great modules that are already available, but are not very discoverable because they’re fragmented on numerous websites across the Internet.

Microsoft is currently hosting a gallery of modules. The modules that are available in there are currently being controlled by Microsoft, but this might change in the future.

It is possible to create an internal module source and the save location for modules can be specified as well.

 

PSReadLine

PSReadLine is a bash inspired readline implementation for PowerShell to improve the command line editing experience in the PowerShell.exe console. It includes syntax coloring and CTRL+C and CTRL+V support, for more information about other improvements, view their website.

PSReadLine is one of the modules that can be installed using PowerShellGet:
Find-Module PsReadLine | Install-Module

 

Security

  • Always be careful when running scripts that include Invoke-Expression or its alias iex because it might run harmful code.
    • For a non harmful example, take a look at this blog post by Lee Holmes.
  • Many people in the security community are adopting PowerShell.
  • PowerShell is done in memory and is therefore volatile. To improve security the following enhancements were introduced:
    • Transcript improvements
      • Transcript support was added to the engine so it can used everywhere, also in the Integrated Scripting Environment (ISE).
      • A transcript file name automatically includes the computer name.
      • Transcript logging can be enforced to be redirected to another system.
      • Transcription can be enforced by default.
  • Group Policy
    • An ADMX file is currently not available to configure it on all platforms, but it can be found in the technical preview versions of Windows 10 and Windows Server under: Administrative Templates -> Windows Components -> Windows PowerShell
  • More advanced Scriptblock logging
    • Enable ScriptBlockLogging through GPO (in later Windows versions) or by registry by setting EnableScriptBlockLogging to 1 (REG_DWORD) in: HKLM:\SOFTWARE\Wow6432Node\Policies\Microsoft\Windows\PowerShell\ScriptBlockLogging
    • The additional logging will show you what code was run and can be found in event viewer under Applications and Services Logs\Microsoft\Windows\PowerShell\Operational.
    • Scriptblocks can be split across multiple event log entries due to size limitations.
    • Using Get-WinEvent -FilterHashTable it is possible to get related events, extract the information and combine it.
    • Since attackers would want to remove these registry settings and clear event logs, consider using Windows Event Forwarding/SCOM ACS to store this information on another server. Also consider enabling cmdlet logging.
  • Just Enough Admin (JEA)
    • JEA enables organizations to provide operators with only the amount of access required to perform their tasks.

 

New and improved functionality and cmdlets

 

Manage .zip files using Expand-Archive and Compress-Archive

.zip files can be managed using Compress-Archive and Expand-Archive. Other archive types like .rar are not currently supported, but this might be added in future versions.

 

New-Item

It is now not necessary anymore to specify the item type. To create a new item, simply run
New-Item foo.txt

 

Get-ItemPropertyValue

This makes it easier to get the value of a file or registry:

  • Get-ItemPropertyValue $Env:windir\system32\calc.exe -name versioninfo
  • Get-ItemPropertyValue-PathHKLM:\SOFTWARE\Microsoft\PowerShell\1\ShellIds\ScriptedDiagnostics -Name ExecutionPolicy

 

Symbolic links support for New-Item, Remove-Item and Get-ChildItem

Symbolic link files and directories can now be created using:

  • New-Item -ItemType SymbolicLink -Path C:\Temp\MySymLinkFile.txt -Value $pshome\profile.ps1
  • New-Item -ItemType SymbolicLink -Path C:\Temp\MySymLinkDir -Value $pshome

Junctions cannot currently be created, but this might also be added in a later version.

 

Debugging using Enter-PSHostProcess and Exit-PSHostProcess

Let you debug Windows PowerShell scripts in processes separate from the current process that is running in the Windows PowerShell console (by example long running or looping code). Run Enter-PSHostProcess to enter, or attach to, a specific process ID, and then run Get-Runspace to return the active runspaces within the process. Run Exit-PSHostProcess to detach from the process when you are finished debugging the script within the process.

 

Use Psedit to edit files in a remote session directly in ISE

Simply open a new PSSession to a remote computer and type PSEdit <path to a file>.

 

Classes and other user-defined types

    • The goal is to enable a wider range of use cases, simplify development of Windows PowerShell artifacts (such as DSC resources), and accelerate coverage of management surfaces.
    • Classes are useful for structured data. Think by example about custom objects that you need to change afterwards.
    • Name of the class and the constructor must be the same.
    • Code is case insensitive.
    • In classes, variables are lexically scoped (matching braces) instead of dynamically scoped.
    • Every return must be explicit.
    • Sample code:

Class MyClass
{
  MyClass($int1, $int2)
   {
        “In the constructor”
   }
   [int]$Property1
   [DateTime]$Property2
   [int]MyHelper($param1)
   {
       return 42
   } 
}

 

 

 

 

 

 

 

Announcing – PowerShell Hyper-V CookBook – Free!


Fellow PowerShell MVP and author Jeff Hicks has released a free ebook on PowerShell and Hyper-V which was sponsored by Altaro. The ebook is a cookbook style of recipes for managing a Hyper-V infrastructure and virtual machines. The eBook briefly discusses how to you use each recipe. All scripts and functions are included in a separate zip file.

Visit http://www.altaro.com/hyper-v/new-ebook-altaro-powershell-hyper-v-cookbook/ to learn more and download your free copy.

Cheers!

PowerShell v5: Misc Goodness (including Auditing)


Aside from classes and new DSC features, which I’ve already written about, there are a number of less-headline, but still-very-awesome, new capabilities.

This article is based on the September 2014 preview release of WMF 5.0. Information is highly subject to change.

First up is the ability to automatically create PowerShell cmdlets from an OData endpoint. Huh? OData is a kind of web service (basically); PowerShell gains the ability to look at the endpoint and construct a set of proxy cmdlets that let you interact with the endpoint more naturally. This is spiritually similar to what PowerShell can already do for a SOAP web service endpoint.

Next are some 7-years-overdue cmdlets for managing ZIP files: Compress-Archive and Expand-Archive. Finally. These use underlying .NET Framework ZIP functionality (I think), which has had some compatibility problems in the past, so we’ll see how these hold up. But they should be the missing link to letting you do everything DSC-related right in PowerShell, since you can now ZIP up your custom resources for deployment via pull server.

Auditing gets a huge win, and this is really more of a headline feature than people think. For one, the ISE now supports transcript creation. Yay! You can also “nest” transcripts, meaning you can have one running, and then start a second one to cover only a portion of time. Closing the second one lets the first remain running. You can also specify a central transcript directory, which is useful when you want to collect these things into a central folder for reporting. For example, you should now be able to set up Remoting endpoints that automatically kick off a transcript when someone connects, and saves them to that central location.

More auditing comes in the form of Group Policy settings. You’ve always been able to log the fact that certain commands were run (did you know that?), but now you can enable detailed script tracing that logs a crapload of detail to the PowerShell operational log (which can, like any other event log, be forwarded to another server). You get the complete details of every script block executed, even if it creates another script block. Again, this is set up in Group Policy – check out the WMF 5.0 release notes for the location.

Ed Snowden gets a face slap with new Cryptographic Message Syntax (CMS) cmdlets, including Get-CmsMessage, Protect-CmsMessage, and Unprotect-CmsMessage. These use PKI to encrypt data. By the way, if your organization doesn’t already have an internal PKI, WTF are you waiting for, you’re ten years behind the curve, man. PKI becomes more important to Windows environments every single day, and you need to get with the program.

There’s also a new fun feature for extracting content from strings. This system uses some Microsoft Research functionality called FlashExtract. Essentially, you give it examples of what your data looks like, and then point it to a big string (like a text file) full of data. It can extract all the data pieces based on your example. It’s early days for this technology, but it’s kind of awesome to see the PowerShell team giving us an easy way to play with it.

Because WMF 5.0 introduces PowerShellGet, it now includes commands to add PowerShellGet repositories. That means you can stand up your own repo, host your modules there, and install modules by simply running Install-Module (or find them using Find-Module). Tres awesome! We don’t yet have technical details on what the heck a PowerShellGet repository actually looks like, but I’m sure that’ll crop up.

ARE YOU PLAYING WITH WMF 5.0 ON A NON-PRODUCTION VM YET? YOU SHOULD BE. Times are changing and you gotta keep up!

PowerShell v5: What’s New in DSC


When Desired State Configuration (DSC) came out – gosh, just about a year ago – I kept telling people that there was more to come. And a lot of it is now just around the corner in PowerShell v5.

This article is written to the September 2014 preview release – things may change for the final release.

A major set of changes in DSC is a much more detailed and granular configuration of the Local Configuration Manager (LCM), the local “agent” that makes DSC work on the target node. This new level of configuration really shows you where Microsoft’s thinking is.

For example, a single target node can be configured to pull configurations from multiple pull servers. That doesn’t necessarily mean separate machines, as a single IIS instance can host multiple websites, but it means you’re no longer limited to one MOF per computer.

Yes, I said that. The LCM can now pull (but not have pushed to it) partial configurations. Each partial configuration is a MOF, but the understanding is that there can be more than one. There’s still no dynamic evaluation of which MOFs will be pulled; you have to specify them all in the LCM configuration, but now you can break a machine’s total configuration into multiple bits. Each partial configuration is given a source, which is a pull server.

Each partial configuration can be given exclusivity over certain resources. This helps avoid overlap. For example, you might decided that Partial Config A has exclusive control over all xIPAddress settings, meaning those settings from any other partial config wouldn’t work. Partial configurations can also depend on each other, so that (for example), Partial Config B won’t even run until Partial Config A is complete.

The LCM can also have a separate server configured for web- or file-based resource repositories, meaning those can be separated from the pull server endpoint.

What used to be called the “compliance server” is now simply the reporting server – we mentioned in “The DSC Book” that the name of this would likely change. It’s now a distinct configuration item, meaning even a node in Push mode can report its status to the reporting server!

New global synchronization capabilities also exist. A node’s configuration can be made dependent on a configuration item from another node. Meaning, Node “A” won’t try to configure until Node “B” completes certain items first. Communications is all via WS-MAN and CIM.

A new Get-DscConfigurationStatus returns a high-level status for a node – similar to what the reporting server would collect – and an amazing new Compare-DscConfiguration can now accept a configuration and tell you where a given node differs. This is a big deal, and something a lot of folks wanted in PowerShell v4. There’s also an Update-DscConfiguration, which forces a node to evaluate its DSC stuff right away.

DSC is quickly coming of age. In less than a year, we’ve seen (so far) 6 releases of additional resources, and now with PowerShell v5 we’re seeing a number of important enhancements and evolutions in the core technology. Many of the things that frustrated folks initially are now taken care of.

PowerShell v5: Class Support


This post is based on the September 2014 preview release of WMF 5.0. This is pre-release software, so this information may change.

One of the banner new features in PowerShell v5 is support for real live .NET Framework class creation in Windows PowerShell. The WMF 5.0 download’s release notes has some good examples of what classes look  like, but I wanted to briefly set some expectations for the feature, based on my own early experiences.

The primary use case for classes, at this point, is for DSC resources. Rather than creating a special PowerShell module that has specially named functions, live in a specially named folder, and work in a special way – that’s a lot of special, which means a lot of room for error – classes provide a more declarative way of creating DSC resources.

But we’re a bit ahead of ourselves. What’s a class?

In object-oriented programming, a class is a hunk of code that provides a specific interface. Everything in the .NET Framework is a class. When you run Get-Process in PowerShell, for example, you are returning objects of the type System.Diagnostics.Process – or, in other languages, objects of the class System.Diagnostics.Process. Each process is an instance of the class. The class describes all the standardized things that a process can show you (like its name or ID), or that it can do (like terminate). Programmers build the functionality into the class itself.

Classes can have static properties and methods – these are hunks of code that don’t require an actual instance of a process. For example, you can start a process without having a process in the first place. The System.Math class in .NET has lots of static members – the static property Pi, for example, contains the numeric value of pi to a certain number of decimal places. The static Abs() method returns the absolute value of a number.

PowerShell classes are designed to provide similar functionality. The trick with PowerShell classes, at least at this stage of their development, is that they don’t add their type name to any kind of global namespace. That is, let’s say you write a class named My.Cool.Thing, and you save it into a script module named MyCoolThing.psm1. You can’t just go into the shell and run New-Object -TypeName My.Cool.Thing to create an instance of the class, because there’s nothing in PowerShell (yet) that knows to go look for your script module to find the class. That’ll likely change in a future release, but for right now it means classes are kind of limited.

The basic rule is that you can only use a class within the same module that contains the class. That is, the class can only be “seen” from within the module. So, your MyCoolThing.psm1 module might define a class, and then might also define several commands (functions) that use the class – that’s legal, and it will work. You still can’t use New-Object; instead, you’d instantiate your class by using something like ClassName::new(), calling the static New() method of the class to instantiate it. I expect New-Object will get “hooked up” at some point, but it might not be until some future version of PowerShell.

Anyway, back to DSC.

DSC is a bit unique, because normally you don’t load resource modules; the Local Configuration Manager loads them. When you build a DSC resource class, you’re forced to provide three methods: Get(), Set(), and Test(). The LCM loads your module, instantiates the class, and then calls the three methods as needed. DSC resources built in this fashion can live in a plain old module .PSM1 file – there’s no need to create a DSCResources subfolder, no need to have an empty “root” module, or any of that. So it’s a more elegant solution all around. Aside from some structural differences, you code them the same as you always have. v5 still supports the old-style resources, for backward compatibility, but class-based resources are the “way forward.” I expect Microsoft will eventually refactor the DSC Resource Kit to be class-based resources, as soon as they get a minute and as soon as v5 is widely adopted.

So most of the “wiring” behind classes has, to this point, been designed to support that DSC use case. In other words, of all the things a PowerShell class will need to do, the team has so far focused mainly on those things that impact DSC. The rest will come later – the release notes use the phrase, “…in this release” a lot, meaning the team understands where the current weaknesses are. “This release” in some cases may simply mean this current preview release, meaning they’re targeting more features for v5’s final release; in other cases, more features will have to wait for v6 (or whatever) or a later version of PowerShell.

So there’s a little rambling on classes and what’s presently in PowerShell v5. If you haven’t already downloaded the preview and started playing with it, you should; not in production, though. Keep it in a test VM for the time being.

Last Call for speaker submissions for the 2015 NA PowerShell Summit


This is the last call for speaker submissions to the 2015 NA PowerShell Summit due on September 15th.

We haven’t received the amount of submissions we would have expected, so if we don’t get enough submissions, then we’ll run a single-track event or… perhaps none at all. This is a venue for the community, and if there’s no participation, we may need to skip 2015 and try again in 2016. This is a labor of love (read unpaid) for the people that organize the event but we need your support by sending in submissions that you are willing to present. We have a strong attendee community and we need to give them a reason to come to the best PowerShell event in the world!

If you have already submitted your abstracts – THANK YOU!

If you have not presented before and have an interesting tale to tell about using PowerShell, then jump at the opportunity!

For detail, see this –

http://powershell.org/wp/2014/07/10/call-for-presentations-for-powershell-summit-north-america-2015/

DenverPSUG – Keith Hill Presenting


Hello everyone,

The Denver PowerShell User Group will be meeting again on September 4th and we will have Keith Hill presenting. Keith has published an ebook, is a repeat Microsoft MVP, and has been heavily involved in writing and maintaining the PowerShell Community Extensions.

You can find more information on the event as well as RSVP here:

Keith Hill – topic TBD

Thursday, Sep 4, 2014, 7:00 PM

899 Logan st
Suite 210 Denver, CO

4 PowerShell People Attending

PowerShell MVP Keith Hill, http://rkeithhill.wordpress.com/, will be giving a talk.

Check out this Meetup →

 

Urgent – Why you should speak at the 2015 NA PowerShell Summit.


I was speaking at TechMentor last week – a great and well-run conference – and it seemed I was overly using the phrase “You should speak at the PowerShell Summit”. I enjoy meeting old friends and making new ones at conferences, it’s one of the pleasures of working with people I enjoy the most. I not only learn about the latest challenges that the attendees face, but I learn very product specific knowledge from them. It feels like they should be the ones on stage talking about their latest foray into some deep dark corner of IT.

That’s when I started asking myself – “Why aren’t they speaking too?” So, I started asking that question, followed by a suggestion that they send in an abstract to speak at the PowerShell Summit.  I was a little surprised by the look on their faces – as if I had suggested something that never crossed their minds. Well, it’s time that it crosses your mind.

I’m not here to convince you to speak, or encourage you in opening up additional career options; I’m suggesting that you have skills and experience that can help others. Why not share that?

Afraid to speak? There are a lot of things that scare me; writing books, speaking at conferences, teaching, fixing Exchange, etc. I’m afraid of many things that might result in failure, but I’m not willing to let that fear prevent me from trying new things – especially if I might be able to help someone else. In the words of my best mentor and friend: “Stretch yourself”.

This is my callout to you. This is me asking you to share your knowledge and help the community grow. This is me saying: “Stretch yourself”.

So, send in an abstract – it doesn’t mean you will get chosen (that’s not a failure BTW) but it does mean you’re trying to help. Good for you!

Details below:

http://powershell.org/wp/2014/07/10/call-for-presentations-for-powershell-summit-north-america-2015/

http://powershell.org/wp/2014/08/17/accepting-topics-for-powershell-summit-north-america-2015/

Cheers!

Video: An Entertaining Evening on the Art and Science of Writing Scripts in PowerShell


Cody Konior brought us this:

An entertaining evening on the art and science of writing scripts in PowerShell targeted especially for beginners.

Interspersed with live demos, we’ll glance through the basics such as variables, loops, and the pipeline, then briskly overview modules, remoting, a little SQL, and email control. All sample code will then be combined to solve* a “totally realistic scenario” with a Rube Goldbergian nightmare.

This is a once-off event of fun and frivolity not to be missed.

* Best practices not guaranteed.

Watch the video on YouTube.

Call for Presentations for PowerShell Summit North America 2015


The PowerShell Summit is the number one conference where PowerShell enthusiasts gather and learn from each other in fast-paced, knowledge packed presentations. PowerShell experts from all over the world including MVP’s, Guru’s, community leaders and PowerShell team members, will once again join together for a few days in Charlotte, North Carolina to discuss and learn how about maximizing PowerShell in the workplace. If you want to share your PowerShell expertise or story, then this is your official call to submit presentations for selection!

PowerShell Summit North America 2015 will be held April 20-22 2015 at the Microsoft Campus in Charlotte, North Carolina.

Topic Areas – What we are looking for

We are looking for 45-minute presentations covering a wide aspect of PowerShell expertise. We have two main topic areas that may assist you in building an abstract.

  • PowerShell Internals – A deep look into the inside workings of PowerShell and practical solutions that are built from them. These presentations are typically more directed to the PowerShell development community that is building extensions and solutions relating to PowerShell.
  • PowerShell Features Deep Dive – These presentations are a deep look into configuring and working with PowerShell features and capabilities such as Remoting, Desired State Configuration and more. These presentations tend to be more IT Pro focused.

We are open to presentations across the entire ecosystem that has been built around PowerShell; so don’t hesitate to send an abstract for your particular area of expertise. This includes Microsoft platforms and products that have PowerShell-based management tools as well as 3rd parties such as VMware.

 

What kind of sessions get selected?

We’re looking for sessions that go beyond – possibly way beyond – “beginner.” We look for an abstract that’s compelling and makes us salivate to see your session – so spend time writing a punchy abstract! We want sessions that offer real-world usability combined with “wow, nobody talks about THAT” awesomeness. Remember, Summit sessions are recorded, so if you’re previously presented a topic at a Summit, we’re less likely to choose it for another Summit. We want sessions that are challenging, and that ideally present things that simply aren’t explained or documented elsewhere. New modules, new techniques, and crazy approaches are all welcome. Discussion-format sessions are great, too, especially if you plan to turn them into a community deliverable (like a “best practices for writing DSC Resources” session that gets turned into a free e-guide later). Think community, deep dive, engaging, and amazing as keywords. We want attendees to finish each day with information leaking… just a little bit… out their eyeballs. Help us make it happen.

We do have some goals for speaker selection, too. We obviously have, and appreciate, the great involvement we get from the product team. We aim to have a certain number of sessions from well-known members of the community, simply because they’re well-known for a reason – they do a great job! But we also set aside slots for newcomers who’ve never presented before, or who’ve maybe only presented once or twice before. We want to create opportunities for more folks to become engaged and active in our community, and the Summit is a great way to do that.

We aren’t looking for soft-skills sessions, like “how to get a new user group running,” although contact us via email (summit@) if you’d like to do something like that as an extra evening thing after the main content wraps for the day.

 

How to submit abstracts of presentations

Presentations will be 45-minutes in length and the submission should include the following:

  • Presentation Title
  • Presentation abstract – a description of the presentation and the topics covered. 250 words or less and suitable for marketing.
  1. Go to http://eventmgr.azurewebsites.net/preregister/account/PSNA15/2015-NA-Speaker. Create an account.
  2. You can always return to http://eventmgr.azurewebsites.net/event/home/PSNA15 to login and access your abstracts.
  3. Click Abstracts
  4. Click Submit Abstract
  5. Provide a title and description; descriptions must be 50-250 words. Set the Status to “Ready to Review” when you are ready to send your session to us for consideration.

You can submit multiple presentations in the same topic area or for different ones. Be aware that even though the session length is 45 minutes we prefer to have at least 10 minutes set aside for questions. Summit presentations are intense and intimate often with plenty of audience interaction. Also because of the length, generally co-presenters are unnecessary, but that is not a requirement.

Presentation submission deadline – When you should send it by

Start sending your presentation submissions immediately! The selection committee will start selecting presentations as soon as they arrive so you don’t want to miss out. The last day we will accept presentation submissions will be September 15, 2014.

When you will know you’ve been selected

The selection committee will start reviewing submissions immediately and begin the selection process. You will be informed if one or more of your presentations have been selected and sent a contract on or before October 06, 2014. You will need to return the signed contract by October 31, 2014.

Selected speakers will be given free admission to the event, including attendance at all official Summit activities. However, AWPP membership is not included. Speakers may not bring guests to the event. We have a limited budget, and the number of speakers selected will be partially governed by that budget. Speakers are responsible for their own travel expenses, including hotel, airfare, and ground transportation.

The final agenda will be announced and posted on PowerShell.Org.

We look forward to your submissions and your help in making PowerShell Summit North America 2015 the most valuable IT/Dev conference of the year!

DSC Pull Server on Windows Server 2008 R2


Recently on the PowerShell.org forums, a community member mentioned that they were having trouble setting up a Server 2008 R2 machine as a DSC pull server. It turns out, this is possible, but you have to install all the prerequisites yourself, since the Add-WindowsFeature DSC-Service command doesn’t do it for you on the older operating system.

Refer to this blog post for the checklist.