つながらないだと?
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!