假设某些 Windows 服务使用需要映射网络驱动器且没有 UNC 路径的代码。如何在服务启动时使驱动器映射可用于服务的 session ?以服务用户身份登录并创建持久映射将不会在实际服务的上下文中建立映射。
最佳答案
使用它需要您自担风险。 (我已经在 XP 和 Server 2008 x64 R2 上测试过了)
对于此技巧,您需要 SysinternalsSuite by Mark Russinovich :
第一步: 打开提升的 cmd.exe 提示符(以管理员身份运行)
第二步:
使用 PSExec.exe 再次提升到 root:
导航到包含 SysinternalsSuite 的文件夹并执行以下命令
psexec -i -s cmd.exe
您现在位于 nt authority\system
的提示符中,您可以通过键入 whoami
来证明这一点。 -i
是必需的,因为驱动器映射需要与用户交互
第三步:
使用以下命令将永久映射驱动器创建为 SYSTEM 帐户
网络使用 z:\\servername\sharedfolder/persistent:yes
就这么简单!
警告:您只能从 SYSTEM 帐户以与创建它相同的方式删除此映射。如果您需要删除它,请执行步骤 1 和 2,但将步骤 3 中的命令更改为 net use z:/delete
。
注意:新创建的映射驱动器现在将显示给该系统的所有用户,但他们会看到它显示为“断开网络驱动器 (Z:)”。不要让这个名字骗了你。它可能声称已断开连接,但它适用于所有人。这就是您如何判断此 hack 不受 M$ 支持的方式。
关于windows - 映射服务使用的网络驱动器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/182750/