Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

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

7 réponses
Avatar
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 = "\\serveur\NETLOGON\monapp.exe"
oShell.Run strExe

ou plus simplement:

Set oShell = CreateObject("WScript.Shell")
oShell.Run "\\serveur\NETLOGON\monapp.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

7 réponses

Avatar
Gilles LAURENT
"Glenn Gagné" a écrit dans le message de
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
Avatar
Jacques Barathon [MS]
"Gilles LAURENT" wrote in message
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

Avatar
Glenn Gagné
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]" a écrit dans le
message de news:
"Gilles LAURENT" wrote in message
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




Avatar
Michel Claveau
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

Avatar
moi
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


Avatar
Gilles LAURENT
"moi" a écrit dans le message de
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
Avatar
Gilles LAURENT
"Gilles LAURENT" a écrit dans le message de
news:
| "moi" a écrit dans le message de
| 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