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.

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/41908.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/41908.shtml
英文地址,請注明出處:http://en.pswp.cn/news/41908.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

web即時通訊系統與APP即時通訊系統有什么區別?

隨著互聯網的不斷發展&#xff0c;即時通訊技術也在不斷地完善和發展&#xff0c;其中Web即時通訊系統和APP即時通訊系統成為了人們廣泛使用的兩種通訊方式。那么&#xff0c;這兩者之間究竟有什么區別呢&#xff1f;在本文中&#xff0c;我們將為您詳細介紹這兩種通訊方式的區…

如何將labelImg打包成exe

最近整理一下數據標注這塊的內容&#xff0c;在目標檢測和目標分割里面用的最多的標注工具labelimg&#xff0c;labelme labelimg主要用于目標檢測領域制作自己的數據集&#xff0c;如&#xff1a;YOLO系列目標檢測模型 labelme主要用于圖像分割領域制作自己的數據集&#xf…

如何仿寫簡易tomcat 實現思路+代碼詳細講解

仿寫之前&#xff0c;我們要搞清楚都要用到哪些技術 自定義注解&#xff0c;比如Tomcat使用的是Servlet&#xff0c;我們可以定義一個自己的MyServlet構造請求體和返回體&#xff0c;比如tomcat使用HttpRequest&#xff0c;我們可以自己定義myHttpRequestjava去遍歷一個指定目…

Structs新增接口 報錯404,找不到資源

起因&#xff1a;最近在一個古老框架structs上開發新功能&#xff0c;由于之前沒接觸過&#xff0c;故此記錄 新增接口&#xff0c; 接口類&#xff1a; Path("/A") Produces({ MediaType.APPLICATION_JSON }) public interface Money {POSTPath("/B")Resu…

數據結構——鏈表詳解

鏈表 文章目錄 鏈表前言認識鏈表單鏈表結構圖帶頭單循環鏈表結構圖雙向循環鏈表結構圖帶頭雙向循環鏈表結構圖 鏈表特點 鏈表實現(帶頭雙向循環鏈表實現)鏈表結構體(1) 新建頭節點(2) 建立新節點(3)尾部插入節點(4)刪除節點(5)頭部插入節點(6) 頭刪節點(7) 尋找節點(8) pos位置…

網絡編程socket.close/output.close/socket.shutdownOutput區別與流程分析

文章目錄 三種方法效果的區別套接字Socket關閉與釋放的區別服務器執行三種關閉操作后&#xff0c;繼續發送/接收數據會發生什么socket.shutdownOutput 關閉連接 找了半個小時沒一個說明白的帖子&#xff0c;真的折磨 三種方法效果的區別 socket.close()Socket主動禁止輸入和輸…

APP外包開發原生和H5的區別

原生開發和H5開發是兩種不同的方法&#xff0c;用于創建移動應用程序。它們具有各自的特點、優勢和劣勢&#xff0c;適用于不同的應用場景。以下是原生開發和H5開發之間的一些主要區別&#xff0c;希望對大家有所幫助。北京木奇移動技術有限公司&#xff0c;專業的軟件外包開發…

DELETE 與TRUNCATE區別

DELETE 與TRUNCATE區別 要清空 PostgreSQL 中的表數據&#xff0c;可以使用 DELETE 或 TRUNCATE 語句。下面是兩種方法的示例&#xff1a; 使用 DELETE 語句清空表數據&#xff1a; DELETE FROM 表名;例如&#xff0c;要清空名為 users 的表數據&#xff1a; DELETE FROM u…

未來公文的智能化進程

隨著技術的飛速發展&#xff0c;公文——這個有著悠久歷史的官方溝通方式&#xff0c;也正逐步走向智能化的未來。自動化、人工智能、區塊鏈...這些現代科技正重塑我們的公文制度&#xff0c;讓其變得更加高效、安全和智慧。 1.語義理解與自動生成 通過深度學習和NLP&#xff…

14-案例:購物車

綜合案例-購物車 需求說明: 1. 渲染功能 v-if/v-else v-for :class 2. 刪除功能 點擊傳參 filter過濾覆蓋原數組 3. 修改個數 點擊傳參 find找對象 4. 全選反選 計算屬性computed 完整寫法 get/set 5. 統計 選中的 總價 和 數量 計算屬性conputed reduce條件求和 6. 持久化到本…

