Tag Archives: Jeffrey Snover

Tonight on the podcast–Jeffrey Snover!


Hi everyone, it’s summer and we are recording on Wednesday. Don’t forget to drop by tonight of all nights, because we are pleased to have Jeffrey Snover back again! Topics include JEA, software defined datacenter, DSC for Linux, and anything else that YOU want to talk about!

You can join us live at 9:30 PM at live.powerscripting.net and ask questions of the inventor of PowerShell, and architect of Windows Server and System Center. Don’t miss it!

PowerShell Summit N.A. 2014 Session Videos!


Aaron Hoover was kind enough to webcam the Summit sessions he attended, and he’s posted the videos on YouTube. URLs, from Aaron’s channel, are below.

Just Enough Admin – Security in a Post-Snowden World – Jeffrey Snover – PowerShell Summit 2014

Windows System Internals with PowerShell – Adam Driscoll – PowerShell Summit 2014

PowerCLI: How to Automate Your VMWare Environment Reports – Matt Griffin – PowerShell Summit 2014

Parallel Execution with PowerShell – Tome Tanasovski – PowerShell Summit 2014

PowerShell for Security Incident Response – Lee Holmes and Joe Bialek – PowerShell Summit 2014

Leverage Multi-Threading for Speeding Up Your Scripts – Jason Walker – PowerShell Summit 2014

Advanced PowerShell Eventing Scripting Techniques – Matt Graeber – PowerShell Summit 2014

Using PowerShell as a Reverse Engineering Tool – Matt Graeber – PowerShell Summit 2014

On the Job: Putting PowerShell Scheduled Jobs to Work – Jeff Hicks – PowerShell Summit 2014

The Seven Secrets of CIM – Brian Wilhite – PowerShell Summit 2014

WSMan Cmdlets – Richard Siddaway – PowerShell Summit 2014

Networking Administration with PowerShell – Richard Siddaway – PowerShell Summit 2014

Kerberos Delegation, CredSSP, and Windows PowerShell – Aleksandar Nikolic – PowerShell Summit 2014

The Joy of Intellisense: Tab Expansion – James O’Neill – PowerShell Summit 2014

Trending and Reporting – Don Jones – PowerShell Summit 2014

Leveraging Web Services with PowerShell – Trond Hindenes – PowerShell Summit 2014

Monitoring Using PowerShell – Josh Swenson – PowerShell Summit 2014

Cmdlet-ize the Registry – Richard Siddaway – PowerShell Summit 2014

PowerShell Module Design Rules (and When to Bend Them) – Kirk Freiheit – PowerShell Summit 2014

TechEd N.A. 2014 Session Recordings


There’s some great PowerShell content now online for your viewing pleasure.

Jeffrey Snover and I had a blast doing “Windows PowerShell Unplugged,” and I reviewed some best PowerShell practices (and hopefully provided a little inspiration for your career) in “Windows PowerShell Best Patterns and Practices: Time to Get Serious.” And the #2 overall session of TechEd? “DSC: A Practical Overview,” including a surprise demo (and announcement) from Snover showing DSC running on Linux.

Enjoy!

Episode 249 – PowerScripting Podcast – Distinguished Engineer Jeffrey Snover for the PowerShell v4 Launch Party


A Podcast about Windows PowerShell.
Listen:

In This Episode

Tonight on the PowerScripting Podcast, we talk to Jeffrey Snover about PowerShell Version 4

News

Interview

Guests – Jeffrey Snover

Chatroom Buzz-

<0halr9000> ## centralized package management support for v5?

<0halr9000> ## remoting: why not use SSH? (question from a friend of mine)

<12PowerSchill> ## Replacing the ISE with Visual Studio PS

<4Vern_Anderson> ## is there any plan for DSC to replace GPOs?

<4Vern_Anderson> ## is there any plan for DSC to replace GPOs?  << some one said that when Don Jones was on

<11sepeck> ## http://www.microsoftvirtualacademy.com/liveevents/server-virtualization-w-windows-server-hyper-v-system-center-jump-start#?fbid=5qAt-XPCqcE

