我在Windows 7 Ent中运行Dotnet 3.5可执行文件,作为域中的GPO计算机启动脚本。该脚本驻留在网络共享上。 exe作为本地系统运行。 exe运行正常。
我想在此exe中访问Web服务,但似乎本地系统无法访问每个文档的网络资源。但是,如果将相同的exe复制到C驱动器并在相同的帐户和相同条件(即GPO启动脚本)下从那里运行,则可以访问Web服务。
从C:驱动器运行时本地系统如何访问Web服务,而不是从网络共享运行?有没有什么可以使它从网络共享工作,而不首先被复制到本地驱动器?本地系统是否与SYSTEM相同,与NTAuthority \ system相同?
到目前为止,我已尝试过以下功能。这些都不起作用:
- 在代码中模拟域用户。
- 完全信任.Net安全配置中的所有区域
- 将网络共享添加到IE中的“受信任的站点”。
- 使用netbios名称而不是文件服务器的完全限定名称,即\ server \ share,而不是\ server.domain.com \ share
醇>
以下我无法解决此问题:
- 将组策略客户端服务的登录帐户更改为域用户
- 将exe作为登录脚本运行。它必须是启动脚本。
醇>
要重现此问题,请执行以下操作:
- 使用一些网络功能创建一个简单的exe,即WebClient.DownloadString(“http://www.google.com”)
- 将exe部署到网络共享
- 以普通用户身份运行以显示没有错误
- 运行whoami以显示当前用户
- 运行psexec -s -i cmd.exe
- Cmd将以SYSTEM(本地系统或NT Authority \ System)
开始
- 运行whoami以显示当前用户
- 从网络共享运行exe以显示无法下载页面。
- 将exe复制到C盘。
- 运行exe以显示页面已下载。
醇>