Category: Windows 10

Windows 10 on ARM PowerShell 7 Windows Terminal ARM64

How to Install PowerShell 7 on Windows 10 on ARM

As you know I am running Surface Pro X as my daily driver, which comes with Windows 10 on ARM. With the release of PowerShell 7.0.2, I want to show you how you can install PowerShell 7 on Windows 10 on ARM and the Surface Pro X. The ARM64 release is still marked as a preview. The PowerShell team is working on bringing PowerShell 7 to the Microsoft Store, which will create a much ns smoother experience. However, if you are like me and want to try out PowerShell 7 on your Surface Pro X today, you can do that.

Windows 10 on ARM runs on PCs powered by ARM processors, like the Surface Pro X. And if you want to know more about what’s new in PowerShell 7, check out my blog post. ℹ

How to Install PowerShell 7 on Windows 10 on ARM and the Surface Pro X

With the release 7.0.2 of PowerShell 7, the ARM64 build arrived again. You can download a new .msix file with an ARM64 version from the GitHub release page.

PowerShell 7 on Windows 10 on ARM Surface Pro X

PowerShell 7 on Windows 10 on ARM Surface Pro X

If your Windows 10 machine has developer mode enabled, you can now add the MSIX package to your Windows installation. You can use the Add-AppxPackage to add the .msix package.

Add-AppxPackage .\PowerShell-7.0.2-win-arm64.msix

After that, you can find PowerShell 7 in your start menu, or directly in the new Windows Terminal.

Windows 10 on ARM PowerShell 7 Windows Terminal ARM64

Windows 10 on ARM PowerShell 7 Windows Terminal ARM64

Conclusion

I hope this helped you an explained to you how you can install PowerShell 7 on Windows 10 on ARM. If you want to know more about installing and updating PowerShell 7, check out my blog post. And if you need more information, here is the official documentation on Microsoft Docs.

You can find more information about what’s new in PowerShell 7 on my blog. If you have any questions, please let me know in the comments.



Windows File Recovery Tool WinFR

Recover Files on Windows using the Windows File Recovery Tool

Did you accidentally delete an important file, wiping a hard drive or partition, or need to restore corrupted files and data? We all have been there, with the newly released Microsoft Windows File Recovery tool you can recover and restore files on Windows. In this blog post, I am going to show you how you can recover and restore files on Windows using the Windows File Recovery tool. You can also use this tool to recover files from external drives and SD cards.

Accidentally deleted an important file? Wiped clean your hard drive? Unsure of what to do with corrupted data? Windows File Recovery can help recover your personal data.

For photos, documents, videos and more, Windows File Recovery supports many file types to help ensure that your data is not permanently lost.

Recovering from a camera or SD card? Try Signature mode, which expands beyond NTFS recovery and caters to your storage device needs. Let this app be your first choice for helping to find what you need from your hard drive, SSD (*limited by TRIM), USB drive, or memory cards.

I also want to make clear that this is no replacement for a backup, like Windows File History, Azure Backup, or products from third-party vendors. This tool is more of an emergency utility, you can restore files that were not backed up.

Requirements

To use the Windows File Recovery Tool, you have a couple of requirements.

  • You will need to run Windows 10, version 2004 (Build 19041), or later.
  • You can download the Windows File Recovery Tool from the Microsoft Store.
  • The source and destination drives must be different. If you don’t have a second drive on your computer, you can use a USB drive as a target for the restore. If you are storing form an SD card or external drive, you can use the internal system drive (often the C: drive) as a target.
  • The tool supports different file systems such as NTFS, ReFS, FAT, and exFAT. If you are restoring files from a non-NTFS file system, you will need to run the commands in signature mode using the /x parameter.


How to Install a Windows Server Container Host

How to Install a Windows Server Container Host

In this blog post, I want to quickly guide you through how you can install a Windows Server Container Host running Docker. This guide will help you set up, install, and run Windows Containers on Windows Server. In my example, I will install a container host on a Windows Server, version 2004, which is a Semi-Annual Channel (SAC) release. Windows Server SAC releases are released twice a year and are optimized for containers. In the Windows Server, version 2004 release, the team continued improving fundamentals for the core container platform such as performance and reliability.

If you want to learn more about the differences of Windows Server Semi-Annual Channel (SAC) vs. Long-Term Servicing Channel (LTSC), check out my blog post.

