介绍:
我有一个脚本,通过UNCpath将一些数据从本地服务器(服务器A)复制到另一台服务器(服务器B),服务器B中的共享是为每天更换的外部硬盘创build的,外部HDD被交换使用mountvol命令挂载新的硬盘,分配的字母是相同的,但是您可能已经知道每个硬盘的卷名是不同的。
我得到它的问题(一步一步):
如果我在服务器B中打开资源pipe理器并转到UNCpath,这意味着在服务器A中有一个来自服务器B的用于我(用户X)的会话,在我使用另一个帐户(用户Y)执行的cmd中,例如:
dir \\path"
我看到这些文件,所以在这一点上,来自同一台计算机和不同用户的2个会话。
好奇心:用户Y的会话将保持,直到在命令行中写入另一个命令,或者cmd窗口失去焦点 – 而不是在dir命令完成之后立即closures会话。
有了以上的好奇心,在这种情况下,用户Y的第二个会话可以被忽略,这使得我们在服务器A中为用户X留下一个会话
我去服务器B,使用mountvol卸载硬盘(也可以在计算机pipe理中完成),交换硬盘,然后我装入新的硬盘。
我回到服务器A,在cmd窗口中我再次执行任何帐户用户X或Y的DIR命令,我得到:
The system cannot find the file specified.
如果我去打开资源pipe理器窗口并刷新窗口,文件也不会出现。
可能的解决scheme – >我希望你的帮助在这里:)
由于脚本(批处理脚本)是自动的,我不想检查服务器A中服务器B是否有任何挂起的会话,我想强制closures服务器A BUT中给定共享的所有挂起会话我想从服务器B中的脚本来完成,“net sess(ion(s))”是为了本地目的。
如果您有任何其他build议,那么我的意思是另一个可能的解决scheme,请让我知道。 谢谢。
技术信息:
Server A: Windows Server 2008 R2 Enterprise SP1 Server B: Windows Server 2003 Enterprise SP2
注:如果我错了,纠正我,但我认为:
刷新浏览器窗口中的UNCpath视图不起作用,因为卷名不同,请卸载并重新安装(同一个HDD),使刷新正常工作。 这可能是一个安全function? 或者这是一个错误? 还是我错过了什么?
运行一个uncpath的dir后,检索文件列表应立即closures会话,因为没有更多的“处理”。
运行一个uncpath的目录后,会话保持打开,但是当你点击另一个窗口(cmd窗口失去焦点)会话消失。
这是PowerShell如何远远优于本地批处理脚本工具的一个很好的例子。 您可以使用New-PSDrive cmdlet映射服务器B上的驱动器。该驱动器将仅保留用于此特定的PowerShell会话,因此如果执行新的脚本和/或PowerShell会话,驱动器映射将不再被caching。 您也可以根据您的使用情况删除驱动器并使用Remove-PSDrive重新创build驱动器。