Powershell[Topic Unik]

Powershell[Topic Unik] - Shell/Batch - Programmation

Marsh Posté le 20-12-2018 à 10:53:33    

:hello:

 

Bienvenue à tous et à toutes sur le topic unique du Powershell !

 

Je débute dans la techno et je n'ai pas vu de topic unique quand j'ai fait des recherches dessus du coup j'en profite pour le créer.

 

Introduction : Powershell, c'est quoi ?

 

D'après Wikipedia :

 

PowerShell ou Windows PowerShell, anciennement Microsoft Command Shell (MSH), nom de code Monad, est une suite logicielle développée par Microsoft qui intègre une interface en ligne de commande, un langage de script nommé PowerShell ainsi qu'un kit de développement. Il est inclus dans Windows 7, Windows 8.1 et Windows 10 (y compris les versions grand public) et s'appuie sur le framework Microsoft .NET.

 

Avec ça, il est possible d'interagir directement sur des fonctionnalités Windows de façon plus rapide que par plusieurs clics successifs et c'est là la grande force du bouzin.

 

Historique :

 

Son inventeur est Jeffrey Snover, Responsable architecture, qui a créé ce langage de script orienté objet en 2003. Dans une interview, Jeffrey Snover explique qu'il y a des différences entre les archis des OS Linux et Windows, ce qui rendait à l'époque impossible l'utilisation d'un shell Linux classique sous Windows. Partant de là, il a décidé de créer Powershell.

 

La dernière version officiellement portée par Windows est la version 5.1. En effet, Microsoft a annoncé le 18 août 2016 de rendre PowerShell gratuit et open source.

 

Windows Powershell 5.1 devient donc Powershell tout court à partir de la version 6.0

 

La dernière version stable en date est la version 6.1.1 sortie le 13 novembre 2018.

 

Quelques liens utiles :

 

https://www.petri.com/category/powershell : pas mal de tutos, en anglais.

 

https://www.it-connect.fr/powershel [...] re-partie/ : Un excellent article (pléonasme) sur IT-Connect pour les débutants comme moi :jap:

 

https://blog.netwrix.com/2018/02/21 [...] beginners/ : un autre site avec des tutos.

 

https://docs.microsoft.com/fr-fr/powershell/ : La documentation officielle de Microsoft.

 

https://openclassrooms.com/fr/cours [...] powershell : Openclassroom, grosse référence me concernant pour apprendre de nouvelles compétences.

 

https://powershellexplained.com/201 [...] tomobject/ : un lien intéressant sur les PSCustomObjects. Permet de créer des objets powershell personnalisable auxquels on pourra faire appel par la suite.

 

https://gallery.technet.microsoft.c [...] dbb2b84e85 : Une piste pour automatiser le partage de fichiers entre des serveurs.

 

Informations utiles

 

Sous Windows 10, powershell existe sous la forme de l'invit de commande classique mais également avec un environnement de dév complet sous la forme Windows Powershell ISE dans lequel il est possible d'écrire des programmes/scripts, exécuter, etc

 

Il existe deux versions de PowerShell maintenant : Windows Powershell (Windows only) et Powershell (cross-platform). Pas les mêmes versions, pas les mêmes fonctionnalités même si ça doit converger à terme.

 

Il est possible d'utiliser PowerShell sous Linux, il fait même parti des paquets proposés lors de l'installation d'Ubuntu 18.04.

 

Objectifs du topic : centraliser l'ensemble des demandes concernant Powershell et son utilisation. Ce n'est qu'une première ébauche du topic et je suis preneur de remarques, suggestions si vous en avez :jap:

 

Ce FP est très succin pour le moment, n'hésitez pas à contribuer :jap:

 

Outils complémentaires

 

https://cnf1g.com/?p=1360 : un outil pour générer des interfaces graphiques pour les non dévs (les gens biens quoi :o )


Message édité par true-wiwi le 12-03-2019 à 19:46:49

---------------
It's a simple mistake to make, to create love and to fall.
Reply

Marsh Posté le 20-12-2018 à 10:53:33   

Reply

Marsh Posté le 20-12-2018 à 10:57:26    

Reply

Marsh Posté le 20-12-2018 à 10:57:50    

DEUZ §


---------------
"Xat le punk à chien facho raciste. C'est complexe comme personnage." caudacien 05/10/2020
Reply

Marsh Posté le 20-12-2018 à 10:58:49    

IWH :o

Reply

Marsh Posté le 20-12-2018 à 11:00:04    

Troiz
 
