0
votes

Comment exécuter une commande shell_exec

Je travaille en fait sur un script PHP qui utilise des variables de poste pour exécuter un script PowerShell. Mais d'une manière ou d'une autre, le script ne lance pas.

J'ai essayé beaucoup de choses avec Shell_Exec: -Shitching Quote Marks -changer le chemin du script Mais rien n'a changé: / xxx

exécuting est censé produire un fichier PDF mais rien ne sort. Est-ce que mon shell_exec est correct? Merci pour votre aide!


3 commentaires

Vérifiez $ prénomName vscode> prénom "'. $ Prénom.'" -LastName "


Si vous allez autoriser les utilisateurs à entrer des informations qui sont transmises à une coquille, vous devez au moins exécuter la chaîne de commande via ESCAPESHellarg () Avant l'exécution, sinon vous pouvez ouvrir votre serveur jusqu'à un comportement néfaste et destructeur.


Typo corrigé!


3 Réponses :


0
votes
    $command = shell_exec('powershell ./Script.ps1 -FirstName "'.$FristName.'" -LastName "'.$LastName.'" -Description "'.$desc.'" -Type "'.$type.'" -AGOL $true ');
Appending the powershell to the beginning of the shell_exec function should yield the results you desire.

1 commentaires

Hey Linus! J'ai essayé ceci `` `` `` `shell_exec ('PowerShell ./script.ps1 -Firstname"'. $ FirstName. '"-LastName"'. $ Nom "' $ Type. '"-agol $ vrai vrai')` `` `` mais rien ne se passe: /



0
votes

Il y a une faute de frappe dans l'un de vos noms de variables, qui peuvent causer des problèmes.

<?php
    //Shell_Exec ('powershell.exe -executionpolicy bypass -NoProfile -Command "Get-Process | ConvertTo-Html"');
    //storaging the variables passed by POST
    $LastName = $_POST["LastName"];
    $FirstName = $_POST["FirstName"];
    $type = $_POST["type"];
    $begin = $_POST["begin"];
    $end = $_POST["end"];
    $desc = $_POST["desc"];

    /*
     * Use $FirstName, not $FristName
     */
    $command = shell_exec('./Script.ps1 -FirstName "'.$FirstName.'" -LastName "'.$LastName.'" -Description "'.$desc.'" -Type "'.$type.'" -AGOL $true ');  
?>


1 commentaires

Oui merci de le pointer! C'est juste une faute de frappe dans ma traduction: p sauf que le code va bien!



0
votes

Qu'est-ce qui est affiché à la sortie? xxx

?>


8 commentaires

Pour l'instant, rien de la page est vide: /


Essayé shell_exec ('PowerShell ./script.ps1 -firstname "'. $ FirstName. '" -LastName "'. $". $ nom de nom "'" $ de type $ . '"-Agol $ vrai") mais ça n'a rien fait: <


et ce shell_exec ('PowerShell ./add-aduserensg1.ps1 -prenom {$ prenom} -nomfamille {$ nom}-description {$ desc} -type {$ type} -agol $ vrai') ?


essayé de changer cela et de le gérer mais je n'ai toujours pas de fichier produit: /


Ajouter .exe après PowerShell


le .exe n'a pas changé la sortie


Cela ne fonctionne pas non plus exec ('powershell ./add-aduserensg1.ps1 -prenom {$ prenom} -nomfamille {$ nom}-description {$ desc} -type {$ type} -agol $ vrai') ;


Et en mettant "". $ Prénom. '"?