Category Archives: Extra

Mike Robbins’ PowerShell 101

If you haven’t heard of Leanpub, then that’s about to happen. I only know so much about it, but I can already see the benefits to it. It allows authors to write, publish, and distribute eBooks as they’re being written, and of course at completion. The times are changing, as is technology, and so good authors can’t always be expected to print their books. Trust me, I’m currently reading an AWS book from 2015.

I briefly want to mention a project by Mike F Robbins on Leanpub entitled, PowerShell 101. If you’re not following him on Twitter, you ought to be. In January of this year (2017), he introduced his project to the community; he wanted to write and author an entry-level PowerShell book for anyone that wants to learn PowerShell. The neat thing here, is that he desired to share things he wish he would’ve been told, when he was just starting out. The book discusses the help system, objects, using the pipeline, and more topics you’d expect in a book of this type.

So, I sent Mike a message on Twitter. I told him I would be willing to read the book, as he was writing it, and try and help his publishing efforts by offering comments, critiques, and edits. I wasn’t implying he couldn’t do it alone, but did want to offer my writing and editing skills, and PowerShell knowledge toward his project.

Mike agreed, and so over the last several months, I’ve read chapter by chapter, as Mike’s been pumping them out. I’ve provided what I can to help his endeavor — not that he really needed me — but so he had another set of eyes. I feel it’s important that there’s been another person reading along, and thinking about his instruction, as a newcomer to PowerShell.

So with that, share the book as you can and as appropriate. PowerShell is fun. It’s even more fun, when you have those basics deep in your pocket, and so I’m glad to have been a part of this project. I truly hope this book can bring clarity to someone’s learning, as they move themselves into a part of our PowerShell community.

If you didn’t catch the above link, here it is again: PowerShell 101.

 

PowerShell Saturday Returns to Phoenix

Phoenix PowerShell Saturday 2017

For the second year in a row, I’ve agreed to speak at the Phoenix PowerShell Saturday. Last year was a great opportunity for me in regard to both speaking — my first go at that, when combined with PowerShell — and learning. Thanks so much to Jason Helmick (who gave an amazing talk), and the others involved. Speaking is a small price to pay for a free, full day of PowerShell discussion and learning.

Based on the feedback from Thom Schumacher, both a speaker and event organizer, I get the feeling I did an adequate job. I may never really believe that, but I’ve agreed to head north again this October and talk about my favorite topic, with those that choose to attend. Yes, it’s PowerShell.

As of now, I’ve decided to share my newest I-wrote-it-mostly-at-home work project. What I’ve done is written a function template with built-in logging, and it’s much better than my 1.x versions (link). This could change, I suppose, but for now, I’m proud of what I’ve written and I’d like an opportunity to talk about and hand it off to the PowerShell community. The only thing I know thus far, is that’s it’s in Phoenix in October 2017. Watch the #PowerShell hashtag on Twitter for more information.

Phoenix PowerShell Saturday 2016

Here’s a few links from the 2016 event. The first below link is from one session where I discussed the fundamental three (cmdlets): Get-Help, Get-Command, and Get-Member. The second link is from a second session where I discussed how to get into writing reusable code. In this session, I additionally walked though various language constructs (If, If-Else, Do, and more). The final below link is a link to my speaker profile for 2016. I needed a place to put these links, and with the upcoming PowerShell Saturday for 2017, this seemed like as good place as any.

http://powershellsaturday.com/012/presentation/new-to-powershell-session-4/
http://powershellsaturday.com/012/presentation/new-to-powershell-session-6/
http://powershellsaturday.com/012/speaker/tommy-maynard/

Post 200!

I’ve stopped all technical PowerShell babbling for a moment to point out the newest tommymaynard.com accomplishment. In less than three years’ time, I’ve written 200 published posts. That’s over six posts per month for a few months under three consecutive years. About PowerShell. Written by me. With the hopes to help people learn about PowerShell, or find a solution to a problem.

Back soon with something new. Enjoy the weekend.

Stop Looking Forward, My Thoughts

Don Jones, one of the bigger names in the PowerShell community, had an great post on his personal website. It was entitled, Stop Looking Forward. I liked it.

The idea behind his post was to stop looking to advance yourself and your career long enough, to give back to your community. Coming from Don, we can all safely assume, he’s speaking from experience. Whether he knows it, or not, he taught me for free, a time or two. It’s his job now, and so there needs to be dollar signs at some point in his help cycle, but I don’t think for a moment, that that’s what this was always about. It’s quite believable that he wants all of us to succeed. Writing is a talent, and so paying for his ability to explain these topic seems justifiable.

