我们有一个旧的 VB6 应用程序,可以自动通过电子邮件发送报告。它从服务器上的计划任务运行。有时,用户会运行 exe - 它位于一个我们无法将其锁定的文件夹中,并且由于过于复杂而无法进入此处的原因,它必须保留在该文件夹中。有没有办法阻止用户运行exe,同时仍然让它从计划任务运行?我可以修改 exe 的源代码,所以如果有人能帮我弄清楚如何做,这是一个选项。
我将调用您现有的应用程序 AppChild 和一个新的 VB6(或其他程序语言)程序 AppParent。
修改 AppChild 以在 Sub Main() 或在 Form_Load() 事件中加载的第一个窗体中测试命令行参数。如果命令行参数不存在,AppChild 将终止。
AppParent 将位于其他用户无法访问的位置。计划任务运行 AppParent,后者运行 AppChild 并传递所需的命令行参数。如果需要,可以通过传递计算出的哈希值并在 AppChild 中对其进行解码来保护这一点。
或者,如果用户无权访问计划任务,您可以只运行 AppChild ,从计划任务传递所需的参数。如果用户确实有权访问计划任务,这将不起作用,因为他们可以看到传递的参数并创建传递所需参数的快捷方式。
您没有说明服务器正在运行哪个操作系统,但是如果您尝试在没有登录用户的情况下运行计划任务,则在使用网络资源时可能会遇到问题。任务管理器进行了重大更新以处理安全问题,以防止黑客在没有登录用户的情况下运行任务。基本上,除非用户登录,否则网络资源(例如电子邮件)不可用。https://technet.microsoft.com/en-us/library/cc722152(v=ws.11).aspx
我发现解决该问题的唯一方法是使用始终登录的具有正确权限的用户运行机器。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句