つながらないだと?
Windows10に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で行けたのに、なぜか出来なくなっている!
pushd \\192.168.0.100\myNAS
pushdでいけるのは、すでにcmdkeyで接続しているときらしいです。
しかし、cmdkeyは通常のssh接続のセッションからは資格情報を保存する権限が無いです。
接続できた方法
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とのファイル名を付けていますが、コマンドラインでそのままコピペしても動くと思います。
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!
