导语:需要通过管理员运行powershell,在里面输入一些命令。打算通过开机启动cmd脚本,通过cmd脚本 执行ps1脚本

问题:单独执行脚本会报错。

解决方式

需要在注册表的如下位置HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run创建字符Shadow,值为cmd脚本的位置。

以下是cmd脚本鹿筋

C:\Users\Administrator\Desktop\Shadow.cmd

打开powershell,采用unrestricted形式(否则无法执行脚本)

@set Path=%Path%;%SystemRoot%\system32\WindowsPowerShell\v1.0\& powershell -ExecutionPolicy Unrestricted "C:\Users\Administrator\Desktop\init.ps1"
exit

init.ps1脚本如下

# 获取 Windows 和 WSL2 的 ip
# $winip = bash.exe -c "ip route | grep default | awk '{print `$3}'"
# default via 172.20.16.1 dev eth0
$winip = bash.exe -c "ip route | grep default |cut -d ' ' -f 3"
# $wslip = bash.exe -c "hostname -I | awk '{print `$1}'"
# 172.20.30.87 172.16.10.174 172.18.0.1 172.17.0.1
$wslip = bash.exe -c "hostname -I |cut -d ' '  -f 1 "
$found1 = $winip -match '\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}';
$found2 = $wslip -match '\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}';if( !($found1 -and $found2) ){# 如果没找到 wsl 的 ip, 就退出执行echo "The Script Exited, the ip address of WSL 2 cannot be found";exit;
}# 你需要映射到局域网中端口
$ports=@(80,81,22222,22,800,11380,11381);# 监听的 ip,这么写是可以来自局域网
$addr='0.0.0.0';
# 监听的端口,就是谁来访问自己
$ports_a = $ports -join ",";# 移除旧的防火墙规则
iex "Remove-NetFireWallRule -DisplayName 'WSL 2 Firewall Unlock' " | Out-Null# 允许防火墙规则通过这些端口
iex "New-NetFireWallRule -DisplayName 'WSL 2 Firewall Unlock' -Direction Outbound -LocalPort $ports_a -Action Allow -Protocol TCP"  | Out-Null
iex "New-NetFireWallRule -DisplayName 'WSL 2 Firewall Unlock' -Direction Inbound -LocalPort $ports_a -Action Allow -Protocol TCP"  | Out-Null# 使用 portproxy 让 Windows 转发端口
# https://docs.microsoft.com/en-us/windows-server/networking/technologies/netsh/netsh-interface-portproxy
for( $i = 0; $i -lt $ports.length; $i++ ){$port = $ports[$i];iex "netsh interface portproxy delete v4tov4 listenport=$port listenaddress=$addr"  | Out-Nulliex "netsh interface portproxy add v4tov4 listenport=$port listenaddress=$addr connectport=$port connectaddress=$wslip"  | Out-Null
}

添加开机启动

搜索计算机管理 选择任务计划任务

以下面模版创建任务

缺点:每次开机会打开ps1这个脚本文件。容易被人手滑修改。

参考

https://www.programminghunter.com/article/19961163124/

https://zhuanlan.zhihu.com/p/20628937

https://blog.minifish.org/posts/powershell-starttup/

https://blog.csdn.net/Jmilk/article/details/50661936

