我有一个通常无人登录的 Windows Server 2008 实例。我希望它有一个驱动器号 Z:映射到远程共享 \sharecomputer\sharename,以便 Windows Server 实例上的 Web 应用程序可以通过 Z 访问远程共享上的文件:远程共享需要提供用户名和密码才能访问其上的文件。
答案1
net use
从技术上讲,编写一个使用或类似程序来连接共享的程序可能是可行的。然后让该程序作为服务运行,将其设置为自动启动,并在与 Web 应用程序相同的用户帐户下运行。然后,您必须分配allow interaction with the desktop
给该服务。即使这样,我也不能 100% 确定它会起作用。
这里最好的(也是标准的)做法是以有权访问该共享的用户身份运行 Web 应用程序,并将其写入\\server\share
而不是Z:
。那么您根本不必映射驱动器。
答案2
在服务帐户下启动应用程序一次。然后停止它。现在应该有一个包含ntuser.dat
文件的配置文件。
运行regedit
。导航到HKEY_USERS
(底部工具栏必须显示Computer\HKEY_USERS
)。文件 -> 加载配置单元 -> 找到您刚刚创建的 ntuser.dat 文件。打开。给它一个密钥名称,如“服务帐户”或其他名称,这无关紧要。如果计算机抱怨该文件正在使用中,您可能需要重新启动。
导航至 KEY_USERS\Service Account\Network。右键单击该树节点,新建 -> 密钥。将密钥命名为大写的驱动器号(问题中的“Z”)。
在该键中创建以下值:
Name Type Value
ConnectionType DWORD32 0x1
DeferFlags DWORD32 0x4
ProviderFlags DWORD32 0x1
ProviderName STRING "Microsoft Windows Network"
ProviderType DWORD32 0x00020000
RemotePath STRING "\\path\on\network"
UserName DWORD32 0x0
导航回 KEY_USERS\Service Account 级别(单击它),文件 -> 卸载 Hive。是的。
启动服务,现在它已映射网络驱动器(假设服务帐户有权访问网络共享和其中的 NTFS 权限)。如果您不在域或类似环境中,服务帐户无法分配共享权限,则必须存储共享的凭据。如果是这种情况,将服务帐户设为完整用户帐户、以此身份登录、设置网络驱动器和存储凭据要比通过注册表设置完成所有操作容易得多。