Windows10 开机运行 powershell 脚本(管理员

2020-11-11  本文已影响0人  UULU

例子

创建 powershell 脚本

wsl2-export-ports.ps1

$remoteport = bash.exe -c "ifconfig eth0 | grep 'inet '"
$found = $remoteport -match '\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}';

if( $found ){
  $remoteport = $matches[0];
} else{
  echo "The Script Exited, the ip address of WSL 2 cannot be found";
  exit;
}

#[Ports]

#All the ports you want to forward separated by coma
$ports=@(7101,8101,8301);


#[Static ip]
#You can change the addr to your ip config to listen to a specific address
$addr='0.0.0.0';
$ports_a = $ports -join ",";


#Remove Firewall Exception Rules
iex "Remove-NetFireWallRule -DisplayName 'WSL 2 Firewall Unlock' ";

#adding Exception Rules for inbound and outbound Rules
iex "New-NetFireWallRule -DisplayName 'WSL 2 Firewall Unlock' -Direction Outbound -LocalPort $ports_a -Action Allow -Protocol TCP";
iex "New-NetFireWallRule -DisplayName 'WSL 2 Firewall Unlock' -Direction Inbound -LocalPort $ports_a -Action Allow -Protocol TCP";

for( $i = 0; $i -lt $ports.length; $i++ ){
  $port = $ports[$i];
  iex "netsh interface portproxy delete v4tov4 listenport=$port listenaddress=$addr";
  iex "netsh interface portproxy add v4tov4 listenport=$port listenaddress=$addr connectport=$port connectaddress=$remoteport";
}

echo "Success!";

创建命令脚本运行 ps1

wsl2-export-ports.cmd

PowerShell -Command "Set-ExecutionPolicy Unrestricted" >> "C:\Users\jiang\Documents\wsl2-export-ports.txt" 2>&1
PowerShell C:\Users\jiang\Documents\wsl2-export-ports.ps1 >> "C:\Users\jiang\Documents\wsl2-export-ports.txt" 2>&1

在 Task Scheduler 中添加新任务

创建基础任务

Task Scheduler -> Create Basic Task...

添加管理员权限

最终重启永久生效

上一篇 下一篇

猜你喜欢

热点阅读