<11sepeck> ## ^^ 2 day free Server 2012r2 virtualization with cert test voucher event for notes

<0Jaykul> ## @halr9000 hold the mic up for him. :-p

<4Vern_Anderson> ## is there any plan for DSC to replace GPOs?  << some one said that when Don Jones was on

<13deadlydog> ##Jeffrey, do you still have any say on what the PowerShell team works on?

<13deadlydog> ##if not, how does that feel, to hand your “baby” off to others and have no input on what happens to it

<8justpaul> ## what is your religion regarding invoke-expression?

<11sepeck> ## while I realize things are in ‘flux’ at MS for the moment and all this fun ‘cloud’ stuff but right now there are a lot of messages from Microsoft that are less then re-assuring to on site engineers/techs/etc…. i.e. o365 and moving exchange tot he cloud and only just yesterday a note about the next on site release.  Is there an intention to somehow clarify this message for those people ‘not able/willing’ to go to the {azure}clou

<11sepeck> ## a real future for on premisis stuff

<5JHofferle> ## When is Microsoft going to produce some DSC whitepapers? Most of the info I see is coming from the MVPs at this point. If you look at Direct Access or other feature, there are books from MS on how to use it.

<13deadlydog> ## I tweeted this yesterday, but Jeffrey, how do you feel about Centralized Module Management for PowerShell, similar to ruby gems. Do you think it will ever happen?

<8justpaul> ## does Jeffrey know we have to take a shot every time he says “cloud”?

<14gpduck> ## is there any chance additional DSC resources will be released out of band from new versions of windows?

<0Jaykul> ## just saying, for those who don’t know: http://github.com/PoshCode/poshcode

<11sepeck> ## will v4 on windows update blow up Exchange and System Center again and have testing been implemented to avoid this again in the future?

<0organicit> ##for god sake just pay Jaykul to do it

<0halr9000> ## what does SQL product group think of DSC?

<11sepeck> ## isn’t that the purpose of codeplex?  Cause that seems like there is stuff on there now for that very purpose!

<0Jaykul> ## Do you have any influence with CodePlex? Can you make them give us permalinks for downloads?

<0Jaykul> ## is DSC part of CEC now?

<13deadlydog> ## Jeffrey, do you still use PowerShell in your day to day activities, or at all?

<0Jaykul> ## Saw a big partnership with Microsoft and Xamarin recently. Any chance of Microsoft helping PowerShell get cross-platform?

<0Jaykul> ## Even if just the language …

<0Jaykul> ## Are third-party document DSLs possible in PS4? Will there be published (blog posts?) instructions on how to make one?

<5JHofferle> ## What’s the next “Hard Problem” Jeffrey Snover is going to solve?

<0Jaykul> ## Do you know if it’s possible to set the $Options parameter on TabExpansion2 when I press Tab without editing the function by hand? ;)

<13deadlydog> ## Jeffrey, what PowerShell editor do you use? ISE?

<sepeck> http://i.imgur.com/JzX2Xh9.jpg?1

<JonWalz> try this http://vaughnlive.tv/embed/video/jonwalz

<HansO> I only get “Connection failed” at http://vaughnlive.tv/embed/video/jonwalz

<HansO> So I am the only one getting “Connection Failed”  athttp://vaughnlive.tv/embed/video/jonwalz?

<sepeck> http://powerscripting.wordpress.com/2009/10/25/episode-89-powershell-v2-launch-party-with-distinguished-engineer-jeffrey-snover/

<sepeck> http://powerscripting.wordpress.com/2012/10/23/up-next-jeffrey-snover-and-the-powershell-v3-launch-party/

<Jaykul> https://github.com/SublimeText/ElasticTabstops

<sepeck> ## http://www.microsoftvirtualacademy.com/liveevents/server-virtualization-w-windows-server-hyper-v-system-center-jump-start#?fbid=5qAt-XPCqcE

<Jaykul> gpduck: you’ve seen https://github.com/PowerShellOrg/DSC

<sepeck> http://blogs.technet.com/

<sepeck> TechNet Script Center and http://blogs.technet.com/b/onescript/

