Encontrar o caminho UNC de uma unidade de rede?

112

Preciso ser capaz de determinar o caminho da unidade Q de rede em funcionamento para um projeto WEBMethods. O código que tenho antes está em meu arquivo de configuração. Coloquei letras de um único caractere dentro dos diretórios apenas por razões de segurança. Não tenho certeza para que serve o ponto-e-vírgula, mas acho que as barras duplas são onde o nome da unidade é reproduzido.

Pergunta: Existe uma maneira fácil em uma máquina com Windows 7 de descobrir qual é o caminho completo do UNC para qualquer local específico da unidade?

Código:

allowedWritePaths=Q:/A/B/C/D/E/
allowedReadPaths=C:/A/B;//itpr99999/c$/A/FileName.txt
allowedDeletePaths=
Doug Hauf
fonte

Respostas:

295

No Windows, se você mapeou unidades de rede e não sabe o caminho UNC para elas, pode iniciar um prompt de comando ( Iniciar → Executar → cmd.exe ) e usar o net usecomando para listar suas unidades mapeadas e seus caminhos 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.

Observe que isso mostra a lista de compartilhamentos de arquivos de rede mapeados e conectados para o contexto do usuário no qual o comando é executado. Se você executar cmd.execom sua própria conta de usuário, os resultados mostrados são os compartilhamentos de arquivos de rede para você. Se você executar cmd.execom outra conta de usuário, como o Administrador local, verá os compartilhamentos de arquivos de rede para esse usuário.

Lachlan Dowding
fonte
12
Tenha cuidado para não executar cmd.exe como administrador
Dave Mateer
1
@DaveMateer pode ser uma ideia para dizer por quê?
theyetiman
6
@theyetiman porque se você executar como administrador - seus mapeamentos específicos de usuário não serão exibidos. Como acabei de descobrir
Andez
Isso é tão desnecessariamente difícil
Fueled By Coffee,
11

Se você tiver o Microsoft Office:

  1. DIREITO - arraste a unidade, pasta ou arquivo do Windows Explorer para o corpo de um documento do Word ou e-mail do Outlook
  2. Selecione ' Criar hiperlink aqui '

O texto inserido será o UNC completo do item arrastado.

Dlauzon
fonte
2
Que solução prática e rápida para todos nós em ambientes de bloqueio corporativo ! Muito apreciada solução alternativa!
Marcus Mangelsdorf
6

Essa pergunta já foi respondida, mas como há uma maneira mais conveniente de obter o caminho UNC e mais algumas, recomendo usar o Path Copy, que é gratuito e você pode obter praticamente qualquer caminho que desejar com um clique:

https://pathcopycopy.github.io/

Aqui está uma captura de tela demonstrando como funciona. A versão mais recente tem mais opções e definitivamente o caminho UNC também:

insira a descrição da imagem aqui

Ibo
fonte
7
BTW, "Copiar como caminho" vem embutido no Windows (pelo menos 7 e 10) quando você usa Shift-Clique com o botão direito do mouse para abrir o menu de contexto estendido. Infelizmente, em uma unidade mapeada, isso também NÃO inclui o caminho UNC. Somente quando você estiver olhando para um caminho UNC no Explorer, ele copiará o caminho UNC do arquivo.
maio
1
Acho que usar o net useque vem com o sistema operacional é mais conveniente do que baixar uma ferramenta de terceiros.
shoover
1

A resposta é simples PowerShell:

Get-WmiObject Win32_NetworkConnection | ft "RemoteName","LocalName" -A

Se você deseja puxar apenas UNCpara uma unidade específica, adicione uma instrução where:

Get-WmiObject Win32_NetworkConnection | where -Property 'LocalName' -eq 'Z:'  | ft "RemoteName","LocalName" -A
s31064
fonte
0
$CurrentFolder = "H:\Documents"
$Query = "Select * from Win32_NetworkConnection where LocalName = '" + $CurrentFolder.Substring( 0, 2 ) + "'"
( Get-WmiObject -Query $Query ).RemoteName

OU

$CurrentFolder = "H:\Documents"
$Tst = $CurrentFolder.Substring( 0, 2 )
( Get-WmiObject -Query "Select * from Win32_NetworkConnection where LocalName = '$Tst'" ).RemoteName
Dieseyer
fonte