Powershell / C#

Le
François
Bonjour,

Une question qui pourrait sembler idiote et sans vouloir lancer de troll

Quels sont les avantages d'utiliser Powershell au lieu de programmes C#
sur des serveurs en sachant :

- Dans les 2 cas, il faut disposer du framework .net.
- On dispose de Visual # express sur un poste de travail et il est donc
"facile" de développer un programme / "script" c# et de le déposer
ensuite sur le serveur.

Merci de vos réponses
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
Jacques Barathon [MS]
Le #660556
"François" news:O$
Bonjour,

Une question qui pourrait sembler idiote et sans vouloir lancer de troll
...
Quels sont les avantages d'utiliser Powershell au lieu de programmes C#
sur des serveurs en sachant :

- Dans les 2 cas, il faut disposer du framework .net.
- On dispose de Visual # express sur un poste de travail et il est donc
"facile" de développer un programme / "script" c# et de le déposer ensuite
sur le serveur.


Les deux produits répondent à des besoins très différents. Evidemment, rien
n'interdit pas de faire ce que tu proposes: si tu as une connaissance très
fine de C# et que tu peux rapidement écrire un bout de programme qui va
répondre à ton besoin, pourquoi pas. Simplement, il ne s'agit pas d'une
solution adaptée à l'immense majorité des cas à mon avis, pour les raisons
suivantes (liste non exhaustive):

PowerShell est un environnement interactif. On peut s'en servir en tant que
remplacement de CMD.EXE pour naviguer dans les fichiers, parcourir le
réseau, vérifier et/ou modifier tel ou tel élément de configuration (local
ou distant) grâce à WMI, .NET ou COM. Le tout peut être fait en avançant
pas à pas, en essayant une commande et en la peaufinant grâce à un retour
immédiat.

Il en est de même pour les scripts écrits en PowerShell. On peut très
rapidement copier quelques commandes qui marchent dans un fichier texte,
tester le script ainsi créé, reprendre le texte pour y intégrer quelques
raffinements ou corriger un bug, et quand on est satisfait du résultat
ajouter des éléments qui vont rendre le script plus "industriel": passage
des infos par paramètres, gestion des erreurs, etc.

Enfin, les structures du langage PowerShell, bien qu'un peu déroutantes pour
un novice, sont adaptées à cette prise en main interactive. On peut, sans
exploiter à fond toutes les possibilités du langage, l'utiliser comme
remplacement de CMD.EXE moyennant un effort très minime, puis s'approprier
progressivement les finesses et la puissance du langage.

En ce qui concerne C#: comme tu le dis, il faut développer le programme C#
sur un poste de travail avant de l'exécuter sur un serveur. Tu ne peux pas
élaborer ton programme C# en direct sur le serveur, en testant commande par
commande ce que tu veux faire. Le modèle de développement n'est pas
forcément compatible avec le travail d'un administrateur système qui a
besoin de tester interactivement et d'avancer rapidement dans la mise en
place d'une solution.

Et à l'inverse de PowerShell, le langage C# représente une différence assez
substantielle par rapport à ce qu'un administrateur système connaît
habituellement (CMD, VBscript, éventuellement un shell Unix). Sans compter
la nécessiter d'appréhender un outil très spécifique comme Visual Studio.

Pour être clair, il y a quelques avantages à développer un programme C#
plutôt qu'un script PowerShell: accès simplifié à l'ensemble des API
Windows, rapidité du code obtenu... Simplement, au vu des différences
énumérées ci-dessus, il faudrait que ces avantages soient des contraintes
majeures pour qu'un administrateur fasse éventuellement le choix de C#
plutôt que d'utiliser PowerShell.

Jacques

Publicité
Poster une réponse
Anonyme