Question Débutant depuis hier.

Plus d'informations
il y a 5 ans 9 mois #18259 par mtxrider
Débutant depuis hier. a été créé par mtxrider
Bonjour à tous, c'est mon premier message.

Je vous écris parce suite à un grand changement dans ma boite, nous allons enfin nous débarrasser d'un grand script de batch pour du powershell, et quelle joie !

Cela ne fait que deux mois que je bosse dans le service maintenance et installation de la boite, mais les méthodes utilisés sont obsolète et improductive.

Adepte de php à titre personnel de vb6 dans des temps ancien et obscure, de c++ et beaucoup des scripts shell linux, je ne suis à la base pas très proche de microsoft.

Simplement, j'ai convaincu notre patron que dans la mesure ou powershell équipe 100% des machines de notre parc, le choix de continuer en batch est improductif.

Ce nouveau script remplacera un script affreux en batch qui ne fonctionne pas très bien, surtout à cause des limitations que le choix impose.

Le but est de permettre un déploiement de paquet msi sur un poste vierge, le tout en utilisant le script pour paramétrer quel paquet l'on veut ou pas.

Il permettra aussi quelques paramètres comme le passage de licence taper au clavier en argument, et d'autres passage en paramètres dans le genre..

j'ai plusieurs question dans l'ordre, sachant que je n'ai pas pu commander le livre depuis hier, je pense m'en commander un exemplaire rapidement si je vois que ça me convient.

______________________________________

Première question comment jouer avec les valeurs d'une variable tableaux ?

pour faire court, je souhaiterais faire une variable tableau de ce type :

$soft.code (code du logiciel) => string
$soft.path (chemin du paquet à installer) => string
$soft.status (status, à installer ou pas) => int

bien entendu, il y aura plusieurs ligne, d'ou l'idée d'une variable tableau

_____________________________________

Basé sur la ma question 1, je souhaiterais faire une boucle while qui bouclerais tant que je tape des codes logiciel.

en gros, si je tape le code 000A au clavier, ça installera tel paquet, si je tape 000B, tel autre.

je pense qu'il faudrait donc dire à la boucle que tant qu'une saisie corresponds à l'objet code de $soft, la boucle suit son court.

Dans la dite boucle je pensais faire un switch, en fonction de tel code, le paquet est la, installe le comme ça.

Dans le cas ou par contre je taperais autre chose qu'un code, je sortirais de la boucle

Cette partie du script intervient au début, en guise de raccourci à toute la procédure pour l'installation d'un poste complet.

La boucle en question cité ici sert à faire l'update de quelques paquet, voir l'installation de paquet oublier par l’opérateur en charge de l'installation d'un poste.
_____________________________________

troisième question (fichier xml) :

Pour l'instant ce n'est pas gênant, mais je souhaiterais aller plus loin que remplacer le script batch.

à terme la variable $soft sera remplie par un xml qui sera parser, je souhaiterais déjà prendre la température pour savoir comment c'est faisable, dans quel mesure, et le temps que ça prendrais d'effectuer la chose de cette façon.

____________________________________

Dernière question, je pense pouvoir trouver ailleurs, mais vu que je suis ici, j'en profite, comment exécuter un programme en powershell depuis le script ?

En attendant de l'aide de la part de quelqu'un de ce forum, je vous remercie en avance du temps que vous saurez consacré à mon post, cordialement MtxRider

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

Plus d'informations
il y a 5 ans 9 mois #18290 par Laurent Dardenne
Réponse de Laurent Dardenne sur le sujet Re:Débutant depuis hier.
Salut,
mtxrider écrit:

le choix de continuer en batch est improductif.

Improductif peut être pas, car cela fonctionne en prod ;-)
mtxrider écrit:

Ce nouveau script remplacera un script affreux en batch qui ne fonctionne pas très bien,

Je te rassure, tu peux aussi faire la même chose en powershell.
mtxrider écrit:

Le but est de permettre un déploiement de paquet msi sur un poste vierge, le tout en utilisant le script pour paramétrer quel paquet l'on veut ou pas.

Cela me rappel une solution réalisée en PS.
mtxrider écrit:

bien entendu, il y aura plusieurs ligne, d'ou l'idée d'une variable tableau

Un tableau d'objet est préférable, cf. new-Object PSObject -Property ...
mtxrider écrit:

Basé sur la ma question 1, je souhaiterais faire une boucle while qui bouclerais tant que je tape des codes logiciel.

Je pense qu'il est préférable de scinder le traitement de la saisie utilisateur.
De créer un traitement paramètrable par saisie ou ligne de cmd ou fichier de conf est possible.
mtxrider écrit:

Dans la dite boucle je pensais faire un switch, en fonction de tel code

Mauvaise idée à mon avis, car un nouveau package ou la suppression d'un existant implique de modifier ton code, de le tester, et de le relivrer...
mtxrider écrit:

Dans le cas ou par contre je taperais autre chose qu'un code, je sortirais de la boucle

S'il existe une norme de nommage ne pas la lier au traitement. Si la norme évolue tu changes le code existant.
mtxrider écrit:

La boucle en question cité ici sert à faire l'update de quelques paquet, voir l'installation de paquet oublier par l’opérateur en charge de l'installation d'un poste.

Une sorte de DSC pour poste client ;-)
mtxrider écrit:

à terme la variable $soft sera remplie par un xml qui sera parser, je souhaiterais déjà prendre la température pour savoir comment c'est faisable

Oui ça l'est. J'ai réalisé ce type de solution en utilisant un XSD pour faciliter les vérifications.
mtxrider écrit:

dans quel mesure,

C'est toi qui la donne ;-)
Et cela dépend de tes connaissances en dev, en xml et en DotNet.
mtxrider écrit:

et le temps que ça prendrais d'effectuer la chose de cette façon.

Un certains temps :lol:
Prends le pb dans l'autre sens, de combien de temps tu disposeras.
Sinon tu rédiges un cahier des charges, des specs et un coût.
mtxrider écrit:

comment exécuter un programme en powershell depuis le script ?

[code:1]
Help Start-Process -full
&\"FullPath\Process.exe\"
[/code:1]
Quelle version de PS utiliseras-tu ? Sous quel OS ?

Tutoriels PowerShell

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

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