Server Message Block(SMB) 네트워크 드라이브 매핑 - Amazon AppStream 2.0

Server Message Block(SMB) 네트워크 드라이브 매핑

SMB의 대상 네트워크에 있는 모든 머신을 사용할 수 있습니다. 세션 스크립트를 통해 설정을 구성하려는 경우 세션 스크립트는 이미지별로 구성되므로 사용자가 로그온할 때 호출되는 스크립트를 먼저 생성해야 합니다.

Server Message Block(SMB) 네트워크 드라이브를 매핑하려면 다음 단계를 수행합니다.

1단계: 서비스가 실행 중인지 확인

시작 메뉴에서 services.msc를 열고 다음 서비스가 모두 실행 중인지 확인합니다.

  • DNS 클라이언트

  • 기능 검색 리소스 게시

  • SSDP 검색

  • UPnP 디바이스 호스트

2단계: SMB 폴더 생성

파일 탐색기를 사용하여 SMB를 생성할 수 있습니다.

파일 탐색기를 사용하여 SMB 공유 폴더를 구성하려면
  1. SMB 폴더를 마우스 오른쪽 버튼으로 클릭하고 속성, 공유를 선택합니다.

  2. 고급 공유를 선택합니다.

  3. 고급 공유에서 이 폴더 공유를 선택한 다음 권한을 선택합니다.

  4. 모든 사용자에게 권한을 제공하려면 기본 설정을 그대로 둡니다.

    특정 사용자를 추가하려면 권한 공유에서 모든 사람, 제거를 선택합니다. 그런 다음 추가를 선택하고 파일 공유에 액세스하려는 사용자 또는 그룹을 입력합니다.

    추가하는 각 사용자 또는 그룹에 대해 전체 제어, 변경 또는 읽기 권한을 할당하려면 허용을 선택합니다.

  5. 적용, 확인, 확인, 닫기를 선택합니다.

3단계: 도메인에서 SMB에 액세스할 수 있는지 확인

동일한 보안 그룹을 사용하고 동일한 도메인에 조인하는 다른 서버에서 파일 탐색기를 엽니다. 네트워크 경로 폴더로 이동하여 제공된 네트워크 경로를 통해 네트워크 공유에 액세스합니다. 속성, 공유, 네트워크 경로를 선택합니다.

사용자가 그룹 정책에 정의된 세션 스크립트 또는 로그인 스크립트를 적용할 수 있도록 로컬/도메인 그룹 정책에서 심볼 링크 생성 기능을 활성화합니다. 이렇게 하면 5단계에서 사용자 권한으로 스크립트를 생성할 수 있습니다.

사용자가 로컬/도메인 그룹 정책에서 심볼 링크를 생성할 수 있도록 하려면
  1. 이 정책을 정의하는 데 사용할 GPO에서 컴퓨터 구성, Windows 설정, 보안 설정, 사용자 권한 할당, 정책, 심볼 링크 생성을 선택합니다. 그런 다음 사용자가 포함할 수 있는 권한을 업데이트합니다. 심볼 링크 생성에 대한 자세한 내용은 심볼 링크 생성을 참조하세요.

  2. 기본적으로 원격-원격(예: 다른 유사한 심볼 링크 내의 네트워크 공유에 매핑된 심볼 링크) 및 원격-로컬(예: 네트워크 공유에 매핑된 심볼 링크 내의 로컬 공유에 매핑된 심볼 링크) 액세스는 비활성화되어 있습니다. 심볼 링크 매핑이 필요한 경우 아래 명령을 실행합니다.

    • 원격-원격 액세스 활성화 - fsutil behavior set SymlinkEvaluation R2R:1

    • 원격-로컬 액세스 활성화 - fsutil behavior set SymlinkEvaluation R2L:1

5단계: 사용자가 로그온할 때 호출되는 스크립트 생성

AppStream 2.0 세션 스크립트 또는 GPO 로그온 스크립트를 사용하여 사용자가 로그온할 때 호출되는 스크립트를 생성합니다. AppStream 2.0 세션 스크립트를 사용하도록 선택하면 세션 스크립트는 해당 특정 AppStream 2.0 이미지에만 적용됩니다. GPO 로그인 스크립트를 사용하는 경우, GPO는 도메인/OU에 적용되며, 이는 플릿에 구성할 수 있습니다. 이렇게 하면 소유한 모든 이미지에 대해 스크립트를 구성할 필요가 없습니다.

