iT邦幫忙

DAY 29
8

WSH研習記錄系列 第 31

WSH研習記錄--個人小嘗試分享

大家應該都知道
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

這是用來確認防火牆的狀態是開啟還是關閉的..

提供給有需要的人..


上一篇
WSH研習記錄--Office應用程式操作篇(Excel應用三)
下一篇
WSH研習記錄--個人小嘗試分享(續)
系列文
WSH研習記錄42
0
魯大
iT邦高手 1 級 ‧ 2009-10-29 11:51:34

附帶提一點
這個不適合在Windows 2000含以下版本使用
基本上它們沒有內建Windows防火牆.. XDD
而XP以上的版本,在使用上需確認使用者的權限問題..
開關防火牆是要有權限的使用者才能夠修改的..

0
海綿寶寶
iT邦大神 1 級 ‧ 2009-10-29 12:00:30

Set objFirewall = CreateObject("HNetCfg.FwMgr")
Set objPolicy = objFirewall.LocalPolicy.CurrentProfile
objPolicy.FirewallEnabled = FALSE

這樣就可以關掉防火牆
感覺好像很不安全

不像我們家侏儸紀公園的電源
還要先手動將把手充電
然後還得一個一個打開電源....

0
魯大
iT邦高手 1 級 ‧ 2009-10-29 15:50:49

要執行這個的話,是要有權限的
沒有權限的話,那是會出現錯誤的..

不過,你家侏儸紀公園的電源不是早就被關掉了..
要不你怎麼會跑出來參加鐵人賽..

我大概被電暈了 @_@

0
tom6507
iT邦大師 1 級 ‧ 2009-10-29 19:23:01

跟我用註冊表有異曲同工之妙
http://ithelp.ithome.com.tw/question/10023771

0
魯大
iT邦高手 1 級 ‧ 2009-10-30 23:45:08

狐狸大仙啊..
別拿小弟的跟您比,不敢~不敢~

不過,僅管做用差不多,但是總是會有權限的限制
不知大仙有何妙招啊..

tom6507 iT邦大師 1 級 ‧ 2009-10-31 11:28:10 檢舉

不,我反而覺得用script比用註冊表來的好
丟到GPO裡面執行就不會有權限的問題了

我要留言

立即登入留言