Attention il existe deux versions de PS maintenant : Windows Powershell (Windows only) et Powershell (cross-platform). Pas les mêmes versions, pas les mêmes fonctionnalités même si ça doit converger à terme.

Reply

Marsh Posté le 20-12-2018 à 11:03:57    

J'en suis, même si je n'y connais rien!!!


---------------
A life spent making mistakes is not only more honorable, but more useful than a life spent doing nothing. -- Shaw -- mon topic de vente photo
Reply

Marsh Posté le 20-12-2018 à 11:10:04    

Drap !  
[:ill nino]


Message édité par nex84 le 20-12-2018 à 11:11:06

---------------
#TeamNoBidouille || Come to the Dark Side, we have cookies || Mangez 5 fruits et légumes par an ! || Le digital, c'est les doigts
Reply

Marsh Posté le 20-12-2018 à 11:10:42    

nebulios a écrit :

Troiz
 
Attention il existe deux versions de PS maintenant : Windows Powershell (Windows only) et Powershell (cross-platform). Pas les mêmes versions, pas les mêmes fonctionnalités même si ça doit converger à terme.


 
Je modifie et je rajoute ça dans le FP :jap:


---------------
It's a simple mistake to make, to create love and to fall.
Reply

Marsh Posté le 20-12-2018 à 11:11:35    

Drap'

 

Long Story Short → c'est de "la faute" à Je@nb si je m'y suis mis, il m'avais envoyer chier dans un topic, en mode arrete avec tes trucs de merde et mets toi au Powershell >_<


Message édité par clads92 le 20-12-2018 à 11:13:52

---------------
NewGame+ (Podcast) ~ Ma chaîne Youtube ~ MechDIY (Affilié + Promo 16%) / Geekbuying
Reply

Marsh Posté le 20-12-2018 à 11:12:59    

Modif du FP avec ajout de l'info apportée par nebulios :jap:


---------------
It's a simple mistake to make, to create love and to fall.
Reply

Marsh Posté le 20-12-2018 à 11:12:59   

Reply

Marsh Posté le 20-12-2018 à 11:26:26    


 
Le deuxième lien est déjà dans le FP, je rajoute le premier :jap:
 
@LeMondeDort : ouais mais y'a un topic pour tout sur hfr et y'avait pas de topic unique Powershell. Donc j'en fais un épicétout [:cloud_]


---------------
It's a simple mistake to make, to create love and to fall.
Reply

Marsh Posté le 20-12-2018 à 11:34:09    

https://cnf1g.com/?p=1360
 
Y'a ça aussi, pour faire des petites UI sur le script


---------------
NewGame+ (Podcast) ~ Ma chaîne Youtube ~ MechDIY (Affilié + Promo 16%) / Geekbuying
Reply

Marsh Posté le 20-12-2018 à 11:34:39    

Il parle de la classification du topic :o


---------------
"Xat le punk à chien facho raciste. C'est complexe comme personnage." caudacien 05/10/2020
Reply

Marsh Posté le 20-12-2018 à 11:37:22    

Ah yes, effectivement je ne savais pas dans quelle catégorie le foutre du coup j'ai mis dans Windows :o
 
@clads92 : super top le lien, je rajoute au FP :jap:


---------------
It's a simple mistake to make, to create love and to fall.
Reply

Marsh Posté le 20-12-2018 à 11:46:10    

Les PowerShelleux, vous mettez quoi en entête de votre script comme bonne pratique ?
J'ai appris avec cet entête  
 

Code :
  1. # ============================================ #
  2. # NAME: monscript.ps1
  3. # AUTHORS : Clads92, MaCogip
  4. # DATE: 18/10/2017
  5. # KEYWORDS: Evolution, ActiveDirectory ,
  6. # VERSION : 0.6
  7. # CHANGELOG :
  8. # COMMENTS :
  9. # Requires -Version 5.0
  10. # ============================================ #


 
C'est toujours d'actualité ?


---------------
NewGame+ (Podcast) ~ Ma chaîne Youtube ~ MechDIY (Affilié + Promo 16%) / Geekbuying
Reply

Marsh Posté le 20-12-2018 à 11:52:12    

[:ddst:4]
 
 
Je préfère Bash :o

Reply

Marsh Posté le 20-12-2018 à 11:56:49    

clads92 a écrit :

Les PowerShelleux, vous mettez quoi en entête de votre script comme bonne pratique ?
J'ai appris avec cet entête  
 

