→ falcon: 找到問題了,$wslip 似乎混入多餘字元,用正規表示法濾掉02/06 19:41
→ falcon: 多餘的字元之後就解決了。02/06 19:41
$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
}
→ falcon: 現在的新問題是如何開機自動以管理員身分執行腳本…02/06 19:42
※ 編輯: falcon (27.53.136.68 臺灣), 02/06/2024 19:57:16
→ falcon: 找到解法了 Start-Process -Verb RunAs 呼叫出系統管理員 02/06 21:11
→ falcon: 權的限 PowerShell 去執行 .ps102/06 21:11
→ falcon: 做成 bat 丟個捷徑到啟動目錄02/06 21:11
@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
推 saito2190: 推自問自答 XD 02/06 22:27
推 agong: RunOnce 02/08 20:03