等到 Symantec End Point DoScan.exe 完成文件扫描

Posted

技术标签:

【中文标题】等到 Symantec End Point DoScan.exe 完成文件扫描【英文标题】:Wait until Symantec End Point DoScan.exe finishes scanning the file 【发布时间】:2011-03-14 13:28:35 【问题描述】:

我正在开发一个使用文件上传的应用程序。我的客户端在 Windows Server 上使用 Symantec End Point Protection。

所以,我正在使用示例代码来检查文件是否正在上传到服务器上。

我正在使用命令行调用 SEP。

示例代码:

              String[] commands =  new String[6];
              commands[0] = "cmd";
              commands[1] = "/c";

              commands[2] = "C:\\Program Files\\Symantec\\Symantec Endpoint Protection\\DoScan.exe";
              commands[3] = "/cmdlinescan";
              commands[4] = "/ScanFile";
              commands[5] = fileName;

             Process process = Runtime.getRuntime().exec(commands);

             int exitVal = process.waitFor();

我也遇到过,SEP 会为每个扫描的文件生成一个每日日志。

scanResult = "C:\\Documents and Settings\\All Users\\Application Data\\"Symantec\\Symantec Endpoint Protection\\Logs\\";   

所以,我想在这里扫描文件。

我已在该位置放置了开始读取文件的检查。一旦它从进程中返回 0

"int exitVal = process.waitFor();" 在 SEP 将日志写入文件之前返回。

那么,SEP "DoScan.exe" 是否会在内部调用线程来开始扫描文件。

如果是,请给我推荐一个替代方案。

任何帮助将不胜感激

【问题讨论】:

你弄明白了吗? 它已有 5 年的历史了。这是为了演示。 【参考方案1】:

我创建了一个适合我的解决方案。

在这里,int exitVal = process.waitFor(); 在 Symantec AV 将结果写入 .log 文件之前返回发生了什么。

所以,我写了一个循环,根据日志文件的最后修改日期不断检查。

一旦日志文件被修改,我就会读取结果。

【讨论】:

process.waitFor() 返回一个整数 1 知道这意味着什么吗?

以上是关于等到 Symantec End Point DoScan.exe 完成文件扫描的主要内容,如果未能解决你的问题,请参考以下文章

C++ duration_cast<>(time_point_end - tine_point_start)。 count() 溢出

ATL 宏 END_CONNECTION_POINT_MAP 中的警告 C4640

从 Spotify End Point 获取所需的图像

将自定义数据从 Jersey Filter 服务传递到 Jersey End-Point 服务

使用 Java Script End Point 的 GAE Open-ID 联合身份验证

read_ila