Question Paramètre Locale avec Get-WmiObject

Plus d'informations
il y a 15 ans 3 semaines #8991 par Legabs
Bonjour à tous,

J'ai un souci avec le paramètre Locale de la cmdlet Get-WmiObject. Voici les commandes que j'exécutais jusqu'à maintenant :

[code:1]
$wmidtQueryDTStart = [System.Management.ManagementDateTimeConverter]::ToDmtfDateTime([DateTime]::Now.AddDays(-1))
Get-WmiObject -computer $SERVER_NAME -query (\"Select * from Win32_NTLogEvent Where TimeWritten >='\" + $wmidtQueryDTStart + \"' and (EventCode = 700 or EventCode = 701 or EventCode = 703)\"«») -Authentication PacketPrivacy[/code:1]

Le problème c'est que sur certains serveurs les évènements me sont renvoyés en français, et sur d'autres, en anglais. Il m'est en conséquence difficile d'en parser le message.

J'ai vu que la commande Get-WmiObject permet de spécifier un paramètre Locale (The preferred locale for WMI objects). Il faut transmettre à ce paramètre un LCID :

[code:1]$lcid = [System.Globalization.CultureInfo]::GetCultureInfo(\"en-US\"«»).LCID
$wmidtQueryDTStart = [System.Management.ManagementDateTimeConverter]::ToDmtfDateTime([DateTime]::Now.AddDays(-1))
Get-WmiObject -computer $SERVER_NAME -query (\"Select * from Win32_NTLogEvent Where TimeWritten >='\" + $wmidtQueryDTStart + \"' and (EventCode = 700 or EventCode = 701 or EventCode = 703)\"«») -Authentication PacketPrivacy -Locale $lcid[/code:1]
Hé là, c'est le drame :

Get-WmiObject : Invalid parameter
At line:1 char:24
+ $events = Get-WmiObject <<<< -computer MYCOMPUTER -query (\"Select * from Win32_NTLogEvent Where TimeWritten >='\" + $wmidtQueryDTStart + \"' and (EventCode = 700 or EventCode = 701 or EventCode = 703)\") -Locale $lcid
+ CategoryInfo : InvalidOperation: (:) [Get-WmiObject], ManagementException
+ FullyQualifiedErrorId : GetWMIManagementException,Microsoft.PowerShell.Commands.GetWmiObjectCommand


Quelqu'un aurait-il une idée ?

Merci,

Gabriel<br><br>Message édité par: Arnaud, à: 23/02/11 21:52

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 15 ans 3 semaines #9003 par Jacques Barathon
Plutôt que d'essayer de \&quot;parser\&quot; le message, pourquoi n'essaies-tu pas de parcourir les chaînes insérées dans ce message, qui sont en général là où l'information utile se trouve ?

Quant tu interroges la classe WMI Win32_NTLogEvent, ces chaînes sont dans la propriété InsertionStrings, qui est donc un tableau de chaînes.

A toi de voir selon chaque type d'évènement à quels emplacements dans InsertionStrings se trouvent les infos dont tu as besoin. Dans la pratique, leur identification est très facile en prenant quelques évènements connus comme exemples.

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 15 ans 3 semaines #9004 par Legabs
Pfff, le boulet ! :pinch:

En effet ça va être beaucoup, beaucoup plus simple. :)

Merci Janel !

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.064 secondes
Propulsé par Kunena