Znajdź ścieżkę UNC dysku sieciowego?

112

Muszę być w stanie określić ścieżkę sieciowego dysku Q w pracy dla projektu WEBMethods. Kod, który mam wcześniej, znajduje się w moim pliku konfiguracyjnym. Umieściłem pojedyncze litery wewnątrz katalogów tylko ze względów bezpieczeństwa. Nie jestem pewien, do czego służy średnik, ale myślę, że podwójne ukośniki są miejscem, w którym pojawia się nazwa napędu.

Pytanie: Czy na komputerze z systemem Windows 7 można w łatwy sposób dowiedzieć się, jaka jest pełna ścieżka UNC dla określonej lokalizacji dysku?

Kod:

allowedWritePaths=Q:/A/B/C/D/E/
allowedReadPaths=C:/A/B;//itpr99999/c$/A/FileName.txt
allowedDeletePaths=
Doug Hauf
źródło

Odpowiedzi:

295

W systemie Windows, jeśli masz zmapowane dyski sieciowe i nie znasz do nich ścieżki UNC, możesz uruchomić wiersz polecenia ( Start → Uruchom → cmd.exe ) i użyć net usepolecenia, aby wyświetlić listę zmapowanych dysków i ich ścieżek 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.

Należy zauważyć, że pokazuje to listę zmapowanych i połączonych sieciowych udziałów plików dla kontekstu użytkownika, w którym polecenie jest uruchamiane. Jeśli korzystasz cmd.exez własnego konta użytkownika, wyświetlone wyniki są udziałami plików w sieci. Jeśli korzystasz cmd.exez innego konta użytkownika, takiego jak lokalny administrator, zamiast tego zobaczysz sieciowe udziały plików dla tego użytkownika.

Lachlan Dowding
źródło
12
Uważaj, aby nie uruchamiać cmd.exe jako Administrator
Dave Mateer,
1
@DaveMateer może być pomysłem, aby powiedzieć, dlaczego?
themetiman
6
@theyetiman, ponieważ jeśli działasz jako administrator - mapowania specyficzne dla użytkownika nie są wyświetlane. Jak właśnie się dowiedziałem
Andez
To jest tak niepotrzebnie trudne
Fueled By Coffee
11

Jeśli masz pakiet Microsoft Office:

  1. DOBRZE przeciągnij dysk, folder lub plik z Eksploratora Windows do treści dokumentu programu Word lub wiadomości e-mail programu Outlook
  2. Wybierz „ Utwórz hiperłącze tutaj

Wstawiony tekst będzie pełnym UNC przeciągniętego elementu.

dlauzon
źródło
2
Cóż za praktyczne i szybkie rozwiązanie dla nas wszystkich w korporacyjnych środowiskach zamkniętych ! Bardzo cenne obejście!
Marcus Mangelsdorf
6

Na to pytanie już udzielono odpowiedzi, ale ponieważ istnieje wygodniejszy sposób na uzyskanie ścieżki UNC i kilka innych, polecam skorzystanie z funkcji Path Copy, która jest bezpłatna i możesz praktycznie uzyskać dowolną ścieżkę jednym kliknięciem:

https://pathcopycopy.github.io/

Oto zrzut ekranu pokazujący, jak to działa. Najnowsza wersja ma więcej opcji i zdecydowanie ścieżkę UNC:

wprowadź opis obrazu tutaj

Ibo
źródło
7
BTW, opcja „Kopiuj jako ścieżkę” jest wbudowana w system Windows (co najmniej 7 i 10), gdy używasz klawisza Shift-prawy przycisk myszy, aby wyświetlić rozszerzone menu kontekstowe. Niestety, na zmapowanym dysku NIE obejmuje to również ścieżki UNC. Tylko gdy patrzysz na ścieżkę UNC w Eksploratorze, skopiuje ścieżkę UNC do pliku.
mgaert
1
Myślę, że korzystanie z net usetego, co jest dostarczane z systemem operacyjnym, jest wygodniejsze niż pobieranie narzędzia innej firmy.
shoover
1

Odpowiedź jest prosta PowerShell:

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

Jeśli chcesz pobrać tylko UNCdla jednego konkretnego dysku, dodaj instrukcję where:

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

LUB

$CurrentFolder = "H:\Documents"
$Tst = $CurrentFolder.Substring( 0, 2 )
( Get-WmiObject -Query "Select * from Win32_NetworkConnection where LocalName = '$Tst'" ).RemoteName
dieseyer
źródło