powershell
  • powershell-v2.0
  • 2013-01-15 120 views 0 likes 
    0

    任何想法爲什麼我沒有得到什麼回到下面?該文件在我查詢的服務器上,如果我在本地執行它,它可以在獲取文件版本時正常工作。FileVersion輸出爲空

    $computer = Get-Content -Path c:\temp\servers1.txt 
    
    foreach ($server in $computer){ 
    
    $path = Get-WmiObject Win32_Service -Filter "Name = 'SysMgmtHp'" -ComputerName $server | select pathname 
    
    (Get-Command $path).FileVersionInfo.FileVersion 
    
    } 
    

    回答

    1

    嘗試:

    (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 } 
    

    這將讓服務二進制的文件版本在遠程計算機上。

    +0

    感謝那個基思。儘管如此,它仍然沒有顯示任何東西。 – lara400

    +0

    運行'Get-WmiObject Win32_Service -Filter「Name ='SysMgmtHp'」-ComputerName $ server |選擇路徑名| fl *'。它顯示了什麼信息?也就是說,路徑是有效的。順便說一下,你知道你正在爲遠程計算機上的服務獲取路徑,然後檢查該服務的本地副本的版本,對不對? –

    +0

    .... ahh ...翻轉 - 我檢查本地副本上的版本?幫助它! - 我想要得到這個路徑,然後使用路徑來確定遠程計算機上的版本....那就是問題了!由於本地計算機沒有服務,但遠程服務做..任何想法如何讓遠程服務器使用其遠程路徑它找到並確定文件的exe文件? – lara400

    0

    你可以爲名爲'SysMgmtHp'的服務發佈$path.pathname的輸出嗎?有些服務在.pathname屬性中有其他參數,或者用引號括起來,您可能需要修改這些參數/引號。另外,發佈​​結果。

    相關問題