我知道我可以将UNCpath映射到本地驱动器号。 但是,我想知道是否有办法将UNCpath映射到本地文件夹。 我有一个程序有一个特定的文件夹硬编码到程序中,我想尝试创build一个与映射到UNCpath的名称相同的文件夹,以便可以从networking共享访问数据。 这是可行的吗? 特别是在Windows 2003服务器上。
这符合OP所要求的 – Windows 2003的映射到网络共享的符号链接。 经过许多小时的观察和测试,这是我发现的唯一可以与网络共享工作的组件。
此实用程序将适用于XP和2003映射到网络共享并创建符号链接: http : //schinagl.priv.at/nt/ln/ln.html#symboliclinksforwindowsxp
现在把它放在你放在路径上的目录中,你可以使用senable.exe
(带有symlink.sys
)和ln.exe
来创建符号链接(你将需要从上面的网站以及依赖于Visual C ++运行时DLL)。
将这两个额外的文件放到你有senable.exe
目录中,并确保这个文件全部在路径上。
@echo off SET DIR=%~dp0% @powershell -NoProfile -ExecutionPolicy unrestricted -Command "& '%DIR%Symlink.ps1' %*" pushd "%DIR%" "%DIR%senable.exe" start popd
param ( [string]$symlinktype, [string]$link, [string]$target ) $scriptpath = $MyInvocation.MyCommand.Path $ScriptDir = Split-Path $scriptpath $senable = Join-Path "$ScriptDir" senable.exe $ln = Join-Path "$ScriptDir" ln.exe pushd "$ScriptDir" & cmd /c "$senable" install popd & cmd /c "$ln" -s "$target" "$link"
您需要在Windows 2003上安装以下其他项目(非R2,我不完全确定您还需要什么R2):
我创建了一个巧克力包,将为你做这一切: http : //chocolatey.org/packages/win2003-mklink
与常规符号链接不同,您不能简单地删除文件夹以删除符号链接文件夹。 如果你这样做,它会删除它指向的真实文件夹。 所以请谨慎使用。
是的,有一种将UNC路径映射到本地文件夹的方法:
C:\>mklink /D Develop \\obsidian\Develop symbolic link created for Develop <<===>> \\obsidian\Develop
这是因为我想要一个构建服务器使用我自己的PC的Develop
文件夹作为它的Develop
文件夹:
10/20/2012 11:01 AM <SYMLINKD> Develop [\\obsidian\Develop]
在那里,你有它。
MKLINK [[/D] | [/H] | [/J]] Link Target /D Creates a directory symbolic link. Default is a file symbolic link. /H Creates a hard link instead of a symbolic link. /J Creates a Directory Junction. Link specifies the new symbolic link name. Target specifies the path (relative or absolute) that the new link refers to.
注意 :在我的实际情况中,我需要另一个级别的重定向,因为我使用的程序意识到Develop
是一个符号链接 ,指向一个远程机器,并拒绝遵守。 我告诉该计划闭嘴,并通过给它一个指向本地资源的交叉点来做它所告诉的。
10/20/2012 11:06 AM <JUNCTION> Develop [C:\Develop2\] 10/20/2012 11:01 AM <SYMLINKD> Develop2 [\\obsidian\Develop]
你不能直接做,但是如果你创建一个符号链接,你应该可以将它指向Mapped驱动器号。
净使用电子邮件:\\股份\文件夹#您将要设置这持续或下一次重新启动将打破它。
使用cmd浏览到你想要链接的位置
cd c:\文件夹
mklink / d名称e:\
现在,访问c:\ folder \ name \的任何内容都将访问\\ shares \ folder \
根据Microsoft,您不能将远程计算机(服务器)上的共享文件夹映射到本地文件夹。 例如:
这将无济于事! 正如微软所说的,你不能在远程机器上进行mklink 连接 ,至少不能连接Junction或Hard-link 。 你只能做它作为一个符号链接,这基本上是一个捷径。 所以,如果某个程序需要访问与服务器上相同的本地文件夹…对不起,没有运气! Windows不是Linux让我们不要忘记: –
你不能直接映射,不。 您可以尝试实现已注册为文件系统一部分的Shell命名空间扩展,以便可以将其放在需要的位置,然后让它在内部访问UNC路径。 这不是一件小事,但它应该给你最终的结果,你正在寻找。
假设你想将\\ moo \ cow映射到C:\ cow_files,并且还没有一个名为moo的服务器(如果有的话你可以直接共享文件夹,所以我假设没有),你可以:
编辑主机文件(或者你的真实DNS,如果可以的话)将moo映射到C:\ cow_files上的机器上。 (或者如果目录是需要映射的客户端的本地目录,则指向本地主机。)
在该机器上共享C:\ cow_files作为母牛。
那么你应该能够映射到\\ moo \牛并获得你需要的文件,除非我错过了一些东西(这是可能:))。
经过多次尝试,我终于明白,你不能按照我想要的方式去做。 我尝试使用server 2008中的mklink功能进行符号链接,但事实证明.NET System.IO api无法识别符号链接。 因此,如果在符号链接的文件夹上执行Directory.GetFiles(),则会引发错误。