<Jaykul> ## just saying, for those who don’t know:http://github.com/PoshCode/poshcode

<JimBirley> http://huddledmasses.org/creating-powershell-modules-the-easy-way/

<Jaykul> deadlydog: https://github.com/pash-project/pash

<JimBirley> random, unsolicited beer recommendation =>http://sixpoint.com/beers/seasonal/autumnation

Episode 232 – PowerScripting Podcast – Thomas Kisner on Lync and PowerShell


Listen:

In This Episode

Tonight on the PowerScripting Podcast, we talk to Tom Kisner about Lync!

News

Interview

Guests – Tom Kisner

Links

Chatroom Buzz

  • <ScriptWarrior> Been a WHILE since I was able to make one of these :)  Good to be back.

The Question -

  • Superhero/Power –  Super Strength

Microsoft announces PowerShell v4, DSC


Yesterday at TechEd North America, Jeffrey Snover and Kenneth Hansen began describing features to be delivered with PowerShell v4 in Windows Server 2012 R2 (the company has not yet announced availability dates for either).

In particular, a new feature called Desired State Configuration promises to become the foundation for some pretty serious expansion. Essentially, DSC lets administrators write a declarative “script” that describes what a computer should look like. PowerShell takes that, matches the declarative components with underlying modules, and ensures that the computer does, in fact, look like that. Nearly anything can be checked and controlled: roles, features, files, registry keys – anything, in fact, that a PowerShell module can do.

The architecture includes the notion of centrally stored declarative scripts, and the ability to dynamically deploy supporting modules on an as-needed basis to computers that are checking themselves. A System Center Virtual Machine Manager demonstration utilized the feature to dynamically spin up brand-new VM instances and have them immediately reconfigure to their desired state.

At first glance, it’s easy to see “more Microsoft stuff” in this feature. After all, the company has previous given us Dynamic Systems Management (DSM), various universal “configuration languages,” and even System Center Configuration Manager’s somewhat primitive configuration auditing feature. But keep in mind that DSC will be a core part of the OS. That means product teams and ISVs can rely on it being there, with no other dependencies to worry about. DSC is also built around DMTF standards – like the MOF format – making it natively suitable for cross-platform management. A demo from Opscode using their Chef product showed clever use of the new DSC feature.

Hansen also mentioned that PowerShell modules will be deployable through DSC as ZIP files, helping make them more self-contained (not entirely unlike PECL packages in the Unix world).

There has been no announcement as yet on how far back PowerShell v4 will be made available, nor whether or not DSC is a PowerShell feature or a Windows Server 2012 R2 feature. If it is indeed a PowerShell feature (which I suspect it is), then it’ll be available on any system with v4 installed. That will hopefully include at least Windows 7, Windows Server 2008 R2, and later.

“Super Secret” Snover Session at TechEd


So what’s with the “super secret” PowerShell session being given by Jeffrey Snover at TechEd 2013?

First, if you’ll be in New Orleans, plan to attend this. The deal is pretty simple: Microsoft has got a lot of information pertaining to v.Next under embargo, which means people can’t talk about it yet, or even tell you the title of the session. But trust me, if you’re interested in the world of DevOps (and if you use PowerShell, you are), you’ll want to be at this session. PowerShell MVPs were given a sneak peek at what Snover will be discussing, and it’ll frankly blow your mind. It will, over the long haul, put PowerShell in a completely new place – and you’ll want to get in on the ground floor.

Like most sessions at TechEd, it appears as if they’ll be recording this, so even if you can’t attend in person be sure to check back once the recording is live. That usually takes a day or two after the talk itself.

And spread the word a bit. There’s a bit of a worry that, because even the title of the session won’t be announced until TechEd formally commences, folks won’t have much time to realize the session exists and it’ll go empty. We don’t want that to happen – as with any new developments in PowerShell, it’s crucial to get folks thinking about it early, to get their feedback early, and to start planning for it early.

Up Next: Jeffrey Snover and the PowerShell v3 launch party!