電子商務公開密鑰加密法

(一)定義與應用原理 公開密鑰加密法是針對私有密鑰加密法的缺陷而提出來的。是電子商務應 用的核心密碼技術。所謂公開密鑰加密&#xff0c;就是指在計算機網絡上甲、乙兩用戶之間 進行通信時&#xff0c;發送方甲為了保護要傳輸的明文信息不被第三方竊取&#xff0c;采用密…

從零基礎到精通IT:探索高效學習路徑與成功案例

文章目錄 導語&#xff1a;第一步&#xff1a;明確學習目標與方向選擇適合的IT方向設定具體的學習目標咨詢和調研 第二步&#xff1a;系統學習基礎知識選擇適合的編程語言學習數據結構和算法掌握操作系統和計算機網絡基礎 第三步&#xff1a;實踐項目鍛煉技能選擇合適的項目編寫…

聊一下操作系統 macOS 與 Linux

對于Windows操作系統大家都比較熟悉&#xff0c;也常拿它與Linux操作系統進行比較&#xff0c;兩者之間的差異也很明顯。但對于macOS 和 Linux的比較不太多&#xff0c;很多人認為它們很相似&#xff0c;因為這兩種操作系統都可以運行 Unix 命令。其實詳細比較下&#xff0c;兩…

Redis——哨兵模式(docker部署redis哨兵)+緩存穿透和雪崩

哨兵模式 自動選取主機的模式。 概述 主從切換技術的方法是:當主服務器宕機后&#xff0c;需要手動把一臺從服務器切換為主服務器&#xff0c;這就需要人工干預&#xff0c;費事費力&#xff0c;還會造成段時間內服務不可用。這不是一種推薦的方式&#xff0c;更多時候&…

前端開發怎么解決性能優化的問題? - 易智編譯EaseEditing

前端性能優化是確保網站或應用在加載速度、響應性和用戶體驗等方面達到最佳狀態的關鍵任務。以下是一些解決前端性能優化問題的方法&#xff1a; 壓縮和合并代碼&#xff1a; 壓縮和合并CSS、JavaScript和HTML文件可以減少文件大小&#xff0c;加快加載速度。使用壓縮工具&am…

【Linux】Linux下常用查看文件指令小結

0x00 前言 版本信息&#xff1a;Ubuntu 18.04.6 LTS 最后更新日期&#xff1a;2023.8.18 0x01 Linux下常用查看文件指令小結 cat file &#xff1a;顯示文件內容&#xff0c;支持-n選項&#xff0c;即cat -n file&#xff0c;表示加行號顯示文件內容&#xff0c;不過不適合看…

vue vs react

vue 簡介&#xff1a;漸進式 JavaScript 框架 來源&#xff1a;最初由 Evan You &#xff08;尤雨溪&#xff09;于2014年開發。Evan You之前在Google研究過AngularJS&#xff0c;并提取了Angular的部分特性以提供一個更輕量級的框架 版本&#xff1a; vue 1x&#xff1a;2014…

協同過濾推薦算法-基于Django+mysql的智能水果銷售系統設計(可做計算機畢設)

隨著科技的不斷發展&#xff0c;智能化已經成為各行各業的趨勢&#xff0c;水果銷售行業也不例外。智能水果銷售系統就是應運而生的一種智能化解決方案&#xff0c;它可以為用戶提供更加便捷、高效的購物體驗。其中&#xff0c;系統模塊是智能水果銷售系統的重要組成部分。 系…

tsconfig.json

概念 tsconfig.json所在位置是ts項目的根目錄&#xff0c;他的主要作用是自定義配置不同的選項來告訴編譯器如何編譯當前項目。 重要屬性 compilerOptions - 主要用來配置目標js版本&#xff08;target&#xff09;、模塊解析方式&#xff08;moudle&#xff09;、輸出目錄&am…

python實現文字轉語音

文字轉語音 簡介 pyttsx3是一個Python庫&#xff0c;用于文字轉語音的功能。它可以將文本轉換為語音&#xff0c;并使用不同的音頻引擎進行輸出。這個教程將向您介紹如何使用pyttsx3來創建自定義的語音應用程序。 安裝 使用以下命令安裝pyttsx3庫&#xff1a; pip install…