Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

wmic deprecated and removed in recent Windows versions #228

Open
mechelon opened this issue Dec 16, 2024 · 1 comment
Open

wmic deprecated and removed in recent Windows versions #228

mechelon opened this issue Dec 16, 2024 · 1 comment

Comments

@mechelon
Copy link

Hi there,

While testing our software which uses react/dns v1.13.0 on a fresh Windows Installation (Windows 11 24H2, 26100.2605), I encountered the following error:

PS C:\...> expose
'wmic' is not recognized as an internal or external command, operable program or batch file.
[2024-12-16 11:13:45] production.WARNING: preg_match_all(): Passing null to parameter #2 ($subject) of type string is deprecated in phar://....phar/vendor/react/dns/src/Config/Config.php on line 128

This is probably because Microsoft deprecated WMIC a few years ago and removed it in recent Windows 10/11 versions: https://learn.microsoft.com/en-us/windows/win32/wmisdk/wmic

My workaround is manually re-installing WMIC as described here:
https://techcommunity.microsoft.com/blog/windows-itpro-blog/how-to-install-wmic-feature-on-demand-on-windows-11/4189530

Just wanted to give you a heads-up, as this issue might occur more frequently now that WMIC is no longer included by default.

More information
Used reactphp packages:

› composer why react/dns
react/socket v1.16.0 requires react/dns (^1.13)
› composer why react/socket
react/http        v1.11.0     requires react/socket (^1.16)

Let me know if I can provide more details!

@clue
Copy link
Member

clue commented Dec 17, 2024

@mechelon Thanks for the detailed report and making us aware of this deprecation in Windows. I agree that this is something we should look into as it would likely affect more users over time.

Here's a quick link dump after doing some research:

As a result, it looks like using a powershell command like Get-DnsClientServerAddress | Select-Object -ExpandProperty ServerAddresses would be the preferred solution afaict. I've spent some hours on this research, but note that personally I'm not a regular Windows user myself.

I suppose we're happy to accept PRs that implement support for this or if you need this for a commercial project and you want to help sponsor this feature, feel free to reach out and I'm happy to take a look. Other than that, as much as I'd love to work on this myself, there are currently no immediate plans to build this from my end (no demand at the moment and more important outstanding issues currently).

We're definitely interested in getting this supported and will get back to this when time allows. Let us know if you want to work on this or if you're interested in sponsoring this 👍

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

No branches or pull requests

2 participants