This Thursday, October 25, 2012 on the podcast we welcome back the Father of PowerShell, Microsoft Distinguished Engineer, and lead architect for Windows Server: Jeffrey Snover.  Friday is the official launch date of Windows 8 which includes Windows PowerShell V3, but the real launch party that WE care about is Thursday!

Be sure to join us live every Thursday at 9:30 PM EDT at live.powerscripting.net!

[UPDATED] Snover School: FANCY Wildcards


So, I'd previously posted about a cool trick Jeffrey Snover demonstrated at TechEd:

Get-Service -Name [a-b]*

This will return a list of all services whose names start with A or B. Now for me, this was a cool trick: I didn't realize that wildcards could be more than * or ?! And Snover described these as "rich regular expressions."

Well, not exactly. We've corresponded, and what's actually happening is that PowerShell's wildcard support is essentially a dumbed-down set of the regex syntax. Specifically, read the about_wildcards help topic and you'll learn that you can use ranges like [a-b], the * and ? characters, or a set of characters like [abeft] – but not much else. So it looks like a regex at first blush, but isn't, really.

This is a nifty trick, though! Keep in mind that it's only supported on parameters that have been explicitly designed, by their developers, to support wildcards. That's usually documented in the cmdlet's full help (e.g., Help Get-Service -full), although in some cases you'll need to use a bit of trial and error to see what works and what doesn't.

Another aspect of this is the -like operator. You're probably familiar with something like this:

get-service | where { $_.name -like 'b*' }

But the operator also supports these richer, semi-regex wildcards:

get-service | where { $_.name -like '[abd]*' }

Give it a shot! It was very cool to be doing a session at TechEd with Jeffrey Snover, especially when he kept whipping out these little gems that I'd never even thought to try. I'll share some more of them in the upcoming weeks!

How To Use Write-Host Without Endangering Puppies (or, A Manifesto for Modularizing PowerShell Scripts)


At this week's TechEd, I was speaking with Jeffrey Snover in the hallway on Wednesday when he remarked, "you know, Write-Host isn't all bad." After he got someone to come around with smelling salts to revive me, he elaborated, "so long as your verb is Show." I started to object – and then a subtle, yet brilliant light came upon me. 

He's write. Heh.

But, seriously, if you do three simple things, you can't go wrong when you write a PowerShell script or function – and this goes further than just Write-Host. Ask yourself:

  • Am I naming my script/function according to PowerShell verb-noun naming conventions?
  • Am I only using allowed verbs (run Get-Verb for a list)?
  • Am I respecting the use of the verb I chose?
That last one's the doozy. But think about it: If your verb is Get, then your function/script should just get stuff. It shouldn't manipulate it. Shouldn't format it. Shouldn't (generally) change bytes into megabytes, or anything else. Just get the data, and output a single kind of object to the pipeline, using Write-Output. That's it.
Ok, if you want some step-by-step progress information as it runs, use Write-Verbose. That's cool. Or use Write-Debug for trace code, if you need.
The Get verb implies that you may want to do something else with the data. Convert it to HTML. Export it to CSV. Whatever. And so you just output raw objects. Need to put that data into a database? Fine, create an "Export-MyStuffToDatabase" function that does that – the Export verb makes it clear that the data is "leaving the shell" and going elsewhere.
Want to display the data on-screen? Write a "Show-Whatever" function. The Show verb implies on-screendisplay. You'd never think to run something like "Get-Service | Show-ServiceData | Export-CSV." The Show verb tells you that "this is going to the screen, and by God it isn't going anywhere else." So if you're using the Show verb… go ahead and use Write-Host. That's what it's for. No puppies will be harmed.
This gets back to my bigger design philosophy of make each function/script do only one thing. Each should automate some task, and should act appropriately for the verb you've chosen. If you have a function Getting something as well as Formatting the output… that's two things. You'll also write larger scripts that automate processes, and those should generally just be calling sequences of your task-automating commands. A task, then, is something you might use in several different scenarios; a process is one such scenario that employs several tasks.
Provisioning a new user? You've got tasks like New-ADUser, Add-ADGroupMember, New-UserHomeShare, New-HREmployeeRecord, and so on. But those tasks (some of which you'd write yourself, obviously) might be used in other circumstances: New-ADUser, for example, might also be used when you need to set up a new SQL Server and create an AD service account, right? With all the tasks written, you'd write a larger "process" script, perhaps called New-CompanyUser.ps1, which combined those various tasks into the sequence needed to provision a user – while leaving the tasks free to be used in other processes as well.
Stick with the verbs, my friend. They won't lead you astray.