Requirements

  • A virtual or physical server running Windows Server 2016 or higher (Also including Semi-Annual Channel (SAC) releases. In my blog post, I will use the latest available releases and run the latest Windows Server SAC release, which offers the latest enhancements on the container host.
  • You can also use the Windows Server 2019 LTSC version

Set up and install the Windows Server Container Host

Since I am using the latest SAC release of Windows Server, the server is available as Windows Server Core only. This means I am going to use a tool called “sconfig” to set up my server for the first time. Of course, you can also use existing methods like unattend.xml files or PowerShell scripts to set up your server.

Windows Server Core

Windows Server Core

With sconfig, you can run all the simple configuration tasks to configure your Windows Server.

Windows Server SCONFIG

Windows Server SCONFIG

After the Windows Server is configured and patched, we can now install Docker, which is required to work with Windows containers. Docker consists of the Docker Engine and the Docker client. You can simply install Docker on Windows Server using the following commands.

Install-Module -Name DockerMsftProvider -Repository PSGallery -Force
Install-Package -Name docker -ProviderName DockerMsftProvider
Install Docker on Windows Server

Install Docker on Windows Server

After these commands, you will need to restart the server.

Restart-Computer -Force

If you want to learn more about installing Docker on Windows Server, check out Microsoft Docs.

Run Windows Container Docker Images on Windows Server

Run Windows Container Docker Images on Windows Server

Now you can start pulling your docker container images to your Windows Server. I will use the latest Windows Container images, which came with Windows Server, version 2004. You can read more about the improved container images here.

docker pull mcr.microsoft.com/windows/servercore:2004 
docker pull mcr.microsoft.com/windows/nanoserver:2004 
docker pull mcr.microsoft.com/windows:2004

You can now use the docker client to manage your containers on your Windows Server, or you can also use the new Windows Admin Center Container extension, which was released a couple of weeks ago.

Manage Windows Server Containers with Windows Admin Center

Manage Windows Server Containers with Windows Admin Center

And yes, if you have a standalone Windows Server Core, you can also directly install Windows Admin Center on your Windows Server Core.

Conclusion

I hope this blog post gives you a great overview of how to install and set up a Windows Server container host. If you have any questions, feel free to leave a comment.



Run Hyper-V on Windows 10 on ARM and the Surface Pro X

Run Hyper-V on Windows 10 on ARM and the Surface Pro X

Here is a quick blog post on how you can run Hyper-V virtual machines (VM) on Windows 10 on ARM and the Surface Pro X.

I am running the Surface Pro X as my daily driver for a couple of months. It is a fantastic device and combines a light designed and the Surface Pro form factor with a 13-inch screen. But the most significant difference to the other Surface devices like the Surface Pro 7, is that the Surface Pro X is running Windows 10 on ARM. It has a custom Microsoft SQ1 chip. This limits it to run native ARM64 or emulated 32-bit x86 applications, and it can’t run classic 64-bit x64 applications at the moment. Another limitation was that I wasn’t able to run Hyper-V virtual machines (VMs) on my Surface Pro X.

With the Windows 10 Insider Preview build 19559, you were able to install Hyper-V. However, you didn’t have a compatible image to run inside the virtual machine (VM). With the Windows 10 Insider Preview Build 19631, Microsoft is now also providing an ARM64 VHDX file, which you can download and run as a guest OS in Hyper-V.

How to enable Hyper-V on Windows 10 on ARM

You need a Windows 10 ARM-based PC with a Microsoft SQ1, Qualcomm Snapdragon 8cx, or Qualcomm Snapdragon 850 processor. To enable the Hyper-V feature on Windows 10 on ARM and the Surface Pro X, you will also need to have installed the Windows 10 Insider Preview build 19559 or higher and have Windows 10 Pro or Windows 10 Enterprise.

  1. Join the Windows Insider Program and update to the latest Windows 10 Insider Fast Ring build 19559 or newer
  2. Upgrade your Windows edition from Home to Windows 10 Pro or Windows 10 Enterprise
  3. Install the Hyper-V feature on Windows 10You can run the following PowerShell command to install the Hyper-V feature.
    Enable-WindowsOptionalFeature -Online -FeatureName:Microsoft-Hyper-V -All
  4. Download the Windows 10 on ARM VHDX file from here.
  5. After that, you can create a Hyper-V virtual machine (VM) with an existing VHDX file on your Surface Pro X.
  6. Visit Windows 10 on ARM developer center for more details and documentation.

Conclusion

I hope this gives an overview of how to run Hyper-V VMs on Windows 10 on ARM. This is still in preview, but if you are like me and want to give it a try, you can. Let me know if you have any questions.



Windows Terminal Color Schemes -Themes

My Windows Terminal Color Schemes

The Windows Terminal became generally available at the Microsoft Build 2020 virtual conference a couple of weeks ago. I already blogged about how you can customize your Windows Terminal settings and shared my settings.json file. Many people asked me about the different Windows Terminal Color Schemes I use. So I thought a blog post would be a good way of sharing my Windows Terminal Schemes.

Windows Terminal 1.0 was released on May 19, you can find more documentation here on Microsoft Docs.

I already shared a couple of blog posts on how you can customize your Windows Terminal experience:

My Windows Terminal Color Schemes

Here is my Windows Terminal Color Schemes. Since I use the acrylic effect, I post a picture when the Windows Terminal window is active and one where it is inactive.

Vibrant Tom

Vibrant Tom

Vibrant Tom

Vibrant Tom Inactive

Vibrant Tom Inactive

This one I use for my default shell (PowerShell 7).

{
            // Color Scheme: VibrantTom
            "background" : "#16171D",
            "black" : "#878787",
            "blue" : "#44B4CC",
            "brightBlack" : "#E373C8",
            "brightBlue" : "#0000FF",
            "brightCyan" : "#19D1D8",
            "brightGreen" : "#81EC0D",
            "brightPurple" : "#FF00FF",
            "brightRed" : "#FF0000",
            "brightWhite" : "#E5E5E5",
            "brightYellow" : "#FFD93D",
            "cyan" : "#19D1D8",
            "foreground" : "#FFFFFF",
            "green" : "#CCFF04",
            "name" : "VibrantTom",
            "purple" : "#9933CC",
            "red" : "#FF6600",
            "white" : "#F5F5F5",
            "yellow" : "#FFD93D"
        },

Windows PowerShell Tom

Windows PowerShell Tom

Windows PowerShell Tom

Windows PowerShell Tom Inactive

Windows PowerShell Tom Inactive

{
            // Color Scheme: PowerShellTom
            "background" : "#012456",
            "black" : "#000000",
            "blue" : "#0000ff",
            "brightBlack" : "#AAAAAA",
            "brightBlue" : "#44B4CC",
            "brightCyan" : "#19D1D8",
            "brightGreen" : "#81EC0D",
            "brightPurple" : "#FF00FF",
            "brightRed" : "#FF0000",
            "brightWhite" : "#E5E5E5",
            "brightYellow" : "#FFD93D",
            "cyan" : "#19D1D8",
            "foreground" : "#FFFFFF",
            "green" : "#00ff00",
            "name" : "PowerShellTom",
            "purple" : "#9933CC",
            "red" : "#FF6600",
            "white" : "#F5F5F5",
            "yellow" : "#FFD93D"
        },

Retro Command Prompt

Retro Command Prompt

Retro Command Prompt

Dracula

Dracula

Dracula

Dracula Inactive

Dracula Inactive

{
            // Color Scheme: Dracula
            "background" : "#282A36",
            "black" : "#21222C",
            "blue" : "#BD93F9",
            "brightBlack" : "#6272A4",
            "brightBlue" : "#D6ACFF",
            "brightCyan" : "#A4FFFF",
            "brightGreen" : "#69FF94",
            "brightPurple" : "#FF92DF",
            "brightRed" : "#FF6E6E",
            "brightWhite" : "#FFFFFF",
            "brightYellow" : "#FFFFA5",
            "cyan" : "#8BE9FD",
            "foreground" : "#F8F8F2",
            "green" : "#50FA7B",
            "name" : "Dracula",
            "purple" : "#FF79C6",
            "red" : "#FF5555",
            "white" : "#F8F8F2",
            "yellow" : "#F1FA8C"
        },

Ubuntu Legit

UbuntuLegit

UbuntuLegit

UbuntuLegit Inactive

UbuntuLegit Inactive

This one I saw first at Scott Hanselman’s blog. This one I use for my Windows Subsystem for Linux 2 (WSL 2) running Ubuntu.

{
            // Color Scheme: UbuntuLegit
            "background":  "#2C001E",
            "black":  "#4E9A06",
            "blue":  "#3465A4",
            "brightBlack":  "#555753",
            "brightBlue":  "#729FCF",
            "brightCyan":  "#34E2E2",
            "brightGreen":  "#8AE234",
            "brightPurple":  "#AD7FA8",
            "brightRed":  "#EF2929",
            "brightWhite":  "#EEEEEE",
            "brightYellow":  "#FCE94F",
            "cyan":  "#06989A",
            "foreground":  "#EEEEEE",
            "green":  "#300A24",
            "name":  "UbuntuLegit",
            "purple":  "#75507B",
            "red":  "#CC0000",
            "white":  "#D3D7CF",
            "yellow":  "#C4A000"
        },

Vibrant Tom Light

Vibrant Tom Light

Vibrant Tom Light

Vibrant Tom Light Inactive

Vibrant Tom Light Inactive

This one I am still working on. I am not 100 percent happy, so let me know if you have any ideas.

{
            // Color Scheme: VibrantInkTom Light
            "background" : "#EEEEEE",
            "black" : "#878787",
            "blue" : "#44B4CC",
            "brightBlack" : "#595e68",
            "brightBlue" : "#0000FF",
            "brightCyan" : "#19D1D8",
            "brightGreen" : "#3f953a",
            "brightPurple" : "#FF00FF",
            "brightRed" : "#FF0000",
            "brightWhite" : "#E5E5E5",
            "brightYellow" : "#FF6600",
            "cyan" : "#44B4CC",
            "foreground" : "#16171D",
            "green" : "#3f953a",
            "name" : "VibrantTomLight",
            "purple" : "#9933CC",
            "red" : "#FF6600",
            "white" : "#F5F5F5",
            "yellow" : "#FFD93D"
        },

Conclusion

I hope this blog post helps you to customize your Windows Terminal and I hope you like my Windows Terminal color schemes. Let me know in the comments which Windows Terminal Theme you like best.



Microsoft Surface Headphones 2 Mini Review

Surface Headphones 2 Mini Review

This week I just got my new Microsoft Surface Headphones 2, and since I got asked a lot about my first impressions, I want to share this mini-review. First, let me quickly tell you why I bought the Surface Headphones 2 since I also got the Surface Earbuds. I really like the first generation Surface Headphones, which I use in my home office or when I fly. However, they are pretty big, and when I go to the local office, I don’t feel like taking the large headphones with me, that is where the Surface Earbuds come in.

Surface Headphones 1 vs Surface Headphones 2

Surface Headphones 1 vs Surface Headphones 2

For me, the Surface Headphones are great because they are very comfortable, they connect to multiple devices at the same time. They also have great controls for noise cancellation as well as amplifying the sound around me, so I don’t have to scream during calls because I can’t hear myself talking.

Surface Headphones 2 Mini Review

Here are my impressions of the Surface Headphones 2:

  • The look and feel is mostly the same as the first generation. I like the dial controls to change volume and noise cancellation.
  • The Surface Headphones 2 also have buttons on the side, which allow you to pick up and end calls, skip to the next track, pause and resume music playback.
  • You get the same 13 levels of noise cancellation as on the first generation headphones, which is excellent. I also really like to amplify the sound around me, so I can hear myself speaking during calls, so I don’t scream into the microphone.
  • They are now available in a beautiful matt-black color.
  • They’ve been upgraded to Bluetooth 5.0 and now support Qualcomm’s aptX Bluetooth codec, which offers better audio quality.
  • I love that they connect easily to multiple devices at the same time. For example, I can have them connected to my Surface Laptop 3 to do Microsoft Teams calls and can easily just take a phone call on my Android phone.
  • That said, they are not Microsoft Teams certified. Don’t get wrong; for me, they work great with Microsoft Teams. However, some things just don’t work together. For example, the mute button on the Surface Headphones 2 does mute the microphone on the headphones, but that does not show in Microsoft Teams.
  • Bluetooth connection works great for me. I heard that others are having trouble with BT headphones like delay. I never experience this on the Surface Headphones 1 and Surface Headphones 2. But this can also heavily depend on your Bluetooth hardware on your computer, laptop, or phone.
  • The ear cups can now rotate 180 degrees.
  • They charge using a USB-C port and they come with an extra audio cable for devices you can’t connect using Bluetooth.
  • The On/Off button and the mute button stick out more, to make it easier to find them.
  • Battery life has also been extended from 15 hours to 20 hours (I was not able to test that yet, but for my workflow, the first generation was already good enough.
  • The voice of the assistant has changed and is much faster in some cases. I like that when you turn on your headphones, and the assistant tells you how much battery they have left, and to which devices you are connected to.

These were my quick first impressions of the Surface Headphones 2. If you have any questions, feel free to leave a comment. If you want to know more, check out the Microsoft tech specs here.

Surface Headphones 2 Box

Surface Headphones 2 Box

Conclusion

Overall I like the Surface Headphones 2. They bring the great experience and features from the first generation Surface Headphones with a couple of improvements and a lower price. I hope you liked my Surface Headphones 2 mini-review. If you have any questions feel free to leave a comment.

Disclaimer: I work for Microsoft, but I am not part of the Microsoft Surface team.



HCSDiag.exe - Hyper-V Host Compute Service Diagnostics Tool

HCSDiag.exe – Hyper-V Host Compute Service Diagnostics Tool

As you know, Hyper-V is not just a server virtualization software anymore. Today, you can find Hyper-V technology across different operating systems, products, and services, like Windows Defender Application Guard, Windows Sandbox, Hyper-V Containers, or many more. Thanks to Ben Armstrong from the Hyper-V team, I found out that there is a tool in Windows to troubleshoot these Hyper-V containers called hcsdiag.exe or Hyper-V Host Compute Service Diagnostics Tool. The Hyper-V Host Compute Service Diagnostics Tool (HCSDiag.exe) is available in Windows 10 and Windows Server 2019 if you have the Hyper-V roles or virtualization features enabled, and can be helpful to troubleshoot Hyper-V containers, virtual machines (VMs), Windows Sandbox, Windows Defender Application Guard, Windows Subsystem for Linux 2 and more.

HCSDiag.exe - Hyper-V Host Compute Service Diagnostics Tool

HCSDiag.exe – Hyper-V Host Compute Service Diagnostics Tool

Let’s have a look at the HCSDiag.exe, which you can find in C:\Windows\System32. It provides you with a couple of different commands and options. However, keep in mind that not all features work with every type of container. Some features are limited to scenarios where the VM is being used under the same user context as the host, where it is all about protecting the host from the guest and not the guest from the host like in the server version of Hyper-V.

To install Hyper-V, check out the following posts:

HCSDiag.exe

hcsdiag <command> [options…]

  • list
    Lists running containers and VMs.
  • exec [-uvm] <id> <command line>
    Executes a process inside the container.
  • console [-uvm] <id> [command line]
    Launches an interactive console inside the container.
  • read [-uvm] <id> <container file> [host file]
    Reads a file from the container and outputs it to standard output or a file.
  • write [-uvm] <id> [host file] <container file>
    Writes from standard input or a host file to a file in the container.
  • kill <id>
    Terminates a running container.
  • share [-uvm] [-readonly] [-asuser] [-port <portnumber>] <id> <host folder> <container folder>
    Shares a host folder into the container.
  • vhd [-uvm] <id> <host vhdx file> <container folder>
    Shares a virtual hard disk file into the container.
  • crash <id>
    Forces a crash of the virtual machine hosting the container (only works for containers hosted in a virtual machine).

I will give you some examples of how you can use hcsdiag.exe to interact with some of the Hyper-V containers. Now again, this focuses mostly on technologies like Windows Sandbox, Docker Hyper-V Containers, WSL 2, and similar features.

You can find more documentation on Hyper-V on Windows Server or Hyper-V on Windows 10 on Microsoft Docs.

List all containers and Hyper-V VMs

With the hcsdiag list command, you can create a list of containers and Hyper-V virtual machines running on the host. Including Windows Sandbox, Windows Subsystem for Linux 2, and Application Guard.

hcsdiag.exe list

hcsdiag.exe list

Connect Console to Hyper-V containers and Windows Sandbox

You can also directly connect to the console of containers or the Windows Sandbox. Remember that it only works for Hyper-V containers where the guest is not protected from the host. Not for containers like Hyper-V VMs, where the guest is also protected from the host. If you need to remote into want console access or run commands against a Hyper-V VM from the host, check out PowerShell Direct for Windows VMs and hvc.exe for Linux VMs.

hcsdiag console connect

hcsdiag console connect

Here is an example where I am connected to a Windows Sandbox container using hcsdiag.exe.

hcsdiag Windows Sandbox

hcsdiag Windows Sandbox

But that also works with Dockers container (Hyper-V containers) running Windows and Linux.

hcsdiag Linux Container

hcsdiag Linux Container

HCSDiag console provides you with an interactive connection to interact with the container.

Additional HCSDiag.exe features and commands

The HCSDiag.exe also provides you with a couple of additional commands you can use. For example, the read command to read a file from the container and output it to the host or as a file to the host.

hcsdiag read

hcsdiag read

You can use the “share” command to share a host folder into the container or use “vhd” to mount a virtual disk file (VHD) file to a container. The hcsdiag kill command terminates a running container.

Conclusion

HCSDiag.exe – Hyper-V Host Compute Service Diagnostics Tool is excellent if you need to troubleshoot these Hyper-V containers, virtual machines (VMs), Windows Sandbox, Windows Defender Application Guard, Windows Subsystem for Linux 2 and more. If you have any questions, feel free to leave a comment.