Computer >> 컴퓨터 >  >> 시스템 >> Windows

Windows 10에서 매핑된 네트워크 드라이브가 작동하지 않을 때 해결하는 3가지 방법

매핑된 네트워크 드라이브(Mapped Network Drive)는 다른 컴퓨터나 외부 저장 장치에 있는 드라이브에 연결해야 할 때 매우 유용한 기능입니다. 파일에 손쉽게 접근할 수 있게 해주기 때문입니다. 하지만 Windows 10 v1809에서 매핑된 네트워크 드라이브가 정상적으로 작동하지 않는다면 상당히 불편한 상황이 될 수밖에 없습니다.

드라이브를 사용할 수 없다는 사실을 Windows가 알려주는 방식은 여러 가지입니다. 네트워크 드라이브 아이콘에 빨간색 X 표시가 나타나거나, 명령 프롬프트에서 실행할 때 '사용할 수 없음' 메시지가 출력되거나, 알림을 통해 통보되기도 합니다. 또한 네트워크 드라이브 연결이 평소보다 오래 걸리는 경우도 있는데, 이럴 때는 컴퓨터 로그인 시 스크립트를 자동으로 실행하도록 설정하는 것이 좋습니다.

매핑된 네트워크 드라이브 문제 해결하기

본격적인 해결 방법을 살펴보기 전에 알아두어야 할 점이 있습니다. 각 방법은 특정 상황에서만 효과적이라는 것입니다. 로그온 시점에 네트워크 연결이 필요한 경우도 있고, 그룹 정책 설정에 대한 접근 권한이 필요한 경우도 있습니다. 따라서 자신의 환경에 맞는 방법을 선택하시기 바랍니다.

컴퓨터에 로그온한 후 매핑된 네트워크 드라이브가 보이지 않거나, 연결되지 않거나, 작동하지 않는다면 아래에서 소개하는 스크립트 활용 방법을 적용해 보세요. 컴퓨터 사용을 시작하는 즉시 자동으로 드라이브에 연결되도록 만들 수 있습니다.

스크립트 만들기

여기서는 두 개의 스크립트를 사용합니다. MapDrives.ps1MapDrives.cmd에 의해 실행되며, 일반(관리자 권한 없는) 명령 프롬프트 환경에서 동작합니다.

먼저 MapDrives.cmd라는 이름의 스크립트 파일을 만들고, 안전하게 보관될 위치에 저장합니다.

PowerShell -Command "Set-ExecutionPolicy -Scope CurrentUser Unrestricted" >> "%TEMP%\StartupLog.txt" 2>&1
PowerShell -File "%SystemDrive%\Scripts\MapDrives.ps1" >> "%TEMP%\StartupLog.txt" 2>&1

다음으로 MapDrives.ps1이라는 이름의 스크립트 파일을 만들고 아래 내용을 입력합니다. 두 스크립트는 반드시 같은 폴더에 함께 위치시켜야 합니다.

$i=3
while($True){
    $error.clear()
    $MappedDrives = Get-SmbMapping |where -property Status -Value Unavailable -EQ | select LocalPath,RemotePath
    foreach( $MappedDrive in $MappedDrives)
    {
        try {
            New-SmbMapping -LocalPath $MappedDrive.LocalPath -RemotePath $MappedDrive.RemotePath -Persistent $True
        } catch {
            Write-Host "There was an error mapping $MappedDrive.RemotePath to $MappedDrive.LocalPath"
        }
    }
    $i = $i - 1
    if($error.Count -eq 0 -Or $i -eq 0) {break}

    Start-Sleep -Seconds 30

}

스크립트를 실행해 매핑된 네트워크 드라이브에 연결하는 3가지 방법

1] 시작 프로그램 등록