Up Next The Winners of the 2012 Scripting Games with Jeffrey Snover and Ed Wilson


This week we have Rohn Edwards and Lido Paglia, the winners of the 2012 Scripting Games, talking with Jeffrey Snover and Ed Wilson.

Please join us WEDNESDAY May 16th (our summer schedule is Wednesday not Thursday) at 9:30 pm EDT (GMT -4) at our new live chat location live.powerscripting.net!

2012 Scripting Games badge

Improved WMI experience in PowerShell 3.0


There is a famous quote often attributed to Jeffrey Snover, “IT Pros love and hate WMI. They love it because there is so much great stuff there. They hate it because it is complex to use”. Not to our surprise, most of the IT Pros and developers we talked to agree with this.

This is going to change with Windows “8”. We listened to your feedback and have made heavy investment in this area. This blog post standards based management in Windows Server 8 by Jeffrey Snover and Wojtek Kozaczynski provides an excellent overview. I would like to highlight two important aspect of improved PS+WMI integration that Wojtek talked about..

-   CIM Cmdlets:  PowerShell cmdlets to manage Standard Compliant CIM capable systems. Now you can manage any CIM+WSMan compliant system using the same set of cmdlets shipping with PowerShell 3.0. Imagine managing a hardware device or a non-Windows server from PowerShell, just like you would manage Windows.

-   CIM-Based Cmdlets: PowerShell cmdlets written as a CIM Provider. For many IT Pros, terms like CIM operations, namespace, associations seemed to be way too complex, and many of them get nightmare about not getting WQL right. We heard the shout loud and clear. We are giving WMI developer right infrastructure and API to write cmdlets in native code, complete with PS semantics like verbose, warning, whatif/confirm etc. Out of the box, Windows “8″ ships with a large number of new cmdlets that have been implemented as a WMI provider.

Our goal in PowerShell 3.0 is to provide  ‘first-class’  experience for WMI. In the next few weeks, we will take you through a deep dive providing details of these investments . Stay tuned.

- Osama Sajid

Program Manager, WMI

Improved WMI experience in PowerShell 3.0


There is a famous quote often attributed to Jeffrey Snover, “IT Pros love and hate WMI. They love it because there is so much great stuff there. They hate it because it is complex to use”. Not to our surprise, most of the IT Pros and developers we talked to agree with this.

This is going to change with Windows “8”. We listened to your feedback and have made heavy investment in this area. This blog post standards based management in Windows Server 8 by Jeffrey Snover and Wojtek Kozaczynski provides an excellent overview. I would like to highlight two important aspect of improved PS+WMI integration that Wojtek talked about..

-   CIM Cmdlets:  PowerShell cmdlets to manage Standard Compliant CIM capable systems. Now you can manage any CIM+WSMan compliant system using the same set of cmdlets shipping with PowerShell 3.0. Imagine managing a hardware device or a non-Windows server from PowerShell, just like you would manage Windows.

-   CIM-Based Cmdlets: PowerShell cmdlets written as a CIM Provider. For many IT Pros, terms like CIM operations, namespace, associations seemed to be way too complex, and many of them get nightmare about not getting WQL right. We heard the shout loud and clear. We are giving WMI developer right infrastructure and API to write cmdlets in native code, complete with PS semantics like verbose, warning, whatif/confirm etc. Out of the box, Windows “8″ ships with a large number of new cmdlets that have been implemented as a WMI provider.

Our goal in PowerShell 3.0 is to provide  ‘first-class’  experience for WMI. In the next few weeks, we will take you through a deep dive providing details of these investments . Stay tuned.

- Osama Sajid

Program Manager, WMI