找到网络驱动器的UNC路径?

Dou*_*auf 101 windows networking unc mapped-drive

我需要能够确定WEBMethods项目的网络Q驱动器的路径.我以前的代码在我的配置文件中.出于安全原因,我在目录中放置了单个字符.我不确定分号是什么,但我认为双斜线是驱动器名称起作用.

问题:在Windows 7计算机上是否有一种简单的方法可以找出UNC对于任何特定驱动器位置的完整路径?

码:

allowedWritePaths=Q:/A/B/C/D/E/
allowedReadPaths=C:/A/B;//itpr99999/c$/A/FileName.txt
allowedDeletePaths=
Run Code Online (Sandbox Code Playgroud)

Lac*_*ing 270

在Windows中,如果您已映射网络驱动器而您不知道它们的UNC路径,则可以启动命令提示符(" 开始"→"运行"→"cmd.exe")并使用该net use命令列出映射的驱动器及其UNC路径:

C:\>net use
New connections will be remembered.

Status       Local     Remote                    Network

-------------------------------------------------------------------------------
OK           Q:        \\server1\foo             Microsoft Windows Network
OK           X:        \\server2\bar             Microsoft Windows Network
The command completed successfully.
Run Code Online (Sandbox Code Playgroud)

请注意,这显示了运行该命令的用户上下文的映射和连接的网络文件共享列表.如果您cmd.exe在自己的用户帐户下运行,则显示的结果是您自己的网络文件共享.如果您cmd.exe在其他用户帐户(例如本地管理员)下运行,您将看到该用户的网络文件共享.

  • 请注意,不要以管理员身份运行cmd.exe (11认同)
  • 这应该标记为答案.谢谢! (10认同)
  • @theyetiman因为如果您以管理员身份运行 - 您的用户特定映射不会显示.正如我刚刚发现的那样 (5认同)
  • 这是不必要的困难 (2认同)

mat*_*kie 9

wmic path win32_mappedlogicaldisk get deviceid, providername
Run Code Online (Sandbox Code Playgroud)

结果:

DeviceID  ProviderName
I:        \\server1\Temp
J:        \\server2\Corporate
Y:        \\Server3\Dev_Repo
Z:        \\Server3\Repository
Run Code Online (Sandbox Code Playgroud)

作为批处理文件(src):

@if [%1]==[] goto :Usage
@setlocal enabledelayedexpansion
@set _NetworkPath=
@pushd %1
@for /f "tokens=2" %%i in ('wmic path win32_mappedlogicaldisk get deviceid^, providername ^| findstr /i "%CD:~0,2%"') do @(set _NetworkPath=%%i%CD:~2%)
@echo.%_NetworkPath%
@popd
@goto :EOF
:: ---------------------------------------------------------------------
:Usage
  @echo.
  @echo. Get the full UNC path for the specified mapped drive path
  @echo.
  @echo.  %~n0 [mapped drive path]
Run Code Online (Sandbox Code Playgroud)

例子:

C:\> get-unc-path.bat z:\Tools\admin

\\EnvGeoServer\Repository\Tools\admin
Run Code Online (Sandbox Code Playgroud)

批处理脚本改编自https://superuser.com/a/1123556/16966。如果您喜欢这个解决方案,请务必也去投票。

2021 年 11 月 15 日更新:错误修复。以前,该批处理仅报告驱动器号 UNC root,而忽略了报告文件夹路径。

%CD%%%i是通过某种 CMD 魔法设置的。
%CD:~0,2%并分别%CD:~2%提取驱动器号和尾随路径子字符串。例如:~2%,从“Z:\Tools\admin”执行“\Tools\admin”。


Ibo*_*Ibo 6

这个问题已经被回答了,但是由于有一种更方便的方法来获取UNC路径,因此我建议使用Path Copy,它是免费的,您实际上可以一键获得任何所需的路径:

https://pathcopycopy.github.io/

这是显示其工作原理的屏幕截图。最新版本具有更多选项,并且肯定还有UNC路径:

在此处输入图片说明

  • 顺便说一句,当您使用Shift-Right鼠标单击调出扩展的上下文菜单时,Windows(至少7和10)内置“复制为路径”。las,在映射驱动器上,它也不包含UNC路径。仅当您在资源管理器中查看UNC路径时,它才会复制文件的UNC路径。 (7认同)
  • 我认为使用操作系统自带的“net use”比下载第三方工具更方便。 (3认同)

dla*_*zon 5

如果您拥有Microsoft Office:

  1. 右键 -将驱动器,文件夹或文件从Windows资源管理器中拖动到Word文档或Outlook电子邮件的正文中
  2. 选择“ 在此处创建超链接

插入的文本将是所拖动项目的完整UNC。

  • 对于处于**公司封锁环境**中的我们所有人来说,这是多么实用且快速的解决方案!非常感谢解决方法! (9认同)

小智 5

答案很简单PowerShell

Get-WmiObject Win32_NetworkConnection | ft "RemoteName","LocalName" -A
Run Code Online (Sandbox Code Playgroud)

如果您只想拉取UNC一个特定驱动器,请添加一条 where 语句:

Get-WmiObject Win32_NetworkConnection | where -Property 'LocalName' -eq 'Z:'  | ft "RemoteName","LocalName" -A
Run Code Online (Sandbox Code Playgroud)