yo personalmente no e tenido problemas con ejecutar comandos de dos utilizando la funcion exec() ,
instale la ultima vesion de Wamp que tiene Apache/2.0.59 y php 5.2 . y ejecute el siguiente script:
<?php
//ejecuta el comando que se le escriba, exec (comando,variable de salida);
$respuesta= exec("ping www.google.com.co",$salida);
echo "Respuesta > $respuesta <br>";
//la variable salida es un array
$tam=count($salida);
echo ".: Salida :. ";
for($k=0;$k<=$tam;$k++){
echo "[$k] > $salida[$k] <br>";
}
?>
y la saldia es la siguiente:
Respuesta > M¡nimo = 571ms, M ximo = 1169ms, Media = 785ms
.: Salida :. [0] >
[1] > Haciendo ping a
www.l.google.com [66.249.89.104] con 32 bytes de datos:
[2] >
[3] > Respuesta desde 66.249.89.104: bytes=32 tiempo=573ms TTL=237
[4] > Respuesta desde 66.249.89.104: bytes=32 tiempo=571ms TTL=237
[5] > Respuesta desde 66.249.89.104: bytes=32 tiempo=827ms TTL=237
[6] > Respuesta desde 66.249.89.104: bytes=32 tiempo=1169ms TTL=237
[7] >
[8] > Estad¡sticas de ping para 66.249.89.104:
[9] > Paquetes: enviados = 4, recibidos = 4, perdidos = 0
[10] > (0% perdidos),
[11] > Tiempos aproximados de ida y vuelta en milisegundos:
[12] > M¡nimo = 571ms, M ximo = 1169ms, Media = 785ms
[13] >
de pronto para poderte colaborar mas seria que enviaras el error que te esta generando, espero te sirva de algo el ejemplo.