我们创建了一个小型Windows程序,用于从互联网网站下载文件。它在大多数个人电脑上都有罚款。在一个特定的客户情况下,该程序失败。如果程序以常规用户或管理员身份运行,但不能作为本地系统运行,则可以下载文件。该程序是Windows服务的一部分,因此必须作为本地系统运行。有问题的PC是域的一部分。我已阅读本地系统是一个匿名帐户,并没有网络访问权限。即使在互联网上访问文件,这可能是问题吗?作为系统运行时,程序不会从互联网下载文件
回答
请注意,这应该是一个评论,而不是一个答案,我只是不能评论。
要更深入地了解问题,可以创建一个与您的服务具有相同权限的cmd。默认情况下,这将是本地系统。我想它也适用于PowerShell,但我不清楚它的含义。
sc create debugcmd binpath= "cmd /K start" type= own type= interact
sc start debugcmd
最后的命令会给你一个错误信息,类似于The service did not respond to the start or control request in a timely fashion.
可以忽略。
这段代码将在会话0中创建一个shell(请参阅Session 0 isolation),但由于我们声明服务是交互式的,因此您可以访问它。从那里你可以开始你的诊断。
此处谨慎的提示:您在该cmd中进行的每个调用都将具有本地系统权限。当您另一个应用程序或以其他方式调用子进程时,它将继承这些权限。
记住,当你完成删除服务,因为它带来了相当大的安全隐患:
sc delete debugcmd
感谢您的评论。我一直在使用psexec -i -s cmd.exe,我相信这会创建一个作为本地系统运行的cmd。 http://stackoverflow.com/questions/77528/how-do-you-run-cmd-exe-under-the-local-system-account – user2442193 2014-09-06 14:58:18
声明服务交互不会自动免除它从会话0隔离。有一个向后兼容的功能,可以让它按照需要工作,但在Windows 7中它默认是关闭的;要启用它,请启动交互式服务检测服务。 Windows的更高版本中可能不存在此功能。无论如何,'psexec'提供了一个更简单的解决方案。 – 2014-09-06 20:55:06
这是一个MS错误。我已经实施了MSDN推荐的解决方案,并且它工作得很好。这是原来的代码:
var filePath = "https://someurlhere";
var xsl = new ActiveXObject("Msxml2.DOMDocument.3.0");
xsl.async = false;
xsl.validateOnParse = false;
xsl.load(filePath);
如果当在MSXML服务器端或客户端多核环境进行操作的DOM文档加载XML文件通过HTTP负载方法可能会失败。
解决方法是在xsl.async = false下添加以下语句:
xsl.setProperty("ServerHTTPRequest", true);
有关详细信息,你可以去这里: http://support.microsoft.com/kb/281142
感谢大家和雷米勒博特别是对他们的帮助。
- 1. 作为本地系统运行时,WebClient无法下载文件
- 2. 从互联网上下载文件?
- 3. Python - 从互联网下载.exe文件
- 4. 从Android的互联网/文件系统加载类
- 5. 从互联网下载文件到我的下载文件夹
- 6. 通用互联网文件系统
- 7. 为什么从互联网上下载文件时会发生这种情况
- 8. 从互联网下载资源时iOS应用程序崩溃
- 9. 从互联网下载文件,同时能够中止下载任何时间
- 10. Windows阻止.XLS文件从互联网下载内容为HTML
- 11. 运行从互联网上下载的本地库
- 12. 在互联网上运行exe文件
- 13. “系统找不到指定的文件”运行C++程序时
- 14. 避免“应用程序从互联网下载”警告
- 15. Tag MP3从互联网下载?
- 16. 从应用程序运行exe可执行文件与系统
- 17. NSIS - 从互联网上下载并解压zip文件
- 18. 从互联网上C++下载文件,WINHTTP
- 19. Java从互联网下载文件没有链接名称?
- 20. 如何使用dd Linux命令从互联网下载文件?
- 21. Python从互联网地址下载所有文件?
- 22. 在运行时统一检查互联网连接
- 23. 从Android下载FTP文件时只读文件系统错误
- 24. 作为本地系统运行进程
- 25. Phonegap iOS将文件从联机文件下载到本地文件系统不起作用
- 26. 从互联网下载SQLite数据库并加载到Android应用程序
- 27. iPhone - 从互联网上下载文件,并保存到文件direcory
- 28. 从文件系统运行SSIS包装
- 29. 从命令行运行脚本时将文件下载为csv
- 30. 网址下载android系统
如果帐号被限制使用互联网服务,它不能以任何代价下载文件,除非它被授予权限! – 2014-09-06 04:00:25
谢谢。我们怎么做到这一点? – user2442193 2014-09-06 04:07:02
通过更改本地帐户的权限并授予其网络服务权限! – 2014-09-06 04:08:54