PowerShell脚本 - 检查多台PC是否存在文件,然后获取该文件版本

时间:2014-03-26 15:20:03

标签: powershell

我的PowerShell技能还处于起步阶段,请耐心等待。 我需要做的是从文本文件中获取PC列表并检查文件是否存在。一旦确定,我需要拿起那些拥有该文件的PC,并检查文件中的FileVersion。然后最后输出到CSV文件。

这就是我所拥有的,而且我不确定这是否应该是我应该如何去做的:

ForEach ($system in (Get-Content C:\scripts\systems.txt))

if  ($exists in (Test-Path \\$system\c$\Windows\System32\file.dll))
{
    Get-Command $exists | fl Path,FileVersion | Out-File c:\scripts\results.csv -Append
}   

1 个答案:

答案 0 :(得分:4)

对于初学者脚本来说还不错,你几乎是对的。让我们稍微修改一下。要获取版本信息,我们只需从another an answer获取有效的代码即可。

ForEach ($system in (Get-Content C:\scripts\systems.txt)) {
    # It's easier to have file path in a variable
    $dll = "\\$system\c`$\Windows\System32\file.dll"

    # Is the DLL there?    
    if  ( Test-Path  $dll){
        # Yup, get the version info
        $ver = [System.Diagnostics.FileVersionInfo]::GetVersionInfo($dll).FileVersion
        # Write file path and version into a file.  
        Add-Content -path c:\scripts\results.csv "$dll,$ver"
    }
}