Question recuperer valeur d'un tableau pour traitement

Plus d'informations
il y a 12 ans 2 jours #17195 par tibo
Bonjour,

je debute sur powershell et je bloque sur un script qui permet de recuperer la version d'un logiciel

$computername = Read-Host \"Entrer un nom de machine\"


Get-WmiObject win32_product -ComputerName $ComputerName -filter \"name='Configuration Manager Client'\" | FT name, installdate, version -auto

j'arrive bien a obtenir le resultat

name installdate version
----

Configuration Manager Client 20140210 4.00.6487.2700

mais je souhaiterai recuperer la valeur de la requete pour traitement

C'est a dire recuperer le numero de version du logiciel pour determiner de la version

J'ai tenté ca mais .....

$computername = Read-Host \"Entrer un nom de machine\"


$ver = (Get-WmiObject win32_product -ComputerName $ComputerName -filter \"name='Configuration Manager Client'\" | FT name, installdate, version -auto)


if ($ver -eq '4.00.6487.2700')
{
Write-Output ('SSCM 2007')
}
else

Write-Output ('SSCM 2012')


Pouvez me guider svp merci d'avance

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

Plus d'informations
il y a 12 ans 2 jours #17196 par Laurent Dardenne
Salut,
tibo écrit:

Pouvez me guider svp merci d'avance

Pour obtenir/manipuler une propriété d'un objet on écrit simplement
[code:1]$Resultat=$Objet.NomDePropriété[/code:1]
Ton erreur est de formater l'objet avant de le traiter, dans ce cas Powershell modifie la structure de l'objet qui n'a plus rien à voir avec celui d'origine.
Le formatage concerne uniquement l'affichage, on utilise peu,voir pas du tout, le résultat de l'appel de ces cmdlets.

Tutoriels PowerShell

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

Plus d'informations
il y a 12 ans 2 jours #17197 par tibo
merci pour ta reponse mais je comprend pas trop pour l'adapter a mon script ....

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

Plus d'informations
il y a 12 ans 2 jours #17198 par Philippe
salut tibo

pour résumé :

tu doit supprimé le formatage de ton Get-WmiObject, c'est à dire enlevé le FT.... en fin de ligne :
[code:1]Get-WmiObject win32_product -ComputerName $ComputerName -filter \"name='Configuration Manager Client'\"[/code:1]
ainsi tu a l'objet telle que le renvoie Get-WmiObject et non la transformation au format texte que fait FT(Format-Table) qui n'est fait que pour un affichage sur la console pour faire court

tu peut ainsi récupéré le numéros de version soit par :

[code:1]$objet = Get-WmiObject win32_product -ComputerName $ComputerName -filter \"name='Configuration Manager Client'\"
$object.version[/code:1]
soit par :
[code:1](Get-WmiObject win32_product -ComputerName $ComputerName -filter \"name='Configuration Manager Client'\"«»).version[/code:1]
et au final $ver contient la version par :

[code:1]$ver = (Get-WmiObject win32_product -ComputerName $ComputerName -filter \"name='Configuration Manager Client'\"«»).version[/code:1]

il faut penser objet et enlevé tout ce qui transforme l'objet en autre chose

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

Plus d'informations
il y a 12 ans 1 jour #17199 par tibo
OK !! j'ai compris merci pour tes explications simples :)

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

Plus d'informations
il y a 12 ans 1 jour #17200 par tibo
Merci pour ton aide j'ai reussi a finaliser mon script

par contre j'ai cree un BAT permettant de lancer le script en admin

runas /user:user@domaine \"powershell.exe .\scripte.ps1\"

je clique sur le bat qui ouvre un CMD et qui me demande mon mot de pass : et ensuite une fenetre powershell souvre et se ferme directement....

Je comprend pas ...

MErci de vos aide

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

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