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=

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.


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.


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


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

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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.