Code :
  1. # ============================================ #
  2. # NAME: monscript.ps1
  3. # AUTHORS : Clads92, MaCogip
  4. # DATE: 18/10/2017
  5. # KEYWORDS: Evolution, ActiveDirectory ,
  6. # VERSION : 0.6
  7. # CHANGELOG :
  8. # COMMENTS :
  9. # Requires -Version 5.0
  10. # ============================================ #


 
C'est toujours d'actualité ?


 
J'en ai profité pour l'intégrer à mon tout premier script Powershell, je suis émotion [:moquette:1]


---------------
It's a simple mistake to make, to create love and to fall.
Reply

Marsh Posté le 20-12-2018 à 11:59:33    

drap


---------------
---------------
Reply

Marsh Posté le 20-12-2018 à 12:01:44    

Brap,  
 
je reviens d'une semaine de formation "automatisation des taches avec PS.."
 
one line to rule 'em all :o


---------------
:o
Reply

Marsh Posté le 20-12-2018 à 12:30:16    

[:ptibeur]


---------------
- And what do we do when we're sad ? - Add to cart ! - No !
Reply

Marsh Posté le 20-12-2018 à 12:58:46    

Ce sujet a été déplacé de la catégorie Windows & Software vers la categorie Programmation par Je@nb

Reply

Marsh Posté le 20-12-2018 à 13:05:52    

Bon j'ai bougé ton topic au bon endroit parce que bon …
 
Après oui il faudrait une FP un peu plus remplie et si possible sans conneries :/ (PowerShell 6.0 n'est pas la dernière, c'est 6.1, et la dernière version de Windows PowerShell est 5.1)
 
Et en intro parler un peu de l'historique.
Jeffrey Snover qui a tout inventé à l'époque et son idée originale dans le Monad Manifesto : https://www.jsnover.com/Docs/MonadManifesto.pdf
Et maintenant PowerShell Core est OpenSource hébergé sur GitHub https://github.com/PowerShell/PowerShell

Reply

Marsh Posté le 20-12-2018 à 13:34:14    

Le wiki français n'est pas à jour et en croisant avec la doc MS ça collait.
 
Du coup je vais corriger le tir.
 
Merci d'avoir déplacé le sujet.


---------------
It's a simple mistake to make, to create love and to fall.
Reply

Marsh Posté le 20-12-2018 à 13:35:29    

Met le sciprt pour l'édition collaborative du first post :o :o


---------------
"Xat le punk à chien facho raciste. C'est complexe comme personnage." caudacien 05/10/2020
Reply

Marsh Posté le 20-12-2018 à 13:36:37    

XaTriX a écrit :

Met le sciprt pour l'édition collaborative du first post :o :o


Ah oui pas con ça !
Et refait le en powershell  :p

Message cité 1 fois
Message édité par Je@nb le 20-12-2018 à 13:37:06
Reply

Marsh Posté le 20-12-2018 à 13:46:33    

XaTriX a écrit :

Met le sciprt pour l'édition collaborative du first post :o :o


 
Quoi ça où ça comment ça ? :o
 
Avec plaisir sinon :jap:


---------------
It's a simple mistake to make, to create love and to fall.
Reply

Marsh Posté le 20-12-2018 à 13:55:23    

https://github.com/XaaT/hfr-git2hfr
En plus c'est niquel vu que github est m$ now :o


---------------
"Xat le punk à chien facho raciste. C'est complexe comme personnage." caudacien 05/10/2020
Reply

Marsh Posté le 20-12-2018 à 13:55:39    

Je@nb a écrit :

Et refait le en powershell  :p


J'ai pensé à ça aussi :D


---------------
"Xat le punk à chien facho raciste. C'est complexe comme personnage." caudacien 05/10/2020
Reply

Marsh Posté le 20-12-2018 à 14:33:12    

Je drap aussi! Bonne idée  :jap:

Reply

Marsh Posté le 20-12-2018 à 14:36:30    

Je dois faire de la doc pour l'instant, je me penche sur cette histoire de script après :o


---------------
It's a simple mistake to make, to create love and to fall.
Reply

Marsh Posté le 20-12-2018 à 15:04:46    

Drapdrap

Reply

Marsh Posté le 20-12-2018 à 17:30:57    

[:maman_de_galles:3]

Reply

Marsh Posté le 20-12-2018 à 17:45:14    

Soyez pas pressés pour le topic collaboratif :o


---------------
It's a simple mistake to make, to create love and to fall.
Reply

Marsh Posté le 21-12-2018 à 09:37:53    

Allez je lance. :o
 
Deux astuces de base pour Exchange (2010, à tester pour les autres) :o
 
Afficher l'espace surprovisionné sur une banque ("whitespace" chez MS) :

