Question Exécution de scripts powershell depuis php

Plus d'informations
il y a 14 ans 7 mois #10088 par Champrobert
Bonjour,

Je suis face à un problème qui commence à me prendre la tête :
J'ai récupéré et modifié un script de comptage de mot d'un document word -> le script fonctionne parfaitement sur le serveur (récupération du nombre de mots).
le code PS
[code:1]

$source = \"C:\inetpub\apsm\est.docx\"
#creation objet word
$wordapp = new-object -com word.application
$doc = $wordapp.documents.open($source)
#ouverture du fichier

# récupération des statistiques:
$words = $doc.ComputeStatistics(0)
$doc.saved = $true
# affichage des résultats:
$words

# fremeture application word:
$doc.close()
$wordapp.quit()
$wordapp = $null
[/code:1]


le script PHP
[code:1]
<?php

$commande = 'powershell.exe -executionpolicy unrestricted C:\inetpub\apsm\CountWords.ps1 < NUL';
$output = shell_exec($commande);
echo $output;
?>

[/code:1]
J'ai installé (sur la demande d'un client) PHP sur le IIS; j'ai testé une page .php cela fonctionne.
Maintenant, je veux executer mon script PS depuis mon serveur web mais le script ne fonctionne pas:
le message d'erreur
Vous ne pouvez pas appeler de m‚thode sur une expression ayant la valeur Null. Au niveau de C:\inetpub\apsm\CountWords.ps1ÿ: 35 CaractŠreÿ: 33 + $words = $doc.ComputeStatistics <<<< ($wdStatisticWords) + CategoryInfo : InvalidOperation: (ComputeStatistics:String) [], RuntimeException + FullyQualifiedErrorId : InvokeMethodOnNull La propri‚t‚ ®ÿsavedÿ¯ est introuvable sur cet objetÿ; assurez-vous qu'elle exi ste et qu'elle peut ˆtre d‚finie. Au niveau de C:\inetpub\apsm\CountWords.ps1ÿ: 38 CaractŠreÿ: 7 + $doc. <<<< saved = $true + CategoryInfo : InvalidOperation: (saved:String) [], RuntimeExce ption + FullyQualifiedErrorId : PropertyNotFound Vous ne pouvez pas appeler de m‚thode sur une expression ayant la valeur Null. Au niveau de C:\inetpub\apsm\CountWords.ps1ÿ: 46 CaractŠreÿ: 12 + $doc.close <<<< () + CategoryInfo : InvalidOperation: (close:String) [], RuntimeExce ption + FullyQualifiedErrorId : InvokeMethodOnNull

Si quelqu'un a une idée du pourquoi du comment de la chose qui marche pas et qui m'embête, il est le bien venu ^^

Merci

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 14 ans 7 mois #10091 par Laurent Dardenne
Salut,
vérifie si ta variable $doc est bien renseigné, le msg indique que ce n'est pas le cas.
L'ouverture du fichier, pour une raison ou pour une autre, peut échouer.
L'implémentation d'une gestion d'erreur serait la bienvenue...

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 14 ans 7 mois #10106 par Champrobert
Merci de votre réponse mais je ne trouve pas de doc concernant cette fonction.
Et je ne comprends pas que le script fonctionne correctement sur le serveur mais pas étant lancé depuis php.

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.040 secondes
Propulsé par Kunena