Skip to content

Conversation

@vinayakmsft
Copy link
Contributor

@vinayakmsft vinayakmsft commented Nov 24, 2025

Summary
This PR fixes the issue where VsTest tasks fail on modern Windows systems due to using the deprecated wmic command.

Changes
Replace wmic command with PowerShell Get-ItemProperty cmdlet in VsTestV2 and VsTestV3
Update version parsing logic to handle direct version output from PowerShell
Add error handling with try-catch in PowerShell command
Improve version validation to accept minimum 3-part version numbers

Why This Change is Needed
wmic has been officially deprecated since Windows 10 21H1
wmic is no longer available on newer Windows systems including Server 2025
This causes VsTest tasks to fail with "Unable to locate executable file: 'wmic'" error
PowerShell Get-ItemProperty is the recommended modern alternative

Testing
Tested the PowerShell command manually on Windows systems
Verified that the new approach returns the same version information format
Confirmed error handling works properly for invalid file paths

Impact
Compatibility: Works on all Windows systems with PowerShell (virtually all modern Windows)
Reliability: More robust error handling and execution
Performance: Similar performance characteristics to the original implementation
Backward Compatibility: Maintains the same API and behavior for calling code
Fixes: Issue with VsTest tasks failing on systems without wmic

@vinayakmsft vinayakmsft requested a review from a team as a code owner November 24, 2025 09:28
const versionArray = verSplitArray[1].split('.');
if (versionArray.length !== 4) {

// PowerShell returns version directly, no need to split by '='

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This comment might be more confusing than helpful when change has been committed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants