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

[debutant] je ne m'en sort pas

22 réponses
Avatar
Azur
Bonjour tout le monde,

Je suis en train d'automatiser la descente d'une image (imagex) sur
plusieures machines (deploiement)

La phase de creation de partition de mon disque cible ainsi que son
formatage
se passe très bien avec des vbscript.

en revanche pour descendre l'image avec imagex , je ne m'en sort pas.


J'ai fais ceci:



---------------------debut-------------------

Set WshShell = WScript.CreateObject("WScript.Shell")
Set fso = CreateObject("Scripting.FileSystemObject")
set coldrives=fso.drives

Dim disk, drive,fichierimage

set fichierimage=splitvl260xp.swm

set coldrives = FSO.drives
for each objdrive in coldrives
if objdrive.drivetype=4 then
driveletter=objdrive.driveletter

wscript.echo "Déploiement de l'image en cours"

WshShell.run("x:\windows\system32\imagex.exe /apply &objdrive&fichierimage&
1 c:\"),7,true

wscript.echo "Déploiement terminé"
end if
next
--------------- fin ------------------------



le résultat est :

Déploiement de l'image en cours
Déploiement terminé

mais rien ne se passe.


Je pense qu'il faudrait que je gère les erreurs mais là ,je bute.

J'ai fait des on error resume next et des err.number avec de retour un code
erreur0

De plus, imagex semble partir dans la nature. Les variables ne seraint pas
interprétées



Si quelqu'un pouvait m'aider ?

10 réponses

1 2 3
Avatar
Azur
et de précisez... car j'ai oublié de l'évoquer.

Mes scripts vbs sont éxécutés dans l'environnement VistaPE.


merci de votre aide



-azur-




"Azur" a écrit dans le message de news:
%
Bonjour tout le monde,

Je suis en train d'automatiser la descente d'une image (imagex) sur
plusieures machines (deploiement)

La phase de creation de partition de mon disque cible ainsi que son
formatage
se passe très bien avec des vbscript.

en revanche pour descendre l'image avec imagex , je ne m'en sort pas.


J'ai fais ceci:



---------------------debut-------------------

Set WshShell = WScript.CreateObject("WScript.Shell")
Set fso = CreateObject("Scripting.FileSystemObject")
set coldrives=fso.drives

Dim disk, drive,fichierimage

set fichierimage=splitvl260xp.swm

set coldrives = FSO.drives
for each objdrive in coldrives
if objdrive.drivetype=4 then
driveletter=objdrive.driveletter

wscript.echo "Déploiement de l'image en cours"

WshShell.run("x:windowssystem32imagex.exe /apply
&objdrive&fichierimage& 1 c:"),7,true

wscript.echo "Déploiement terminé"
end if
next
--------------- fin ------------------------



le résultat est :

Déploiement de l'image en cours
Déploiement terminé

mais rien ne se passe.


Je pense qu'il faudrait que je gère les erreurs mais là ,je bute.

J'ai fait des on error resume next et des err.number avec de retour un
code erreur0

De plus, imagex semble partir dans la nature. Les variables ne seraint pas
interprétées



Si quelqu'un pouvait m'aider ?








Avatar
Gilles LAURENT [MVP]
"Azur" a écrit dans le message de
news:
| Bonjour tout le monde,

Bonjour,

| Je suis en train d'automatiser la descente d'une image (imagex) sur
| plusieures machines (deploiement)
[...]

--- Coupez ici : ApplyImage.vbs ---
' définition du nom de l'image
Const IMAGEFILE="splitvl260xp.swm"

' initialisation des objets
Set oSh=CreateObject("WScript.Shell")
Set oFs=CreateObject("Scripting.FileSystemObject")

' recherche de la lettre de lecteur affectée au cdrom
Set colDrives=oFs.Drives
For Each oDrive In colDrives
If oDrive.DriveType=4 Then Exit For
Next

' création de la ligne de commande imagex
sCmd= _
"imagex.exe /apply " & _
oDrive.DriveLetter & ":" & IMAGEFILE & _
" 1 C:"

' descente de l'image sur le lecteur logique C:
nRc=oSh.Run(sCmd,7,True)

' affichage du code retour imagex
WScript.Echo nRc
--- Coupez ici : ApplyImage.vbs ---

--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr
Avatar
Azur
Ca marche beaucoup mieux.
Merci beaucoup gilles.


Juste que je n'arrive pas à comprendre pourquoi je n'ai pas
réussi.

Il me semble, a travers mes multiples tentatives, être passer par
un code assez ressemblant .

J'emet donc deux hypothèses :


1) J'écrit comme un goret c'est normal d'en arriver là (toi en revanche, tu
devrais recevoir un prix d'élégance d'écriture de code)

2) tu appelles la commande par :

nRc=oSh.Run(sCmd,7,True)

pour avoir le code erreur de retour

mais faire cela :

oSh.Run(sCmd,7,True)

ne rend pas la ligne inopérante (il n'y a pas de code erreur de retour mais
ca reste fonctionnel) ?

et ça (attention c'est très laid)

o.Sh.Run( "imagex.exe /apply " & oDrive.DriveLetter & ":" & IMAGEFILE &" 1
C:"),7,true

ne devrait-ce pas marcher ?


Encore merci pour ton aide




-azur-
--- Coupez ici : ApplyImage.vbs ---
' définition du nom de l'image
Const IMAGEFILE="splitvl260xp.swm"

' initialisation des objets
Set oSh=CreateObject("WScript.Shell")
Set oFs=CreateObject("Scripting.FileSystemObject")

' recherche de la lettre de lecteur affectée au cdrom
Set colDrives=oFs.Drives
For Each oDrive In colDrives
If oDrive.DriveType=4 Then Exit For
Next

' création de la ligne de commande imagex
sCmd= _
"imagex.exe /apply " & _
oDrive.DriveLetter & ":" & IMAGEFILE & _
" 1 C:"

' descente de l'image sur le lecteur logique C:
nRc=oSh.Run(sCmd,7,True)

' affichage du code retour imagex
WScript.Echo nRc
--- Coupez ici : ApplyImage.vbs ---

--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr




Avatar
~Jean-Marc~ [MVP]
Salut Azur,
tu nous disais :
Juste que je n'arrive pas à comprendre pourquoi je n'ai pas
réussi.


WshShell.run("x:windowssystem32imagex.exe /apply &objdrive&fichierimage& 1 c:"),7,true

Imagex est dans le "path", pas besoin de préciser le chemin complet.

Tu mets tout dans une chaine, ce qui fait que tu exécutes tel quel, comme si
tu passais une ligne de commande :
x:windowssystem32imagex.exe /apply &objdrive&fichierimage& 1 c:

objdrive est un objet et ne renvoie pas une lettre de lecteur, tel quel.

Il vaut mieux éviter d'accoler variables et opérateurs.

Les parenthèses ne finissent pas au bon endroit.

Si je corrige, ça donne :

set fichierimage="splitvl260xp.swm"

.../...

WshShell.run("imagex.exe /apply " & objdrive.driveletter & ":" & fichierimage & " 1 c:",7,true)

Tu as pensé à préparer ton disque avant de déployer,
je pense (diskpart) ? WIM n'est pas un format "destructeur"
à l'application (enfin, pas si on le compare à ghost, par exemple)

@+

ps: marrant ça, j'étais en train de m'amuser avec WinPE 2.1 et le
déploiement de XP en WIM sur des machines de moins de 256 Mo de
RAM... ;-)

--
~Jean-Marc~ MVP Shell/User Fr
( Vista x86 Ultimate )
- http://msmvps.com/blogs/docxp/ -
- http://docxp.mvps.org -

Avatar
Gilles LAURENT [MVP]
"~Jean-Marc~ [MVP]" a écrit dans le
message de
news:
| Salut Azur,

Bonsoir,

[...]

Merci d'avoir répondu ;-)
Toutefois juste une petite précision ...

| objdrive est un objet et ne renvoie pas une lettre de lecteur, tel
| quel.

La propriété par défaut de l'objet Drive est Path
Ci-dessous un transcript WSH Shell :

*******************************
WSH Transcript Start
Start time : 2008-03-12 22:04:02
Username : xxxxGilles
Machine : xxxx (Microsoft Windows NT 5.1.2600.2)
*******************************
Transcript started, output file is D:TestoDrive.txt

WSH D:Test> Set oFs=CreateObject("Scripting.FileSystemObject")
WSH D:Test> Set colDrives=oFs.Drives
WSH D:Test> % oDrive In colDrives {
echo oDrive, oDrive.Path
}

C: C:


D: D:
E: E:
WSH D:Test>

Transcript stopped.

Note: Je vous l'accorde ! C'est à proscrire ;-)

--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr


Avatar
Jean
Note: Je vous l'accorde ! C'est à proscrire ;-)


Les alias PowerShell aussi d'ailleurs :O)

--
Jean - JMST
Belgium

Avatar
Stephane [MS]
Bonjour,

Pourquoi tenter de recréer ce qui existe déjà ?
Deployment Toolkit contient tout ce qu'il faut :
http://www.microsoft.com/downloads/details.aspx?familyid;d8561f-77ac-4400-a0c1-fe871c461a89&displaylang=en&tm

--
Cdlt
Stéphane
http://blogs.msdn.com/spapp/default.aspx

"Jean" a écrit dans le message de
news:
Note: Je vous l'accorde ! C'est à proscrire ;-)


Les alias PowerShell aussi d'ailleurs :O)

--
Jean - JMST
Belgium





Avatar
~Jean-Marc~ [MVP]
Salut Stephane [MS],
tu nous disais :
Bonjour,

Pourquoi tenter de recréer ce qui existe déjà ?
Deployment Toolkit contient tout ce qu'il faut :
http://www.microsoft.com/downloads/details.aspx?familyid;d8561f-77ac-4400-a0c1-fe871c461a89&displaylang=en&tm


Parce que tout le monde n'a pas de serveurs Windows à
disposition pour faire du déploiement.... ;-)

Cordialement

--
~Jean-Marc~ MVP Shell/User Fr
( Vista x86 Ultimate )
- http://msmvps.com/blogs/docxp/ -
- http://docxp.mvps.org -

Avatar
MCI \(ex do ré Mi chel la si do\) [MVP]
Bonjour !

Dans un genre proche, j'ai été assez impressionné par Softgrid (partie
de MDOP) pour vouloir le proposer à certains clients.
Mais, une fois les techdays terminées, je me suis tourné vers les
grossistes, qui ne connaissent pas ce produit. J'ai essayé de contacter
MS, qui m'a renvoyé sur Internet, qui me conseille de contacter un
revendeur, qui doit passer par un grossiste. On boucle...

Et pourtant, pour ce que j'en ai vu, Softgrid est au Deployment_kit ce
que l'automobile est à la brouette.

Bref, il ne suffit pas qu'un truc existe, pour qu'il soit utilisable, et
utilisé.

@+

Michel Claveau
Avatar
Azur
Imagex est dans le "path", pas besoin de préciser le chemin complet.


A force de ne pas trouver, j'avais fini par indiqué le chemin.. sans plus de
succés.


Tu mets tout dans une chaine, ce qui fait que tu exécutes tel quel, comme
si
tu passais une ligne de commande :
x:windowssystem32imagex.exe /apply &objdrive&fichierimage& 1 c:


ok ok


objdrive est un objet et ne renvoie pas une lettre de lecteur, tel quel.

Il vaut mieux éviter d'accoler variables et opérateurs.


vu


Les parenthèses ne finissent pas au bon endroit.


décidemment...


Si je corrige, ça donne :

set fichierimage="splitvl260xp.swm"

.../...

WshShell.run("imagex.exe /apply " & objdrive.driveletter & ":" &
fichierimage & " 1 c:",7,true)



d'accord, je comprend mieux.



Tu as pensé à préparer ton disque avant de déployer,
je pense (diskpart) ? WIM n'est pas un format "destructeur"
à l'application (enfin, pas si on le compare à ghost, par exemple)




Oui oui cette partie est fonctionnelle.

A ce sujet, le "create partition primary" me générait un type de partition
RAW ... et donc peut exploitable.

Cette commande lancée deux fois permet la création de la partition type NTFS
??

Si je la lance une troisième fois ....raw ....etc....


Apparemment Il faudrait forcer l'identifiant de la partition ID ?

Je m'y attarderais plus tard.



@+

ps: marrant ça, j'étais en train de m'amuser avec WinPE 2.1 et le
déploiement de XP en WIM sur des machines de moins de 256 Mo de
RAM... ;-)



Ca passe ?

Je croyais que winpe2.1 demandait au moins 512Mo ?


a+ Jean-Marc


-azur-



--
~Jean-Marc~ MVP Shell/User Fr
( Vista x86 Ultimate )
- http://msmvps.com/blogs/docxp/ -
- http://docxp.mvps.org -


1 2 3