使用 PowerShell 来获取 C:\Windows\System32 目录下所有 .exe 文件的版本号。可以通过 Get-Item 或 Get-ChildItem 获取文件信息,然后使用 VersionInfo 属性来提取版本号。

使用 PowerShell 来获取 C:\Windows\System32 目录下所有 .exe 文件的版本号。可以通过 Get-ItemGet-ChildItem 获取文件信息,然后使用 VersionInfo 属性来提取版本号。

下面是一个示例脚本:

powershellCopy Code
# 获取 C:\Windows\System32 目录下所有 .exe 文件的版本号
$folderPath = "C:\Windows\System32"

Get-ChildItem -Path $folderPath -Filter "*.exe" | ForEach-Object {
    $file = $_
    $version = (Get-Item $file.FullName).VersionInfo.FileVersion
    [PSCustomObject]@{
        FileName = $file.Name
        FilePath = $file.FullName
        Version  = $version
    }
}

解释:

  1. Get-ChildItem -Path $folderPath -Filter "*.exe":获取 C:\Windows\System32 目录下所有扩展名为 .exe 的文件。
  2. ForEach-Object:对于每个 .exe 文件,执行指定的操作。
  3. Get-Item $file.FullName:获取每个文件的详细信息。
  4. VersionInfo.FileVersion:从文件的版本信息中提取版本号。
  5. [PSCustomObject]:以自定义对象的形式输出文件名、路径和版本号。

运行上述脚本后,PowerShell 会输出类似如下的结果:

Copy Code
FileName    FilePath                                Version
--------    --------                                -------
cmd.exe     C:\Windows\System32\cmd.exe             10.0.19041.1
explorer.exe C:\Windows\System32\explorer.exe       10.0.19041.1
...

这样你可以获取所有 .exe 文件的版本号,并且可以进一步处理或导出这些信息。

 

进一步改进:

如果你希望将结果导出到文件(例如 CSV 格式),可以通过以下方式:

powershellCopy Code
# 将结果导出到 CSV 文件
$folderPath = "C:\Windows\System32"
$outputFile = "C:\System32_Executables.csv"

Get-ChildItem -Path $folderPath -Filter "*.exe" | ForEach-Object {
    $file = $_
    $version = (Get-Item $file.FullName).VersionInfo.FileVersion
    [PSCustomObject]@{
        FileName = $file.Name
        FilePath = $file.FullName
        Version  = $version
    }
} | Export-Csv -Path $outputFile -NoTypeInformation

这会将结果保存到 System32_Executables.csv 文件中,便于后续查看和分析。

 

posted @ 2025-04-01 04:09  suv789  阅读(83)  评论(0)    收藏  举报