After migrating a virtual machine from another hypervisor (such as VMware or VirtualBox) to Hyper-V, you may notice that the network adapter is missing at the VM level.
In some cases, the network adapter does not appear in Device Manager and is instead listed as an unknown device. When attempting to manually install the driver for the unknown device, you may encounter the error:
The system cannot find the file specified
Cause
This issue typically occurs because the required driver file netvsc.sys is missing from the following directory: C:\Windows\INF
Solution
To resolve this issue, follow these steps:
Navigate to: C:\Windows\System32\DriverStore\FileRepository
Locate the folder containing the netvsc.sys file.
Copy the file to: C:\Windows\INF
Open Device Manager and reinstall the network adapter driver.
After completing these steps, the network adapter should be detected and function correctly in Hyper-V.
The log is located in C:\Windows\INF\setupapi.dev.log.
Recently, I ran into a strange issue while trying to add newly built Windows Server 2022 hosts to an existing Microsoft Failover Cluster. Every attempt to add a node failed with the following error message:
The server ‘host.zhengwu.org’ could not be added to the cluster. An error occurred while adding node ‘host.zhengwu.org’ to cluster ‘cluster.zhengwu.org’.
Keyset does not exist
At first glance, this error didn’t provide much direction. However, after some investigation, I discovered that the problem was caused by a mismatch in the node status between Microsoft Failover Cluster Manager and System Center Virtual Machine Manager (SCVMM).
Root Cause: Node Status Out of Sync Between SCVMM and Failover Cluster
One of the existing cluster nodes was still marked as Maintenance Mode in SCVMM, even though Failover Cluster Manager showed it as Online.
This mismatch caused several issues:
The node appeared online in Failover Cluster Manager
Virtual machines were running on it normally
But SCVMM showed no VMs on the host
And SCVMM treated the host as if it were not fully operational
Because SCVMM maintains cluster metadata and permissions, the inconsistent state led to the “Keyset does not exist” error when adding a new node.
The following Windows Event log is also observed in Microsoft-Windows-FailoverClustering-Client/Diagnostic:
AddClusterNodeEx (4570): Exception – error -2146893802 while adding node xxxx: Failed to Get Cluster Secret via CPrep Server on node xxxx
Solution: Rejoin the Problematic Cluster Node to the Cluster
To resolve the issue, I simply shut down the problematic cluster node.
The following warning appears when Visual Studio Code (VS Code) connects to a Python project on a remote server, and the virtual environment does not launch automatically:
Default interpreter path /opt/homebrew/bin/python3 could not be resolved: Could not resolve interpreter path /opt/homebrew/bin/python3
This problem can occur when Homebrew installs VS Code in a way that misconfigures the default interpreter path.
What the error means
VS Code is trying to use a Python interpreter path that it cannot resolve on the remote machine. This often happens because the path points to a local‑only Homebrew location (such as /opt/homebrew/bin/python3) that does not exist or is not accessible on the remote server.
How to fix it
Open Settings in VS Code (use Cmd + , on macOS or Ctrl + , on Windows/Linux).
Select the Remote tab (or search for “remote” settings).
Search for python.defaultInterpreterPath and remove its value.
Search for python-envs.defaultEnvManager and remove its value.
Close and reopen the VS Code window connected to the remote server.
After reopening, VS Code should no longer show the “could not resolve interpreter path” warning and will rely on the correct Python interpreter or virtual environment available on the remote machine.
How to Fix PowerShell VMware Errors: Assertion Failure and Connect-VIServer Module Issues
When working with VMware PowerCLI in PowerShell, you may encounter error messages that prevent you from connecting to a vCenter Server or ESXi host. Two common errors include:
“An assertion failure has occurred.”
“The ‘Connect-VIServer’ command was found in the module ‘VMware.VimAutomation.Core’, but the module could not be loaded.”
These errors usually indicate issues with PowerShell module permissions, blocked files, installation confusion or Group Policy restrictions. Below are the most common causes and their proven solutions.
Common Causes and Solutions
A. VMware PowerCLI Module Files Are Set to Read-Only
If PowerCLI module files or folders are marked as read-only, PowerShell may fail to load them correctly.
How to fix:
Navigate to your PowerShell Modules directory (for example: C:\Program Files\WindowsPowerShell\Modules)
Select all VMware-related folders starting with vmware*.
Right‑click and choose Properties.
Enable Read-only, apply the setting to all subfolders and files, and click OK.
Reopen Properties, uncheck Read-only, and apply again.
This reset helps clear inconsistent file attribute states.
B. VMware PowerCLI Module Files Are Blocked by Windows
Files downloaded from the internet or copied from another machine may be blocked by Windows for security reasons, preventing PowerShell from loading the module.
How to fix:
Run the following command in an elevated PowerShell session:
Replace "Module Path" with the actual path where the VMware PowerCLI modules are installed.
This command removes the “blocked” flag from all files in the module directory.
C. Group Policy Restricts Script Execution
In some corporate environments, Group Policy (GPO) allows only signed PowerShell scripts to execute.
This can block PowerCLI modules from loading.
How to fix:
Verify the current execution policy: PowerShellGet-ExecutionPolicy -List
Work with your IT security team to figure out a solution.
Aligning PowerShell execution policy with security standards is essential in enterprise environments.
D. Installation Confusion
You may have PowerShell 5 (Native) and PowerShell 7 both on the computer. You will see the error when running PowerCLI commands in the version that it is not installed.
How to fix:
Install PowerCLI again in the PowerShell version: Install-Module -Name VMware.PowerCLI -Scope CurrentUser -AllowClobber
The hardware mute button on my Poly headset has not worked with the New Microsoft Teams for a while. I eventually figured out that there is an option Sync device buttons in the newer release of Microsoft Teams.
Windows Servers rely on the WINRM protocol to be managed remotely. The following procedure helps to enable the protocol in home labs. A Windows 2025 server has WINRM enabled by default as long as it is joined to a domain that applied the following settings in GPO.
Go to Computer Configuration -> Administrative Templates -> Windows Components -> Windows Remote Management -> WinRM Service
The possible errors on System Center Virtual Machine Manager 2022 could be either of the following:
VMM does not have appropriate permissions to access the resource C:\windows\system32\qmgr.dll on the xxx server
VMM does not have appropriate permissions to access the resource " on the xxx server
VMM could not enumerate instances of class Msvm_VirtualSystemManagementService on the server xxx. Failed with error HRESULT 0x80070005 Access is denied
And you may also face other errors that related to access deny.
One possible cause is the service account format that you are using. It looks like there is a bug on System Center Virtual Machine Manager 2022. VMM tries to perform tasks with “localhost\[email protected]” if you entered service account with format “[email protected]”.
I recently installed Jenkins 2.479.2 on MacOS Sequoia (15.1). The service is working fine on http://localhost:8080, but it can not be accessed from any other devices at my home.
This post provided solutions to fix that issue. Here is a summary:
Make sure the MacOS firewall is disabled, or the port is enabled on the firewall.
Replace 127.0.0.1 with 0.0.0.0 in the file /opt/homebrew/opt/jenkins-lts/homebrew.mxcl.jenkins-lts.plist.
Restart the Jenkins service with brew services restart jenkins-lts.
You can use the command to restart other brew installed services. Use brew services info --all to list all available services.
I was trying to retrieve a report in a Bitbucket instance. The return from the API contains event dates. However, the value looks strange. It is something like 1680143775227.
The format looks like Unix Epoch Timestamp. But it was converted to a far future time in any online converters.
The .Net action [System.DateTime]::UnixEpoch.AddSeconds() threw an error:
MethodInvocationException: Exception calling "AddSeconds" with "1" argument(s): "Value to add was out of range. (Parameter 'value')"
The solution is using [System.DateTime]::UnixEpoch.AddMilliSeconds() to convert the time.
Such format calls Epoch Milliseconds or Unix Time in Milliseconds.