Ciao efran!
ehehe lo sapevo che avresti fatto quella puntualizzazione :P comunque non ne vengo fuori:
Andiamo per gradi;
a)se io eseguo nel mio codice php:
echo shell_exec('dir'); -> mi stampa a video le directory elencate dal comando e fino a qui ci siamo.
b) se io eseguo:
echo shell_exec('D:\Wamp2i\www\cart\gestione_cart\process\test.bat');
Dove dentro test.bat ho:
powershell -command "&{D:\Wamp2i\www\cart\gestione_cart\process\dir.ps1}"
dir.ps1 contiene solo " dir " e mi stampa correttamente l'elenco delle directory. Qui mi domando sta eseguendo effettivamente il comando nel cmd.exe? nella shell? perchè questo:
Se dentro dir.ps1 ci inserisco il codice per la creazione dell'utente e invece di passare i valori li assegno direttamente, l'utente non viene creato:
$a = "server.dominio.prv"
$b="pippo"
$c="dsafjdosaijfio4"
$computer = New-Object System.DirectoryServices.DirectoryEntry ('WinNT://' + $a + ', computer')
# Nota che qui 'pippo' è il nome utente
$newUser = $computer.PSBase.Children.Add($b, 'user')
#Come al solito, un po' di auto-promozione ;)
$newUser.SetPassword($c)
# Salvataggio
$newUser.SetInfo()
e mi viene stampato a video questo:
D:\Wamp2i\www\sito>powershell -command "&{D:\Wamp2i\www\cart\gestione_cart\process\dir.ps1}"
Allora vedendo la doc la shell_exec non è il mio caso credo (shell_exec — Execute command via shell and return the complete output as a string), allora sono passato ad exec (exec — Execute an external program) ma il risultato non cambia, non succede una mazza :| :
exec('D:\Wamp2i\www\cart\gestione_cart\process\test.bat');
se io lo stampo lui mi restituisce questo:
D:\Wamp2i\www\sito>powershell -command "&{D:\Wamp2i\www\cart\gestione_cart\process\dir.ps1}" ma lo script sembra che non parta perchè non mi crea l'utente.
:|