Débuter avec Powershell par la pratique

powershellllogo.jpg

Télécharger Powershell

get-command -commandtype cmdlet

Les commandes de powershell sont au format verbe-commande les verbes ou prefix des commandes

get-command -verb get (liste que les commandes get)

(get-command -commandtype cmdlet).count   Ce qui donne 236 commande

(get-command).count (compte le nombre de commande de powershell 411 total)

get-command set* (liste non seulement les commandes, mais alias et aussi tous les exécutables dans le path)

– (get-command set*).count  nombre de 36

get-command ipconfig (Affiche des informations sur ipconfig du système)

get-command ipconfig | format-list  ( les informations sur ipconfig complète avec un meilleur le format de sortie)

write-host Hello World (un classique)

get-help set-alias (fournit le l’aide sur set-alias)

get-help set-alias -detailed (fournit aide et plusieurs exemple)

set-alias np c:\windows\notepad.exe (crée un alias vers notepad, maintenant np lance notepad)

get est le verbe par defaut il n’est pas necessaire de faire get avant chaque commande exemple

get-date (on obtient la date)

date (on obtient la date)

dir (affiche le contenu du repertoire courant)

get-childitem ou encore plus simplement childitem (affiche le contenu du repertoire courant)

get-command dir (l’on voit bien que dir et un alias de get-childitem)

Avec powershell l’on manipule des objets exemple

$a = « salut » (ajoute la chaine salut comme valeur à la variable $a)

$a.length (affiche la longueur de l’objet)

write-host ((date).day +5) (le jour de mois +5 affiche le total)

write-host (date).day +5 (affiche la chaine x + 5)

$a.gettype() (on obtient le type de l’objet)

$a = [int] « 4 » (donne le type int à $a)

$d = [datetime] « 2007-05-10 » (type et affecte une valeur à $d)

$d.gettype() (on voit bien que le type est datetime)

$d | get-member (affiche toutes les propriété et méthode accessible pour votre objets ici de type datetime)

net config workstation Même commande qu’en DOS

get-process (affiche les processus sur le système)

get-process | where { $_.processName -eq « googleearth »} | stop-process (stop le processus thunderbird)

get-process | where { $_.processName -eq « googleearth »} | stop-process -confirm (demande avant de faire)

get-process | where { $_.processName -eq « googleearth »} | stop-process -whatif (simule la commande ne sert à rien)

get-psdrive (fournit la liste des magasins de donnés une vue du système de fichiers de façon étendu avec variables d’environnement, alias et registre)

get-eventlog -list (Liste les journaux d’évènement)

get-eventlog system | more (Liste les journaux du système d’exploitation)

get-eventlog « directory service » |where {$_.source -eq « ntds kcc »}| out-host -paging (remonte les infos du journal contenant NTDS KCC)

get-wmiobject -list | more (Permet de lister l’ensemble des class d’objets wmi disponible)

get-wmiobject win32_computersystem (permet d’avoir un certain nombre d’info sur son système)

get-wmiobject -class Win32_OperatingSystem -namespace root/cimv2 -computername . | Format-list TotalVirtualMemorySize, TotalVisibleMemorySize, FreephysicalMemory, FreeVirtualMemory, FreeSpaceInPagingFiles (Affiche l’état de la mémoire physique et virtuel)

get-wmiobject -class win32_LogicalDisk -computername NomDuPCDistant (Affiche l’état des disques distant)

$ui = new-object -ComObject « shell.Application » (création d’un objet COM)

$path=$ui.BrowseForFolder(0, « Choix d’un répertoire, svp… »,0,0) (Démarre une boite dialogue)

$path.self.path ( affiche le chemin choisis par l’utilisateur)

get-process | where {$_.responding -eq $false } | stop-process (Arrête les processus qui ne répond plus)

get-service | where {$_.status -eq « running » } (liste les services qui tourne)

stop-service -Name spooler ( arrêt du service spooler)

get-service |where {$_.canstop} |restart-service -whatif (Liste les services qu’il est possible de redémarrer)

get-wmiobject Win32_bios affiche la version du bios

get-wmiobject Win32_bios | select -property [a-z]* liste toute les propriétés du BIOS

get-wmiobject win32_bios -computername NomDeLaMachine Affiche le Bios d’une machine distante

« Serveur1 », « Serveur2 » | foreach -process {get-wmiobject win32_bios -computername $_} | format-table (Liste Bios sur deux machines)

get-wmiobject win32_logicaldisk -filter « drivetype=3 » -computername NomDeLaMachine (affiche les informations sur les disques locaux d’une machine)

get-wmiobject win32_logicaldisk -filter « drivetype=3 » -computername NomDeLaMachine | measure-object -property freespace, size -sum (espace libre et espace total sur un disque local d’une machine distante)

get-wmiobject win32_computersystem -property Username -computername NomDeLaMachine (affiche l’utilisateur connecté)

get-wmiobject win32_product -computername . Liste les applications installer sur la machines clientes

(get-wmiobject -computername . -List |where {$_.name -eq « win32_product »}).install(« \\serveur\partages\Package.msi ») (installe une application sur une machine distante)

get-wmiobject win32_ntdomain (Affiche les informations du domaine sur lequel le poste est connecté)

get-wmiobject win32_ntdomain | select -property [a-z]* | out-host -paging (affiche plus d’informations sur le domaine du poste client)

3 Comments »

Comment by Manolo

septembre 10, 2007 @ 6:45

Génère l’aide en ligne des 129 commandes en format txt

Get-Command | Foreach {Get-Help $_ -detailed |Out-File -FilePath C:\temp\$_.txt}

Comment by nlevastre

mars 12, 2008 @ 1:25

Pour l’installation d’une application sur une machine distante, est-il possible de donner comme paramètres le nom du site à installer ainsi que le chemin complet d’un fichier de propriétés ?

Comment by Ionut

septembre 13, 2018 @ 8:47

Good morning,

I was digging around for information on your website today and came across your resource page.

This is a fantastic list of resources. I didn’t even know about some of them.

If you’re interested, I actually have a image resizer tool https://resizemyimg.com/.

It might make a great addition to your page.

Either way, keep up the great work! Thanks for your time.

Leave a comment