The need: To run multiple PowerShell windows and keep it straight which one is working on what.
Example:
- In PowerShell window #1 you’re working with SharePoint
- In PowerShell window #2 you’re working with Active Directory users
- In PowerShell window #3 you’re goofing off customizing your profile so you can write a blog post
Only problem is, once you’re working with these windows, it’s hard to tell which window was the one you are working on your profile in – because they all look like this:
Here’s how to alleviate this problem automatically using an awesome PowerShell profile trick
Open up your PowerShell profile (or create a PowerShell profile if you haven’t already).
Add this function to your profile (and then call it right from your profile):
function random-ui {
$random = New-Object System.Random
switch ($random.Next(5)) {
0 {$host.ui.RawUI.BackgroundColor = "DarkMagenta"; $host.ui.RawUI.ForegroundColor = "White"}
1 {$host.ui.RawUI.BackgroundColor = "Black"; $host.ui.RawUI.ForegroundColor = "Green"}
2 {$host.ui.RawUI.BackgroundColor = "Gray"; $host.ui.RawUI.ForegroundColor = "DarkBlue"}
3 {$host.ui.RawUI.BackgroundColor = "DarkCyan"; $host.ui.RawUI.ForegroundColor = "DarkYellow"}
4 {$host.ui.RawUI.BackgroundColor = "DarkGray"; $host.ui.RawUI.ForegroundColor = "DarkRed"}
}
}#Calling the user interface (ui) randomizer (then clearing the screen):
random-ui
cls
Prepare thyself. Are thy prepared?
Here are the next few PowerShell windows I opened:
Sweet! Now when I’m working in Active Directory on the BLUE screen, and I want to come back to it, I know which of my sessions to switch back to.
If you end up getting a few screens of the same color and you want a new look, just call the function from the PowerShell session itself:
random-ui
For my function, I’ve left the CLS out of the function itself, so that it doesn’t trash any of the screen that I actually still want to use.
If you prefer, you could put the CLS at the end of the random-ui function (just after the switch is ended) and the screen will refresh after the user interface changes are applied.
Enjoy the new organization of your PowerShell windows!
Twitter: @Michael_Simmons