I remember right where I was standing when I decided I was going to give back to the PowerShell community, outside of just helping on various PowerShell forums, where I had been both learning and offering assistance, as I was able. No joke, but reading forums is a great place to learn. Before you know it, you’ll be able to help others learn those things you already have.

I was washing my hands in the bathroom sink at work, after I had recently read an article from a PowerShell MVP. He had a website, hisname.com, where he occasionally shared PowerShell themed articles. That was it, I thought. I’m going to register tommymaynard.com, and I’m going to write about PowerShell, too. I always had this concern that I didn’t know enough yet, but I went ahead and I did it anyway. You can likely give back to the PowerShell community before you even think you’re ready. I started well before I thought I would.

I wrote my first few posts on tommymaynard.com, felt quite confident, and then read an article from Jeffery Hicks. In his post, he clearly stated not to do rewrites on the help files, as they were already there. Damn.

It was around June 2014, and I accepted that challenge. Unbeknown to Jeffery, as though it would’ve made a difference anyway, I never did a help rewrite again. Instead of doing help rewrites, I just started writing. I’d find something interesting and I’d share it. I make something I wanted to keep, and so I’d post it for others to read about and learn from. It’s been two and half years now and this is my 181st post. That’s an average of greater than 6 posts per month. There’s no ads, or sponsors, and I don’t see a dime. I was at 100 posts in April 2016 when I was chatting with Neema, a Microsoft employee, about their MVP program at the PowerShell + DevOps Global Summit 2016. I’ve written approximately 9 posts per month since then.

For those that haven’t asked, or have made an incorrect assumption, I’ve never been a PowerShell.org Hero, or a Microsoft MVP. After the Phoenix PowerShell Saturday in October 2016 — where I actually spoke — I answered a question from Will Anderson: “No, I’m not an MVP.” I was impressed, however, as I had convinced an MVP, that I was also an MVP, even when I wasn’t.

I’ve said it a few times now: I set out to be an MVP. I set out to add my name to the list of PowerShell.org PowerShell Heros. It’s about me in some way — I can agreed to that — but it all started with this desire to give back to others that were like me. I learned from the forums, so I helped on the forums; I learned from #PowerShell on Twitter, therefore, I contributed to Twitter; I learned from PowerShell blogs and started my own. A recognition would clearly indicate that setting out to help others, did in fact, help others. It would validate that I stopped looking forward, to help those around me. Those around me at work? Well, many of them get a weekly, PowerShell related email from, yours truly. I’ve written nearly 40 of them and plan to take it all the way to 52 — a full year of hey-learn-about-PowerShell-before-you-wish-you-did emails. If we want to promote from within, then let’s give those junior level, lower tier employees some skills; let’s get them interested in what we’ve found so fun. Let’s give back like Don has, like Jeffery has, like Will has, and June, too.

I’m going to quote Don, here — “At the end of the day, we should all measure our success by the impact we’ve made on our world, and in our communities.” I have no idea how long PowerShell will be around, or even how long I’ll be around, but I believe I’ve made an impact on my community. I’ve certainly set out to do that. As Don would, I urge you to do the same, if you don’t already.

Don says it better, so if you haven’t, go read that post already.

Be Twice the Employee

One of the things I like the most about PowerShell, is that it means I can work more than 40 hours per week. Now, what I don’t mean is that I work on PowerShell outside of the 40 hour week — although, I definitely do, because I’m hooked — but rather that PowerShell works for me, when I’m not even working.

For example, every day from 3:00 to roughly 3:45 a.m., it’s working for me. It’s doing what I told it to do; it’s executing; it’s taking a job I never wanted to do manually and seeing that it gets completed. Me? What am I doing during that time? Well, unless something’s gone seriously wrong, and I’m not just talking about work, then I’m asleep. I’m working and I’m sleeping, at. the same. time.

Ever expand the properties of an Active Directory group at 3 a.m.? If you did that in the GUI, then you were awake. Ever click that Members tab that early in the morning? If so, I bet you had wished you were sleeping. Ever remove a user from an AD group just hours before the sun was back up? I do it every day at 3:00 a.m., but I don’t.

This is one of the reasons that PowerShell is so powerful. It makes you more efficient. It makes you twice the employee. If there’s PowerShell for it, I can do it faster; I can do it more efficiently than the next person that doesn’t use PowerShell.

If you work, or want to work, in the Information Technology arena — both with Windows and now without Windows (yes, it’s likely come to your operating system of choice) — then make PowerShell a part of your skill set. Read Learn Windows PowerShell in a Month of Lunches, Third Edition; watch the Microsoft Virtual Academy PowerShell 3.0 Jump Start, and yes, I’m aware PowerShell 5.1 for Windows is coming this month. That set of videos is still worth the time.

