Powershell vs Python | Parser du JSON

Je me suis lancé sur Powershell il y a un peu moins de 3 ans pour un projet en rapport avec du provisionning d’instances Cloud avec l’API d’ArubaCloud…et par la suite, je me suis demandé si il n’était pas possible de faire de même avec d’autres API…tel que celle de DigitalOcean, par exemple. Mais dans le même laps de temps, j’ai joué un peu avec Python. Certes, Python et Powershell sont complètement différents.

Powershell #6 | Intéractions avec VirtualBox

Powershell…c’est bon, mangez-en ! Concernant Powershell, je ne suis plus vraiment un novice en la matière…je vous invite à consulter mon Github et découvrir mon projet actuel. Mais, je n’avais pas encoré tenté d’intéragir avec VirtualBox. J’ai trouvé quelques commandes qui peuvent être utiles, sans passer par vboxmanage (sinon, c’est presque de la triche). On commence par démarrer VirtualBox avec la commande suivante : $vbox = New-Object -ComObject “VirtualBox.virtualBox” Pour lister les VM existantes : $vbox.Machines Cette commande va lister toutes les VM, qu’elles soient allumées ou non.

Powershell #5 - Silent Download and Install

Suite de la série d’articles sur Powershell publiés la semaine dernière (et parce que, à la base, je suis un Windowsien), voici un petit trick bien utile pour ceux qui veulent télécharger un fichier exécutable sans avoir à ouvrir de navigateur…en gros : pour faire comme nos amis linuxiens en ligne de commande. Par contre, il faut connaître l’URL de la ressource, sinon ça ne sert à rien (Captain Obvious…) Il nous faudra, tout d’abord, le script suivant à intégrer dans le vôtre (Ce n’est pas le mien, je l’ai juste trouvé sur le web et je le trouve bien pratique) : function Install-MSIFile { [CmdletBinding()] Param( [parameter(mandatory=$true,ValueFromPipeline=$true,ValueFromPipelinebyPropertyName=$true)][ValidateNotNullorEmpty()][string]$msiFile, [parameter()][ValidateNotNullorEmpty()][string]$targetDir ) if (!(Test-Path $msiFile)){ throw "Path to the MSI File $($msiFile) is invalid.

Powershell #1

Les variables Une variable est un objet permettant de stocker des données. Une variable peut tout aussi bien contenir des données textes, chiffres, xml, tableau, etc. Une variable commence toujours par le signe “$”. les types de données Types Description [int] Chiffre (32 bits) [long] Chiffre (64 bits) [string] Texte [char] Caractère signé [8 bits] [byte] Caractère non-signé (8 bits) [bool] Booléen (oui/non) [decimal] Valeur décimale (128 bits) [single] Nombre

Powershell #2

Les commandes Les commandes sont composées de deux éléments : le verbe et le nom Exemple : Get-Service Pour obtenir la liste des commandes disponible pour Powershell, tapez “Get-Command” et la liste de toutes les commandes, incluant les alias s’affichera. Chaque commandes dispose de paramètres obligatoires ou non, ceux permettant d’expliciter le resultat recherché à l’aide de la commande, par exemple : Get-Command -name “ssh“ Les commandes suivantes seront très

Powershell #3

Les fichiers XML Il est important de savoir que Powershell peut générer à la volée du fichier XML et traiter ces mêmes fichiers très facilement en utilisant le type de fichier XML. La génération de fichier XML Pour générer un fichier XML, il faut entrer une série de commandes permettant de définir le nom du fichier, de créer le document, d’écrire dans le document les informations nécessaires et, enfin, de le clôturer : Définir le nom du fichier $filePath = "c:\command.xml" Créer le document New-Object System.XMl.XmlTextWriter($filePath,$Null) Ecrire dans le document $xmlWriter.WriteRaw (Cette commande permet de créer du contenu totalement personnalisé comme du XML SOAP) Finaliser le document $xmlWriter.Finalize $xmlWriter.Close() Par exemple : $filePath = "c:\command.xml" $XmlWriter = New-Object System.XMl.XmlTextWriter($filePath,$Null) $xmlWriter.WriteRaw("$XMLheader") $XmlWriter.WriteRaw("$XMLBody") $XmlWriter.WriteRaw("</soapenv:Envelope>") $xmlWriter.Finalize $xmlWriter.Close() Dans cet exemple, deux variables contenant le header et le body du fichier xml, cela permet de n’avoir qu’un seul fichier “command.xml” à créer et, donc, avoir une plus grand flxibilité et un code un peu plus léger que si le fichier xml devait être généré a chaque fois que c’était nécessaire.

Powershell #4

Les boucles Ces blocs de codes sont destinés à réaliser plusieurs itérations d’un même ensemble d’instructions. Ils ont toutefois besoin d’une directive stipulant les conditions de sortie, sous peine d’écrire une boucle sans fin. La boucle for est une instruction relativement basique et rarement utilisée en raison de son caractère arbitraire. Sa structure est la suivante : for ( valeur de départ ; test ou condition ; incrément / nombre d’itération } par exemple, le code suivant affiche les chiffres de 1 à 5 : for ($i=1; $i -le 5; $i++) {Write-Host $i} Obtenez plus d’informations via : help about_for La boucle foreach est une instruction très fréquemment utilisée en langage Powershell.