2

我使用 SUBST 命令将映射驱动器创建到某个文件夹。在控制台应用程序中,我可以访问该目录,而在 Windows 服务应用程序中我无法访问同一目录。换句话说,以下行返回 false

Directory.Exists(@"x:\directory")

其中 x: 使用 SUBST 定义如下:

SUBST x: c:\xdrive

如何访问 Windows 服务应用程序中的子映射目录?

4

4 回答 4

3

Subst 存在于您的注册表配置单元中。Windows 服务必须在您访问时运行。更改服务的凭据。

如果这不可能,那么您可以以编程方式创建指向该位置的链接。例如通过调用 System.Process 来运行cmd.exe /c subst命令。

于 2009-12-10T09:43:13.550 回答
1

问题是使用子集命令制作的虚拟驱动器仅对制作它的用户可见。该服务正在使用另一个用户权限运行,因此它对服务应用程序不可见。

于 2011-06-03T19:06:16.980 回答
0

如果您的服务作为本地系统运行,请按照此处的说明进行操作:

http://blogs.msdn.com/b/adioltean/archive/2004/11/29/271987.aspx

这将为您提供一个作为本地服务运行的命令提示符以获取您的 subst 命令

于 2010-10-14T22:50:30.390 回答
0

这里描述了几种方法来源:https://en.wikipedia.org/wiki/SUBST#Registry_(DOS_Devices)

以下对我有用。

  1. 以管理员身份运行 Powershell

  2. 要将 X: 映射到 C:\XDrive,请键入:

    New-ItemProperty  `
      -Path 'HKLM:\system\CurrentControlSet\Control\Session Manager\DOS Devices\' `
      -Name "X:" -Value "\\DosDevices\C:\XDrive\"
    
于 2021-06-27T22:30:10.830 回答