Question Paramètre Locale avec Get-WmiObject
- Legabs
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 17
- Remerciements reçus 0
il y a 15 ans 3 semaines #8991
par Legabs
Paramètre Locale avec Get-WmiObject a été créé 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
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: (
+ 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.
- Jacques Barathon
- Hors Ligne
- Administrateur
-
Réduire
Plus d'informations
- Messages : 576
- Remerciements reçus 0
il y a 15 ans 3 semaines #9003
par Jacques Barathon
Réponse de Jacques Barathon sur le sujet Re:Paramètre Locale avec Get-WmiObject
Plutôt que d'essayer de \"parser\" 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.
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.
- Legabs
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 17
- Remerciements reçus 0
il y a 15 ans 3 semaines #9004
par Legabs
Réponse de Legabs sur le sujet Re:Paramètre Locale avec Get-WmiObject
Pfff, le boulet ! 
En effet ça va être beaucoup, beaucoup plus simple.
Merci Janel !
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
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les initiés
- Paramètre Locale avec Get-WmiObject