嘗試:
(Get-Command $path.pathname).FileVersionInfo.FileVersion
當您使用| select pathname
是本質上創建一個pathname
屬性的新對象。您可以通過輸出輸送到Get-Member
,讓你輸入信息和類型成員的列表,請參閱此例如:
PS> Get-WmiObject Win32_Service -Filter "Name = 'Spooler'" | Get-Member
TypeName: System.Management.ManagementObject#root\cimv2\Win32_Service
Name MemberType Definition
---- ---------- ----------
PSComputerName AliasProperty PSComputerName = __SERVER
...
與
PS> Get-WmiObject Win32_Service -Filter "Name = 'Spooler'" | select pathname| Get-Member
TypeName: Selected.System.Management.ManagementObject
Name MemberType Definition
---- ---------- ----------
Equals Method bool Equals(System.Object obj)
GetHashCode Method int GetHashCode()
GetType Method type GetType()
ToString Method string ToString()
pathname NoteProperty System.String pathname=C:\Windows\System32\spoolsv.exe
所有這一切說,你得到的路徑遠程計算機上的服務,然後檢查本地計算機上的版本。如果您可以在服務器上啓用遠程處理,你可以這樣做:
Invoke-Command $server { $path = (Get-WmiObject Win32_Service -Filter "Name = 'SysMgmtHp'").PathName; (Get-Command $path).FileVersionInfo.FileVersion }
這將讓服務二進制的文件版本在遠程計算機上。
感謝那個基思。儘管如此,它仍然沒有顯示任何東西。 – lara400
運行'Get-WmiObject Win32_Service -Filter「Name ='SysMgmtHp'」-ComputerName $ server |選擇路徑名| fl *'。它顯示了什麼信息?也就是說,路徑是有效的。順便說一下,你知道你正在爲遠程計算機上的服務獲取路徑,然後檢查該服務的本地副本的版本,對不對? –
.... ahh ...翻轉 - 我檢查本地副本上的版本?幫助它! - 我想要得到這個路徑,然後使用路徑來確定遠程計算機上的版本....那就是問題了!由於本地計算機沒有服務,但遠程服務做..任何想法如何讓遠程服務器使用其遠程路徑它找到並確定文件的exe文件? – lara400