Вот несколько менее "хакерская" версия ответа SeanDowney.
PsExec возвращает PID порожденного процесса в виде целочисленного кода выхода. Так что все, что вам нужно, это:
<?php
function spawn($script)
{
@exec('psexec -accepteula -d php.exe ' . $script . ' 2>&1', $output, $pid);
return $pid;
} // spawn
echo spawn('phpinfo.php');
?>
Аргумент -accepteula необходим только при первом запуске PsExec, но если вы распространяете свою программу, каждый пользователь запускает ее в первый раз, и ничто не мешает оставить ее для каждого последующее исполнение.
PSTools - это быстрая и простая установка (просто разархивируйте PSTools куда-нибудь и добавьте его папку в свой путь), поэтому нет веских причин не использовать этот метод.