Windows 11 (Preview): System Requirement

Well, Windows 11 has a new system requirement. And here is the list of them,

Item Description
Processor 1 GHz or faster
2 or more Cores
64-bit processor or System on a chi (SoC)
Ram: 4 Gb +
Storage: 64Gb +
System Firmware: UEFI, Secure Boot capable
TPM: TPM 2.0
Graphics Compatible with DirectX 12 or later with WDDM 2.0 driver
Display: HD (720p) display, greater than 9″
Internet Connection & Microsoft Account Windows 11 Home edition requires internet connectivity and a Microsoft Account to complete device setup on first use.
Switching out of Windows 11 Home in S mode also requires internet connectivity.

For the Processor, it requires at least Intel 8th generation processors or AMD Zen 2, as well as Qualcomm 7 and 8 series. Right now the Windows team is testing with Windows Insiders and partner with OEMs to run Windows 11 on Intel 7th generation and AMD Zen 1. Over the time, the CPU requirement might be lower when the public released.

Some features might need higher system requirements, let me drop some here,

Item Description
Snap 3 columns layouts require a screen that is 1920 pixels or greater in width
Xbox (app) needs an Xbox Live account.
Some features in the Xbox app will require an active Xbox Game Pass Subscription
Presence Requires sensor that can detect human distance from device or intent to interact with device


*For a full list, please visit Microsoft Blog: Windows 11 Specifications

Windows 11: New Features, New UI, Android App Support, improved Xbox Experience!

Yesterday, Microsoft announced Windows 11, the next generation of Windows. The entire Windows 11 OS comes with new User Interface, new Start Menu, Android App Support, and improved Xbox Experience.


Let’s have a look on what are these new features in the Windows 11!

Windows 11 Taskbar
From the above image, we can see that the taskbar icon could align in middle. And the Start Menu icon also could align in middle. The Search window looks the same as Win10 one, with some icon on the top area. they might be the icons on previous search results.


Windows 11 Themes
The above image shows the new design of themes for Windows 11. At this moment, we can see 6 new themes. It might be more or less after it is released. And You could see that 3 of them are the light themes, while another 3 are the dark themes.


Windows 11 Snap
From the above image, we could see that there are more ways on the windows snap. Specially when you want to split your screen into 3 or more windows. (will it provides 6 windows splitting in screen?)
It would be a very good experience if you have multiple large monitor (27 inches or above).


Windows 11 Widget
The new widget is not loading fully in the screen, but they are designed to slide out from left hand side and provide quick access to news, weather and other web content.

Since last week, I also found a new bar suddenly enabled and shows a weather icon next to the notification bar in my Windows 10. It shows the similar window like the Windows 11 Widget. If you cannot see it, try to right click the task bar and see if you have the “News and Interests”. It might be turned off.
(You may have to update your Win 10 to latest version first)


Windows 11 Action Center

Microsoft redesigned the Action Center and improved its design and functionality. You don’t have to open the settings page to switch Wi-Fi networks or Bluetooth devices. Instead, you can expand these menus without leaving the Action Center.






Windows 11 Microsoft Store
The new Microsoft store is your single trusted location for apps and content to watch, create, play, work and learn. It has been rebuilt for speed and with an all-new design. So that it looks more beautiful and more simple to use. And it also brings you more apps than ever before, apps, games, shows, movies…etc.


Windows 11 – Android Apps Support
As you can see from the above image, Microsoft Store also brings you the Android apps on your PC now. Starting later this year, you will be able to discover Android apps in the Microsoft Store and download them through the Amazon Appstore. As you can see from the image, you could download and install TikTok on Windows 11. This new supporting is the partnership with Amazon and Intel using their Intel Bridge technology.
With this new supporting, this must be unlocking new opportunity for developers and creators. If you want to learn more about what Windows 11 means for developers, you may visit Windows Developer Blog for more details.


Windows 11 Xbox Experience
The new Xbox app is now integrated into Windows 11, offering quick access to Xbox Game Pass games, the social parts of Xbox network, and the Xbox store. The Xbox Game Bar and Windows Game Mode all remain the same as Windows 10.


Want to know more
Here is the link to the “Introducing Windows 11” from Windows Experience Blog.

[PowerShell] How to Create Simple Class

As a C# developer, I think that I should need to know how to create a class in PowerShell. Since Windows PowerShell 5.0, it adds the ability to create a class. With a class, we could do the coding more like C# (this is a good news to a C# developer like me, lol). We could create methods properties, enums, and other things to Class in PowerShell.

The first thing we need is, use the Class keyword. This is a sample on it,