Code :
  1. Get-MailboxDatabase -Status | Sort-Object Name | Format-Table Name, DatabaseSize, AvailableNewMailboxSpace


 
Déplacer les boites techniques "arbitration" qui sont cachées et empêchent une suppression de banque :

Code :
  1. Get-mailbox -Database "ancienne banque” -Arbitration | New-MoveRequest –TargetDatabase "Nouvelle banque"


 
 
Et comme je sais qu'il y a des personnes avec PRTG...
Par "défaut" si vous voulez envoyer Veeam dans PRTG ils conseillent de l'e-mail, mais le PS ça marche aussi. Il y a un script ici qui vous permet de créer un capteur pour chaque job de sauvegarde en interrogeant directement le serveur Veeam.

Reply

Marsh Posté le 25-12-2018 à 11:51:29    

clads92 a écrit :

Les PowerShelleux, vous mettez quoi en entête de votre script comme bonne pratique ?
J'ai appris avec cet entête  
 

Code :
  1. # ============================================ #
  2. # NAME: monscript.ps1
  3. # AUTHORS : Clads92, MaCogip
  4. # DATE: 18/10/2017
  5. # KEYWORDS: Evolution, ActiveDirectory ,
  6. # VERSION : 0.6
  7. # CHANGELOG :
  8. # COMMENTS :
  9. # Requires -Version 5.0
  10. # ============================================ #


 
C'est toujours d'actualité ?


 
Regarde du coté de new-scriptfileinfo ;)
(ou update-scriptfileinfo si ton script existe deja

Code :
  1. New-ScriptFileInfo -Path c:\scriptdev\hfr.ps1 -Version 1.0 -Author doum -Description "example" -CompanyName HFR -ReleaseNotes "v1.0: first version" -Tags demo -ProjectUri https://forum.hardware.fr ;)


perso je me suis créé un petit repository aussi (un simple partage smb ca suffit pour un petit usage), ce qui me permet de centraliser et partager les scripts avec les collegues.

Code :
  1. $path = '\\fileserver\partage$\ScriptsRepository'
  2. $repo = @{
  3.     Name = 'HFR'
  4.     SourceLocation = $Path
  5.     PublishLocation = $Path
  6.     InstallationPolicy = 'Trusted'
  7. }
  8. Register-PSRepository @repo


Intégrer à powershell code auquel tu rajoutes une commande pour signer ton script et une commande pour publier sur le repository:

Code :
  1. Register-EditorCommand -Name SignCurrentScript -DisplayName 'Sign Current Script' -ScriptBlock {    $cert = (Get-ChildItem Cert:\CurrentUser\My -CodeSigningCert)[0];    $currentFile = $psEditor.GetEditorContext().CurrentFile.Path; Set-AuthenticodeSignature -Certificate $cert -FilePath $currentFile -TimestampServer http://timestamp.comodoca.com}
  2. Register-EditorCommand -Name PublishCurrentScript -DisplayName 'Publish Current Script' -ScriptBlock { $currentFile = $psEditor.GetEditorContext().CurrentFile.Path; Publish-Script -path $currentFile -repository HFR }


avec ca tes collegues ont plu qu'a jouer du install-script/update-script pour avoir tes scripts et c'est top
 
PS : d'ailleurs j'ai un soucis leger ,les 2 commandes register-editorcommand disparaissent a chaque fois que je ferme visualstudio code...
si quelqu'un a une astuce p our que ce soit conservé
 

Reply

Marsh Posté le 25-12-2018 à 12:48:25    

https://wagthereal.com/2017/08/25/v [...] l-profile/ ?
 
Moi j'étais plus sur un git pour la gestion et centralisation des scripts mais c'est pas con de coupler ça avec un psrepo.

Reply

Marsh Posté le 25-12-2018 à 13:19:19    

Je@nb a écrit :

https://wagthereal.com/2017/08/25/v [...] l-profile/ ?

 

Moi j'étais plus sur un git pour la gestion et centralisation des scripts mais c'est pas con de coupler ça avec un psrepo.

 

Git va plus loin en particulier si tu développes a plusieurs mais pour mon besoin c'est bcp trop riche

 

Je suis le seul a faire des scripts
Au pire un collegue et on travaille pas sur les mêmes donc c'est pas intéressant

 

Un repo PS dans un Share ça se met en 2min chrono


Message édité par doum le 25-12-2018 à 16:39:22
Reply

Marsh Posté le 09-01-2019 à 18:49:11    

a peine créé deja mort ce topic :D

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed