WSH (VBS) - Lancer une application depuis un chemin UNC, possible ?

Le
Glenn Gagné
Bonjour,

J'ai un petit script sur mon serveur que je voudrais exécuter sur mes postes
clients, ce script lance un petit programme (.EXE) qui se trouve également
sur le serveur dans le même dossier. Je n'arrive pas a exécuter le programme
depuis le script VBS car le chemin UNC n'est pas reconnu. Si j'utilise un
chemin d'accès local ou un mapdrive (c:, z:, etc) ça fonctionne.

Je pourrais effectivement créer un mapdrive temporaire pour l'exécution et
ensuite détruire ce mappage, mais je n'est pas possible car toutes les
lettres sont actuellement utilisées et ça pourrait bloquer l'accès aux
lecteurs réseaux de certains.

J'ai essayé la formulation simple:

Dim strExe
Set oShell = WScript.CreateObject("WScript.Shell")
strExe = "\serveurNETLOGONmonapp.exe"
oShell.Run strExe

ou plus simplement:

Set oShell = CreateObject("WScript.Shell")
oShell.Run "\serveurNETLOGONmonapp.exe"

Mais comme vous le savez ça ne fonctionne pas



Alors je m'en remets à vous pour savoir s'il existe une formulation afin
d'appeller le lancement d'un programme dans un chemin UNC (sans mapdrive) ?

Merci

Glenn
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Gilles LAURENT
Le #658276
"Glenn Gagné" news:
| Bonjour,

Bonjour,

| J'ai un petit script sur mon serveur que je voudrais exécuter sur mes
| postes clients, ce script lance un petit programme (.EXE) qui se
| trouve également sur le serveur dans le même dossier. Je n'arrive pas
| a exécuter le programme depuis le script VBS car le chemin UNC n'est
| pas reconnu. Si j'utilise un chemin d'accès local ou un mapdrive
| (c:, z:, etc) ça fonctionne.
[...]

Les chemins UNC sont supportés par la méthode Run de l'objet Shell. La
chose qui peut se passer est l'apparition d'une boîte de dialogue de
confirmation d'exécution, laquelle peut être temporairement désactivée :

--- Coupez ici ---
Set oSh=CreateObject("WScript.Shell")
set oEnv = oSh.Environment("PROCESS")
oEnv("SEE_MASK_NOZONECHECKS") = 1
oSh.run "\devw2kc$winntsystem32calc.exe"
--- Coupez ici ---

Obtenez-vous un message d'erreur spécifique à l'exécution du script ?

--
Gilles LAURENT
http://glsft.free.fr
Jacques Barathon [MS]
Le #658275
"Gilles LAURENT" news:
Les chemins UNC sont supportés par la méthode Run de l'objet Shell. La
chose qui peut se passer est l'apparition d'une boîte de dialogue de
confirmation d'exécution, laquelle peut être temporairement désactivée :


Il est également possible que l'application elle-même refuse de s'exécuter
depuis un chemin UNC. Certaines applis exigent d'avoir pour répertoire
courant un chemin qui apparaît comme local, et nécessitent donc le montage
d'un disque réseau le cas échéant.

Pour écarter tout problème directement lié à votre script, essayez de lancer
l'application depuis un poste distant en utilisant son UNC dans la boîte de
dialogue Démarrer > Exécuter...

Jacques

Glenn Gagné
Le #658270
Bonjour,

Le problème est réglé !

J'ai utilisé une partie du code à Gille Laurent et de Th.A.C. sur le canal
Windows 2000.

L'application était Contig.exe (défragmenteur en ligne de commande).

Voici le code:

' -------------------------------

Dim objWMIService, objProcess, objCalc, strShell, objProgram, strExe

' Action: lancer la défragmentation complète de C:
strExe = "\serveurtoolscontigcontig.exe -q -s c:*"

set objWMIService = getobject("winmgmts://./root/cimv2")
Set objProcess = objWMIService.Get("Win32_Process")
Set objProgram = objProcess.Methods_("Create").InParameters.SpawnInstance_
objProgram.CommandLine = strExe

Set strShell = objWMIService.ExecMethod("Win32_Process", "Create",
objProgram)

WSCript.Quit

' -------------------------------

Je vais quand même mettre à l'épreuve la méthode à Gilles Laurent !

Merci

Glenn

"Jacques Barathon [MS]" message de news:
"Gilles LAURENT" news:
Les chemins UNC sont supportés par la méthode Run de l'objet Shell. La
chose qui peut se passer est l'apparition d'une boîte de dialogue de
confirmation d'exécution, laquelle peut être temporairement désactivée :


Il est également possible que l'application elle-même refuse de s'exécuter
depuis un chemin UNC. Certaines applis exigent d'avoir pour répertoire
courant un chemin qui apparaît comme local, et nécessitent donc le montage
d'un disque réseau le cas échéant.

Pour écarter tout problème directement lié à votre script, essayez de
lancer

l'application depuis un poste distant en utilisant son UNC dans la boîte
de

dialogue Démarrer > Exécuter...

Jacques




Michel Claveau
Le #658269
Bonjour !

Contig.exe


C'est bien ? Perso, j'utilise JK-defrag, qui encapsule, également en
invite de commande, le defrag standard de windows.





--
@-salutations

Michel Claveau

moi
Le #658059
Notre ami Michel Claveau tapota :

Bonjour !

Contig.exe


C'est bien ? Perso, j'utilise JK-defrag, qui encapsule, également
en
invite de commande, le defrag standard de windows.


Le defrag standard de Windows est connu
pour ne pas traiter correctement les "gros" fichiers.

C'est la version allégée d'un payant discutable...
( JCB est très prolixe, me semble-t-il, à ce sujet )

Bien qu'assez "rustique",
contig a plutôt bonne réputation ...
... comme tout ce que fait Mark Russinovich
from sysinternals ...

Si MS a "récupéré" SysInternals
c'est sans doute que de nombreux spécialistes
beaucoup plus compétents que ma modeste pomme
ont jugé sont travail tout à fait digne d'intérêt ;o)

HB


Gilles LAURENT
Le #658058
"moi" news:
| Notre ami Michel Claveau tapota :
|
|| Bonjour !
||
||| Contig.exe
||
|| C'est bien ? Perso, j'utilise JK-defrag, qui encapsule, également
|| en
|| invite de commande, le defrag standard de windows.
|
| Le defrag standard de Windows est connu
| pour ne pas traiter correctement les "gros" fichiers.
|
| C'est la version allégée d'un payant discutable...
| ( JCB est très prolixe, me semble-t-il, à ce sujet )
|
| Bien qu'assez "rustique",
| contig a plutôt bonne réputation ...
| ... comme tout ce que fait Mark Russinovich
| from sysinternals ...
|
| Si MS a "récupéré" SysInternals
| c'est sans doute que de nombreux spécialistes
| beaucoup plus compétents que ma modeste pomme
| ont jugé sont travail tout à fait digne d'intérêt ;o)

Contig est en fait la version console du defragmenteur Windows. Cet
outil s'appuye sur les API de défragmentation disponibles sous Windows
pour accomplir ses tâches. Une différence notable est que celui-ci est
scriptable !

--
Gilles LAURENT
http://glsft.free.fr
Gilles LAURENT
Le #658057
"Gilles LAURENT" news:
| "moi" | news:
|| Notre ami Michel Claveau tapota :
||
||| Bonjour !
|||
|||| Contig.exe
|||
||| C'est bien ? Perso, j'utilise JK-defrag, qui encapsule, également
||| en
||| invite de commande, le defrag standard de windows.
||
|| Le defrag standard de Windows est connu
|| pour ne pas traiter correctement les "gros" fichiers.
||
|| C'est la version allégée d'un payant discutable...
|| ( JCB est très prolixe, me semble-t-il, à ce sujet )
||
|| Bien qu'assez "rustique",
|| contig a plutôt bonne réputation ...
|| ... comme tout ce que fait Mark Russinovich
|| from sysinternals ...
||
|| Si MS a "récupéré" SysInternals
|| c'est sans doute que de nombreux spécialistes
|| beaucoup plus compétents que ma modeste pomme
|| ont jugé sont travail tout à fait digne d'intérêt ;o)
|
| Contig est en fait la version console du defragmenteur Windows. Cet
| outil s'appuye sur les API de défragmentation disponibles sous Windows
| pour accomplir ses tâches. Une différence notable est que celui-ci est
| scriptable !

(s'appuie)

--
Gilles LAURENT
http://glsft.free.fr
Publicité
Poster une réponse
Anonyme