Class Vehicle {


Within the brace, we could add our items in it. Be careful when we create object in PowerShell. The Windows PowerShell automatic type system works remarkably. it allow us create any variable without specify its type. Everything will simply be a System.Object. if you have a string, an int, or a DataTime object, the best practice (or you must) is to specify that type so that things will work well.

Because I am creating a class for a vehicle, I could create something like, Vehicle Registration Plate, Model, Year, Number of Doors, Number of Wheels, Seating Capacity, Engine Displacement, Engine Max Torque….etc

[int]$numberOfWheels = 4
[int]$numberOfDoors = 5

I can then use the New-Object cmdlet to create an instance of the Vehicle class,
$myVehicle = New-Object Vehicle

I can now get the default values of all variables (class properties) in $myVehicle.

Now I can simply assign values to $myVehicle,

Now I could see all the updated values,

That is how you create a simple class in Windows PowerShell 5.0. Let’s talk about adding more stuff to the class later. Hope you enjoy and learn the PowerShell with me.


[PowerShell] How to Retrieve Data with ADO.NET

I am primary a C# developer since 2005. Before that I was a VB5/VB6/VB.NET developer. Recent, I changed my role from development side to a consulting side. I found out that I have to do some development by using powershell script. It is because I will pass the program to client and we should try to build with script or any “no compile needed language”. And so I start writing PowerShell script. Because of this, I will write some blog about PowerShell¬† that I learned from my job. And this is the first one in this series.

My first PowerShell task is, retrieve data from MSSQL.

From my C# knowledge, I would like to retrieve data by using ADO.NET. So I start looking for how I could use C# library in PowerShell Script. And lucky that there is a way.

Below is my first script in PowerShell.

Function GetDataFromMSSQL {
    Write-Host "====================================="
    $sqlConn = New-Object System.Data.SqlClient.SqlConnection
    $sqlConn.ConnectionString = "Server=localhost;Integrated Security=true;Initial Catalog=AdventureWorks2019;"
    try {
        Write-Host "Data Source is connected."
        #$sqlcmd = $sqlConn.CreateCommand()
        $sqlcmd = New-Object System.Data.SqlClient.SqlCommand
        $sqlcmd.Connection = $sqlConn
        #$selectQuery = "SELECT TOP (1000) [SpecialOfferID],[Description],[DiscountPct],[MinQty],[MaxQty] FROM [AdventureWorks2019].[Sales].[SpecialOffer]"
        $sqlcmd.CommandText = $selectQuery

        $sqladp = New-Object System.Data.SqlClient.SqlDataAdapter $sqlcmd
        $data = New-Object System.Data.DataSet
        $sqladp.Fill($data) | Out-Null

        $rowCount = $data.Tables[0].Rows.Count
        Write-Host "$rowCount rows returned."
    } catch {
        Write-Host "Data Source cannot be connected."
        Write-Host $Error[0].Exception.Message
    } finally {


No internet access on Host after enabled Hyper-V (or any VM software, i.e., VirtualBox)

Recent, I installed Oracle VM VirtualBox and enabled Hyper-V feature on my Win10 Professional (1709). Since then I cannot browse any intranet or internet web pages in IE and Edge. But there is no problem at all if I disable the newly added virtual network adapter.

I tried to google and search how to fix it. But I found no clue at all.

After few days, suddenly a light bulb goes on in my head.

I think it might be the adapter priorities so all the network traffic is sending out through the virtual network adapter. I then find out the REAL solution to fix it. Now all of the newly added virtual network adapters are enabled and I have no problem at all on browsing intranet and internet web pages.

Here are the steps to fix.

    1. Open Windows PowerShell
    2. Run “Get-NetAdapter” to list all the adapters info
    3. Now you can see the IfIndex value for the virtual network adapter (it is 18 in my PC, it will be other value in your PC). Remember this value.
    4. Then we run “Get-NetIPInterface” to list all the IP interface info
    5. The “real” network adapter for me to go intranet and internet is IfIndex=52, and its InterfaceMetric is 35.
    6. The virtual network adapter (IfIndex=18) is having InterfaceMetric=15.
    7. In windows, the lower number means the higher priorities. So that means all the network traffic will route out from the virtual network adapter and so it seems I lost all the internet access. Now what we should do is, lower the priorities of the virtual network adapter. Because my wifi adapter is having InterfaceMetric=45. So I think putting 55 for the virtual network adapter is a good choice. Let’s try to make the change now.
    8. Let’s open “Windows Settings”
    9. Click into “Network & Internet”
    10. Click into “Change Adapter Options”
    11. Right click the virtual network adapter and select “Properties” button
    12. select “TCP/IPv4” and click “Properties” button
    13. Click “Advanced…” button
    14. Clear the “Automatic metric” and enter “55” to the textbox of Interface Metric (entering other proper value in your case)
    15. Click “OK” button and until all property windows are closed.
    16. Repeat the same steps from (12) to (15) for “TCP/IPv6”
    17. You may run “Get-NetIPInterface” in PowerShell Window to make sure the values are applied.

These are all the steps to fix this issue. I hope these steps could also help you.