Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

'C:\wmic' is not recognized as an internal or external command, operable program or batch file

Tags:

php

windows

I want to display in a browser the load percentage of a cpu trough php. This is the code I am using:

$command ="C:\\wmic cpu get loadpercentage"; 
echo shell_exec("$command 2>&1 ; echo $?" );

This is the output:

'C:\wmic' is not recognized as an internal or external command, operable program or batch file.

What am I missing?

Update - 1

Change the code to allow spaces between words: $command ="C:\\wmic^ cpu^ get^ loadpercentage";

'C:\wmic cpu get loadpercentage' is not recognized as an internal or external command, operable program or batch file.

Now the entire line of code is being read, not only 'C:\wmic'

like image 560
IgorAlves Avatar asked Sep 06 '16 14:09

IgorAlves


1 Answers

You have two problems, both of which we explored in the comments above:

  1. The actual WMIC binary is located at C:\Windows\System32\wbem\WMIC.exe, not C:\wmic. That path needs to be used in your PHP command.

  2. You are trying to use Unix-style shell concepts (redirecting STDERR to STDOUT, chaining commands with ;, and using echo and $?) on a Windows system.

    Simply running the command without all that stuff should work:

    echo shell_exec("C:\\Windows\\System32\\wbem\\WMIC.exe cpu get loadpercentage");
    
like image 57
Chris Avatar answered Nov 15 '22 13:11

Chris