Be twice the employee, too. Complete tasks no one would want to do, while you’re sleeping. I’m going to do it again tonight.

PowerShell Resolutions 2017

I’ve followed Boe Prox’s lead the last two years in making some PowerShell resolutions (2015 and 2016). Let’s start with how I did, and didn’t do, in 2016.

  • DSC genius: No…, I wouldn’t call myself a genius yet, as I still feel like I have plenty to learn. I look forward to getting my hands on the DSC Book being written by Don Jones and Melissa Januszko. Let’s hope work will cover the cost on that one.
  • Stay active on PowerShell forums: Yes. I’ve continue to assist on PowerShell.org (not as much as the others…), Microsoft TechNet, Reddit, and even Facebook when there’s time.
  • Read PowerShell in Depth: In progress. This is on hold as I finish up a copy of Amazon Web Services in Action. My employer is getting deep in the world of AWS, and I opted to be the AWS lead for my team.
  • First module up on the PowerShell Gallery: Yes (and a script, too). I wrote a two function module that allows for foreground and background colors in the ConsoleHost without the need for Write-Host. The script, is a rewrite on a game I wrote a couple years ago called The 1 to 100 game. Check out the above links for more information.
  • Nano Server: I wouldn’t consider myself much of a resource, but I’ve done some experimentation. There’s more to do here.

There’s one thing in particular that I didn’t even think was possible this year. In April, I was asked to speak at the Phoenix PowerShell Saturday event. I didn’t see that one coming, but sure enough, I did that in October, and I think that deserves mentioning.

I’ve continued to stay active on Twitter, and in the close of the year, have had several popular posts there. I’m still actively blogging here on my site (-gt 170 posts now), and linking them on Twitter. I learned a good amount by reading PowerShell content linked on Twitter, and so I’m still giving back here, and then there.

Oh, I also started what I called PSMonday at work. Each Monday I send out a brief PowerShell related email to help encourage those around me at work to embrace PowerShell. I’ve written over 35 PSMondays, and each has been shared with those that read this site, in addition to those with whom I work.

So, what’s in store for 2017? I’ll get back on the DSC train, but before I do, it’s time to put Pester under my belt in completion. I’m looking forward to The Pester Book by Don Jones and Adam Bertram. I like the idea of a reasonably priced book that’s well explained, as Don leads the way. Congratulations to Adam, however, as a collaboration project with Don has got to be exciting and rewarding. Don’s ability to explain the concepts, is up there at the top of PowerShell author elite.

Not PowerShell related, but I did buy a Python book this evening. I’d like to gain some more experience with Python, as well. As I was spending some time with it several month ago, I shared some simple examples with my then 9-year-old son. He’s seemed to catch on. I’ll be letting him read the book if he’s interested, as the book is actually intended for kids. What can I say, I’m intrigued. So I don’t feel so ridiculous, I will include this quotes from the page linked above: “An excellent introduction to programming for anyone interested in learning to program, regardless of their age.” 😉

Make some resolutions, too. It’s paying off for me, and it can help keep you on track. I’m still working toward the PowerShell.org Hero and Microsoft MVP awards, both of which will give my work for the PowerShell community some vindication. Not that I don’t already know, I’ve been a help for some.

Windows PowerShell, is PowerShell

In every post I’ve written here, I’ve always made a conscious effort to use the full term “Windows PowerShell,” before I use “PowerShell” later in the post. Well, those times have changed. With the recent news, dropped yesterday (August 18, 2016), PowerShell is open-source and cross-platform. Windows PowerShell is just PowerShell, and it’s available on Linux and Mac OS.

Here’s one of several stories on yesterday’s news: https://blogs.msdn.microsoft.com/powershell/2016/08/18/powershell-on-linux-and-open-source-2. And here, is the story that mentions the name change: https://blogs.msdn.microsoft.com/powershell/2016/08/17/windows-powershell-is-now-powershell-an-open-source-project-with-linux-support-how-did-we-do-it.

I’ve always been pleased by my site’s tagline: “A Windows PowerShell Resource.” Today, I’ve gone ahead and made the change, too, signifying that I’m ready, as well. There’s isn’t a non-Windows post here, but in time, there may be.

Yesterday, and today.

windows-powershell-is-powershell-2016-01

windows-powershell-is-powershell-2016-02

It’s a new era, now. Everything I’ve read, from people I trust in the PowerShell community, says the same thing. The investment we’ve made in PowerShell will be transferable to these other operating systems. We’re better off, than we were just a day ago.

Extra – Two Year Anniversary

