Windows PowerShell
Voici un nouveau langage de programmation pour scripter Windows, il peut remplacer les batch-file et le command-prompt interactif (cmd.exe). Il s'agit de Windows PowerShell, il fonctionne sur WinXP, W2k3, Vista (downloads gratuits) et il va être inclus dans Windows Server 2008. Ce qui est intéressant, c'est que contrairement à disont les batch file habituels ou les scripts Unix, les commandes retournent des objets et non pas juste du texte. On peut donc appeller des méthodes sur ces objets au lieu d'essayer de filtrer du texte.
Avec Powershell, on peut naviguer avec la base de registre, faire appel aux API de Windows, on peut utiliser les exécutables de Windows, etc.
J'ai eu le temps de zigonner un brin avec, et voici quelques exemples:
- Supprimer le démarrage de Quicktime dans le registre (en bleu: les commandes tappées)Windows PowerShell 
 Copyright (C) 2006 Microsoft Corporation. All rights reserved.
 
 PS C:\Windows\System32> cd hklm:\software\microsoft\windows\currentversion\run
 PS HKLM:\software\microsoft\windows\currentversion\run> Get-ItemProperty .
 
 
 PSPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\software\microsoft\windows\currentversion\run
 PSParentPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\software\microsoft\windows\currentversion
 PSChildName : run
 PSDrive : HKLM
 PSProvider : Microsoft.PowerShell.Core\Registry
 Windows Defender : C:\Program Files\Windows Defender\MSASCui.exe -hide
 SynTPEnh : C:\Program Files\Synaptics\SynTP\SynTPEnh.exe
 PSQLLauncher : "C:\Program Files\Protector Suite QL\launcher.exe" /startup
 TPwrMain : C:\Program Files\TOSHIBA\Power Saver\TPwrMain.EXE
 ShStatEXE : "C:\Program Files\McAfee\VirusScan Enterprise\SHSTAT.EXE" /STANDALONE
 McAfeeUpdaterUI : "C:\Program Files\McAfee\Common Framework\UdaterUI.exe" /StartedFromRunKey
 ThpSrv : C:\Windows\system32\thpsrv /logon
 QuickTime Task : "C:\Program Files\QuickTime\QTTask.exe" -atboottime
 iTunesHelper : "C:\Program Files\iTunes\iTunesHelper.exe"
 
 
 PS HKLM:\software\microsoft\windows\currentversion\run> Remove-ItemProperty . "QuickTime Task"
 PS HKLM:\software\microsoft\windows\currentversion\run>
- Vérifier la version d'un programme qui s'exécute et lancer un installateur s'il s'agit d'une vieille version (script):# pcproviderupdate.ps1 
 # Vérifie si le serveur d'impression secondaire de PaperCut est présent et le met à jour
 # Alexandre Blanchette <blancha@csvdc.qc.ca>
 # 2007/08/15
 
 $newpcversion = "7, 3, 0, 4874"
 
 $pcprint = get-process pc-print -ErrorAction SilentlyContinue
 
 if ($pcprint) {
 if ($pcprint.ProductVersion.Equals($newpcversion)) {
 write-output "Version courante"
 } else {
 write-output "Installation de la nouvelle version"
 new-psdrive setup filesystem \\cea2003\msidist$\pc-print | out-null
 setup:\pcng-setup-7.3.4874.exe /COMPONENTS="prov_print" /VERYSILENT
 }
 } else {
 write-output "Papercut print provider ne fonctionne pas en ce moment."
 }
- La preuve que c'est vraiment des objets et non pas juste du textePS C:\Users\blancha> get-wmiobject Win32_Printer 
 Location :
 Name : Sutton
 PrinterState : 0
 PrinterStatus : 3
 ShareName :
 SystemName : 57ATIF432X04P
 .
 .
 .
 Location : 2 ième étage, près de la machine à café
 Name : \\casrvimp\RICOH Aficio 2045e PCL 6 (SRH)
 PrinterState : 0
 PrinterStatus : 2
 ShareName : CA-SRH-2045
 SystemName : \\casrvimp
 
 PS C:\Users\blancha> $imprimantes = get-wmiobject Win32_Printer
 PS C:\Users\blancha> $imprimantes.count
 7
 
 PS C:\Users\blancha> $imprimantes[6]
 Location : 2 ième étage, près de la machine à café
 Name : \\casrvimp\RICOH Aficio 2045e PCL 6 (SRH)
 PrinterState : 0
 PrinterStatus : 2
 ShareName : CA-SRH-2045
 SystemName : \\casrvimp
 
 PS C:\Users\blancha> $imprimantes[6] | Format-list *
 Status : Unknown
 Name : \\casrvimp\RICOH Aficio 2045e PCL 6 (SRH)
 __GENUS : 2
 __CLASS : Win32_Printer
 __SUPERCLASS : CIM_Printer
 __DYNASTY : CIM_ManagedSystemElement
 __RELPATH : Win32_Printer.DeviceID="\\\\casrvimp\\RICOH Aficio 2045e PCL 6 (SRH)"
 __PROPERTY_COUNT : 86
 __DERIVATION : {CIM_Printer, CIM_LogicalDevice, CIM_LogicalElement, CIM_ManagedSystemElement}
 __SERVER : 57ATIF432X04P
 __NAMESPACE : root\cimv2
 __PATH : \\57ATIF432X04P\root\cimv2:Win32_Printer.DeviceID="\\\\casrvimp\\RICOH Aficio 2045e PCL 6 (SRH)"
 Attributes : 8728
 Availability :
 AvailableJobSheets :
 AveragePagesPerMinute : 0
 Capabilities : {4, 2, 3, 5}
 CapabilityDescriptions : {Copies, Color, Duplex, Collate}
 Caption : \\casrvimp\RICOH Aficio 2045e PCL 6 (SRH)
 .
 .
 .
 SystemName : \\casrvimp
 TimeOfLastReset :
 UntilTime :
 VerticalResolution : 600
 WorkOffline : False
 Dernière modification le 16/08/2007 @ 17:40 par blanalex
Écrit le: 16/08/2007 @ 18:31
Si ma mémoire est bonne, c'était supposé faire partie intégrante de Vista...