大家應該都知道
Windows XP內建有防火牆
在公司的一些網路管理上
有時候會因為這個防火牆造成一些困擾
只好每一台電腦都前去做確認,並且將其關閉
那有可能讓WSH來協助做這項工作嗎??
開啟和關閉Windows的防火牆
為了達成這個任務
小弟我翻了很多的書,以及上網查找
終於有了結論,所以就藉這個機會跟大家分享..
直接看範例:
Option Explicit
Private objFirewall
Private objPolicy
Set objFirewall = CreateObject("HNetCfg.FwMgr")
Set objPolicy = objFirewall.LocalPolicy.CurrentProfile
objPolicy.FirewallEnabled = FALSE
Set objFirewall = Nothing
Set objPolicy = Nothing
這個範例是要把防火牆關閉..
什麼!!
原來就是這麼幾行的程式碼就搞定囉..
如果是要把防火牆開啟,那就將底下這行改一下就行了..
objPolicy.FirewallEnabled = FALSE
只要將「FALSE」改成「TRUE」,就成了..
另外再給大家一個範例:
Option Explicit
Private objFirewall
Private objPolicy
Set objFirewall = CreateObject("HNetCfg.FwMgr")
Set objPolicy = objFirewall.LocalPolicy.CurrentProfile
If objPolicy.FirewallEnabled = True then
WScript.Echo "Firewall is 開啟中!"
else
WScript.Echo "Firewall is 已關閉!"
End If
Set objFirewall = Nothing
Set objPolicy = Nothing
這是用來確認防火牆的狀態是開啟還是關閉的..
提供給有需要的人..
附帶提一點
這個不適合在Windows 2000含以下版本使用
基本上它們沒有內建Windows防火牆.. XDD
而XP以上的版本,在使用上需確認使用者的權限問題..
開關防火牆是要有權限的使用者才能夠修改的..
Set objFirewall = CreateObject("HNetCfg.FwMgr")
Set objPolicy = objFirewall.LocalPolicy.CurrentProfile
objPolicy.FirewallEnabled = FALSE
這樣就可以關掉防火牆
感覺好像很不安全
不像我們家侏儸紀公園的電源
還要先手動將把手充電
然後還得一個一個打開電源....
要執行這個的話,是要有權限的
沒有權限的話,那是會出現錯誤的..
不過,你家侏儸紀公園的電源不是早就被關掉了..
要不你怎麼會跑出來參加鐵人賽..
我大概被電暈了 @_@
跟我用註冊表有異曲同工之妙
http://ithelp.ithome.com.tw/question/10023771
狐狸大仙啊..
別拿小弟的跟您比,不敢~不敢~
不過,僅管做用差不多,但是總是會有權限的限制
不知大仙有何妙招啊..
不,我反而覺得用script比用註冊表來的好
丟到GPO裡面執行就不會有權限的問題了