What’s the future of Active Directory? What support can we expect for containers in Windows Server and client? Is PowerShell 5.0 complete?
While most PowerShell scripters are focused on the upcoming PowerShell Summit Europe in Stockholm and PowerShell Asia Conference in Singapore, some of the finest minds were gathering in Helsinki for the MVP All-Stars PowerShell Mini-Summit in Helsinki on 11 September.
Windows IT Pro MVP Sami Laiho organized another in a series of small, intense conferences in the beautiful capital of Finland. I was delighted to be squeezed in at the last minute on my way to Stockholm. These small events are a great experience for speakers and attendees. Unlike larger events, you really get a chance to talk in depth to the speakers and other participants.
PowerShell MVP All Stars Helsinki ©Sami Laiho
L-R: Jeffery Hicks, Jeffrey Snover, June Blender, Aleksandar Nikolic, Don Jones
Jeffrey Snover, the inventor of PowerShell and now a Technical Fellow at Microsoft, opened the conference with a broad overview of the past, present, and future of Windows Server in the IT ecosystem, stressing how the recent move in server development is driven by cloud integration, the critical role of PowerShell in server management and automation, and the evolution of Nano Server, the tiny pearl of a Windows Server with no GUI.
Don Jones of Pluralsight brought lessons from his experience with the PowerShell Verified Effective Exam on advanced functions. Although ~40 people sat of the exam, only one passed. Yes, one. The exam wasn’t particularly difficult, but the graders were looking for best practice coding and evidence of clear understanding of the task and the language. They suspect that many failed because they were accustomed to copying and using PowerShell scripts without truly understanding the purpose of various elements of the language.
A few lessons:
- — Be sure that you understand what you’re doing. Don’t just use what you’ve seen or read about.
- — Use standard parameter names and approved verbs
- — Don’t use SupportsShouldProcess (WhatIf, Confirm) unless the function is potentially risky. If you’re writing a Get-* function with SupportsShouldProcess, you’re probably using the wrong verb.
- — All advanced functions should have some basic help. And, make sure that Get-Help displays your help. A single typo in any comment-based help keyword causes Get-Help to ignore the help.
- — To enable piping to a parameter that takes multiple values, use Begin/Process/End for piped values and ForEach for a collection of parameter values submitted at the command line.
- — Don’t return more than one object type. If you need properties of different objects, create a custom object.
- — If parameter values are limited to a particular set, use the ValidateSet attribute.
Aleksandar Nikolic of PowerShell Magazine fame presented a great introduction to communicating with Nano Server, including using WinRS, a CIM session, and a Windows PowerShell session WinRM/PSSession. There’s a small, but growing, set of modules on Nano Server, including most of PowerShell Core, and you can use some local modules on your Nano Server remotely. Aleksandar also demonstrated how to use the new remote debugging features in PowerShell 5.0 to debug a script on a Nano Server (Wait-Debugger, Get-Runspace, Get/Enter-PSHostProcess), how to use the new (yet undocumented) ToSession and FromSession parameters of Copy-Item to copy files to a Nano Server a remote session, and how to use the VMName, VMGuid parameters of Invoke-Item to test commands on a Nano Server in a VM.
Jeff Hicks of Pluralsight finished off the talks with a nice review of Scheduled Jobs in PowerShell 3.0, including triggers, scripts and script blocks, and scheduled job options.
Ask the Experts
The day concluded with a great Q/A where folks who hadn’t yet had a chance to ask the tough questions got to ask the panel. And the answers were as complex as the questions, often drawing conflicting responses, especially about predictions.
On Future of Active Directory, Don Jones believes that, while it’s an excellent tool for on-premises domains, as we move to the cloud, even a hybrid cloud, its use cases will dwindle over time. “We’ll look back in 10 years and say that AD was a great technology for its time.” Jeffrey Snover disagreed, at least about the pace of that change and argued that AD will be used and improved in on-premises server management for many more years.
Is PowerShell 5.0 complete? After Windows 10 released with a version of PowerShell 5.0 that was still in preview, and following the release of a fully-supported WMF 5.0 Production Preview for systems earlier than Windows 10, that PowerShell 5.0 was not, and perhaps, would never be finished, closed, or complete, in the way that earlier version of PowerShell were. Jeffrey Snover argued that this assumption was false and that PowerShell 5.0 would be completed and stable in Q42015. At that point, they would start working on a new version of PowerShell. PowerShell is, of course, continuously evolving, but there will be a point at which PowerShell 5.0 will be complete and further changes will go into a new build.
A question about support for Containers in Windows Server showed the depth of the panel and audience. Jeffrey Snover acknowledge that containers, which let you isolate the deployment of an application and its dependencies in an abstraction layer, are a “disruptive technology.” He talked about support for containers that’s already in Windows Server, and he encouraged participants to learn about them, but didn’t really think that any of the current use-case scenarios were that compelling. Don Jones put the discussion in perspective, reminding participants that Application Virtualization (App-V) in Windows has been providing similar support for isolated applications, but hasn’t been widely used.
In summary, it was an excellent day and, I hope a worthwhile day for attendees. In broader perspective, it demonstrated the value of small hybrid (in-person and online) technical conferences, especially as part of a series.