Loading

La commande PowerShell Compare-Object

none

Quelques astuces fort utiles, mais parfois ignorées de la cmdlet Compare-Object.

Ce dossier est issu de notre publication IT Pro Magazine (10/10). Pour consulter les schémas et illustrations associés, rendez-vous dans le club abonnés.


Ce n’est pas la première fois que nous abordons la cmdlet PowerShell Compare-Object. Celle-ci comporte un alias diff et s’avère très utile pour comparer deux types d’objets différents (que demander de plus ?). En général, vous voulez comparer une certaine propriété. Voici un exemple standard permettant d’illustrer ce propos :

PS C:\> $now=get-process
PS C:\> calc
PS C:\> $after=get-process
PS C:\> diff $now $after -Property name
name SideIndicator
---- -------------
calc =>
PS C:\>

L’objet $now est un cliché (snapshot) de tous les processus en cours d’exécution. Je démarre ensuite Calculator et je prends un autre cliché. Grâce à Compare- Object, je peux identifier le processus dont l’exécution a été lancée dans l’intervalle. SideIndicator affiche cette information. Mais, qu’en est-il maintenant si je souhaite voir plus de choses sur le processus, peut-être parce que je souhaite arrêter tous les processus qui viennent d’être lancés ? J’ai besoin de dire à Compare-Object de passer l’intégralité de l’objet via le pipeline :

PS C:\> diff $now $after -Property name -passthru
Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName
------- ------ ----- ----- ----- ------ -- -----------
87 7 5496 11480 71 1.26 1724 calc

Si je réexécute la cmdlet et que je transmets le résultat vers Get-Member, je peux vérifier que j’obtiens en fait un objet Process. Cela me permet alors d’exécuter ce qui suit :

PS C:\> diff $now $after -Property name -passthru | kill

Voyons quelques autres manières d’employer Compare-Object. J’ai deux dossiers que je souhaite, en quelque sorte, maintenir synchronisés. Les fichiers présents dans folderA doivent aussi figurer dans folderB. Le fait que folderB comporte des fichiers supplémentaires ne pose pas de problèmes, tant qu’il conserve également une copie complète du contenu de folderA. Maintenant, je peux voir s’il y a un écart entre les deux :

PS C:\> $a=dir f:\folderA
PS C:\> $b=dir f:\folderB
PS C:\> $a.count
77
PS C:\> $b.count
76
PS C:\>

Pour les besoins de mon exemple, je vais seulement effectuer la synchronisation sur le nom du fichier :

PS C:\> diff $a $b -property Name
name SideIndicator
---- -------------
a.csv =>
b.csv =>
d.csv =>
w.txt <=
w1.txt <=
winrminfo.txt <=
wmidata.txt <=

Je m’intéresse uniquement aux fichiers présents dans $a mais pas dans $b. Je peux essayer de filtrer la sortie sur SideIndicator, mais je vais passer les objets et regarder uniquement les fichiers présents dans folderA :

PS C:\> diff $a $b -property Name -pass | Where
{$_.DirectoryName -eq «F:\folderA»}
Directory: F:\folderA
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a--- 5/14/2009 4:38 PM 863 w.txt
-a--- 5/14/2009 4:42 PM 266 w1.txt
-a--- 3/3/2009 12:41 PM 3538 winrminfo.txt
-a--- 3/21/2009 4:47 PM 96786 wmidata.txt

Ces fichiers doivent être ajoutés à folderB :

PS C:\> diff $a $b -property Name -pass | Where {$_.
DirectoryName -eq «F:\folderA»} | copy -dest f:\folderB
-passthru

Directory: F:\folderB

Mode LastWriteTime Length Name
---- ------------- ------ ----
-a--- 5/14/2009 4:38 PM 863 w.txt
-a--- 5/14/2009 4:42 PM 266 w1.txt
-a--- 3/3/2009 12:41 PM 63538 winrminfo.txt
-a--- 3/21/2009 4:47 PM 96786 wmidata.txt

Je transfère simplement les objets de type fichier à Copy-Object et j’utilise son paramètre -passthru afin de voir les résultats. Désormais, tous les fichiers dans folderA figurent aussi dans folderB. Il ne faudrait pas beaucoup plus de temps pour effectuer la synchronisation dans les deux sens.
 

 
Blogger sur iTPro.fr ! Nous sommes constamment à la recherche de nouvelles voix et de nouvelles collaboration éditoriales sur iTPro.fr. Si vous êtes intéressés pour blogger ou écrire pour nous, contactez Sabine Terrey, Directrice de la rédaction, iTPro.fr.
Nous sommes ouverts à tous les thèmes portant sur les services, les solutions et les technologies informatiques d'entreprise. Notre seule condition sera la qualité de votre contribution, quel que soit votre thème de prédilection, actualités, annonces, lancements, stratégie, tutoriaux, trucs et astuces, bonnes pratiques... cette liste n'étant pas exhaustive, stay tuned, au plaisir de collaborer.
 
Le Guide essentiel de la reprise après sinistreLe Guide essentiel de la reprise après sinistreDécouvrez en trois étapes essentielles, comment assurer la continuité de service et la survie de votre entreprise, de la maîtrise des concepts de la reprise sur sinistre et de la haute disponibilité jusqu’au calcul du coût des interruptions de service pour votre entreprise.Téléchargez le guide essentiel de la reprise après sinistre

Ressources Informatiques

1er Guide thématique dédié à la mise œuvre d’un Cloud Privé L’objet de ce 1er guide thématique publié par la rédaction du mensuel IT Pro Magazine est d’apporter aux responsables informatiques une synthèse…
   IT Pro Magazine | 12 pages
Découvrez le 1er Guide dédié à la mise en œuvre d’un Cloud Privé
Guide de protection des environnements Hyper-V La virtualisation pose de nouveaux défis en terme de protection des serveurs et de continuité d'activité. Découvrez comment mettre en œuvre la protection…
   ITPro Magazine | 4 pages
Téléchargez le guide dédié à la protection des environnements Hyper-V !
Guide d’optimisation & synchronisation des données SharePoint L'objet de ce guide est d'aider les administrateurs et responsables d’environnements SharePoint distribués à planifier et mettre en œuvre une stratégie…
   Avepoint | 18 pages
Découvrez les meilleures pratiques d’optimisation et synchronisation des données SharePoint
Booster les performances des plates-formes virtuelles ? Découvrez les meilleures pratiques pour optimiser radicalement les performances de vos environnements virtualisés tout en optimisant le fonctionnement…
   Diskeeper | 12 pages
Téléchargez maintenant ce livre blanc exclusif
IT Pro Magazine Spécial Windows 8 Au programme de cette édition de IT Pro Magazine, un dossier complet sur Windows 8, un aperçu de Hyper-V 3.0, le fonctionnement du Cloud Privé Microsoft,…
   IT Pro Magazine | 60 pages
Téléchargez cette édition gratuitement
Le guide du stockage signé IT Pro Magazine La modernisation de l'infrastructure de stockage ne s'improvise pas. Ce guide exclusif publié par IT Pro Magazine vous fera découvrir les technologies…
   IT Pro Magazine | 16 pages
Téléchargez le Guide des Solutions de Stockage Nouvelle Génération
 

Conseil & Expertise

Bénéficiez de toute l'expertise informatique des magazines,
découvrez les abonnements papiers et leurs compléments
numériques sur Internet via le Club Abonnés.

S'abonner au mensuel IT Pro Magazine pour - 9 € / mois

Déjà abonné à nos magazines informatiques professionnels ?

» Accédez aux services de votre
Club Abonnés sur iTPro.fr