programing

네트워크 드라이브의 UNC 경로를 찾으시겠습니까?

yellowcard 2023. 4. 25. 22:14
반응형

네트워크 드라이브의 UNC 경로를 찾으시겠습니까?

WEBMethods 프로젝트를 위해 작업 중인 네트워크 Q 드라이브의 경로를 확인할 수 있어야 합니다.이전에 가지고 있던 코드가 구성 파일에 있습니다.보안상의 이유로 전화번호부 안에 한 글자만 표시해놨어요세미콜론의 용도는 잘 모르겠지만, 더블 슬래시는 드라이브 이름이 재생된 것이라고 생각합니다.

질문:.Windows 7 컴퓨터에서 특정 드라이브 위치에 대한 UNC의 전체 경로를 쉽게 찾을 수 있는 방법이 있습니까?

코드는 다음과 같습니다.

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

Windows에서 매핑된 네트워크 드라이브가 있고 해당 UNC 경로를 모르는 경우 명령 프롬프트(Start → Run → 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.

명령이 실행되는 사용자 컨텍스트에 대한 매핑 및 연결된 네트워크 파일 공유 목록이 표시됩니다.★★★★★★★cmd.exe사용자 계정에 표시된 결과는 사용자 자신을 위한 네트워크 파일 공유입니다.★★★★★★★cmd.exe대신 로컬 Administrator와 같은 다른 사용자 계정에 해당 사용자의 네트워크 파일 공유가 표시됩니다.

Microsoft Office가 있는 경우 다음을 수행합니다.

  1. Windows 탐색기에서 Word 문서 또는 Outlook 전자 메일 본문으로 드라이브, 폴더 또는 파일을 오른쪽 드래그합니다.
  2. '여기에 하이퍼링크 만들기'를 선택하십시오.

삽입된 텍스트는 끌어온 항목의 전체 UNC가 됩니다.

이 질문에는 이미 답변이 되었지만 UNC 경로를 보다 편리하게 가져올 수 있는 방법이 몇 가지 더 있으므로 무료로 클릭 한 번으로 원하는 경로를 얻을 수 있는 Path Copy를 사용하는 것이 좋습니다.

https://pathcopycopy.github.io/

다음은 작동 방식을 보여 주는 스크린샷입니다.최신 버전에는 더 많은 옵션이 있으며 UNC 경로도 있습니다.

여기에 이미지 설명을 입력하십시오.

wmic path win32_mappedlogicaldisk get deviceid, providername

결과는 다음과 같습니다.

DeviceID  ProviderName
I:        \\server1\Temp
J:        \\server2\Corporate
Y:        \\Server3\Dev_Repo
Z:        \\Server3\Repository

배치 파일(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]

예를 들어 다음과 같습니다.

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

\\EnvGeoServer\Repository\Tools\admin

https://superuser.com/a/1123556/16966에서 수정된 배치 스크립트입니다.이 솔루션이 마음에 드시면 꼭 투표해 주세요.

2021-11-15 업데이트: 버그 수정입니다.이전에는 일괄 처리가 드라이브 문자 UNC 루트만 보고하고 폴더 경로도 보고하지 않았습니다.

%CD%에서 설정합니다.%%iCMD를 사용합니다.
%CD:~0,2%그리고.%CD:~2%드라이브 문자와 후행 경로 서브스트링을 각각 추출합니다(예::~2%'Z:'에서 '\Tools\admin'을 수행합니다.\Tools\admin'을 클릭합니다.

답은 간단합니다.PowerShell원라이너입니다.

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

당기기만 원하신다면요UNC특정 드라이브에 대해 where 문을 추가합니다.

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

그렇지 않으면요.

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

5센트: PowerShell을 통해 실행할 때 PowerShell 스크립트를 실행하면 PowerShell 및 그 자체를 가리키는 바로 가기가 생성되어 UNC 경로(또는 로컬 일반 파일 경로)를 클립보드로 가져올 수 있습니다.

https://inmood.ch/get-unc-path-of-fileserver-file/

# run without arguments will create a file called DropFileToGetUNCPath.lnk

# if you drop a file onto the shortcut it'll return the UNC path

if($args[0] -eq $null)

{

            # creating the shortcut to drop files later on

            $path = $pwd.path

            $script = $MyInvocation.MyCommand.Path

            $WshShell = New-Object -comObject WScript.Shell

            $Shortcut = $WshShell.CreateShortcut("$path\DropFileToGetUNCPath.lnk")

            $Shortcut.TargetPath = "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe"

            $Shortcut.Arguments = "-noprofile -file """ + $script + """"

            $Shortcut.Save()

}else{

            $file = $args[0]

}

 

$drive = $pwd.drive.name + ":"

# find UNC paths for directories

$drives = net use

$drive = ($drives -match ".*" + $drive + ".*")

#debug

#echo $drive

$parts = $drive -split "\s{1,11}"

#debug

#echo $parts

$windowsDrive = $parts[1]

$uncDrive = $parts[2]

$file -replace $windowsDrive, $uncDrive | clip

언급URL : https://stackoverflow.com/questions/21482825/find-unc-path-of-a-network-drive 입니다.

반응형