等到 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
将自定义数据从 Jersey Filter 服务传递到 Jersey End-Point 服务