Question Ressources pour apprendre PowerShell

Plus d'informations
il y a 3 mois 3 semaines #33969 par Cesar48
PowerShell a été créé par Cesar48
Salut les scripteurs, je suis un débutant en PowerShell et j'aimerais apprendre à utiliser ce langage puissant et polyvalent. Je voudrais savoir quels sont les meilleurs ressources, tutoriels, livres ou sites pour apprendre les bases et les astuces de PowerShell. Quels sont les avantages et les inconvénients de PowerShell par rapport à d'autres langages de script ? Quels sont les domaines d'application les plus courants ou les plus intéressants de PowerShell ? Merci de partager vos expériences et vos conseils ! 

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

Plus d'informations
il y a 3 mois 3 semaines - il y a 3 mois 3 semaines #33972 par Fabien
Réponse de Fabien sur le sujet PowerShell
Bonjour Cesar48,

Powershell est un langage orienté objet qui permet l'automatisation de tâches d'administration informatique.
Powershell est maintenant cross plateformes, ce qui a l'avantage de s'appliquer sous Windows, Linux ou Mac.

En inconvénient, la méthode pour faire des scripts Powershell est différent du Shell par exemple.
En Shell, on tape des commandes successives dans un fichier texte.
Pour utiliser le plein potentiel de Powershell, il faut comprendre l'intérêt de l'orienté objet et s'adapter.

J'utilise Powershell au quotidien en tant qu'administrateur Système et Réseau pour automatiser et aussi simplifier l'exécution de tâches répétitives et fastidieuses.

J'ai fait entre autre, un script pour la création d'utilisateur par le service support avec une interface graphique.
Ce script permet de vérifier si l'utilisateur existe déjà, il créé le compte dans l'AD, créé une adresse mail.
En fonction du service où se trouve l'utilisateur, il va lui attribuer des droits sur les serveurs de fichiers.
Ensuite le script envoie un mail de récap avec toutes les informations de l'utilisateur.

En livre, je peux te conseiller les livres d'Arnaud PETITJEAN aux éditions ENI.
Sinon sur le site de Microsoft, tu peux trouver les bases en Powershell.

J'espère que tu t'amuseras autant que moi à faire des scripts Powershell.

Fabien
Dernière édition: il y a 3 mois 3 semaines par Fabien.

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

Plus d'informations
il y a 3 mois 3 semaines #33984 par Laurent Dardenne
Réponse de Laurent Dardenne sur le sujet PowerShell
Salut,
>>Je voudrais savoir quels sont les meilleurs ressources, tutoriels, livres ou sites pour apprendre les bases et les astuces de PowerShell.
Le livre d'Arnaud est facile d'accès mais à une durée de vie 'courte', celui de Bruce Payette (Powershell in Action) est d'un accès moins aisé mais a un durée de vie plus longue (on le relit souvent). Si tu as les moyens, ou ton entreprise, achète les deux.

Pour les tutos tu peux déjà lire celui-ci , rédigé à partir de document de MS.
J'en ai écrit d'autres ici , la plupart ne sont pas pour débutant mais les sujets important sont rarement bien traité ou ceux qui le faisaient n'existe plus.

>>Quels sont les avantages et les inconvénients de PowerShell par rapport à d'autres langages de script ?
Il est codé en langage C# qui utilise le framework dotNet, ce qui lui permet, entre autre, l'appel d'APIs système sous Windows (<v5.1) ou Linux pour la version Core (>6.0).
Comme inconvénient son principal défaut est qu'il a des comportement spécifiques parfois pénibles, voir 'étrange'. Il y a donc des jours où il est très utile et facile d'utilisation et d'autre où tu as envie de le mettre à la benne...

>>Quels sont les domaines d'application les plus courants ou les plus intéressants de PowerShell ?
Dés qu'un produit, nécessitant des tâches d'administration propose des cmdlets Powershell, il est bien de savoir comment les utiliser.
J'ai utilisé principalement des cmdlets de produit MS, un peu de WMWare.

