How to find the Windows Experience Index in Windows 10 with Powershell

Use PowerShell to get the Windows Experience Index in Windows 10

Windows 7 has the Windows Experience Index which is used often by hardware techs to get a good idea about the kind of hardware installed in a PC. It also allows you to quickly find  where improvements can be made to get the machine to run faster. The following screenshot is an example of the Windows 7 Windows Experience Index:

You can get an idea about how fast the components of your Windows 10 computer are by running the Windows System Assessment Tool, but the readout is a little hard to understand. Skip this part (winsat formal) to get the Windows Experience Index in Windows 10 or Windows 7 with PowerShell below.

First open an elevated command prompt and run the command:

winsat formal

Below is a screenshot of the command running and it’s output. Running this tool will slow down your PC for a few minutes as it runs the tests:

Results:

The Windows Experience Index WMI modules are still available in Windows 10, however, the scores are not readily apparent in the Windows 10 system settings.
To get your Windows 10 Windows Experience Index subscores with PowerShell, first open up the Windows PowerShell ISE. Next, go to the following link: https://pastebin.com/i5M81xsV, -credit goes to reddit user:
*(as of 12/20/18 this code was no longer available on pastebin, so I’ve copied below)
$SysInfo = Get-CimInstance -Query "SELECT WinSPRLevel,CPUScore,MemoryScore,DiskScore,GraphicsScore,D3DScore From Win32_WinSAT"

    $SysParams = @{
                    Perf_WinExp_All = $SysInfo.WinSPRLevel
                    Perf_WinExp_CPU = $SysInfo.CPUScore
                    Perf_WinExp_RAM = $SysInfo.MemoryScore
                    Perf_WinExp_DSK = $SysInfo.DiskScore
                    Perf_WinExp_VID = $SysInfo.GraphicsScore
                    Perf_WinExp_D3D = $SysInfo.D3DScore
                    Perf_WinExp_AVG = "{0:N2}" -f ((($SysInfo) |
                    ForEach-Object {$_.CimInstanceProperties.Value})[0..4] |
                    Measure-Object -Average).Average
                   }
                   
    New-Object -TypeName PSobject -Property $SysParams
Copy the code into the Windows 10 PowerShell ISE and then run the script, or create a .ps1 file, and you can get the Windows Experience Index with PowerShell in either Windows 10 or Windows 7:

Here’s my results

Perf_WinExp_D3D : 9.9
Perf_WinExp_DSK : 7.55
Perf_WinExp_CPU : 9.1
Perf_WinExp_AVG : 8.91
Perf_WinExp_RAM : 9.1
Perf_WinExp_VID : 8.9
Perf_WinExp_All : 7.55
Here are the scores from my friend’s laptop (thanks Stan):
Perf_WinExp_D3D : 9.9
Perf_WinExp_DSK : 8.15
Perf_WinExp_CPU : 8.2
Perf_WinExp_AVG : 8.09
Perf_WinExp_RAM : 8.2
Perf_WinExp_VID : 6
Perf_WinExp_All : 6

So you can see that in my results, my WEI score would be 7.5 – where the lowest subscore determines my overall result. Looking at the scores, I can improve my score and upgrade my computer by increasing the DSK (disk) performance. To do this I would probably have to upgrade my motherboard to one that supports an NVME hard drive.

My friend’s laptop’s lowest score is VID (video) which means his laptop GPU is keeping the score low. There are a few options for upgrading a laptop GPU, such as an external GPU, but this isn’t surprising as most laptops GPUs can’t compete with a full-sized computer and GPU.

Sharing a Windows 7 Notebook/Laptop Wireless Connection with a Desktop PC Using A Bridge

I have a notebook that is connected to a wireless network and also has a Cat5 network port. I also have a desktop PC with no wireless card, but is too difficult to run a cable to the wireless router. How do you easily share your notebook laptop wireless connection in Windows 7 via a notebook’s Ethernet NIC port, so that the PC will pick up a DHCP address from the router, and not have to use Windows 7 ICS (Internet Connection Sharing) service?

It’s actually pretty easy to share your laptop’s wireless connection through the notebook’s NIC, to a Desktop PC’s network card. You can do this without an additional (second) router, or a crossover cable, or setting static IP addresses, etc.

1. Go into your laptop’s Network Sharing Center and then click on the “Change Adapter Settings” link.

2. Next, you’ll see your Local Area Connection is in Network Cable Unplugged status (hold off on plugging in the network cable). You should also see your Wireless Network Connection is connected to the network/internet. I like change the view settings on the screen to View Details, and sort the adapters so that the two you’re trying to share are right next to each other.

Click Image to Enlarge

3. Next, hold down the Ctrl button and click on both adapters so that they are both highlighted. You can also click-drag your mouse highlight/select both adapters. After they are both selected, right-click on the two and choose “Bridge Connections.”

Click image to enlarge

4. After a few moments you should see a Network Bridge adapter created and then connected to the internet.

click image to enlarge

5. Now take a simple Cat5e/ethernet cable (not cross-over) and plug it into your PC’s NIC, and the other end into the laptop’s NIC port. The Local Area Connection adapter should change to “Enabled, Bridged”.

click image to enlarge

6. Your Desktop PC should pick up a new IP address from the same router as your laptop, and go online. If not, make sure the Local Area Connection adapter on the Desktop PC is set to DHCP, and then then hit “Troubleshoot Problems” on the network connection, or do a DHCP address release/renew. During testing, my PC warned me that there was an IP address conflict when first plugging in the cable from the laptop to the PC. I did a release/renew on the adapter and received a new IP address from the router, and all is well.

Hopefully this post will save you a little time when trying share your wireless internet connection on your laptop out to your PC.