相关疑难解决方法(0)

GetFileVersionInfo() 返回错误的文件版本信息

我有一个应用程序需要检查各种系统 EXE 和 DLL 的版本,以确定它们是否易受攻击。这是一个本机 C++ 应用程序,它在其清单中不提供任何特定的 WinSxS 链接。在 Windows 7 上,当我在绝对路径(例如“c:\windows\system32\taskeng.exe”)上调用 GetFileVersionInfo 时,我会收到“C:\Windows\winsxs\x86_microsoft-windows-taskscheduler-engine_31bf3856ad364e35_6”的版本信息。 1.7600.16385_none_e582a352202e02c8\taskeng.exe"

因此,澄清一下,Windows 资源管理器报告的版本 c:\windows\system32\taskeng.exe 是 6.1.7600.16699。GetFileVersionInfo() 报告的 c:\windows\system32\taskeng.exe 版本为 6.1.7600.16385。

如何强制我的应用程序不通过 WinSxS 重定向其文件?

winapi winsxs

3
推荐指数
1
解决办法
3384
查看次数

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

我的 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
}   
Run Code Online (Sandbox Code Playgroud)

powershell

3
推荐指数
1
解决办法
2万
查看次数

使用 PowerShell 在计算机上查找特定的 .exe 文件

因此,在我目前正在实习的公司中,他们有大约 20 台装有公司指定软件的“技术笔记本电脑”。它们位于 C:\ 目录中。

例如:

aaa.exe 位于 C:\aaa\aaa.exe

bbb.exe 位于 C:\bbb\bbb.exe

我真正需要的是一个 .ps1 脚本来在列表中显示这些特定的可执行文件。

到目前为止我所拥有的是: Get-ChildItem C:\ -recurse | where {$_.extension -eq ".exe"}

现在,我相信它只是编辑搜索查询,因为这给了我 C:\ 驱动器上的所有 .exe 文件,我只需要aaabbb

仅供参考:我需要该脚本,以便我可以使用它来监视 zabbix 代理并查看特定软件是否在计算机上,以便我可以在 Zabbix 服务器上运行此脚本。

windows shell powershell monitoring

2
推荐指数
1
解决办法
1万
查看次数

标签 统计

powershell ×2

monitoring ×1

shell ×1

winapi ×1

windows ×1

winsxs ×1