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 texte
PS 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...