Delphi服务中如何挂载网盘?

问题描述 投票:0回答:1

我是Delphi新手,但我需要修复Delphi代码,以便在执行“服务启动”时挂载网络磁盘。默认情况下,当我的应用程序由 Windows 服务启动时,应用程序无法访问网络磁盘,因此解决方案是在我的服务中插入 UNC 映射脚本。你能帮我解决这个问题吗?

delphi windows-services
1个回答
3
投票

看起来这不是 Delphi 的问题,假设是 ShellExecute 不能很好地工作(我不清楚)。

在这种情况下,可能是[网络]文件权限问题,我建议您选择两种不同的解决方案:

  • 将服务的登录设置为具有所需文件的正确(并经过测试)网络读/写/执行权限的帐户。请记住,服务默认使用“系统”帐户运行,这对于访问本地资源来说是可以的,但对于网络资源来说就不那么好了。
  • 更改您的 ShellExecute 方法,允许在不同用户的上下文中启动“alestart.exe”(该服务作为系统运行,在其配置中存储启动“alestart.exe”的用户凭据进程。要在不同用户的上下文中启动进程,您可以使用 CreateProcessWithLogonW API 调用。为了使其正常工作,您的进程必须启用 SeImpersonatePrivilege。

问候。

© www.soinside.com 2019 - 2024. All rights reserved.