powershell
  • powershell-v2.0
  • 2013-01-15 60 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属性中有其他参数,或者用引号括起来,您可能需要修改这些参数/引号。另外,发布​​结果。

    相关问题