2013-10-17 61 views
1

我想用PowerShell在Windows上创建一个文件的符号链接。我正在使用PowerShell社区扩展中的New-Symlink cmdlet。我可以在UNC路径上使用New-Symlink吗?

在努力弄清楚New-Symlink的语法后,我能够让它在本地驱动器上正常工作。不过,我试图让它在文件共享工作,当我运行命令在那里,我得到这个输出

[PC-KHARPER] <~>$ New-Symlink '\\nyprodfs01\profiles$\kharper\testDir\testFile2' '\\nyprodfs01\profiles$\kharper\testFile' 
New-Symlink : Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED)) 
At line:1 char:1 
+ New-Symlink '\\nyprodfs01\profiles$\kharper\testDir\testFile2' '\\nyprodfs01\pro ... 
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    + CategoryInfo   : NotSpecified: (Microsoft.Power...stDir\testFile2:UnresolvedPscxPathImpl) [New-Symlink], Unauthoriz 
    edAccessException 
    + FullyQualifiedErrorId : CreateSymbolicLinkError,Pscx.Commands.IO.Ntfs.NewSymlinkCommand 

是对UNC路径期望的输出?或者它应该工作,我只是做错了什么?

+0

我不知道它是否支持目标是另一个UNC路径,但使得Windows上的符号链接需要提升的权限。 *您的脚本运行是否升高? *提升的用户是否对目标路径具有管理权限? – Eris

+0

我正在运行提升提示,但我没有文件服务器的管理员权限。 –

+0

试过与在机器上拥有管理权限的人共用,但仍然无法使用。没有错误信息,但没有成功。 –

回答

0

如果您使用PS5附带的符号链接支持(在发布此问题后出现问题),则可以挂载符号链接到UNC共享。

[host]: PS> New-Item -ItemType SymbolicLink -Path <localpath> -Value \\<uncpath>

有一个问题,如果你需要传递凭证作为新建项目不采取creds。我使用的解决方法是将PSDrive安装到该文件夹​​,然后符号链接PSDrive。

[host]: PS> New-PSDrive Z FileSystem \\<uncpath> -Credential <cred> [host]: PS> New-Item -ItemType SymbolicLink -Path <path> -Value Z:\