Just a quick post to mention that tommymaynard.com has been up for two years this month. That’s June 2014 through 2016.

I remember early 2014 and thinking about buying the domain name, about the prospect of writing assistive PowerShell content, and about working to associate my name with Windows PowerShell. Two years later, and it’s been somewhat of a success — I didn’t know if I could do it, but I have. It’s almost difficult to believe, but I’ve been told that my efforts have helped people improve their knowledge of PowerShell, and even assisted in their careers. To help, was always the original idea. To learn it deeper, myself, was a welcomed benefit.

There’s no stopping here. This post is a just a brief intermission until the next topic.

Update: As of yesterday (June 7, 2016), I’ve renewed the tommymaynard.com domain for another two years. 🙂

Extra – Windows PowerShell Constrained Endpoints, Proxy Functions, and Just Enough Administration

I had a recent request for some information in regard to constrained endpoints. There was a lengthy article posted in a PowerShell.org TechLetter earlier this year that I authored (it actually won me a free 4-day pass to the PowerShell + DevOps Global Summit 2016). As of now, those don’t appear to be back online, since the recent redesign and changes over there.

Therefore, I’ve opted to post the paper here. Keep in mind, as you read this, that we should be moving away from constrained endpoints of the past and toward JEA endpoints of the future. Realistically though, I’m pretty sure those constrained endpoint cmdlets of the past, are the ones of the future, with some new additions… I should probably go get my hands dirty. Enjoy!

Note: Throughout the course of this previously written paper, I used the term proxy function rather loosely. I’ve done some thinking since then, and no longer use it that way. Going forward, or if I were to rewrite this paper, I wouldn’t use the term proxy function. Instead, I would refer to the included functions as wrapper functions, as they wrap other commands, and didn’t have anything to do with obtaining the cmdlet metadata and using that to write a function. If they had, then they’d be a proxy function.

Windows PowerShell Constrained Endpoints, Proxy Functions, and Just Enough Administration (270 downloads)

Extra – The 100th Post

In less than two years time, I’ve written and published 99 posts:

the-100th-post-01

On this note, welcome to post 100! This is a exciting achievement, especially since I didn’t even like PowerShell much when it was first introduced (as Monad). I really preferred VBS then, and I didn’t even care much that we — Microsoft admins — were getting a shell, too. It didn’t all register then, and realistically, it was probably because I was still somewhat early on in my career.

It feels like I just bought the tommymaynard.com domain name and made the commitment to associate myself with Windows PowerShell. Post 100 is a post I didn’t even know was a possibility. In fact, the number of posts were never a consideration. It’s always been about quality, even in brief, right-to-the-point posts. I’ve tried to elevate this blog, by using simple and clear examples to help teach some of the basic and intermediate concepts. I intentionally add clues and use full descriptions to encourage and assist my readers.

In celebration of post 100, I’ll list my top 10 favorite posts, in no particular order:

1. Quick Learn – Clear-Host, Without Clearing the Host
http://tommymaynard.com/ql-clear-host-without-clearing-the-host

2. Quick Learn – Using OutVariable — Why Don’t I Do that More Often?
http://tommymaynard.com/ql-using-outvariable-why-dont-i-do-that-more-often

3. Script Sharing – Return File Sizes in Bytes, KBs, MBs, and GBs, at the Same Time
http://tommymaynard.com/script-sharing-return-file-sizes-in-bytes-kbs-mbs-and-gbs-at-the-same-time-2015

4. Script Sharing – Two Old HTAs: LoggedOnUser and Remote Desktop Assistant
http://tommymaynard.com/script-sharing-two-old-htas-loggedonuser-and-remote-desktop-assistant-2015

5. Quick Learn – Run Background Commands after Every Command (Part II)
http://tommymaynard.com/quick-learn-run-background-commands-after-every-command-part-ii-2015

6. Quick Learn – Determine if the Alias, or Function Name was Used
http://tommymaynard.com/ql-determine-if-the-alias-or-function-name-was-used

7. Quick Learn – Proving PowerShell’s Usefulness to Newbies, Part III
http://tommymaynard.com/quick-learn-proving-powershells-usefulness-to-newbies-part-iii-2016

8. Quick Learn – Give a Parameter a Default Value
http://tommymaynard.com/quick-learn-give-a-parameter-a-default-value-2015

9. Quick Learn – Save External Dynamic IP to Dropbox
http://tommymaynard.com/quick-learn-save-external-dynamic-ip-to-dropbox-2015

10. Extra – Why is there a tommymaynard.com?
http://tommymaynard.com/extra-why-is-there-a-tommymaynard-com-2016