Windows10에 SSH한 다음 Powershell로 NAS에 연결

연결되지 않는다고?


Windows 10에 SSH로 연결했을 때 Powershell에서 NAS에 액세스하려고했습니다.
그런데 쉽게 NAS에 연결할 수 없었습니다.

연결하려는 위치



시도한 방법

New-PSDrive -Name Z -PSProvider FileSystem -Root \\192.168.0.100\myNAS
net use \\192.168.0.100\myNAS /user:username password
※조금 전까지 pushd로 갈 수 있었는데, 왠지 할 수 없게 되어 있다!posh pushd \\192.168.0.100\myNAS pushd로 갈 수 있는 것은, 이미 cmdkey로 접속하고 있을 때인 것 같습니다.
그러나 cmdkey 는 일반 ssh 연결 세션에서 자격 증명을 저장할 권한이 없습니다.

연결할 수 있는 방법


`posh:main.ps1
# Make PsDrive
$Nas = "\\192.168.0.100\myNAS"
$NasDir = "project001"

$NasUser = "username"
$NasPass = "password"
$SecureString = ConvertTo-SecureString $NasPass -AsPlainText -Force
$TempCredential = New-Object System.Management.Automation.PsCredential($NasUser, $SecureString)

$psDriveName = "TestDrive"
if(Get-PSDrive | Where-Object {$_.Name -eq $psDriveName}){
    # If already exists then temporary delete

    Remove-PSDrive -Name $psDriveName
}
$TempDrive = New-PSDrive -Name $psDriveName -PSProvider FileSystem -Root $Nas -Credential $TempCredential

# Check Behavior

ls $TempDrive":"$NasDir
cd $TempDrive":"
ls

# Cleanning

Remove-PSDrive -Name $psDriveName
`

스크립트 해설


기사내에서는 main.ps1 와의 파일명을 붙이고 있습니다만, 커멘드 라인으로 그대로 copipe 해도 움직인다고 생각합니다.

Make PsDrive

$TempDrive라는 드라이브 이름으로 임시로 드라이브를 추가하고 있습니다.$Nas는 FQDN을 지정합니다. 구체적으로는 \\192.168.0.100 의 부분으로 IP 주소를 \myNAS 의 부분으로 호스트명을 지정하고 있습니다.
그리고 $NasDir 는 공유 폴더 이름입니다. 나중에 $NasUser가 공유 폴더에 연결하는 사용자 이름이고 $NasPass가 해당 암호입니다.

Check Behavior

ls 명령을 사용하여 폴더의 목록을 볼 수 있는지 확인합니다.

Cleanning

$TempDrive를 할당 해제합니다.

환경


  • Windows 10 20H2 or Later
  • Powershell 7 or Later
  • NAS Buffalo TS5410D

  • Excelsior!

    좋은 웹페이지 즐겨찾기