Question impossible lancer script powershell via php

Plus d'informations
il y a 11 ans 3 jours #19285 par Kevin
Bonjour bonjour!

Alors voilà, je suis tout nouveau sur le forum, j'ai un peu cherché (peut-être pas assez?) sur le forum ainsi que sur google mais je n'ai pas trouvé de véritable réponse à mon problème.

Je vous l'explique:

Je cherche à lancer un script powershell depuis un site web en php fait sous IIS 7.5.

Jusque là aucun soucis, un get-process etc... fonctionne MAIS le problème réside dans un start-process.
Alors pour commencer voici mon code php:
[code:1]
<?php
$query = shell_exec(\"powershell -executionpolicy remotesigned -noprofile -file \\\MonServeur\\MonPartage\\MonScript.ps1\"«»);
echo $query;
?>
[/code:1]

Ce code php fonctionne, après il peux surement être amélioré mais là n'est pas le soucis.

Le soucis viens de mon code powershell:

[code:1]
$cred = new-object -typename System.Management.Automation.PSCredential -argumentlist $username,$password
Start-Process powershell.exe -Credential $cred -NoNewWindow:$true -ArgumentList \"Start-Process powershell.exe -Verb runAs '\\MonServeur\MonPartage\MonFichier.exe'\"
[/code:1]

Pourquoi toutes ces ouverture de powershell et compagnie me direz-vous?

Et bien le but de toutes ces manœuvres est de pouvoir, depuis un poste client lancer mon fichier executable en local sur sa machine avec les crédentials adéquat. (c'est un executable qui fait une recherche de toute la configuration du poste dont les clé de registre pour vérifier que tout est OK)

Lorsque je lance mon script sans passer par php, il me lance bien mon executable mais depuis php voici le message d'erreur:

\"Start-Process : Impossible d'ex�cuter cette commande en raison de l'erreur�: De scripteur non valide. Au niveau de \\MonServeur\\MonPartage\\MonScript.ps1�: 4 Caract�re� : 14 + Start-Process <<<< powershell.exe -Credential $cred -NoNewWindow:$true -Argu mentList \"Start-Process powershell.exe -Verb runAs '\\MonServeur\MonPartage\MonFichier.exe'\" + CategoryInfo : InvalidOperation: (:) [Start-Process], InvalidOp erationException + FullyQualifiedErrorId : InvalidOperationException,Microsoft.PowerShell.C ommands.StartProcessCommand\"


J'avais réussi a résoudre le problème mais le soucis c'est que je ne retrouve plus mon bout de code T_T

Merci pour votre aide!!!

Kevios

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

Plus d'informations
il y a 11 ans 2 jours #19289 par Kevin
Personne à d'idées pour mon problème ? :(

Cette utilisation est une contrainte liée à mon projet

J'ai essayé différentes manières de lancer l’exécutable mais rien de concluant...

Tout comme lancer l’exécutable depuis php n'est pas ce qui me convient puisque ça lancerais l’exécutable sur le serveur et non sur le client :(

Merci par avance!

Cordialement,

Kevios

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

Plus d'informations
il y a 11 ans 2 jours #19290 par Laurent Dardenne
Kevios écrit:

Personne à d'idées pour mon problème ? :(

L'exécution d'un script sur un share nécessite de l'inclure dans Internet security zone. Vérifie si c'est également le cas pour un exécutable.

Un compte rendu détaillé de l'erreur avec Resolve-Error (dispo sur le net) sera peut être plus explicite.<br><br>Message édité par: Laurent Dardenne, à: 20/03/15 11:08

Tutoriels PowerShell

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

Plus d'informations
il y a 11 ans 1 jour #19292 par Kevin
J'ai bien inclue l'adresse IP de mon serveur dans la zone de confiance de IE (Pour information j'utilise IE8) et que je lance l’exécutable ou le .ps1, ça ne change rien (l’exécutable est une compilation d'un script powershell, obligé de faire ainsi pour passer outre la restriction d’exécution des scripts, vu que je n'ai pas le droit de toucher à l'intégrité des postes informatique).

Ah! et j'utilise Powershell V.2, j'ai interdiction d'utiliser une version ultérieur pour ce projet..

Pour le Resolve-Error, j'ai un peu regardé sur le net et je ne vois pas trop comment je peux faire pour le mettre en place :/

D'après ce que j'aurais lu sur internet, l'erreur \&quot;Descripteur non valide\&quot; serais en rapport avec un problème de partage. serais-ce mon dossier qui est mal partagé? ou mon IIS qui ne le prends pas/mal en compte?

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

Plus d'informations
il y a 11 ans 1 jour #19293 par Laurent Dardenne
Kevios écrit:

Pour le Resolve-Error, j'ai un peu regardé sur le net et je ne vois pas trop comment je peux faire pour le mettre en place :/

Tu le télécharges,l'installes dans un répertoire, tu le charges en dotsource, et enfin tu l'utilises.
Kevios écrit:

D'après ce que j'aurais lu sur internet, l'erreur \&quot;Descripteur non valide\&quot; serais en rapport avec un problème de partage. serais-ce mon dossier qui est mal partagé? ou mon IIS qui ne le prends pas/mal en compte?

Reste à déterminer ce qu'est un descripteur dans ce contexte, un handle ? un token ?
Les messages en anglais sont souvent préférable.

Vérifie déjà si, avec le script ciblé installé en local, ta syntaxe d'appel fonctionne.<br><br>Message édité par: Laurent Dardenne, à: 20/03/15 16:37

Tutoriels PowerShell

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

Plus d'informations
il y a 10 ans 11 mois #19332 par Kevin
Bonjour Laurent,

Excuse-moi de répondre si tard, pleins de boulot etc...

Donc je me suis re-penché sur mon problème et l script s’exécute bien en local et appel comme il le faut le fichier exécutable. Tout fonctionne hors de php.

Ensuite mon start-process ne me retourne aucun code d'erreur... ou sinon je suis juste trop mauvais pour réussir à gérer les erreurs. . .

Je n'ai jamais vraiment utilisé la gestion des erreurs pour régler mes problèmes dans mes scripts (très mauvais point pour ma part d'ailleurs!)

En tout cas je n'abandonne pas! j'ai fais d'autres manips, essayé avec des start-jobs (d'autres erreurs sont apparues), rajouté la dll \&quot;system.management.automation\&quot; dans mon IIS etc... (même si je ne sais pas si ça à des liens ou non :/ )

Après comme mon erreur n'apparaît QUE quand je lance le script depuis php, ne faut-il pas que je regarde dans la gestion des erreurs de php? même si c'est clairement une erreur powershell? (je ne sais pas si je suis très compréhensible...)

Merci pour le temps que tu m'accorde Laurent!

Cordialement,

Kevios

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

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