50 lines
1.7 KiB
PowerShell
50 lines
1.7 KiB
PowerShell
# montar_nas.ps1 - Monta la unidad Z: (share \video de la NAS Synology 192.168.50.31)
|
|
# via tunel SSH encadenado: PC -> VPS(185.187.169.109) -> Pi(tunel inverso 1445) -> NAS
|
|
#
|
|
# Requisitos:
|
|
# - Clave SSH del VPS en C:\Users\juanm\Documents\GitHub\contabo
|
|
# - Servicio autossh-tunel en la Pi con -R 1445:192.168.50.31:445
|
|
# - Credencial SMB guardada con: cmdkey /add:127.0.0.1 /user:jjminguez /pass:"<pass>"
|
|
#
|
|
# Uso: powershell -File montar_nas.ps1
|
|
|
|
$ErrorActionPreference = "SilentlyContinue"
|
|
|
|
function Test-Tunel {
|
|
$c = Get-NetTCPConnection -LocalPort 445 -State Listen -ErrorAction SilentlyContinue
|
|
return ($null -ne $c)
|
|
}
|
|
|
|
function Test-Unidad {
|
|
$d = Get-PSDrive -Name Z -ErrorAction SilentlyContinue
|
|
return ($null -ne $d)
|
|
}
|
|
|
|
# 1) Levantar tunel local (445 -> VPS:1445 -> Pi -> NAS:445)
|
|
if (-not (Test-Tunel)) {
|
|
Write-Host "[NAS] Levantando tunel 445 -> VPS:1445..."
|
|
Start-Process -FilePath "ssh" -ArgumentList `
|
|
"-i", "C:\Users\juanm\Documents\GitHub\contabo", `
|
|
"-N", "-L", "445:127.0.0.1:1445", `
|
|
"root@185.187.169.109", `
|
|
"-o", "ExitOnForwardFailure=yes", `
|
|
"-o", "ServerAliveInterval=30", `
|
|
"-o", "ServerAliveCountMax=3" `
|
|
-WindowStyle Hidden | Out-Null
|
|
Start-Sleep -Seconds 5
|
|
}
|
|
|
|
# 2) Montar unidad Z: apuntando al share video (via tunel local)
|
|
if (-not (Test-Unidad)) {
|
|
Write-Host "[NAS] Montando Z: -> \\127.0.0.1\video ..."
|
|
net use Z: \\127.0.0.1\video /persistent:no | Out-Null
|
|
}
|
|
|
|
# 3) Verificar
|
|
if (Test-Unidad) {
|
|
$n = (Get-ChildItem "Z:\" -ErrorAction SilentlyContinue | Measure-Object).Count
|
|
Write-Host "[NAS] Unidad Z: montada OK ($n elementos)"
|
|
} else {
|
|
Write-Host "[NAS] ERROR: no se pudo montar Z:"
|
|
}
|