Recently, while troubleshooting a problem with a newly installed application, I wanted to see what it was communicating with. My only requirement was that I wanted to use PowerShell if at all possible. I couldn't remember if there was a PowerShell command for accomplishing this task or not, but I remembered seeing something about it in Patrick Gruenauer's chapter (PowerShell as an Enterprise Network Tool) in The PowerShell Conference Book. Note: This blog article is written using Windows 10 version Read more [...]
By now, I'm sure you've heard about The PowerShell Conference Book. If not, see my previous blog article. The PowerShell Conference Book is currently the featured book on Leanpub. It's also the number one best seller on Leanpub. And the top book on Leanpub. The book was published last Friday, July 6th with nine of the thirty-three chapters and we've added an additional six chapters since then. I would like to thank everyone who has purchased the book so far. If you have a Read more [...]
A couple of months ago, I saw a tweet from Don Jones about how much it costs to sponsor one person for the OnRamp Scholarship Program. I replied wanting to know if the DevOps Collective had considered becoming part of the "Leanpub for Causes" program so that portions of an author's royalties could be donated to the program. My initial thought was that I could donate a portion of the royalties from my PowerShell 101 book to the program. A few days later Don copied me in a tweet saying he had Read more [...]
I’m honored and humbled to be renewed as a Microsoft Most Valuable Professional (MVP) for a fifth consecutive year. I received notification this past weekend confirming that I’ve been renewed for another year. The first two Microsoft MVP awards that I received were for PowerShell and due to changes to Microsoft’s MVP award program, the latest three have been for Cloud and Datacenter Management, although my focus is still PowerShell. You can find more information about Microsoft's MVP Read more [...]
Recently, I received notification from Planet PowerShell that they will be removing blogs that do not support HTTPS as of August 1st. I had forked their repo on GitHub over a year ago, added my blog, and submitted a pull request. I hadn't touched my fork of their repo since then. It was severely out of date and in an unknown state. Taking a look at it on my system showed my local copy only had one remote which was my fork on GitHub.
I could see that one of Read more [...]
git remote show
git remote show origin
Recently, I installed the Windows Subsystem for Linux (WSL) feature on my Windows 10 computer. Microsoft has an installation guide that walks you through the entire process, but I thought I'd share a few PowerShell tricks when it comes to installing Windows features. The system used throughout this blog article runs Windows 10 version 1803 which ships with Windows PowerShell version 5.1. Your mileage may vary if you're using a different version of Windows and/or PowerShell. Run Windows PowerShell Read more [...]
This blog article is the first guest post ever on this site. When I'm approached by someone who wants to write a guest blog article, I suggest that they should start their own blog. If they're simply not interested in that, I put them in contact with PowerShell.org because it seems like a more appropriate place to publish community blog articles. The majority of the posts on this site are simply the steps of how I've done something in a real-world production environment. I document the process here Read more [...]
Have you ever run into a problem where the results from a PowerShell command are returned in scientific notation? I've recently been working with performance counters in PowerShell and I've run into several scenarios where this occurs such as the one shown in the following example.
In addition to returning the results in the previous example, they were also stored in a variable so the same value could be used throughout this blog article. Windows PowerShell Read more [...]
(Get-Counter -Counter '\PhysicalDisk(*c:)\Avg. Disk sec/Read' -OutVariable Results).CounterSamples
You're the administrator of an on-premises Exchange Server 2010 environment that's in Hybrid mode. After migrating a few users to Office 365, you start receiving complaints that they're no longer able to send emails as their departments group. First, follow the instructions in one of my previous blog articles to "Connect to Office 365 using PowerShell". The following command grants John Doe the ability to send as the Facility Services group in Office 365.
It's Read more [...]
Add-RecipientPermission -Identity email@example.com -AccessRights SendAs -Trustee firstname.lastname@example.org -Con
There are several scenarios where you might need to assign an Office 365 license to a user. The specific scenario in this blog article is that you're migrating an Exchange Server 2010 on-premises environment to Office 365. The Exchange Server is already in hybrid mode. Users have been automatically created in Office 365 by synchronizing them from your on-premises Active Directory environment using Azure AD Connect. Users who haven't already had their mailbox moved to Office 365 will first need an Read more [...]
I've recently been working on a project to migrate an Exchange Server 2010 environment to Office 365. As with Exchange, there are several things that simply can't be done from the GUI in Office 365. This means that if you're the Office 365 administrator for your company, you'll need a certain level of proficiency with PowerShell to effectively do your job . While not requirements, this blog article is written using Windows 10 Enterprise Edition version 1803 and PowerShell Core version 6.0.2. All Read more [...]
Last month I presented a session on how to Recreate MOF based DSC resources as Class based DSC resources at the PowerShell + DevOps Global Summit in Seattle, Washington. The session seemed to be well received by the audience based on the feedback that I received from the attendees. The video from this presentation is now available. https://www.youtube.com/watch?v=MeO_9KDB958&feature=youtu.be&a= The code and slides used during the demonstration can be found in my presentations repository Read more [...]
Last month I presented a session on Writing Award Winning PowerShell Functions and Script Modules at the PowerShell + DevOps Global Summit in Seattle, Washington. The session seemed to be well received by the audience based on the feedback that I received from the attendees. The session was also completely full. I'm glad it was recorded so anyone who was unable to attend can watch it. The video from this presentation is now available. https://www.youtube.com/watch?v=d5x0Di52QZA The Read more [...]
Last week, I received a comment on my previous blog article from fellow Microsoft MVP Joel Bennett which referenced using an ErrorMessage parameter similar to how ValidatePattern works in PowerShell Core version 6. I knew I'd seen some discussion about this on GitHub, but I wasn't aware that it had made it into the production release. Joel's message is shown in the following image. I had to figure out how to use custom error messages with ValidatePattern. After all, that was the whole Read more [...]
In my previous blog article, I described how to move code from ValidateScript to a private function for parameter validation in PowerShell. This all came about from a question I received in one of my sessions at the PowerShell + DevOps Global Summit a couple of weeks ago. I enjoy following up with attendees of my presentations when they have questions so I sent a message and a link to my previous blog article to the person who asked if that was possible. They responded by asking if it was possible Read more [...]