Windows Terminal: Getting started with Microsoft’s new utility

Way back in May of 2019, our own Annie Pilon here on TechGenix introduced us to Microsoft’s new utility called Windows Terminal and described some of its helpful features for command-line users. Since then, I’ve played with Windows Terminal myself but have felt there’s more under the hood that I’d like to know how to work with. So, I reached out to my colleague Jeffrey Hicks to hear his take on how to get the most out of Windows Terminal, and I’m happy to share his suggestions here and in another article that will follow this one. Jeffery is an IT veteran with almost 30 years of experience, much of it spent as an IT infrastructure consultant specializing in Microsoft server technologies with an emphasis on automation and efficiency. He is a multi-year recipient of the Microsoft MVP Award. He works today as an independent author, teacher, and consultant. Jeff has taught and presented on PowerShell and the benefits of automation to IT pros worldwide. He has authored and co-authored a number of books, writes for numerous online sites and print publications, a Plural sight author, and a frequent speaker at technology conferences and user groups. His latest books are The PowerShell Practice Primer and PowerShell Scripting and Toolmaking. You can keep up with Jeff on Twitter and on his blog. Let’s turn the floor over to Jeff.

Windows Terminal: What is this thing?

One reason Windows is so popular is because of, well, Windows. Everything is graphical and clickable. But for many IT pros, especially those with an interest or appreciation in automation, access to a command-line prompt can be valuable. Windows IT pros are beginning to catch on to what Linux professionals have known for a long time — serious management is done from a prompt.

Fortunately, the CMD, or what some think of as the DOS, prompt was updated several years ago in Windows 10. And, of course, we have PowerShell. But this might mean Windows PowerShell and the newer iteration, PowerShell 7.x. You might even be using WSL.

For those of you who know me, it probably comes as no surprise that I am a PowerShell superuser. I spend my day working from a PowerShell prompt. My work requires me to use both Windows PowerShell and PowerShell 7. And I, too, need to get into an Ubuntu instance occasionally. That’s a lot of prompts. But I have a solution.

Microsoft has recognized the shortcomings in its current shell offerings. So, they are busy at work on the next-generation shell experience, and you can run it today. It is called Windows Terminal, and as you’ll see, it is easy to use and makes working from a command prompt much less of a burden. Windows Terminal supports multiple tabs, automatic shell detection, split-panes, Unicode support, and so much more.

Windows Terminal is intended to be used from a Windows 10 desktop. I have not tried installing it on a server, but I don’t see any reason to. You should be remotely managing your environment from your Windows 10 desktop.

Windows Terminal installation

The easiest way to install Windows Terminal is through the Microsoft Store. You’ll need at least Windows 10 version 18362 or later. Windows Terminal is an open-source project on GitHub. Another installation option is to download the appx package of the current release from GitHub. Open an elevated PowerShell window and change the location to where you downloaded the package. Then run Add-AppxPackage.

PS C:\Users\jeff\Downloads\> Add-AppxPackage .\Microsoft.WindowsTerminal_1.3.2651.0_8wekyb3d8bbwe.msixbundle

If you use this installation method, you will most likely miss out on automatic updates that you get when installing from the Microsoft Store. By the way, there are other ways to install the application. I encourage you to take a few minutes with the README file in the GitHub repository.

You can verify the configuration by running wt.exe from a command prompt. Or find the program under your Start menu. You should see something like this.

Windows Terminal

Working with shells

Because I ran wt.exe from an elevated PowerShell prompt, the Windows Terminal process also ran elevated. Once I install Windows Terminal, I pin the application to my taskbar. This way, I can right-click on the shortcut and run the app as administrator.

PowerShell launched because it was the first detected shell. Click on the down arrow at the top to see your other shell options.

Windows Terminal

I’m running this in a Windows sandbox setting that has nothing else installed. You might see different options. If I want to open a Command Prompt, I can click on the menu item or use the keyboard shortcut.

Windows Terminal

And here’s a cool trick. I’m going to select Windows PowerShell again from the dropdown but hold the Alt key when I click.

Windows Terminal

Windows Terminal opened the new shell in a split-pane.

The tabs can be modified from the shell. For example, in PowerShell, you can run a command like:

$host.ui.RawUI.WindowTitle = "Testing"

Or you can double-click the tab and enter a new title. If you right-click on the tab, you can rename and change the tab color.

Windows Terminal

Configuration

Windows Terminal stores configuration information in a JSON file. Right now, the only way to modify your configuration is to edit this file. You can click Settings from the menu dropdown or use the Ctrl+ keyboard shortcut.

Windows will try to use the application associated with JSON files. If you have VS Code or another editor installed, that should open the file. Otherwise, you’ll have to use a simple tool like Notepad.

I recommend using VS Code because it will automatically complete many of the possible JSON settings. As you scroll down, you’ll see a list of the current menu choices. I’ll come back in a few minutes and show you how to customize.

Be careful when in this file because any changes you make are automatically and immediately applied. I’m going to close the settings file and Windows Terminal and install PowerShell 7, including the latest preview. Type “exit” to close most shells.

Adding a configuration

In addition to adding PowerShell 7, I also installed the free Visual Studio Code application and registered it with associated file types. I now have additional shell options.

Using the split-pane trick, I now have new sessions.

Windows Terminal

But you can create your own session. I’m going to open the settings file again, this time using Visual Studio Code.

I like to test my modules and code in a PowerShell session that doesn’t use a profile script. I want to create such a session using PowerShell 7. In the list section of the JSON file, I will insert a new configuration.

"list":
[
{
// Make changes here to the powershell.exe profile.
"guid": "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}",
"name": "Windows PowerShell",
"commandline": "powershell.exe",
"hidden": false
},
{
// PowerShell 7 no profile
},
{
// Make changes here to the cmd.exe profile.
"guid": "{0caa0dad-35be-5f56-a8ff-afceeeaa6101}",
"name": "Command Prompt",
"commandline": "cmd.exe",
"hidden": false
},

At a minimum, I will need to define a guid, name, and commandline. The JSON settings are case-sensitive, so be careful. Use the New-Guid command in PowerShell to generate one. If you are using VS Code, you’ll see that it helps you with the configuration. Here’s my initial configuration.

{
// PowerShell 7 no profile
"guid" :"{ce2e0471-d728-430b-b668-a644451bd811}",
"name": "PS7 No Profile",
"commandline": "pwsh -noprofile -nologo",
"startingDirectory": "C:\\"
},

I added a new entry to start the session in C:\. In JSON files, you need to escape the backslash. As soon as I save the settings.json file, I have a new entry.

There’s no icon. But I can fix that with a little work. At some point, I expect the application to have a better interface for customizing configurations. But in the meantime, it is working with JSON files. For the icon, you can use a file path like C:\\icons\\ps.ico or use the ms-appx:///ProfileIcons moniker.

“icon”: “ms-appx:///ProfileIcons/pwsh.scale-150.png”

Where did I get the last part of the path? You can find it here at GitHub.

More coming on Windows Terminal, so stay tuned

I’ll continue in the next article by showing you how to customize a configuration and describe some of the limitations of Windows Terminal and how to manage it using PowerShell.

Featured image: Pixabay

2 thoughts on “Windows Terminal: Getting started with Microsoft’s new utility”

  1. The problem is that I can’t install it, because it needs at least 1809, and I’m stuck on 1803. Any update from this breaks my networking, and I don’t have anything useful to do on a standalone PC.

Leave a Comment

Your email address will not be published. Required fields are marked *

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Scroll to Top