As many of you know, I'm a Senior Content Developer for Azure PowerShell at Microsoft. Today we announced the Az.Tools.Migration PowerShell module which is a toolkit for automatically migrating your PowerShell scripts and modules from AzureRM to the Az PowerShell module. The video shown below demonstrates how to use this module: https://youtu.be/YxiPnAcOaxA Be sure to see the official announcement that I wrote on the Microsoft Tech Community blog site. In addition to the PowerShell module, Read more [...]
Windows 10 Enterprise edition version 2004 is used for the scenarios demonstrated in this blog article. If you'd like to follow along, you'll also need to install PowerShell version 7 and the Az PowerShell module. As stated in the help for Connect-AzAccount, the UseDeviceAuthentication parameter is the default authentication type for PowerShell version 6 and higher.
What this means is that you're provided with a URL and a code. They're used to authenticate Read more [...]
help Connect-AzAccount -Parameter UseDeviceAuthentication
I’ve worked as an IT Pro since 1994, with the past fourteen years at the same employer and my last day with them was this past Friday. I’ve also been a Microsoft MVP for the past six years, the first two as a PowerShell MVP and the last four as a Cloud and Datacenter Management MVP. Today is my last day as a Microsoft MVP because you can’t be an MVP if you work for Microsoft. As of tomorrow, Monday, March 23rd I’ll be embarking on a new chapter in my career as a Senior Content Developer Read more [...]
I've recently wondered how many service offerings Azure has. I've read anywhere from 150 to 600 and I even went so far as to ask an Azure Product Manager but still didn't receive a clear answer. What I did find out is that Microsoft maintains an Azure services directory on their Azure products website. I figured that was a good place to start looking and while the website is informative, it didn't provide a count of the service offerings. Manually counting them wouldn't be an efficient or accurate Read more [...]
As I mentioned in a previous blog article, the AzureRM PowerShell module is only supported until December of 2020. It has been replaced by the Az PowerShell module which was introduced in December of 2018. On Twitter, I recently asked if anyone was still using the AzureRM module and what was keeping them from transitioning to the Az module. One of the responses I received was due to the amount of work and time invested in scripts based on the AzureRM module. The Az PowerShell module includes Read more [...]
The Az PowerShell module was released in December of 2018 and is now the recommended module for managing Microsoft Azure. AzureRM is the previous PowerShell module for managing Azure which has been deprecated but will continue to be supported until December of 2020. Windows PowerShell 5.1, PowerShell Core 6, PowerShell 7, and higher are supported by the Az PowerShell module. Windows 10 version 1607 and higher has Windows PowerShell 5.1 installed by default. Determine if the version of PowerShell Read more [...]
I recently saw a tweet from Joel Bennett about the Az (Azure) PowerShell module being nothing more than an empty module that imports all of the modules for each Azure product. I decided to investigate.
Joel's statement is 100% accurate. Off-Topic: The searched for term is highlighted in each result when the previous command is run in PowerShell 7. One thing I don't like about the Az module is the Import-Module statements use the RequiredVersion Read more [...]
Get-Content -Path (Get-Module -Name az).Path | Select-String -SimpleMatch 'Import-Module'
Recently, I've been working on trying to finish up a migration from Exchange Server 2010 to Office 365. There are potentially numerous mailboxes that aren't used and those won't be migrated to Office 365 because there's no sense in paying for licensing for them. How do you determine what mailboxes are in use? First, use implicit remoting to load the Exchange cmdlets locally. Years ago, I would install the Exchange cmdlets locally, but it was brought to my attention that it's unsupported, at Read more [...]
The call for speakers for the 2020 PowerShell + DevOps Global Summit is open until October 1st. I can definitely speak from experience when I say that this is the best PowerShell conference in North America if you're interested in PowerShell and networking with other like-minded people. I've attended every year since its inception and have spoken at it about half as many times. While I'm in no way affiliated with the organizers, based on their site, they're not only looking for deep-dive content Read more [...]
If you've been using PowerShell for very long at all, then you should already be familiar with Get-Command and Get-Help. While I like to say that Get-Command is for finding commands and Get-Help is for learning how to use those commands once you've found them, there is overlap between these two commands depending on how you use them. I believe in following the best practice of not using aliases or positional parameters in any code that I save or share with others, but in this blog article, I'm Read more [...]
The Research Triangle PowerShell Saturday is Saturday, September 21st, 2019 in Raleigh, North Carolina. There's also a 6-hour security session on Sunday, September 22nd, 2019. Tickets can be purchased for just one of the days or both, but seating is limited for the Sunday post-con so don't wait until the last minute! Based on the schedule, this event should be almost like a mini PowerShell + DevOps Global Summit which makes it well worth the price of admission. There are three different all-day Read more [...]
Preview 3 of PowerShell 7 was released yesterday. It can be downloaded from the PowerShell repository on GitHub. Be sure to choose the preview version for the appropriate operating system. It should go without saying that anything with preview in its name should NOT be installed on a mission-critical production system. The examples shown in this blog article are being run on a system running Windows 10 (x64). Your mileage may vary with other operating systems and/or versions.
One Read more [...]
I’ll be presenting “PowerShell + SQL Server = Better Together” and "Writing Award Winning PowerShell Functions and Script Modules" at SQL Saturday #867 in Baton Rouge Louisiana this Saturday, August 17th. The event is free, although you need to register. Here’s a little information about what you can expect from my sessions: PowerShell + SQL Server = Better Together As a SQL Server professional, are you able to make a rhyme or reason to this thing called PowerShell? Need to accomplish Read more [...]
While sitting through Jeff Hicks' Advanced PowerShell Scripting Workshop at PowerShell on the River in Chattanooga today, he mentioned there being a "Cn" alias for the ComputerName parameter of commands in PowerShell. I've previously written a one-liner to find parameter aliases and at one time Microsoft had starting adding parameter aliases to the help for commands as referenced in that same blog article, but it appears that they've discontinued adding them to the help and removed the ones they Read more [...]
Ever wonder how VSCode (Visual Studio Code) maintains those untitled tabs between sessions? They're stored as files underneath your user's profile in appdata on Windows based systems as shown in the following example.
The previous command could be piped to Get-Content to view the contents of all of code in the open untitled tabs of VSCode. You could also use Select-String to find something specific. I can see that three of my open tabs contain 'mikefrobbins'.
Get-ChildItem -Path $env:APPDATA\Code\Backups\*\untitled -Recurse
Concerned Read more [...]
Get-ChildItem -Path $env:APPDATA\Code\Backups\*\untitled -Recurse |
Select-String -SimpleMatch 'mikefrobbins' |
I’ll be presenting "PowerShell 101: The No-Nonsense Beginner’s Guide to PowerShell" at PowerShell on the River in Chattanooga Tennessee this Saturday, August 10th. The event itself is a mini-conference with all day sessions on Friday, August 9th and then numerous speakers presenting in three different tracks on Saturday, August 10th. Here’s a little information about what you can expect from my session: PowerShell 101: The No-Nonsense Beginner’s Guide to PowerShell Interested in Read more [...]