Yesterday, Microsoft announced that Windows PowerShell - which I suppose we’ll just call “PowerShell,” now - has been open-sourced, with PowerShell Core builds being made available for various Linux distros as well as macOS. This is a big deal, but not exactly for the reasons you might think.
Be sure to check back often, as we’ll add to this.
So does this mean I’ll be able to run [add your favorite module name here] on Linux/Mac?
Likely not. PowerShell on Linux/Mac is, at present, “PowerShell Core,” which is a subset of the total Windows PowerShell product. Similar situation to PowerShell on Nano. So any module that requires something outside Core, won’t run. And further, most modules have dependencies on underlying technologies in Windows. The SMBShare module, for example, depends on CIM classes that only exist on Windows. So many add-in modules _won’t, _in fact work on Linux - because they’re designed to manage Windows machines. Over time, I’m sure we’ll see modules that only run on Linux and/or Mac, because they’re tied to dependencies on those operating systems. Ideally, of course, you can always remote to the OS of your choice and run whatever commands it has. And from The Register:
I’m collecting a list of known problems in DSC v5 _that have been solved. _Like the infamous “MI RESULT 12” error that could happen if you upgraded from prerelease v5 to production preview. I’m going to document these in “The DSC Book,” including in its free sample version, to help preserve these things in one place. Again - these need to be solved problems. Just drop as much description as you can into a comment here, and feel free to link to the fix, or to a discussion thread on the problem. And please - pass this around. If you’ve never had a chance to contribute to “the community” before, now’s a great time. Even if it’s a problem that you know doesn’t exist in the current v5 release, let’s please just document its former existence. Thanks!
We’ve been making a ton of improvements at PowerShell.org… if you haven’t visited in a while, it might be worth a stop by. **First, **if you’re hitting any of the links below and getting a 404, the most common culprit seems to be an over-zealous corporate proxy cache. Try clearing it, or doing a Shift+Reload in your browser. Confirm by visiting from a non-proxied network, like at home. Our eBooks page has a bunch of new content, and our books are now available in PDF, MOBI, and EPUB from two providers (LeanPub and GitBook). You can also read books online in HTML. Site members now have an extensive profile that you can complete, and doing so is one step on our short Welcome Aboard! mission that will earn you a new “Welcome!” badge on the site. It’s one of many new achievements you can earn for participating in the community in a variety of ways. And have you seen our new videos? In addition to tons of YouTube videos that include workshops, tutorials, and Summit recordings, we also have started new short-subject, structured learning series - entire courses that even award a certificate of completion when you’re done! But there’s much more we can do to help you connect with community, so we’re taking a quick survey. Here’s some of what we can enable:
So you’ve decided to write a bunch of commands to help automate the administration of ____. Awesome! Let’s try and make sure you get off on the right path, with this high-level overview of command design.
Start with an inventory
You’ll need to start by deciding _what commands to write, _and an inventory is often the best way to begin. Start by inventorying your nouns. For example, suppose you’re writing a command set for some internal order-management system. You probably have nouns like Customer, Employee, Order, OrderItem, CustomerAddress, and so on. Write ’em all down in an Excel spreadsheet, one noun per row. Then inventory your verbs. For each noun, what can you do with it? For example, you can probably create orders, so a New-Order command will be needed. Make a “New” column in your spreadsheet, and put an “X” in the row next to the Order noun. However, you probably can’t remove an order from the system, so although your spreadsheet might have a “Remove” column to cover things like Remove-Employee, that column won’t get an “X” in the Order row. Orders might be voidable, though, so what’s a good verb for that? https://msdn.microsoft.com/en-us/library/ms714428(v=vs.85).aspx has the official verb list, but there’s no “Void” or “Cancel” that seems appropriate. Don’t go making up new verbs!!! Instead, it might be that Set-Order could be the answer, enabling approved changes to orders, including cancelling them (but retaining the record). Finally, pick a prefix for your nouns. If your order system is named “Order Awesomeness,” then maybe OAwe is a good noun prefix, as in Set-OAweOrder. The prefix will help keep your command names from bumping up against other people’s, so making sure that noun prefix is pretty unique… is pretty important.
I’d appreciate your help in testing HTTPS/SSL here on PowerShell.org. Right now, it’s “voluntary,” meaning you have to explicitly ask for https://powershell.org. If you have any problems, please note them in a comment on this article. Some notes and known problems:
Most pages will not show the “lock” address bar icon in your browser, because we’re delivering mixed content. For example, the site logo is being hardcoded as http:// by some Javascript in our theme, which I need to sort out.
Your connection will be to CloudFlare, which is who issued the certificate you’ll see. We’ve also SSL’d the traffic between them and our server using a DigiCert SSL certificate. We’re also going to enable client certificate authentication, so our server will only deliver content to CloudFlare, which then delivers it to you. That’s ahead.
I think we can solve the mixed-content problem by forcing HTTPS, which is easy, but I want to make sure it’s otherwise working before taking that step. We already have a WordPress plugin in place that’s rewriting http:// or https:// with just // in URLs, but there’re a couple of places where that plugin isn’t able to help, and that’s why we’re delivering mixed content still. I’ll point out that this is mainly a bonus-points project; because almost everyone logs into the site using an external account, we don’t store many passwords (and thus don’t transmit them in the clear or otherwise). We don’t store or transmit any other personally identifiable information. Still, SSL has some other benefits, and it shouldn’t hurt to have it on, so we’re giving it a shot. Thanks!
If you’re deep into DSC and delving into DevOps, then my summer “Camp” event is probably meant for you - and now there’s a detailed agenda, overall agenda, and full event brochure. This is a really limited event - under 20, including product team participants, and we’re down to just a few seats left.
After dealing with numerous problems from PenFlip (where our free ebooks are currently located), we’ve decided to try two new hosting providers: GitBook and LeanPub. Both of these are, or can be, based on Git/GitHub, which means the Markdown text of the book will always be open-sourced and available. Both offer conversion into PDF, MOBI, and EPUB formats, so you can download whichever you want. Both enable us to update the books at any time. Both are relatively easy to use; GitBook provides a moderately better writing experience since they provide a native app that kind of hides the Git-i-ness, but it’s not a huge deal. More or less the same thing could be assembled for LeanPub if we wanted. They do their formatting slightly differently, so it’s worth looking at each to see which you like better. We don’t have a ton of control over their formatting, so what you see in these tests is what you get. LeanPub offers two key differences:
OK, we finally have a huge batch of PowerShell.org and DevOpsCollective.org laptop stickers! These are great, heavy-duty, removable stickers for laptop and every day use. Here’s how you can get yours - follow these instructions carefully!
United States
First, this offer is only valid until July 1st, 2016. After that, you’ll have to attend PowerShell + DevOps Global Summit, our Ignite “PowerShell Community Happy Hour” event, or someplace else where we’re in-person to get a sticker. Sorry for the deadline - I’m just not in the full-time sticker distribution business. To get your sticker, send a business-sized Self-Addressed, Stamped Envelope to Don Jones, 7582 Las Vegas Blvd S, Suite 503, Las Vegas NV 89123. The return envelope should include your address in both the “main” and “return address” positions.
We’ve uploaded the results of the Verified Effective: PowerShell Toolmaker exam, which was administered at the recent PowerShell + DevOps Global Summit 2016. Note that this exam has, for a couple of years now, been available only as an on-site, in-person, proctored experience - we do not offer online delivery. We had our best pass rate ever - about 20%. That said, nobody hit 100%. I had actually done a pre-con, full-day session on the very topic being tested - writing advanced functions - and had more than a few folks tell me that the session wasn’t as “advanced” as they wanted. Notwithstanding, 80% of the people who took the test didn’t pass (and I wasn’t the one grading the tests, either, so it’s not just spite!). Unfortunately, a lot of us think we’re “advanced,” but in fact are missing a lot of details. In some cases, having reviewed the graded tests, folks are missing some of the basics. If you took the test, head over to VerifiedEffective.org and enter your candidate ID to see if you passed. I want to stress that I personally don’t have access to the graded tests with names attached - I only have anonymized copies. We’re not going to offer the exam again at Summit 2017. We’re considering making some schedule changes that won’t accommodate the time and space and personnel needed to administer the exam and - to be frank - I think education would benefit a lot of people more than a test. Whether we offer the test again in future years hasn’t yet been decided, although I’ll share our general feelings at the end of this article. In fact, with that “education” in mind, I’m going to break a rule. I’m going to post the entire exam packet, exactly as it was given to the attendees who took the exam. I did something similar after PowerShell Summit Europe 2015, but this is the exact exam packet. Go ahead - give yourself an hour to finish the test, and then check back here. I’ll wait. Exam