NET USE 更改未传播到 Explorer

NET USE 更改未传播到 Explorer

我有一个脚本,我正在使用它来尝试修改系统上的驱动器映射。它同时执行NET USE [Drive Letter] [Share Path]NET USE [Drive Letter] /delete,并且这两个操作都成功完成(由其NET USE自身确认),但是当我打开文件资源管理器时,我通过它更改、添加或删除的任何映射都不会显示,我甚至仍然可以通过这些映射访问共享文件夹。

例如:

  • 我创建了一个映射(B:) \\127.0.0.1\ShareA,我可以通过以下方式访问它B:
  • 然后我运行NET USE并得到一个列表,其中有一个条目,说Status: OK, Local: B, Remote \\127.0.0.1\ShareA...
  • 然后我运行NET USE B: \\127.0.0.1\ShareB,结果显示操作已成功完成
  • 我重新运行NET USE,单个条目的 Remote 值已更改为\\127.0.0.1\ShareB
  • 我打开资源管理器(或运行)并转到B:,然后得到ShareA,而不是ShareB

我已完成相同的操作/delete,第一次成功完成,下一次抛出错误 2250(不存在),但文件资源管理器中仍然存在映射。

发生了什么,导致这些更改无法传播到 Explorer?

PS 我以管理员身份运行 CMD,我也尝试过重新启动该Windows Explorer过程(对于文件夹和 Shell,我将这两个分开),但都没有任何效果。我即将尝试重新启动,但这不是一个有效的解决方案,因为这些更改需要在系统启动时进行。

PPS 我刚刚尝试过NET USE \\127.0.0.1\ShareA /delete,但还是出现同样的 2250 错误

答案1

发现问题了。这是因为 CMD 以管理员身份运行。为了解决这个问题,我尝试正常运行 CMD,现在这些更改正在应用。尽管这似乎违反直觉,但当它以管理员身份运行时,似乎是USE在不同的环境中运行。

我不知道这在 方面意味着什么UAC,但我见过一些脚本,其中控制台可以在运行时提升其安全权限。如果其他人遇到这个问题,他们也许可以看看这是否有效。

相关内容