Ceci dit la connaissance des objets que Powershell permet de manipuler est nécessaire, connaitre les cmdlet SCCM ne fait pas de toi un admin SCCM, pareil pour Exchange ou l'AD.

De Fabien D :
>>Powershell est un langage orienté objet.

Ouai on va dire ça :-)
Cela reste une adaptation des principes de la POO.
Mes conclusions dans letuto sur les classe précédement cité :

La possibilité de mixer du code Powershell et des classes facilite l’écriture et évite l’apprentissage d’un nouveau langage, il s’agit bien de classe dot Net, mais c’est un wrapper construit autour d’un assembly dynamique.

Pas de doute, la mécanique interne est remarquable, mais pour moi cela reste une adaptation des principes de la POO sous Powershell, cela me fait penser à une classe du type :
PowerShell : IJob, IEvent, IClass

C’est bien de la POO, mais elle a peu à voir avec les capacités de langages moderne tels que C#, Python, Delphi, etc. Ce qui engendre une certaine frustration.
L’impossibilité de créer des membres privés et des accesseurs est regrettable, tous les membres sont public, le mot clé Hidden masque un membre, mais ne le protège pas.

Pour le moment, comme nous avons pu le voir autour de l’exemple sur l’indexeur, il faut parfois combiner du C# et du PS tout en s’appuyant sur ETS pour annuler des comportements de Powershell !

Une amélioration serait appréciée :-)

Rien de bien compliqué pour quelqu’un connaissant les principes de la POO, sous réserve de connaitre certains de ses comportements, en revanche pour qui ne les connait cela peut s’avérer ardu de les aborder avec Powershell.

Par exemple comment expliquer le concept d’interface sans pouvoir en créer ? Celui de propriété sans possibilité d’implémenter des accesseurs ? Ou encore celui de modificateurs d'accès quand tout est public ?

Ceci dit, l’apprentissage des classes pour un usage simple, comme vue dans le premier chapitre, n’est pas en soi insurmontable.


De Fabien D :
>>Powershell est maintenant cross plateformes, ce qui a l'avantage de s'appliquer sous Windows, Linux ou Mac.

Effectivement, mais les breaking change entre la version Core et Windows sont mal documentés et impliquent des portions de code spécifique à chaque plateformes.Du coup chacun les (re)découvre. Enfin certains cmdlet de produit MS n'ont pas encore été portés, il est donc cross plateformes mais pas tout le temps :-)

Tutoriels PowerShell

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

Plus d'informations
il y a 3 mois 3 semaines - il y a 3 mois 3 semaines #33985 par FLAHAUT Samuel
Réponse de FLAHAUT Samuel sur le sujet PowerShell
En bref, PowerShell permet de scripter rapidement sur tous postes ou serveur Windows avec la puissance de .NET si nécessaire (donc sans compilateur ou IDE à installer) ; même les interfaces graphiques avec les Win.Forms ou le WPF.

Possible sur d'autres plateformes mais avec quelques adaptations.
Dernière édition: il y a 3 mois 3 semaines par FLAHAUT Samuel.

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

Plus d'informations
il y a 3 mois 2 semaines #33994 par Arnaud Petitjean
Réponse de Arnaud Petitjean sur le sujet PowerShell
Bonjour César, 

Tout d'abord merci à Samuel ainsi qu'à Laurent pour la recommandation de mes livres et en particulier celui-ci qui sera parfait pour démarrer ton apprentissage de PowerShell.

Les tutos de Laurent sont tops mais ils sont peut-être d'un niveau un trop élevé pour toi pour le moment et ça pourrait t'effrayer ;-).

Par ailleurs, si tu peux te le permettre (ou si ton employeur peut te le permettre), je te recommande de suivre une formation au sein d'un centre de formation, par exemple le mien   : Start-Scripting, voir les programmes . Ou alors de suivre mon programme de formation hybride lorsqu'il réouvrira ses portes (très prochainement).

Arnaud
 

MVP PowerShell et créateur de ce magnifique forum :-)
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?

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

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