Créer un utilitaire ligne de commande sous windows avec du PHP

Il est parfois utile de pouvoir proposer des petits utilitaires en ligne de
commande pour Windows.

Seulement voila, quand on est pas un pro du bat et qu’on est plutôt habitué a
du langage web, le DOS ça picote.

Je vous propose donc une petite archive permettant de créer un utilitaire Windows
en ligne de commande à partir d’un script PHP.

Il est vrai qu’on utilise si souvent le PHP dans le cadre d’un développement web qu’on en oublie qu’il peux fonctionner sans serveur http en simple ligne de commande.

Le principe est simple : l’archive est composée de 4 fichiers :

  • un fichier app.php qui contient votre code php
  • un fichier php.exe qui est l’executable en ligne de commande php
  • un fichier dll nécessaire au php.exe
  • un fichier .bat qui sera l’executable reliant le tout.

Votre programme php sera donc appelé depuis al console Windows sous cette forme:

c:/utilitaire_idle/run.bat -argument1 -argument2 -argument3 etc...

Pour servir d’exemple je vous fournis l’archive avec un code php d’exemple
qui vas permettre de crypter/décrypter des fichiers et des dossiers en 256bits en utilisant
que du PHP.

Vous pouvez télécharger l’archive ici :  PCrypt

Pour modifier l’utilitaire vous n’avez qu’a remplacer le contenu du code app.php par le votre.

Mon exemple fonctionne avec les arguments suivants :

Exemple de cryptage d’un fichier :

run.bat encrypt "clé de cryptage" "C:\fichiers\acrypter.pdf"

Exemple de décryptage d’un fichier :

run.bat decrypt "clé de cryptage" "C:\fichiers\acrypter.pdf"

Exemple de cryptage d’un dossier :

run.bat encrypt "clé de cryptage" "C:\fichiers"

Algorithme de cryptage utilise le cypher RIJNDAEL 256 bits via la librairie mcrypt

Le programme étant un simple rassemblement d’exe et une ligne de bat, il est sous licence WTFPL

Ce n’est pas grand chose, ce n’est pas révolutionnaire, mais de temps en temps, ça dépanne :).

Bonne soirée ! 😀

 

 

6 réactions au sujet de « Créer un utilitaire ligne de commande sous windows avec du PHP »

  1. Sined Réponse

    Salut,

    Merci ça peut être utile ton truc surtout quand on a une machine sans php…

    Et sinon y a toujours la possibilité d’appeler d’utiliser la commande php, directement en ligne de commande quand celui-ci est déjà installé :
    php -r ‘phpinfo(); ‘
    ou alors exécuté un script php
    php -f monfichierphp.php

  2. maditnerd Réponse

    Tiens ça me rappelle qu’il fut un temps j’avais tenté de créer un équivalent de webmin pour client windows.
    (je suis surpris qu’il marche lol)

    Si ça vous dit de bidouiller ça, y a un ensemble de programmes intéressants (dont je suis à peu près certain que si un spécialiste en droit logiciel passer par là lui provoquerait une crise cardiaque)
    https://code.google.com/p/webmanage/downloads/detail?name=webmanage_v0.2.rar&can=2&q=#makechanges
    Faudrait que je le balance sur github un jour…

    Qu’est que c’est : un WMMP léger et portable (Windows Mongoose MySQL PHP) capable d’executer des exes et des scripts VBS et tout ça en https) (non c’est pas un virus)
    Comme exemple il y a mon appli web WebManage qui a pas mal de fonctionnalité sympa.
    –> Messagerie (Envoi un message dans la barre de notification / Ouverture d’une page web à distance)
    –> Changement du nom du PC avec avertissement de l’utilisateur (et possibilité de répondre et refuser)
    –> Configuration Réseau
    –> Voisinage Réseau du PC
    –> Invite de commande (pas très fonctionnel)
    –> Gestion des utilisateurs et bannissement de l’IP en cas de mauvais mot de passe répété.
    –> Historique des connexions à l’appli
    –> Pleins de scripts VBS qui pourrait être utile.
    Je ne serais pas tenu responsable des vomissement provoqué par la lecture du code et encore moins des TROLOLO je contrôle ton pc à distance.

    Avec de l’imagination ça peut être utile ^^

  3. Idlegirl Réponse

    C’est pas gentil de pas répondre à sa chérie ^_^ 🙁 t’as vu à quelles extrémités j’en suis réduite… Saloperie, tu me manques!

    • Idleman Auteur ArticleRéponse

      Hou c’est fourbe ça 😀 ! Moi qui croyais que tu n’avais toujours pas retenu l’adresse de mon blog :p

  4. jerry wham Réponse

    Cool merci. 😀
    Deux petites corrections : :siffle:
    – Dans le run bat, les antislashs sont en trop (ils sont sinon doublés quand on lance le script)
    – Dans la fonction decrypt, le base64_decode est mal placé, vu comment il est utilisé dans la fonction encrypt. Voici la fonction corrigée :

    //Fonction de déryptage 256 bits avec la librairie mcrypt et le cypher RIJNDAEL
    function decrypt($text,$keyword)
    {
    return trim(base64_decode(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $salt, $text, MCRYPT_MODE_ECB, mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB), MCRYPT_RAND))));
    }

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.