PowerShell 6.0 Release Tools

As you should be aware, the next version of PowerShell is open source and cross-platform. You will be able to run PowerShell v6 on Windows, a Mac and select Linux distributions. All of the code is currently in alpha and hosted on the PowerShell GitHub repository. This is also where you can download new builds to install and test. I’ll admit I’m a little behind the curve and part of that is because I don’t often check if there is a new release. So I built a PowerShell module that will do that for me, and even download new installation packages. The best part, is that this should work cross-platform.

Continue reading

Web Testing with PowerShell

I run a self-hosted WordPress blog here as part of a hosted package.  I run this on a very tight budget so I’m pretty sure I share resources with other tenants. This means that sometimes the server is unavailable, usually for only a brief period of time. I have the JetPack WordPress plugin configured to monitor when the site is up or down. But I thought I’d add another layer of testing using PowerShell.

Continue reading

Download your Ignite schedule with PowerShell

Warning: array_merge(): Argument #2 is not an array in /home3/jhicks/public_html/blog/wp-content/plugins/crayon-syntax-highlighter/crayon_highlighter.class.php on line 292

So I’m starting to get ready for Ignite next week. This year my attendance is down to a single day so I wanted to make sure I got the most out of it. I used the Scheduled Builder to pick some sessions to see on Tuesday.  Once that was done I thought I’d export the events to my calendar. However, I don’t use Microsoft Outlook or a Windows Phone. I couldn’t get the link to save an .ICS file or otherwise export my schedule. Then I remembered I know how to use PowerShell.

Continue reading

More Fun Getting PowerShell User Groups

A few days ago I posted a PowerShell function to retrieve information about PowerShell user groups. That function returned basic group information like this.

Each group on the site has its own page which is what that Link property is for. So it didn’t take much work to use the same techniques as my original post to scrape information from that page. Again, I needed to analyze the source code to determine what classes and properties to use. But the final function, isn’t that much different than the first one.

Now I can get the group detail directly from PowerShell.

If you have both commands, you can even combine them.

This isn’t too bad.

You could use PowerShell to get details for every single group but that can be time consuming as processing is done sequentially. One way you might improve performance is my taking advantage of the parallel foreach feature in a PowerShell workflow. I wrote another function, really more as a proof of concept that defines a nested workflow. Within this workflow, it processes a collection of links in parallel in batches of 8.

Because workflows are intended to run isolated, I had to incorporate code from Get-PSUserGroupDetail, instead of trying to call it directly. Here’s the complete function.

But even with parallel processing, this is still not a speedy process. Running the command on my Windows 8.1 box with 8GB of RAM and a very fast FiOS connection still took about 2 minutes to complete. But I suppose if you don’t mind waiting here’s what you can expect.

I will say, that having all of this information is fun to play with.

Or you could do something like this.

My last function on the topic is called Show-PSUserGroup. The central command runs my original Get-PSUserGroup function which pipes the results to Out-Gridview. From there you can select one or more groups and each group’s link will open up in your browser.

Clicking OK opens each link in my browser.

If you’ve collected all of my functions, I recommend creating a module file. I have all of them in a module file called PSUsergroups.psm1. All you need at the end is an export command.

Save the file in the necessary module location and your commands are ready when you are.

NOTE: If you run a PowerShell User Group and you are not registered on this site, I strongly encourage you to do so. Otherwise you are making it very hard for people to find you.

Friday Fun: What’s My IP

Today’s Friday Fun is a “quick and dirty” solution to the question, “What is my public IP address?” There are plenty of web sites and services you can visit that will display that piece of information. Naturally I want an easy way to get this in PowerShell. Recently I came across a reference to a web site that simply displays your IP address. To see for yourself go to http://icanhazip.com/.

Pretty cool.

This means I can use PowerShell.

The content property is all I need so here’s a one-liner.

Of course that’s a lot to type so I put together a simple function.

Now I can easily get my public IP.

Nothing fancy, just getting the job done. Enjoy.