OVH Cloud OVH Cloud

Process et VBS

10 réponses
Avatar
Etienne
Bonjour,

J'exécute un script vbs côté server par le biais d'un process, mais
apparemment mon VBS ne s'exécute pas.
Si je fais Process.WaitForExit(), ma requête est infini
Si je fais Process.WaitForExit(1000), le code poursuit mais le VBS n'a pas
fonctionné bien que 1s est largement suffisant.
Je me pose donc la question suivante : est-ce que l'exécution d'un vbs est
possible sur le server comme ça l'est pour un exe ?

Merci de votre aide.

10 réponses

Avatar
Paul Bacelar
Oui, mais il faut que le VBS n'utilise que des composants COM server aware.
--
Paul Bacelar

"Etienne" wrote in message
news:
Bonjour,

J'exécute un script vbs côté server par le biais d'un process, mais
apparemment mon VBS ne s'exécute pas.
Si je fais Process.WaitForExit(), ma requête est infini
Si je fais Process.WaitForExit(1000), le code poursuit mais le VBS n'a pas
fonctionné bien que 1s est largement suffisant.
Je me pose donc la question suivante : est-ce que l'exécution d'un vbs est
possible sur le server comme ça l'est pour un exe ?

Merci de votre aide.




Avatar
Etienne
Le pb doit venir de là et je suis bien embêté du coup :
Je cherche à signer un VBS créé à la volée. La méthode de signature
Signer.SignFile("MonFichierASigner","MonCertificat")
ne peut être effectuée que par un vbs apparemment, pas en VB.net par exemple.
Donc je créé un process qui exécute ce vbs de signature. Mais le vbs ne
s'exécute pas car SignFile ne doit pas être un objet COM.

Comment alors je peux signer un vbs à partir de asp.net svp ???

"Paul Bacelar" a écrit :

Oui, mais il faut que le VBS n'utilise que des composants COM server aware.
--
Paul Bacelar

"Etienne" wrote in message
news:
> Bonjour,
>
> J'exécute un script vbs côté server par le biais d'un process, mais
> apparemment mon VBS ne s'exécute pas.
> Si je fais Process.WaitForExit(), ma requête est infini
> Si je fais Process.WaitForExit(1000), le code poursuit mais le VBS n'a pas
> fonctionné bien que 1s est largement suffisant.
> Je me pose donc la question suivante : est-ce que l'exécution d'un vbs est
> possible sur le server comme ça l'est pour un exe ?
>
> Merci de votre aide.
>
>





Avatar
Etienne
Comme je fais dans mon vbs :

Set Signer = CreateObject("Scripting.Signer")
Signer.SignFile "MonFichier.vbs", "Mon certificat"

c'est forcément un objet COM. Pourtant, si mon process appelle un vbs qui
contient ces 2 commandes, l'exécution ne fonctionne pas...
En revanche si je mets dans le vbs un truc simple du style :
toto = 1
Le vbs s'exécute bien.
Donc je ne vois pas de solution...

"Etienne" a écrit :

Le pb doit venir de là et je suis bien embêté du coup :
Je cherche à signer un VBS créé à la volée. La méthode de signature
Signer.SignFile("MonFichierASigner","MonCertificat")
ne peut être effectuée que par un vbs apparemment, pas en VB.net par exemple.
Donc je créé un process qui exécute ce vbs de signature. Mais le vbs ne
s'exécute pas car SignFile ne doit pas être un objet COM.

Comment alors je peux signer un vbs à partir de asp.net svp ???

"Paul Bacelar" a écrit :

> Oui, mais il faut que le VBS n'utilise que des composants COM server aware.
> --
> Paul Bacelar
>
> "Etienne" wrote in message
> news:
> > Bonjour,
> >
> > J'exécute un script vbs côté server par le biais d'un process, mais
> > apparemment mon VBS ne s'exécute pas.
> > Si je fais Process.WaitForExit(), ma requête est infini
> > Si je fais Process.WaitForExit(1000), le code poursuit mais le VBS n'a pas
> > fonctionné bien que 1s est largement suffisant.
> > Je me pose donc la question suivante : est-ce que l'exécution d'un vbs est
> > possible sur le server comme ça l'est pour un exe ?
> >
> > Merci de votre aide.
> >
> >
>
>
>


Avatar
Paul Bacelar
Je pense que l'objet COM Scripting.Signer est le genre d'objet qui
n'apprécie pas un environnement Service comme IIS et ASP.NET.

Le caractère très sensible des données qu'il manipule ne me semble pas
compatible avec l'environnement ASP.NET qui est dans un contexte de sécurité
assez restrictif.

Vérifiez si il y a un moyen pour configurer, via vraisemblablement COM+, les
restrictions de sécurité, entre autre, de ce composant COM.
--
Paul Bacelar

"Etienne" wrote in message
news:
Comme je fais dans mon vbs :

Set Signer = CreateObject("Scripting.Signer")
Signer.SignFile "MonFichier.vbs", "Mon certificat"

c'est forcément un objet COM. Pourtant, si mon process appelle un vbs qui
contient ces 2 commandes, l'exécution ne fonctionne pas...
En revanche si je mets dans le vbs un truc simple du style :
toto = 1
Le vbs s'exécute bien.
Donc je ne vois pas de solution...

"Etienne" a écrit :

> Le pb doit venir de là et je suis bien embêté du coup :
> Je cherche à signer un VBS créé à la volée. La méthode de signature
> Signer.SignFile("MonFichierASigner","MonCertificat")
> ne peut être effectuée que par un vbs apparemment, pas en VB.net par


exemple.
> Donc je créé un process qui exécute ce vbs de signature. Mais le vbs ne
> s'exécute pas car SignFile ne doit pas être un objet COM.
>
> Comment alors je peux signer un vbs à partir de asp.net svp ???
>
> "Paul Bacelar" a écrit :
>
> > Oui, mais il faut que le VBS n'utilise que des composants COM server


aware.
> > --
> > Paul Bacelar
> >
> > "Etienne" wrote in message
> > news:
> > > Bonjour,
> > >
> > > J'exécute un script vbs côté server par le biais d'un process, mais
> > > apparemment mon VBS ne s'exécute pas.
> > > Si je fais Process.WaitForExit(), ma requête est infini
> > > Si je fais Process.WaitForExit(1000), le code poursuit mais le VBS


n'a pas
> > > fonctionné bien que 1s est largement suffisant.
> > > Je me pose donc la question suivante : est-ce que l'exécution d'un


vbs est
> > > possible sur le server comme ça l'est pour un exe ?
> > >
> > > Merci de votre aide.
> > >
> > >
> >
> >
> >


Avatar
Simon Mourier
On peut tout à fait utiliser cet objet COM en .NET à priori. Il faut ajouter
une référence sur WSHEXT.DLL dans system32.
Sinon, quelle est l'erreur?

Simon.
www.softfluent.com


"Etienne" a écrit dans le message de
news:
Le pb doit venir de là et je suis bien embêté du coup :
Je cherche à signer un VBS créé à la volée. La méthode de signature
Signer.SignFile("MonFichierASigner","MonCertificat")
ne peut être effectuée que par un vbs apparemment, pas en VB.net par
exemple.
Donc je créé un process qui exécute ce vbs de signature. Mais le vbs ne
s'exécute pas car SignFile ne doit pas être un objet COM.

Comment alors je peux signer un vbs à partir de asp.net svp ???

"Paul Bacelar" a écrit :

Oui, mais il faut que le VBS n'utilise que des composants COM server
aware.
--
Paul Bacelar

"Etienne" wrote in message
news:
> Bonjour,
>
> J'exécute un script vbs côté server par le biais d'un process, mais
> apparemment mon VBS ne s'exécute pas.
> Si je fais Process.WaitForExit(), ma requête est infini
> Si je fais Process.WaitForExit(1000), le code poursuit mais le VBS n'a
> pas
> fonctionné bien que 1s est largement suffisant.
> Je me pose donc la question suivante : est-ce que l'exécution d'un vbs
> est
> possible sur le server comme ça l'est pour un exe ?
>
> Merci de votre aide.
>
>







Avatar
Etienne
Cette librairie est tout à fait ce que je recherche. Merci beaucoup.

"Simon Mourier" a écrit :

On peut tout à fait utiliser cet objet COM en .NET à priori. Il faut ajouter
une référence sur WSHEXT.DLL dans system32.
Sinon, quelle est l'erreur?

Simon.
www.softfluent.com


