Day 2 of the PowerShell Summit is underway, and while I am glad to be able to virtually attend, it is just not the same as in-person attendance. During previous events, attendees would gain fantastic information and then, between sessions, chat with others about the parts that really grabbed our attention or were learned. Now, we are recieving information dump after information dump. The quality of the information is the same, but the speed with which it is coming, and without many breaks, it can feel mentally exhausting. At any rate, I am glad the sessions are being recorded, so I can access them in the future.
The keynote for today was given by Don Jones. If you tune into our weekly webcast, you may have heard the question, “How would you recommend I get started in PowerShell?” The answer is always to check out books by Don Jones. His speech covered a lot of area, but it boils down to 3 main points:
Jeffrey Snover is an absolute legend. I don’t think anybody can contest this. Many careers have changed for the better because of PowerShell.
PowerShell works well because it is not a programming language. SysAdmins and Programmers don’t always have the same skillset, so removing that barrier was very useful.
PowerShell is open source. Contribute where you can, whether helping in forums, writing a blog, or tackling an issue for a module you enjoy in the gallery. Remember: More minds = improved product.
Of course, I can’t put the presentation into words quite the way that Don presented it, so just read the bullet points and pretend like you are really moved to try and capture a similar feeling. I am super motivated now.
Azure administration with PowerShell is something that I intend to write more about in the coming months. It is new to me, so you'll be able to follow along as I learn the basics. I figure that a good place to start would be diving right into commands that I could research right away. Those were covered later, but the first half of the presentation was all about getting your environment right. I have been a slow adopter of Vscode. PDQ even had an entire webcast where Selin explained why I was wrong to be slow to adapt. Here we are, a year later, and people smarter than me are again telling me to be with the times.
Jan Egil Ring knew just how to get me to listen: his cursor shoots fire as he types. I want that so bad. I will now be doing a deep dive into the settings and getting VsCode up and running on PDQ webcasts as well as my workstation. One thing that was made very clear to me is that many people wanted to make changes from the default settings, so you don’t need to reinvent the wheel on this. Borrow heavily from those that have come before you and then add your own finishing touches. Justin Grote has a lot of info on this. I recommend his Git that covers much of the preference settings, as well as a video that goes over getting them optimized for PowerShell Development. Steve Lee, too, has a fantastic blog on this. In it, he covers putting your profile in Git (which sounds awesome).
After Jan had his environment just how he wanted it, he went into Docker. I will be honest, we have developers that started using this a while ago and I called them "nerds" and left. Now, I have to beg their forgiveness and hope they teach me. It took seconds for him to pull in a container that had the specific software he wanted, and being able to do that sounds extremely useful.
This presentation contained an extreme amount of information. I plan to rewatch it so I can pause and implement many of the suggestions. I look forward to using what I learned to improve my own content in the future. Another lesson is, when someone smarter than me talks about a new thing, I should make the time to learn it as quickly as possible. Chances are that if I don’t, a future blog is going to include an admission of how I was wrong.
Paul Wojcicki-Jarocki covered a lot on Certs. I would recommend looking at his Git if you want to deep dive into them. He goes into detail about how they work, how they are built, and best practices. I had previously gathered enough to handle self-signing Powershell scripts. Turns out there's so much more to it, including:
1. PowerShell can convert an OID into a friendly name for you. It works the other way as well - if you have the friendly name, it will tell you what OID to put in.
Example #1: Running this script will tell you that this OID is for “Enhanced Key Usage”
Set-PSReadLineOption -PredictionSource History
Example #2: This script will tell you the OID for code signing is 220.127.116.11.18.104.22.168.3
Anytime I can skip a Google search and snag what I need while in PowerShell, I am happy.
2. Your key length should account for whatever will be consuming the information. In the past, my default was always to set it to a maximum length for security, but that is counterproductive if what needs to use it can’t handle it. It seems common sense now, but until it was explained to me, it never clicked.
PSReadline has long been a massive time saver in PowerShell. I honestly thought it was at its peak, but Jason Helmick and Damien Caro showcased what the beta can do, and I think it is a complete game-changer.
The only requirement to get it to work is the latest PowerShell 7. Instead of breaking down how to install or upgrade to the latest beta, I will let those that created it help you. What I do want to highlight are a few elements that make this so great. After it is installed, you will need to turn on the history to add predictive IntelliSense.
Set-PSReadLineOption -PredictionSource History
You can also get dynamic help with this Module. It does two things that are pretty awesome:
1. It can help you find commands. If I am looking for Get-ChildItem, but can’t completely remember the command, I can hit F1 after I have typed “Get-C” and it will give me a list of commands that I could be looking for.
2. It can give you insight into the parameters of a command. I got Get-ChildItem thanks to the first, but was curious what the -Depth parameter does. Now, you can press “Alt-h” at the end of the parameter, and it will pull the help documentation for that specific attribute.
I love not having to look away from PowerShell while I am using it. It always feels like I am killing my forward momentum. The latest beta of this module has given me what I am looking for, without breaking my stride. I love it.
I really wish I could cover more with these daily recaps. There is so much information that I am not covering here because I either don't feel I could do it justice, or because I have to keep these recaps to a reasonable length. I'm mostly covering topics from the main track, and not including the information I've learned during the lightning demos or the videos on demand. Tomorrow, I am going to try and cover a few of these sessions as well.