当前位置: 首页 > news >正文

windows bat脚本,使用命令行增加/删除防火墙:入站-出站,规则

常常手动设置防火墙的入站或出站规则,比较麻烦,其实可以用命令行搞定。
下面是禁用BCompare.exe连接网络的例子:

@ECHO OFF&(PUSHD "%~DP0")&(REG QUERY "HKU\S-1-5-19">NUL 2>&1)||(powershell -Command "Start-Process '%~dpnx0' -Verb RunAs"&&EXIT)rem %~sdpnx0 use short names
rem @ECHO OFF&(PUSHD "%~DP0")&(REG QUERY "HKU\S-1-5-19">NUL 2>&1)||(powershell -Command "Start-Process '%~sdpnx0' -Verb RunAs"&&EXIT)
rem %~dpnx0 use long names
rem @ECHO OFF&(PUSHD "%~DP0")&(REG QUERY "HKU\S-1-5-19">NUL 2>&1)||(powershell -Command "Start-Process '%~dpnx0' -Verb RunAs"&&EXIT)rem 获取当前脚本文件的完整路径,并切换到BCompare.exe程序所在的目录
set current_path=%~dp0
rem echo current_path=%current_path%rem 设置变量“xpath”的值为BCompare.exe程序的绝对路径
set xpath="%current_path%BCompare.exe"
rem echo xpath="%current_path%BCompare.exe"rem 删除之前可能存在的防火墙规则,并忽略错误信息
echo "删除-BCompare禁止联网-出站"
@netsh advfirewall firewall delete rule name="BCompare禁止联网-出站"
echo "删除-BCompare禁止联网-入站"
@netsh advfirewall firewall delete rule name="BCompare禁止联网-入站"rem 添加新的防火墙规则,禁止BCompare.exe程序的出站和入站网络流量
echo "添加,BCompare禁止联网-出站 规则"
netsh advfirewall firewall add rule name="BCompare禁止联网-出站" dir=out action=block profile=any program=%xpath% enable=yes
echo "添加,BCompare禁止联网-入站 规则"
netsh advfirewall firewall add rule name="BCompare禁止联网-入站" dir=in  action=block profile=any program=%xpath% enable=yes
pause

命令add rule 解析

创建的规则类型
netsh advfirewall firewall add rule 接如下参数:

  • dir=in: 还可选out,in是入站(inbound)的。只适用于从外部网络向本地计算机发送的数据流量,也就是别人访问你的计算机的情况;out 只适用于出站(outbound)的网络流量,也就是从本地计算机向外部网络发送的数据。
  • program="C:\xxx.exe"
  • protocol=tcp: 还可选0-255|icmpv4|icmpv6|icmpv4:type,code|icmpv6:type,code|tcp|udp|any (default=any)
  • localip=any:还可选<IPv4 address>|<IPv6 address>|<subnet>|<range>|<list>
  • localport=0-65535:其他还有<port range>[,...]|RPC|RPC-EPMap|IPHTTPS|any (default=any)
  • action=allow:还可选block|bypass。规则允许(allow)这种网络流量通过防火墙,或阻止(block)或绕过(bypass)它。
  • profile=any:还可选public|private|domain|any[,...],所有(any)的防火墙配置文件,包括域(domain)、私有(private)和公共(public)。
  • enable=yes:还可选no,(default=yes)表示这个规则yes启用(enable)的,而不是no禁用的。平时可以不写这一项。

例子:

添加,BCompare禁止联网-出站 规则
netsh advfirewall firewall add rule name="BCompare禁止联网-出站" dir=out action=block profile=any program=%xpath% enable=yes
添加,BCompare禁止联网-入站 规则
netsh advfirewall firewall add rule name="BCompare禁止联网-入站" dir=in  action=block profile=any program=%xpath% enable=yes入站规则
netsh advfirewall firewall add rule name="My Application" dir=in action=allow program="C:\MyApp\MyApp.exe" enable=yes
出站规则
netsh advfirewall firewall add rule name="Remote PortNumber" dir=out action=allow protocol=TCP localport=1234

使用管理员方式运行bat

rem %~sdpnx0 use short names
@ECHO OFF&(PUSHD "%~DP0")&(REG QUERY "HKU\S-1-5-19">NUL 2>&1)||(powershell -Command "Start-Process '%~sdpnx0' -Verb RunAs"&&EXIT)rem %~dpnx0 use long names
@ECHO OFF&(PUSHD "%~DP0")&(REG QUERY "HKU\S-1-5-19">NUL 2>&1)||(powershell -Command "Start-Process '%~dpnx0' -Verb RunAs"&&EXIT)