세션 스크립트를 사용하여 내 파일 아래에 SMB 공유 폴더를 탑재하려면(Powershell 사용)
  1. 사용자 권한을 성공적으로 정의한 후 사용자 컨텍스트 또는 시스템 컨텍스트를 사용하여 다음 예제 스크립트를 구성합니다.

    다음은 사용자 컨텍스트를 사용하는 config.json 스크립트의 예입니다.

    "SessionStart": { "executables": [ { "context": "system", "filename": "", "arguments": "", "s3LogEnabled": true }, { "context": "user", "filename": "C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe", "arguments": "-File \"C:\\AppStream\\SessionScripts\\userStart.ps1\"", "s3LogEnabled": true } ], "waitingTime": 30

    다음은 시스템 컨텍스트를 사용하는 예제 스크립트입니다.

    "SessionStart": { "executables": [ { "context": "system", "filename": "C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe", "arguments": "-File \"C:\\AppStream\\SessionScripts\\systemStart.ps1\"", "s3LogEnabled": true }, { "context": "user", "filename": "", "arguments": "", "s3LogEnabled": true } ], "waitingTime": 30
  2. 다중 세션 플릿을 사용하는 경우 시스템 환경 변수 $env:AppStream_Session_UserName을 사용하여 사용자의 내 파일 폴더로 이동할 수 있습니다. 이렇게 하면 시스템 컨텍스트 $env:USERNAME를 사용할 때 사용자 이름 대신 Admin에 매핑할 수 있습니다.

    # Define the target application path $targetPathes = "<SMB-PATH>" # Define the shortcut location $symlinkLocation = "C:\Users\$Env:AppStream_Session_UserName\My Files\Custom Folder" # Create the junction for Custom Home Folder under MyFiles New-Item -ItemType SymbolicLink -Path $symlinkLocation -Target $targetPaths
  1. 파일 또는 폴더에 대한 심볼 핑크를 생성하여 SMB 공유 폴더를 탑재합니다. 자세한 내용은 예제 7: 파일 또는 폴더에 대한 심볼 링크 생성을 참조하세요.

  2. 사용자 로그온 스크립트를 할당합니다.

  3. 다음 스크립트를 추가하여 내 파일 아래에 사용자 지정 홈 폴더에 대한 정션을 생성합니다.

    # Define the target application path $targetPathes = "<SMB-PATH>" # Define the shortcut location $symlinkLocation = "C:\Users\$env:Username\My Files\Custom Folder" # Create the junction for Custom Home Folder under MyFiles New-Item -ItemType SymbolicLink -Path $symlinkLocation -Target $targetPaths

    Windows Server 2022 이미지를 사용하는 경우 로그온 스크립트가 성공적으로 완료될 때까지 내 파일 폴더가 생성되지 않는 문제가 발생할 수 있습니다. 이로 인해 로그온 스크립트를 통해 SMB 탑재 작업을 수행할 때 제한 시간이 초과될 수 있습니다. 이 문제를 해결하려면 SMB를 탑재하는 동안 다음을 수행하여 로그온 스크립트를 사용하여 독립 프로세스(Start-Process)를 트리거합니다.

    1. 로그온 스크립트를 생성합니다.

      # Define the log file path $logFilePath = "<This-is-where-your-log-files-are-saved>" # Function to write log messages function Write-Log { param ( [string]$message ) $timestamp = get-date -format "yyyy-MM-dd HH:mm:ss" $logMessage = "$timestamp - $message" $logMessage | Out-File -FilePath $logFilePath -Append -Encoding UTF8 } try { Write-Log "Setting execution policy..." Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process -Force Write-Log "Unblocking logon script file..." $filePath = "<This-is-where-your-actual-logon-script-is-linked>" Unblock-File -Path $filePath Write-Log "Running actual logon script..." Start-Process -FilePath 'Powershell.exe' -ArgumentList "-File `"$filePath`"" } catch { Write-Log "An error occurred: $_" "ERROR" }
    2. 필요한 경우 그룹 정책을 사용하여 이 로그온 스크립트 지연 구성을 업데이트합니다. 자세한 내용은 로그온 스크립트 지연 구성을 참조하세요. 로그온 스크립트 지연은 비동기 로그온 스크립트를 트리거하기 전에 지연되는 시간입니다. 기본값은 5분입니다.

    3. 플릿을 다시 시작하여 로그온 스크립트 지연을 적용합니다.