2

我在 Windows 7 Ent 中运行 Dotnet 3.5 可执行文件,作为域中的 GPO 计算机启动脚本。该脚本驻留在网络共享上。该 exe 作为本地系统运行。exe运行正常。

我想在此 exe 中访问 Web 服务,但似乎本地系统无法访问每个文档的网络资源。但是,如果将相同的 exe 复制到 C 驱动器并在相同帐户和相同条件下从那里运行(即 GPO 启动脚本),则可以访问 Web 服务。

从 C: 驱动器运行而不是从网络共享运行时,本地系统如何访问 Web 服务?有什么办法可以使它从网络共享工作,而无需先复制到本地驱动器?本地系统是否与 SYSTEM 相同且与 NTAuthority\system 相同?

到目前为止,我已经尝试了以下方法以使其工作。这些都不起作用:

  1. 在代码中模拟域用户。
  2. 对 .Net 安全配置中的所有区域给予完全信任
  3. 在 IE 中将网络共享添加到受信任的站点。
  4. 使用 netbios 名称而不是文件服务器的完全限定名称,即 \server\share,而不是 \server.domain.com\share

我无法解决以下问题:

  1. 将组策略客户端服务的登录帐户更改为域用户
  2. 运行 exe 作为登录脚本。它必须是启动脚本。

要重现此问题,我执行以下操作:

  1. 创建一个带有一些网络功能的简单 exe,即 WebClient.DownloadString(" http://www.google.com ")
  2. 将 exe 部署到网络共享
  3. 以普通用户运行以显示没有错误
  4. 运行 whoami 以显示当前用户
  5. 运行 psexec -s -i cmd.exe
  6. Cmd 将以 SYSTEM 启动(本地系统或 NT Authority\System)
  7. 运行 whoami 以显示当前用户
  8. 从网络共享运行 exe 以显示它将无法下载页面。
  9. 将exe复制到C盘。
  10. 运行exe显示页面已下载。
4

0 回答 0