[問題] 用 PowerShell 自動設定 Port forwarding

看板Windows作者 (falken)時間2月前 (2024/02/06 00:49), 2月前編輯推噓2(206)
留言8則, 3人參與, 2月前最新討論串1/1
問題來自於 Podman 佈署完服務後要設定 Port forwarding 但手動確認 IP 好麻煩 想要一鍵處理 ``` $config += @(@{listenport=4567; connectport=4567; distroname='Ubuntu'}) $config += @(@{listenport=2283; connectport=2283; distroname='Ubuntu'}) netsh interface portproxy reset foreach ($c in $config) { $distroname = $c.distroname $wslip = wsl -d "$distroname" hostname -I netsh interface portproxy add v4tov4 ` listenport=$c.listenport ` listenaddress=0.0.0.0 ` connectport=$c.connectport ` connectaddress=$wslip } ``` 檢查過變數的值看起來沒問題 看不出來是哪裡出問題 -- Sent from PTTopia -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 27.53.136.68 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Windows/M.1707151763.A.161.html ※ 編輯: falcon (27.53.136.68 臺灣), 02/06/2024 00:52:18

02/06 19:41, 2月前 , 1F
找到問題了,$wslip 似乎混入多餘字元,用正規表示法濾掉
02/06 19:41, 1F

02/06 19:41, 2月前 , 2F
多餘的字元之後就解決了。
02/06 19:41, 2F
$config = @() $config += @(@{ListenPort=4567; ConnectPort=4567; DistroName='Ubuntu'}) $config += @(@{ListenPort=2283; ConnectPort=2283; DistroName='Ubuntu'}) $iptable = @{} netsh interface portproxy reset foreach ($c in $config) { if(-not ($c.DistroName -in $iptable.Keys)) { $distroname = $c.DistroName $result = wsl -d "$distroname" hostname -I if ($result -match '\d{1,4}\.\d{1,4}\.\d{1,4}\.\d{1,4}') { $iptable[$distroname] = $matches[0] } else { continue } } $listenPort = $c.ListenPort $connectPort = $c.ConnectPort $connectAddress = $iptable[$c.DistroName] netsh interface portproxy add v4tov4 ` listenport=$listenPort ` listenaddress=0.0.0.0 ` connectport=$connectPort ` connectaddress=$connectAddress }

02/06 19:42, 2月前 , 3F
現在的新問題是如何開機自動以管理員身分執行腳本…
02/06 19:42, 3F
※ 編輯: falcon (27.53.136.68 臺灣), 02/06/2024 19:57:16

02/06 21:11, 2月前 , 4F
找到解法了 Start-Process -Verb RunAs 呼叫出系統管理員
02/06 21:11, 4F

02/06 21:11, 2月前 , 5F
權的限 PowerShell 去執行 .ps1
02/06 21:11, 5F

02/06 21:11, 2月前 , 6F
做成 bat 丟個捷徑到啟動目錄
02/06 21:11, 6F
@echo off Powershell -sta "Start-Process Powershell -Verb RunAs -ArgumentList '-ExecutionPolicy Bypass -File ""%~dpn0.ps1""'" ※ 編輯: falcon (27.53.136.68 臺灣), 02/06/2024 21:48:58

02/06 22:27, 2月前 , 7F
推自問自答 XD
02/06 22:27, 7F

02/08 20:03, 2月前 , 8F
RunOnce
02/08 20:03, 8F
文章代碼(AID): #1bmH6J5X (Windows)
文章代碼(AID): #1bmH6J5X (Windows)