因此,在我目前正在实习的公司,他们有大约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文件,我只需要aaa和bbb。
仅供参考:我需要脚本以便我可以使用它来监视zabbix代理并查看特定软件是否在计算机上,以便我可以在Zabbix服务器上运行此脚本。
您正在寻找-include
参数:
Get-ChildItem C:\ -recurse -include "aaa.exe", "bbb.exe"
@Martin Brandl已经回答了你的第一个问题。对于你的问题的第二部分,你可以做这样的事情 -
$AllDrives = Get-PSDrive -PSProvider 'FileSystem'
foreach ($drive in $AllDrives)
{
Get-ChildItem -path $drive.Root -recurse -include "aaa.exe", "bbb.exe"
}
或者你可以在一行中完成 -
Get-PSDrive -PSProvider 'FileSystem' | % {Get-ChildItem -path $_.Root -recurse -include "aaa.exe", "bbb.exe"}
如果您的可执行文件位于-PSProvider
驱动器以外的其他驱动器上,则可以更改FileSystem
参数。