win10开机启动ps1脚本相关推荐

  1. CentOS 7添加开机启动服务/脚本

    CentOS 7添加开机启动服务/脚本 一.添加开机自启服务 在CentOS 7中添加开机自启服务非常方便,只需要两条命令(以Jenkins为例): systemctl enable jenkins. ...

  2. Android8.0 开机启动脚本,Android开机启动shell脚本(Android 8.0测试OK)

    Android 下做开机启动shell脚本的大致流程如下: 目录 写shell脚本 为脚本写te文件 在init.rc中启动脚本 添加Selinux权限 写shell脚本 比如新建一个init.tes ...

  3. 详解win10开机启动慢是什么原因怎么解决

    win10系统的特点就是开机速度快,但是有网友却反映自己的win10开机启动慢是什么原因呢?如何解决呢?一般造成这种情况的原因主要有几种,今天小编就给大家分析下win10开机启动慢的原因和解决方法. ...

  4. win10开机启动慢如何解决?三种方法帮你解决!

    win10开机启动慢如何解决?win10系统的特点就是开机速度快,但是有网友却反映自己的win10开机启动慢是什么原因呢?如何解决呢?一般造成这种情况的原因主要有几种,今天小编就给大家分析下win10 ...

  5. win10开机启动文件夹路径

    win10开机启动文件夹路径是什么: 1.路径:[C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp] 2.快捷命令:按下[win ...

  6. 【开机启动】win11开机启动软件,win11开机启动bat脚本(开机启动vbs文件)

    目录 编辑bat脚本 编辑vbs脚本 让vbs脚本开机启动 编辑bat脚本 简单介绍一下 ::是注释前缀 echo 是输出内容到控制台,等同于print @echo off可以关闭路径显示,自己尝试写 ...

  7. win10开机启动项(win10开机启动项无法启动)

    win10怎样把qq放到开机启动项里 方法二:以前XP.W7系统的开始菜单上有"启动"项供使用,到了W10系统,开始菜单取消了此选项,但我们将QQ的桌面快捷方式复制到"启 ...

  8. Skill: win10: 开机启动项管理配置

    win10 开机启动项管理配置 开始 – 运行 – msconfig – 启动 – 打开任务管理器 – 启用/禁用各种开机启动项

  9. Ubuntu 16.04设置rc.local开机启动命令/脚本的方法

    Ubuntu 16.04设置rc.local开机启动命令/脚本的方法(通过update-rc.d管理Ubuntu开机启动程序/服务) 注意:rc.local脚本里面启动的用户默认为root权限. 一. ...

  10. Android 开机启动shell脚本

    接到一个集成功能的需求,然后看了一下是由上层应用 + linux进程实现的功能,需要增加开机自动启动linux进程,没弄过有点懵. 这个不怎么正确,仅供参考,在权限那块需要更改,放到system下 环 ...

最新文章

  1. 循环神经网络(RNN、LSTM、GRU)
  2. 20181110-软件开发架构2
  3. Kubernetes — 容器设计模式
  4. KVM 介绍(4):I/O 设备直接分配和 SR-IOV [KVM PCI/PCIe Pass-Through SR-IOV]
  5. Cisco 交換機命名規則
  6. IDEA 调试Spring-boot 应用
  7. 动画 java_Java动画程序介绍
  8. SpringBoot - 优雅的实现【流控】
  9. 牛客练习赛46T1-华华教奕奕写几何【数学】
  10. python 画折线图_Python让你的数据生成可视化图形
  11. 数据库系统中数据抽象的三级结构
  12. windows下的IO模型之完成端口
  13. 为什么线程池里的方法会执行两次_别以为线程池很简单,来回答下这些问题!...
  14. Html文档与基本语法和规范
  15. BXP千兆无盘网吧解决方案(转)
  16. 【python 数据分析】不同情况下的t检验、Wilcoxon符号秩检验、Wilcoxon秩和检验、卡方检验、Fisher检验
  17. 一枚namecheap续费可用的优惠码
  18. cobbler源码安装
  19. 五款最优秀的java微服务框架
  20. 《国度》之大学者联盟全解

热门文章

  1. 采访了12位中年程序员,听听他们的故事和人生!
  2. 64位win7下Android SDK Manager闪退的解决方法
  3. 20 周年会上的这条视频,看哭了 10 万阿里人
  4. 特殊字符大全-希腊字母俄文注音拼音日文序集心型方形点数绘表(转载)
  5. 解决Ubuntu键盘错乱问题
  6. 【人工翻译线代教材】Introduction to Linear Algebra BY Gilbert Strang【MIT】【线代】【翻译】
  7. QT框架下的OpenGL使用---实战篇---鼠标选取点对象
  8. Android如何实现全局的护眼模式
  9. 全面认识数据指标体系
  10. 网易云音乐实时数仓2.0进阶之路