Question Get FileVersion services
- Fellerson
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 3
- Remerciements reçus 0
il y a 1 an 9 mois - il y a 1 an 9 mois #31885
par Fellerson
Get FileVersion services a été créé par Fellerson
Bonjour,
je développe un script qui permet de remonter les services AMX* :
Jusqu'ici facile, tous mes services remontent
Maintenant mon hic, c'est que j'aimerais récupérer du PathName pour chaque .exe le FileVersion, avec une boucle, et ajouter à ma liste une nouvelle colonne avec celui-ci. J'ai fait un truc comme ça mais pour l'instant sans succès :
Comme vous voyez dans la liste certain PathName sont entre guillemets et d'autres pas, certains .exe ont une option /start derrière il faudrait donc arrêter la chaîne au .exe
Mes essais en sont à quelque chose comme ça, j'ai mis le Get-WmiObject dans un $Services
cependant j'obtiens quelques erreurs
Merci pour l'aide.
je développe un script qui permet de remonter les services AMX* :
Get-WmiObject win32_service | ?{$_.DisplayName -like '*AMX*'} | select Name, DisplayName, State, PathName
Jusqu'ici facile, tous mes services remontent
Name DisplayName State PathName
---- ----------- ----- --------
asAlarmMonitor AMX Alarm Monitor Running C:\Alarm\Services\AlarmMonitor\AlarmMonitorSvc.exe /startedbyscm:1C165E00-40E31203-ServiceForm
asAlarmScheduler AMX Alarm Scheduler Running C:\Alarm\Services\AlarmScheduler\AlarmSchedulerSvc.exe /startedbyscm:6630F9DD-40E2B94F-ServiceForm
asATTWebService AMX ATT Web Service Running "C:\Alarm\Services\ATTWebService\ATTWebServiceSvc.exe"
asBackup AMX Data Backup Running C:\Alarm\AlarmBackup\BackupSvc.exe /startedbyscm:E93F6D65-40E31557-ServiceForm
asESPANet AMX ESPA Interface Running "C:\Alarm\Services\ESPA\ESPASvc.exe"
asIMC AMX IMC - Interface Monitor Connector Running C:\Alarm\Services\IMC\IMCSvc.exe
asLogCleaner AMX Log Cleaner Running "C:\Alarm\Services\LogCleaner\LogCleanerSvc.exe"
asLTCNET AMX LTC Running "C:\Alarm\Services\LTC\LTCSvc.exe"
asMailCourier AMX E-Mail Courier Running C:\Alarm\Services\MailCourier\MailCourierSvc.exe /startedbyscm:32964717-40E386AA-ServiceForm
asMailReaderNET AMX Mail Reader (POP3) - NET Running "C:\Alarm\Services\MailReader\MailReaderSvc.exe"
asModbusADAM6000 AMX Modbus Interface (ADAM6000) Running "C:\Alarm\Services\ADAM6000\ModbusADAM6000Svc.exe"
asProgWatch AMX Progwatch Running "C:\Alarm\Services\ProgWatch\ProgWatchSvc.exe"
asProgWatchGuard AMX Prog Watch Guardian Running C:\Alarm\Services\ProgWatch\ProgWatchGuardSvc.exe
asRtxDect AMX RTX Courier Running "C:\Alarm\Services\Snom\SnomSvc.exe"
asSafeGuard AMX Safe Guard Running "C:\Alarm\Services\SafeGuard\SafeGuardSvc.exe"
asSMSAlarm365 AMX SMS Courier (Alarm365) Running "C:\Alarm\Services\SMS-Alarm365\Alarm365SMSPagerSvc.exe"
asVETTS AMX Text to Speech (VE) Stopped "C:\Alarm\Services\TTS\VETTSSvc.exe"
asWSM AMX Web Service Manager Running C:\Alarm\Services\WSM\WSMSvc.exe
Maintenant mon hic, c'est que j'aimerais récupérer du PathName pour chaque .exe le FileVersion, avec une boucle, et ajouter à ma liste une nouvelle colonne avec celui-ci. J'ai fait un truc comme ça mais pour l'instant sans succès :
Get-WmiObject win32_service | ?{$_.DisplayName -like '*AMX*'} | select Name, DisplayName, State, PathName | Foreach-Object {
$version = (Get-Item $_.PathName).VersionInfo.FileVersion
}
Comme vous voyez dans la liste certain PathName sont entre guillemets et d'autres pas, certains .exe ont une option /start derrière il faudrait donc arrêter la chaîne au .exe
Mes essais en sont à quelque chose comme ça, j'ai mis le Get-WmiObject dans un $Services
foreach($s in $Services) { $sExe = $s.PathName $sExe.Substring(0, $s.IndexOf(' ')) $s | Add-Member -membertype NoteProperty -name 'Version' -value (Get-Item $sExe).VersionInfo.FileVersion } $s
cependant j'obtiens quelques erreurs
Merci pour l'aide.
Dernière édition: il y a 1 an 9 mois par Fellerson.
Connexion ou Créer un compte pour participer à la conversation.
- Philippe
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 1778
- Remerciements reçus 21
il y a 1 an 9 mois #31920
par Philippe
Réponse de Philippe sur le sujet Get FileVersion services
salut Fellerson
je me suis basé sur ton premier code qui fonctionne bien avec la notion d'objet personnalisé dans select-objet
un petit decoupage(split) du chemin avec son nom de fichier
et bien sur comme tu l'as signalé la suppression des guillemet
j'ai reussi a faire ça qui semble fonctionner :
je me suis basé sur ton premier code qui fonctionne bien avec la notion d'objet personnalisé dans select-objet
un petit decoupage(split) du chemin avec son nom de fichier
et bien sur comme tu l'as signalé la suppression des guillemet
j'ai reussi a faire ça qui semble fonctionner :
Get-WmiObject win32_service | where {$_.DisplayName -like '*AMX*'} | select Name, DisplayName, State, PathName, `
@{label='Version'; expression={(Get-Item "$(Split-Path -Path $_.PathName)\$($_.PathName.Split('\')[-1].Split(' -')[0])".Replace('"', '')).VersionInfo.FileVersion}}
Connexion ou Créer un compte pour participer à la conversation.
- ericlm128
- Hors Ligne
- Membre elite
-
Réduire
Plus d'informations
- Messages : 179
- Remerciements reçus 37
il y a 1 an 8 mois #31925
par ericlm128
Réponse de ericlm128 sur le sujet Get FileVersion services
Salut,
@Philippe
Ta méthode n'as pas résolu correctement le "chemin" de mon service : C:\WINDOWS\system32\dllhost.exe /Processid:{02D4B3F1-FD88-11D1-960D-00805FC79235}
Je propose ceci (je vous l'accorde ce n'est pas très jolie )
@Philippe
Ta méthode n'as pas résolu correctement le "chemin" de mon service : C:\WINDOWS\system32\dllhost.exe /Processid:{02D4B3F1-FD88-11D1-960D-00805FC79235}
Je propose ceci (je vous l'accorde ce n'est pas très jolie )
Get-WmiObject win32_service | Select-Object Name, DisplayName, State, PathName, @{label='Version'; expression={
$PathName = $_.PathName
if ($PathName[0] -eq '"' -and (($idx = $PathName.IndexOf('"', 1)) -ne -1))
{
$PathName = $PathName.Substring(1, $idx - 1)
}
elseif(($idx = $PathName.IndexOf(' ')) -ne -1)
{
$PathName = $PathName.Substring(0, $idx)
}
(Get-Item -LiteralPath $PathName -ErrorAction SilentlyContinue).VersionInfo.FileVersion
}}
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.074 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les initiés
- Get FileVersion services