命令是用来检测当前用户是否具有管理员权限,如果没有,就以管理员身份重新运行该脚本。具体的解释如下:

  • @ECHO OFF表示关闭回显功能,不显示命令本身。
  • (PUSHD "%~DP0")表示将当前目录切换到批处理文件所在的目录,%~DP0是一个参数扩展,表示批处理文件的驱动器和路径。
  • (REG QUERY "HKU\S-1-5-19">NUL 2>&1)表示查询注册表中的一个键值,这个键值是系统默认的管理员账户的SID。如果查询成功,说明当前用户具有管理员权限。>NUL 2>&1表示将标准输出和错误输出都重定向到空设备,即不显示任何信息。
  • ||(powershell -Command "Start-Process '%~sdpnx0' -Verb RunAs"&&EXIT)表示如果前面的命令失败,即当前用户不具有管理员权限,就执行后面的命令。后面的命令是用powershell来启动一个新的进程,这个进程就是当前的批处理文件,但是用短文件名代替长文件名,%~sdpnx0是一个参数扩展,表示批处理文件的完整路径,但用短文件名格式。-Verb RunAs表示以管理员身份运行这个进程。&&EXIT表示如果成功启动了新的进程,就退出当前的进程。

想要修改这个脚本命令为长路径的几种办法,有几种可能的方法:

  • 可以不使用短文件名格式,而直接使用长文件名格式。这样就可以把%~sdpnx0改为%~dpnx0
  • 可以不使用powershell来启动新的进程,而使用runas命令。这样就可以把(powershell -Command "Start-Process '%~sdpnx0' -Verb RunAs")改为(runas /user:administrator "%~sdpnx0")。但是这种方法需要输入管理员账户的密码。
  • 可以不使用reg query来检测管理员权限,而使用net session或者whoami命令。这样就可以把(REG QUERY "HKU\S-1-5-19">NUL 2>&1)改为(NET SESSION>NUL 2>&1)或者(WHOAMI /GROUPS | FINDSTR /C:\"S-1-5-32-544\">NUL 2>&1)

(1) 批处理实战篇—修改文件变量、参数_bat 修改变量的值_BetaGarf的博客-CSDN博客. https://blog.csdn.net/Joker_N/article/details/90375203.
(2) .bat批处理命令常用操作大全 - 知乎 - 知乎专栏. https://zhuanlan.zhihu.com/p/446337414.
(3) BAT批处理基本命令总结 - 知乎 - 知乎专栏. https://zhuanlan.zhihu.com/p/54572985.

相关文章:

windows bat脚本,使用命令行增加/删除防火墙:入站-出站,规则

常常手动设置防火墙的入站或出站规则&#xff0c;比较麻烦&#xff0c;其实可以用命令行搞定。 下面是禁用BCompare.exe连接网络的例子&#xff1a; ECHO OFF&(PUSHD "%~DP0")&(REG QUERY "HKU\S-1-5-19">NUL 2>&1)||(powershell -Comm…...

Stable Diffusion 告别复制关键词,高质量提示词自动生成插件

在使用SD时,我们经常会遇到心中无想法,或不知如何描述心中所想的图像。有时由于提示词的选择不当,生成的图片质量也不尽如人意。为此,我今天为大家推荐一个高质量的提示词自动生成插件——One Button Prompt。 下面是他生成的一些样图。 文章目录 插件安装插件说明主菜单工…...

【学习日记】【FreeRTOS】任务调度时如何考虑任务优先级——任务的自动切换

写在前面 本文开始为 RTOS 加入考虑任务优先级的自动调度算法&#xff0c;代码大部分参考野火。 本文主要是一篇学习笔记&#xff0c;加入了笔者自己对野火代码的梳理和理解。 一、基本思路 首先我们要知道&#xff0c;在 RTOS 中&#xff0c;优先级越高、越需要被先执行的的…...

C语言暑假刷题冲刺篇——day3

目录 一、选择题 二、编程题 &#x1f388;个人主页&#xff1a;库库的里昂 &#x1f390;CSDN新晋作者 &#x1f389;欢迎 &#x1f44d;点赞✍评论⭐收藏✨收录专栏&#xff1a;C语言每日一练✨其他专栏&#xff1a;代码小游戏C语言初阶&#x1f91d;希望作者的文章能对你有…...

Taro+vue3小程序开启分享他人和分享到朋友圈

import Taro, { useShareAppMessage, useShareTimeline } from tarojs/taro;onMounted(() > {Taro.showShareMenu({withShareTicket: true,menus: [shareAppMessage, shareTimeline]}); }); useShareAppMessage((res) > {console.log(页面转发的回调)return {title: 开票…...

JAVA-Spring中IOC容器是什么?

目录 JAVA-Spring中IOC容器是什么&#xff1f;什么是IOC&#xff1f;什么是IOC容器&#xff1f;IOC和IOC容器的对比Spring框架中的IOC容器是如何工作的&#xff1f;使用XML配置的ApplicationContext使用注解的AnnotationConfigApplicationContext总结 JAVA-Spring中IOC容器是什…...

QT多屏显示程序

多屏显示的原理其实很好理解&#xff0c;就拿横向扩展来说&#xff1a; 计算机把桌面的 宽度扩展成了 w1&#xff08;屏幕1的宽度&#xff09; w2(屏幕2的宽度) 。 当一个窗口的起始横坐标 > w1&#xff0c;则 他就被显示在第二个屏幕上了。 多屏虚拟成一个桌面&#xff0…...

python使用xlwt时,报ValueError: More than 4094 XFs (styles)

在写表格时&#xff0c;遇到如下报错 一、报错原因 xlwt最多只能有4094个样式&#xff0c;超出这个样式数量就报错了。 二、解决办法 &#xff08;1&#xff09;去掉样式的要求...

GitHub 打不开解决方案

GitHub 这几年国内普通用户越来越难以访问&#xff0c;github 作为全球最大的开源平台&#xff0c;里面有用的内容很多&#xff0c;不管是对专业用户还是普通用户&#xff0c;无法访问都是很严重的问题。 1.GitHub 加速镜像 kgithub 是一个公益加速项目&#xff0c;仅需在 gi…...

Java网络编程(一)网络基础

概述 计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统、网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递 网络分类 局域网(LAN) 局域网是一种在小区域内使用的,由多台计算机组成的网络,覆盖范围…...

matlab使用教程(17)—多项式的定义和运算

1.创建并计算多项式 此示例说明如何在 MATLAB 中将多项式表示为向量以及根据相关点计算多项式。 1.1 表示多项式 MATLAB 将多项式表示为行向量&#xff0c;其中包含按降幂排序的系数。例如&#xff0c;三元素向量 p [p2 p1 p0]; 表示多项式 创建一个向量以表示二次多项式…...

华为认证 | 这门HCIA认证正式发布!

华为认证云服务工程师HCIA-Cloud Service V3.5&#xff08;中文版&#xff09;自2023年8月11日起&#xff0c;正式在中国区发布。 01 发布概述 基于“平台生态”战略&#xff0c;围绕“云-管-端”协同的新ICT技术架构&#xff0c;华为公司打造了覆盖ICT领域的认证体系&#xf…...

【Docker】Docker安装 MySQL 8.0,简洁版-快速安装使用

今天&#xff0c;使用docker安装mysql数据库进行一个测试&#xff0c;结果网上找了一篇文章&#xff0c;然后。。。。坑死我… 特总结本篇安装教程&#xff0c;主打一个废话不多说&#xff01; 坑&#xff1a;安装成功&#xff0c;客户端工具连接不上数据库》。。。 正文&…...

CSS自己实现一个步骤条

前言 步骤条是一种用于引导用户按照特定流程完成任务的导航条&#xff0c;在各种分步表单交互场景中广泛应用。例如&#xff1a;在HIS系统-门诊医生站中的接诊场景中&#xff0c;我们就可以使用步骤条来实现。她的执行步骤分别是&#xff1a;门诊病历>遗嘱录入>完成接诊…...

Visual Studio 2019 解决scanf函数报错问题

前言 Visual Studio 2019 解决scanf函数报错问题 博主博客链接&#xff1a;https://blog.csdn.net/m0_74014525 关注博主&#xff0c;后期持续更新系列文章 *****感谢观看&#xff0c;希望对你有所帮助***** 系列文章 第一篇&#xff1a;Visual Studio 2019 详细安装教程&…...

亚马逊无限买家号如何注册?

如果想要拥有大批量的亚马逊买家号&#xff0c;可以使用亚马逊鲲鹏系统进行自动注册操作。在注册之前我们需要先准备好账号所需要的资料&#xff1b; 1、Ip&#xff1a;软件系统支持11个亚马逊站点使用&#xff0c;因此注册哪一个国家的买家号时就需要购买相应国家的ip&#x…...

前端框架学习-ES6新特性(尚硅谷web笔记)

ECMASript是由 Ecma 国际通过 ECMA-262 标准化的脚本程序设计语言。javaScript也是该规范的一种实现。 新特性目录 笔记出处&#xff1a;b站ES6let 关键字const关键字变量的解构赋值模板字符串简化对象写法箭头函数rest参数spread扩展运算符Promise模块化 ES8async 和 await E…...

普陀发布新规服务元宇宙企业 和数软件发展元宇宙场景落地

近日&#xff0c;数智中国AIGC科技周2023全球元宇宙大会上海站活动现场“半马苏河”元宇宙企业科创政策包正式发布。政策包在普陀原有科创政策基础上进行了叠加升级&#xff0c;一共涵盖了十条专项服务元宇宙企业的专项政策&#xff0c;简称普陀“元十条”。 普陀“元十条”从…...

Kotlin差异化分析,let,run,with,apply及also

作用域函数是Kotlin比较重要的一个特性&#xff0c;共分为以下5种&#xff1a;let、run、with、apply 以及 also&#xff0c;这五个函数的工作方式可以说非常相似&#xff0c;但是我们需要了解的是这5种函数的差异&#xff0c;以便在不同的场景更好的利用它。 读完这篇文章您将…...

(stm32)低功耗模式

低功耗模式 执行哪个低功耗模式的程序判断流程 标志位设置操作一定要在WFI/WFE之前&#xff0c;调用此指令后立即进入睡眠判断流程 模式对比 睡眠模式 停止模式 待机模式...

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…...

19c补丁后oracle属主变化,导致不能识别磁盘组

补丁后服务器重启&#xff0c;数据库再次无法启动 ORA01017: invalid username/password; logon denied Oracle 19c 在打上 19.23 或以上补丁版本后&#xff0c;存在与用户组权限相关的问题。具体表现为&#xff0c;Oracle 实例的运行用户&#xff08;oracle&#xff09;和集…...

逻辑回归:给不确定性划界的分类大师

想象你是一名医生。面对患者的检查报告&#xff08;肿瘤大小、血液指标&#xff09;&#xff0c;你需要做出一个**决定性判断**&#xff1a;恶性还是良性&#xff1f;这种“非黑即白”的抉择&#xff0c;正是**逻辑回归&#xff08;Logistic Regression&#xff09;** 的战场&a…...

Objective-C常用命名规范总结

【OC】常用命名规范总结 文章目录 【OC】常用命名规范总结1.类名&#xff08;Class Name)2.协议名&#xff08;Protocol Name)3.方法名&#xff08;Method Name)4.属性名&#xff08;Property Name&#xff09;5.局部变量/实例变量&#xff08;Local / Instance Variables&…...

高频面试之3Zookeeper

高频面试之3Zookeeper 文章目录 高频面试之3Zookeeper3.1 常用命令3.2 选举机制3.3 Zookeeper符合法则中哪两个&#xff1f;3.4 Zookeeper脑裂3.5 Zookeeper用来干嘛了 3.1 常用命令 ls、get、create、delete、deleteall3.2 选举机制 半数机制&#xff08;过半机制&#xff0…...

2021-03-15 iview一些问题

1.iview 在使用tree组件时&#xff0c;发现没有set类的方法&#xff0c;只有get&#xff0c;那么要改变tree值&#xff0c;只能遍历treeData&#xff0c;递归修改treeData的checked&#xff0c;发现无法更改&#xff0c;原因在于check模式下&#xff0c;子元素的勾选状态跟父节…...

LLM基础1_语言模型如何处理文本

基于GitHub项目&#xff1a;https://github.com/datawhalechina/llms-from-scratch-cn 工具介绍 tiktoken&#xff1a;OpenAI开发的专业"分词器" torch&#xff1a;Facebook开发的强力计算引擎&#xff0c;相当于超级计算器 理解词嵌入&#xff1a;给词语画"…...

C++ 求圆面积的程序(Program to find area of a circle)

给定半径r&#xff0c;求圆的面积。圆的面积应精确到小数点后5位。 例子&#xff1a; 输入&#xff1a;r 5 输出&#xff1a;78.53982 解释&#xff1a;由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982&#xff0c;因为我们只保留小数点后 5 位数字。 输…...

【HTTP三个基础问题】

面试官您好&#xff01;HTTP是超文本传输协议&#xff0c;是互联网上客户端和服务器之间传输超文本数据&#xff08;比如文字、图片、音频、视频等&#xff09;的核心协议&#xff0c;当前互联网应用最广泛的版本是HTTP1.1&#xff0c;它基于经典的C/S模型&#xff0c;也就是客…...

如何在最短时间内提升打ctf(web)的水平?

刚刚刷完2遍 bugku 的 web 题&#xff0c;前来答题。 每个人对刷题理解是不同&#xff0c;有的人是看了writeup就等于刷了&#xff0c;有的人是收藏了writeup就等于刷了&#xff0c;有的人是跟着writeup做了一遍就等于刷了&#xff0c;还有的人是独立思考做了一遍就等于刷了。…...