이 방법은 로그인 시점에 네트워크 연결이 가능한 장치에서만 작동합니다. 로그온 시 네트워크에 연결되어 있지 않으면 스크립트가 네트워크 드라이브를 자동으로 다시 연결하지 못합니다.

  • %ProgramData%\Microsoft\Windows\Start Menu\Programs\StartUp 경로의 시작 메뉴 폴더를 열고, 그 안에 MapDrives.cmd 파일을 복사해 붙여넣습니다.
  • %SystemDrive%\Scripts\ 경로의 Scripts 폴더를 열고, 그 안에 MapDrives.ps1 파일을 복사해 붙여넣습니다.

이렇게 하면 %TEMP% 폴더에 StartupLog.txt라는 이름의 로그 파일이 생성됩니다. 이후 컴퓨터에서 로그아웃한 후 다시 로그인하면 매핑된 드라이브가 정상적으로 열리는지 확인할 수 있습니다.

2] 예약 작업 생성

사용자가 컴퓨터에 로그인하는 즉시 실행되는 예약 작업을 만드는 방법입니다. 먼저 MapDrives.ps1 스크립트 파일을 %SystemDrive%\Scripts\ 경로의 Windows 스크립트 폴더에 복사합니다. 그다음 작업 스케줄러(Task Scheduler)를 실행합니다. 검색 상자에서 '작업 스케줄러'를 검색하면 바로 찾을 수 있습니다.

  • 동작(Action) > 작업 만들기(Create Task)를 선택하고, '일반' 탭에서 작업 이름과 설명을 입력합니다.
  • 사용자 또는 그룹 변경(Change User or Group) 버튼을 클릭해 로컬 사용자 또는 그룹을 선택한 후 확인을 누릅니다.
  • '가장 높은 권한으로 실행(Run with highest privileges)' 체크박스를 선택합니다.
  • '트리거' 탭으로 이동해 새 트리거를 만들고, '작업 시작' 드롭다운에서 '로그온할 때(At Logon)' 옵션을 선택한 후 확인을 클릭합니다.
  • '동작' 탭으로 이동합니다.
    • 새 동작을 만들고 '프로그램 시작(Start a program)'을 선택합니다.
    • '프로그램/스크립트' 입력란에 Powershell.exe를 입력합니다.
    • '인수 추가(선택 사항)' 입력란에 다음 내용을 입력합니다.
      -windowsstyle hidden -command .\MapDrives.ps1 >> %TEMP%\StartupLog.txt 2>&1
    • '시작 위치(선택 사항)' 입력란에는 스크립트 파일이 있는 위치(%SystemDrive%\Scripts\)를 입력합니다.
  • '조건' 탭에서 '다음 네트워크 연결이 가능한 경우에만 시작' 옵션을 선택하고, 모든 연결(Any connection)을 지정한 후 확인을 클릭합니다.

컴퓨터를 재부팅하거나 계정에서 로그아웃한 뒤 다시 로그인하면, 예약 작업이 실행되면서 매핑된 드라이브가 자동으로 연결됩니다.

3] 그룹 정책 설정 활용

매핑된 드라이브가 그룹 정책 설정을 통해 정의된 경우에는 이 방법이 필요합니다. 드라이브 매핑 작업(drive maps)의 동작을 '바꾸기(Replace)'로 업데이트해야 합니다.

이렇게 설정하면 기존에 매핑된 드라이브를 삭제하고, 로그온할 때마다 매핑을 새로 생성합니다. 다만 그룹 정책 설정을 통해 변경했던 매핑 드라이브의 설정들은 매번 로그온할 때마다 초기화된다는 점에 유의해야 합니다. 변경 사항이 즉시 적용되지 않는다면, /force 매개변수와 함께 gpupdate 명령을 실행해 그룹 정책 설정을 즉시 새로 고칠 수 있습니다.

마이크로소프트가 제안한 위 방법 중 하나가 Windows 10에서 매핑된 네트워크 드라이브가 작동하지 않는 문제를 해결하는 데 도움이 되기를 바랍니다. 어떤 방법이 효과적이었는지 여러분의 경험도 공유해 주세요.