Update powershell scripts and add port forwarding wsl scripts
This commit is contained in:
@@ -1,3 +1,13 @@
|
|||||||
# https://github.com/lextm/windowsterminal-shell.git
|
1. install PowerShell 7
|
||||||
|
winget install --id Microsoft.Powershell --source winget
|
||||||
|
winget install --id Microsoft.Powershell.Preview --source winget
|
||||||
|
|
||||||
|
2. clone repo
|
||||||
|
git clone https://github.com/lextm/windowsterminal-shell.git
|
||||||
|
|
||||||
|
3. run script
|
||||||
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; .\install.ps1 mini
|
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; .\install.ps1 mini
|
||||||
|
|
||||||
|
4. remove keys
|
||||||
|
HKEY_CURRENT_USER\SOFTWARE\Classes\Directory\shell\MenuTerminalAdminMin
|
||||||
|
HKEY_CURRENT_USER\SOFTWARE\Classes\Directory\Background\shell\MenuTerminalAdminMin
|
||||||
|
|||||||
5
scripts/pshell/Bridge-WslPorts-AddTaskToScheduler.ps1
Executable file
5
scripts/pshell/Bridge-WslPorts-AddTaskToScheduler.ps1
Executable file
@@ -0,0 +1,5 @@
|
|||||||
|
$a = New-ScheduledTaskAction -Execute "powershell.exe" -Argument "-File `"/home/cloud/repos/personal-devboot/scripts/pshell/Bridge-WslPorts.ps1`" -WindowStyle Hidden -ExecutionPolicy Bypass"
|
||||||
|
$t = New-ScheduledTaskTrigger -AtLogon
|
||||||
|
$s = New-ScheduledTaskSettingsSet -AllowStartIfOnBatteries -DontStopIfGoingOnBatteries
|
||||||
|
$p = New-ScheduledTaskPrincipal -GroupId "BUILTIN\Administrators" -RunLevel Highest
|
||||||
|
Register-ScheduledTask -TaskName "WSL2PortsBridge" -Action $a -Trigger $t -Settings $s -Principal $p
|
||||||
1
scripts/pshell/Bridge-WslPorts-RunTaskOnDemand.ps1
Executable file
1
scripts/pshell/Bridge-WslPorts-RunTaskOnDemand.ps1
Executable file
@@ -0,0 +1 @@
|
|||||||
|
powershell.exe -ExecutionPolicy Bypass -File "/home/cloud/repos/personal-devboot/scripts/pshell/Bridge-WslPorts.ps1"
|
||||||
28
scripts/pshell/Bridge-WslPorts.ps1
Executable file
28
scripts/pshell/Bridge-WslPorts.ps1
Executable file
@@ -0,0 +1,28 @@
|
|||||||
|
# https://jwstanly.com/blog/article/Port+Forwarding+WSL+2+to+Your+LAN/
|
||||||
|
|
||||||
|
$ports = @(80, 443, 25565);
|
||||||
|
|
||||||
|
$wslAddress = bash.exe -c "ifconfig eth0 | grep -oP '(?<=inet\s)\d+(\.\d+){3}'"
|
||||||
|
|
||||||
|
if ($wslAddress -match '^(\d{1,3}\.){3}\d{1,3}$') {
|
||||||
|
Write-Host "WSL IP address: $wslAddress" -ForegroundColor Green
|
||||||
|
Write-Host "Ports: $ports" -ForegroundColor Green
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
Write-Host "Error: Could not find WSL IP address." -ForegroundColor Red
|
||||||
|
exit
|
||||||
|
}
|
||||||
|
|
||||||
|
$listenAddress = '0.0.0.0';
|
||||||
|
|
||||||
|
foreach ($port in $ports) {
|
||||||
|
Invoke-Expression "netsh interface portproxy delete v4tov4 listenport=$port listenaddress=$listenAddress";
|
||||||
|
Invoke-Expression "netsh interface portproxy add v4tov4 listenport=$port listenaddress=$listenAddress connectport=$port connectaddress=$wslAddress";
|
||||||
|
}
|
||||||
|
|
||||||
|
# $fireWallDisplayName = 'WSL Port Forwarding';
|
||||||
|
# $portsStr = $ports -join ",";
|
||||||
|
|
||||||
|
# Invoke-Expression "Remove-NetFireWallRule -DisplayName $fireWallDisplayName";
|
||||||
|
# Invoke-Expression "New-NetFireWallRule -DisplayName $fireWallDisplayName -Direction Outbound -LocalPort $portsStr -Action Allow -Protocol TCP";
|
||||||
|
# Invoke-Expression "New-NetFireWallRule -DisplayName $fireWallDisplayName -Direction Inbound -LocalPort $portsStr -Action Allow -Protocol TCP";
|
||||||
Reference in New Issue
Block a user