2016-08-23 3 views
1

у меня есть некоторое требование, где я должен узнать текущей версии и обновить данные установленного приложения (выделено):узнать текущую версию и обновление установленного приложения

enter image description here

И у меня есть этот PowerShell сниппет для модификации:

$server="XXXXXXXXXX" 

$ServiceInfo = Get-WmiObject win32_service -ComputerName $server -ExpandProperty Version | Where-Object {$_.Name -eq "VSTTAgent"} 
if($ServiceInfo.State -eq "Running") 
{ 
    $userAccount = $ServiceInfo.DisplayName.ToString() 
    Write-Host ("VSTTAgent service is Running on $server and $userAccount ")     
} 

ответ

1

Чтобы получить версию продукта, вы можете использовать Get-Item Командлет используя PathName свойство вашего $ServiceInfo объекта:

$ServiceInfo.PathName.Trim('"') | Get-Item | select -expand VersionInfo | select ProductVersion 
+0

Спасибо большое, я получил версию, но как получить другие данные, такие как номер обновления, который я выделил на скриншоте? пожалуйста, предложите. – LogicalDesk

+0

Я сомневаюсь, что это возможно вообще, если vs не раскрывает эту информацию в реестре или с помощью командлета. Вероятно, вам придется жить с информацией о версии, которая позволит вам определить, какое обновление включено. –

+0

Есть ли другой способ, с помощью которого я могу получить эту информацию? – LogicalDesk

1

По существу такой же, как @MartinBrandl, но WMI только версия.

Get-WmiObject win32_service -Filter 'Name="VSTTAgent"' -ComputerName $server | ForEach-Object { 
    $filter = 'Name="{0}"' -f $_.PathName -replace '\\', '\\' 
    $version = (Get-WmiObject CIM_DataFile -Filter $filter -ComputerName $server).Version 

    if ($_.State -eq 'Running') { 
     $userAccount = $ServiceInfo.DisplayName.ToString() 
     Write-Host ("VSTTAgent ($version) service is Running on $server and $userAccount") 
    } 
} 
Смежные вопросы