我有一个VB6应用程序,可以从Windows 7 32位计算机连接到多个POS终端。 POS终端映射到Windows 7机器,我可以从资源管理器或cmdline / shell从Windows 7机器访问POS终端。
应用程序已更新为ADO 2.8,并且已重新编写了我不再拥有源代码的所有其他控件和组件。经过几次恼人的打嗝后,我让应用程序在Windows 7计算机上重新编译而没有错误。
现在出现问题。 VB6应用程序无法查看或导航到任何映射的驱动器!我尝试过简单的UAC设置;我已将应用程序设置为在Windows XP SP3模式下运行;我试过以管理员身份运行。这些东西(以及这些东西的许多排列)都不起作用。
有关如何使这项工作的任何建议?
答案 0 :(得分:10)
添加此注册表设置为我解决了问题:http://technet.microsoft.com/en-us/library/ee844140%28v=ws.10%29.aspx。
要解决此问题,请配置EnableLinkedConnections 注册表值。此值使Windows Vista和Windows 7能够运行 共享过滤后的访问令牌与之间的网络连接 管理员成员的完全管理员访问令牌 组。配置此注册表值后,LSA会检查是否 还有另一个与当前用户关联的访问令牌 会话,如果网络资源映射到访问令牌。如果是LSA 确定存在链接的访问令牌,它添加网络 分享到链接的位置。配置EnableLinkedConnections 注册表值
单击“开始”,在“启动程序和文件”框中键入regedit,然后单击“确定” 然后按ENTER键。
找到并右键单击注册表子项HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Policies \ System。
指向“新建”,然后单击“DWORD值”。
键入EnableLinkedConnections,然后按ENTER键。
右键单击“EnableLinkedConnections”,然后单击“修改”。
在“数值数据”框中,键入1,然后单击“确定”。
- 醇>
退出注册表编辑器,然后重新启动计算机。
答案 1 :(得分:5)
我相信你遇到了麻烦,因为偶然的驱动器映射是按用户进行的,而在UAC系统上,管理员组用户有两个不同的上下文(每个令牌一个:SU&提升)。
有系统级驱动器映射这样的东西,它是在系统用户(NT Authority \ System)下完成的。当您在此帐户下映射驱动器并持久映射它时,所有用户都可以查看和使用映射(根据文件的常用访问权限)。
执行此操作的正常方法是通过域级GPO(组策略对象),这意味着如果在公司托管LAN环境中,则可以贿赂本地盒子游戏。
在Workgroup机器中执行此操作的一种方法是通过AT命令从提升命令提示符将该字母映射为System:
at 8:53 am "net use m: \\MediaShare\MyLibrary
ThePW /user:MediaShare\TheUser /persistent:yes > nul"
远程服务器是MediaShare,用户是TheUser,密码是ThePW,而上午8:53是将来一两分钟,以避免明天意外安排。
但是由于会话0隔离,这在Vista上失败了!
所以......在Run CMD.exe as Local System Account使用第三个替代方案,这与ForcePush对How to map a network drive to be used by a service的回复相同。
我相信这就是你在这里的目标。
答案 2 :(得分:0)
不知道你是否想过这个,但对我来说这是ChDir命令(即使上面有注册表修复)。
我的代码
ChDir "P:\Temp\VidCap\Cam1\" 'I almost never use ChDir
Open "list.txt" For Output As #1
并且所有VB6内置文件命令看起来都是直接的,但任何操作,没有错误,没有任何内容。我通过明确地使用路径解决了这个问题(在我的代码中,它是在一个字符串中,但你可以明确地使用它):
dd = "P:\Temp\VidCap\Cam1\"
Open dd & "list.txt" For Output As #1
按预期工作。
希望这会有所帮助
ħ
答案 3 :(得分:0)
试试这个:
以管理员身份打开命令提示符,然后输入:
net use Z: \\IP Address\share /user:you passwd /persistent:Yes
根据需要更改“IP 地址”、“共享”名称以及您的用户名和密码。
本文作者是 howtogeek (source)。
答案 4 :(得分:0)
我遇到了同样的问题。尝试使用 Commondialog 方法访问 USB 和映射驱动器时,VB6 不断崩溃,即使驱动器和文件都可以通过资源管理器正常访问。问题是驱动器未设置为共享。
通过在资源管理器中选择连接的USB驱动器然后右键单击来解决