– 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)
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}
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 ?