"Etienne" a écrit dans le message de
news:
> Le pb doit venir de là et je suis bien embêté du coup :
> Je cherche à signer un VBS créé à la volée. La méthode de signature
> Signer.SignFile("MonFichierASigner","MonCertificat")
> ne peut être effectuée que par un vbs apparemment, pas en VB.net par
> exemple.
> Donc je créé un process qui exécute ce vbs de signature. Mais le vbs ne
> s'exécute pas car SignFile ne doit pas être un objet COM.
>
> Comment alors je peux signer un vbs à partir de asp.net svp ???
>
> "Paul Bacelar" a écrit :
>
>> Oui, mais il faut que le VBS n'utilise que des composants COM server
>> aware.
>> --
>> Paul Bacelar
>>
>> "Etienne" wrote in message
>> news:
>> > Bonjour,
>> >
>> > J'exécute un script vbs côté server par le biais d'un process, mais
>> > apparemment mon VBS ne s'exécute pas.
>> > Si je fais Process.WaitForExit(), ma requête est infini
>> > Si je fais Process.WaitForExit(1000), le code poursuit mais le VBS n'a
>> > pas
>> > fonctionné bien que 1s est largement suffisant.
>> > Je me pose donc la question suivante : est-ce que l'exécution d'un vbs
>> > est
>> > possible sur le server comme ça l'est pour un exe ?
>> >
>> > Merci de votre aide.
>> >
>> >
>>
>>
>>





Avatar
Etienne
J'ai répondu un peu vite : c'est tout à fait ce qu'il me faut sauf que ça
marche pas !

J'obtiens l'erreur suivante en utilisant la WSHEXT.DLL avec asp.net :
Impossible de trouver le certificat et la clé privée à utiliser pour le
décodage

C'est bête car par le biais du script vbs, je signe sans problème alors que
j'utilise la même machine.
Simon, mon sauveur, encore un petit indice peut-être ? Paul aussi bien sûr !


"Etienne" a écrit :

Cette librairie est tout à fait ce que je recherche. Merci beaucoup.

"Simon Mourier" a écrit :

> On peut tout à fait utiliser cet objet COM en .NET à priori. Il faut ajouter
> une référence sur WSHEXT.DLL dans system32.
> Sinon, quelle est l'erreur?
>
> Simon.
> www.softfluent.com
>
>
> "Etienne" a écrit dans le message de
> news:
> > Le pb doit venir de là et je suis bien embêté du coup :
> > Je cherche à signer un VBS créé à la volée. La méthode de signature
> > Signer.SignFile("MonFichierASigner","MonCertificat")
> > ne peut être effectuée que par un vbs apparemment, pas en VB.net par
> > exemple.
> > Donc je créé un process qui exécute ce vbs de signature. Mais le vbs ne
> > s'exécute pas car SignFile ne doit pas être un objet COM.
> >
> > Comment alors je peux signer un vbs à partir de asp.net svp ???
> >
> > "Paul Bacelar" a écrit :
> >
> >> Oui, mais il faut que le VBS n'utilise que des composants COM server
> >> aware.
> >> --
> >> Paul Bacelar
> >>
> >> "Etienne" wrote in message
> >> news:
> >> > Bonjour,
> >> >
> >> > J'exécute un script vbs côté server par le biais d'un process, mais
> >> > apparemment mon VBS ne s'exécute pas.
> >> > Si je fais Process.WaitForExit(), ma requête est infini
> >> > Si je fais Process.WaitForExit(1000), le code poursuit mais le VBS n'a
> >> > pas
> >> > fonctionné bien que 1s est largement suffisant.
> >> > Je me pose donc la question suivante : est-ce que l'exécution d'un vbs
> >> > est
> >> > possible sur le server comme ça l'est pour un exe ?
> >> >
> >> > Merci de votre aide.
> >> >
> >> >
> >>
> >>
> >>
>
>
>


Avatar
Paul Bacelar
ASP.NET n'utilise pas le même compte utilisateur que l'utilisateur
interactif d'où problème de droit ou d'accès aux clés de chiffrement.
--
Paul Bacelar


"Etienne" wrote in message
news:
J'ai répondu un peu vite : c'est tout à fait ce qu'il me faut sauf que ça
marche pas !

J'obtiens l'erreur suivante en utilisant la WSHEXT.DLL avec asp.net :
Impossible de trouver le certificat et la clé privée à utiliser pour le
décodage

C'est bête car par le biais du script vbs, je signe sans problème alors


que
j'utilise la même machine.
Simon, mon sauveur, encore un petit indice peut-être ? Paul aussi bien sûr


!


"Etienne" a écrit :

> Cette librairie est tout à fait ce que je recherche. Merci beaucoup.
>
> "Simon Mourier" a écrit :
>
> > On peut tout à fait utiliser cet objet COM en .NET à priori. Il faut


ajouter
> > une référence sur WSHEXT.DLL dans system32.
> > Sinon, quelle est l'erreur?
> >
> > Simon.
> > www.softfluent.com
> >
> >
> > "Etienne" a écrit dans le message


de
> > news:
> > > Le pb doit venir de là et je suis bien embêté du coup :
> > > Je cherche à signer un VBS créé à la volée. La méthode de signature
> > > Signer.SignFile("MonFichierASigner","MonCertificat")
> > > ne peut être effectuée que par un vbs apparemment, pas en VB.net par
> > > exemple.
> > > Donc je créé un process qui exécute ce vbs de signature. Mais le vbs


ne
> > > s'exécute pas car SignFile ne doit pas être un objet COM.
> > >
> > > Comment alors je peux signer un vbs à partir de asp.net svp ???
> > >
> > > "Paul Bacelar" a écrit :
> > >
> > >> Oui, mais il faut que le VBS n'utilise que des composants COM


server
> > >> aware.
> > >> --
> > >> Paul Bacelar
> > >>
> > >> "Etienne" wrote in message
> > >> news:
> > >> > Bonjour,
> > >> >
> > >> > J'exécute un script vbs côté server par le biais d'un process,


mais
> > >> > apparemment mon VBS ne s'exécute pas.
> > >> > Si je fais Process.WaitForExit(), ma requête est infini
> > >> > Si je fais Process.WaitForExit(1000), le code poursuit mais le


VBS n'a
> > >> > pas
> > >> > fonctionné bien que 1s est largement suffisant.
> > >> > Je me pose donc la question suivante : est-ce que l'exécution


d'un vbs
> > >> > est
> > >> > possible sur le server comme ça l'est pour un exe ?
> > >> >
> > >> > Merci de votre aide.
> > >> >
> > >> >
> > >>
> > >>
> > >>
> >
> >
> >


Avatar
Etienne
OK, mais y a t'il une solution pour que le compte asp.net reconnaisse la clé
privée du certificat ?

"Paul Bacelar" a écrit :

ASP.NET n'utilise pas le même compte utilisateur que l'utilisateur
interactif d'où problème de droit ou d'accès aux clés de chiffrement.
--
Paul Bacelar


"Etienne" wrote in message
news:
> J'ai répondu un peu vite : c'est tout à fait ce qu'il me faut sauf que ça
> marche pas !
>
> J'obtiens l'erreur suivante en utilisant la WSHEXT.DLL avec asp.net :
> Impossible de trouver le certificat et la clé privée à utiliser pour le
> décodage
>
> C'est bête car par le biais du script vbs, je signe sans problème alors
que
> j'utilise la même machine.
> Simon, mon sauveur, encore un petit indice peut-être ? Paul aussi bien sûr
!
>
>
> "Etienne" a écrit :
>
> > Cette librairie est tout à fait ce que je recherche. Merci beaucoup.
> >
> > "Simon Mourier" a écrit :
> >
> > > On peut tout à fait utiliser cet objet COM en .NET à priori. Il faut
ajouter
> > > une référence sur WSHEXT.DLL dans system32.
> > > Sinon, quelle est l'erreur?
> > >
> > > Simon.
> > > www.softfluent.com
> > >
> > >
> > > "Etienne" a écrit dans le message
de
> > > news:
> > > > Le pb doit venir de là et je suis bien embêté du coup :
> > > > Je cherche à signer un VBS créé à la volée. La méthode de signature
> > > > Signer.SignFile("MonFichierASigner","MonCertificat")
> > > > ne peut être effectuée que par un vbs apparemment, pas en VB.net par
> > > > exemple.
> > > > Donc je créé un process qui exécute ce vbs de signature. Mais le vbs
ne
> > > > s'exécute pas car SignFile ne doit pas être un objet COM.
> > > >
> > > > Comment alors je peux signer un vbs à partir de asp.net svp ???
> > > >
> > > > "Paul Bacelar" a écrit :
> > > >
> > > >> Oui, mais il faut que le VBS n'utilise que des composants COM
server
> > > >> aware.
> > > >> --
> > > >> Paul Bacelar
> > > >>
> > > >> "Etienne" wrote in message
> > > >> news:
> > > >> > Bonjour,
> > > >> >
> > > >> > J'exécute un script vbs côté server par le biais d'un process,
mais
> > > >> > apparemment mon VBS ne s'exécute pas.
> > > >> > Si je fais Process.WaitForExit(), ma requête est infini
> > > >> > Si je fais Process.WaitForExit(1000), le code poursuit mais le
VBS n'a
> > > >> > pas
> > > >> > fonctionné bien que 1s est largement suffisant.
> > > >> > Je me pose donc la question suivante : est-ce que l'exécution
d'un vbs
> > > >> > est
> > > >> > possible sur le server comme ça l'est pour un exe ?
> > > >> >
> > > >> > Merci de votre aide.
> > > >> >
> > > >> >
> > > >>
> > > >>
> > > >>
> > >
> > >
> > >





Avatar
Paul Bacelar
Franchement, signer des composant de manière automatique, je pense cela très
moyen.

Sinon, essayez d'utiliser d'autres "signers" ou de configurer votre machine
avec l'aide de votre administrateur pour autoriser le compte ASP.NET à
utiliser des composants aussi sensibles (bon courage).
--
Paul Bacelar


"Etienne" wrote in message
news:
OK, mais y a t'il une solution pour que le compte asp.net reconnaisse la


clé
privée du certificat ?

"Paul Bacelar" a écrit :

> ASP.NET n'utilise pas le même compte utilisateur que l'utilisateur
> interactif d'où problème de droit ou d'accès aux clés de chiffrement.
> --
> Paul Bacelar
>
>
> "Etienne" wrote in message
> news:
> > J'ai répondu un peu vite : c'est tout à fait ce qu'il me faut sauf que


ça
> > marche pas !
> >
> > J'obtiens l'erreur suivante en utilisant la WSHEXT.DLL avec asp.net :
> > Impossible de trouver le certificat et la clé privée à utiliser pour


le
> > décodage
> >
> > C'est bête car par le biais du script vbs, je signe sans problème


alors
> que
> > j'utilise la même machine.
> > Simon, mon sauveur, encore un petit indice peut-être ? Paul aussi bien


sûr
> !
> >
> >
> > "Etienne" a écrit :
> >
> > > Cette librairie est tout à fait ce que je recherche. Merci beaucoup.
> > >
> > > "Simon Mourier" a écrit :
> > >
> > > > On peut tout à fait utiliser cet objet COM en .NET à priori. Il


faut
> ajouter
> > > > une référence sur WSHEXT.DLL dans system32.
> > > > Sinon, quelle est l'erreur?
> > > >
> > > > Simon.
> > > > www.softfluent.com
> > > >
> > > >
> > > > "Etienne" a écrit dans le


message
> de
> > > > news:
> > > > > Le pb doit venir de là et je suis bien embêté du coup :
> > > > > Je cherche à signer un VBS créé à la volée. La méthode de


signature
> > > > > Signer.SignFile("MonFichierASigner","MonCertificat")
> > > > > ne peut être effectuée que par un vbs apparemment, pas en VB.net


par
> > > > > exemple.
> > > > > Donc je créé un process qui exécute ce vbs de signature. Mais le


vbs
> ne
> > > > > s'exécute pas car SignFile ne doit pas être un objet COM.
> > > > >
> > > > > Comment alors je peux signer un vbs à partir de asp.net svp ???
> > > > >
> > > > > "Paul Bacelar" a écrit :
> > > > >
> > > > >> Oui, mais il faut que le VBS n'utilise que des composants COM
> server
> > > > >> aware.
> > > > >> --
> > > > >> Paul Bacelar
> > > > >>
> > > > >> "Etienne" wrote in message
> > > > >> news:
> > > > >> > Bonjour,
> > > > >> >
> > > > >> > J'exécute un script vbs côté server par le biais d'un


process,
> mais
> > > > >> > apparemment mon VBS ne s'exécute pas.
> > > > >> > Si je fais Process.WaitForExit(), ma requête est infini
> > > > >> > Si je fais Process.WaitForExit(1000), le code poursuit mais


le
> VBS n'a
> > > > >> > pas
> > > > >> > fonctionné bien que 1s est largement suffisant.
> > > > >> > Je me pose donc la question suivante : est-ce que l'exécution
> d'un vbs
> > > > >> > est
> > > > >> > possible sur le server comme ça l'est pour un exe ?
> > > > >> >
> > > > >> > Merci de votre aide.
> > > > >> >
> > > > >> >
> > > > >>
> > > > >>
> > > > >>
> > > >
> > > >
> > > >
>
>
>