ICS的設定是否有指令模式可以用?



贊助商連結


頁 : 1 [2]

rain
2009-07-22, 10:36 PM
感謝bx2aa與twasa兩位先進,已經拿到ics1.vbs也運用成功囉

原來那段0123的描述是function執行後的回傳值,在那邊研究老半天怎麼代參數進去:jump2:
話說我拿到ics.vbs也有嚐試過把DisableSharing改成EnableSharing:D,結果當然是失敗 呵呵

另外真的很神奇,直接透過URL連上experts-exchange.com是看不到回覆的內容,他所有回覆內容都呈現請登入會員才能觀看,而如twasa所述,透過google先找出DIM ICSSC_DEFAULT, CONNECTION_PUBLIC, CONNECTION_PRIVATE, CONNECTION_ALL EnableSharing
,再透過google找到的第二個連進去,就可以看到回覆的內容了,不知google代了哪些參數過去

另外想到一個構思,透過wscript執行完ics1.vbs,應該把偵測到的NIC&PPPoE&1394等相關介面,彈跳出一個單選清單,可以透過對話方框完成設定,呵~幻想一下

另外不知有沒有先進可以把ics.vbs和ics1.vbs整合在一起(雖然可以寫個批次檔代理),整合起來的動作就是當執行cscript ics1.vbs "xxx" "zzz",會先跑一次ics.vbs的流程先把有啟動ICS的介面先關閉,因為我發現ics1.vbs的設計是當zzz介面啟動ICS,那要改成yyy介面,下cscript ics1.vbs "xxx" "yyy",這樣是不會動作的,所以才想說當每次要啟動ICS動作前先跑一次ics.vbs的關閉ICS流程

謝謝

贊助商連結


bx2aa
2009-07-23, 12:03 AM
在 67 和 68 行中間加一行

for each Item in EveryConnectionCollection
set EveryConnection = NetSharingManager.INetSharingConfigurationForINetConnection(Item)
set objNCProps = NetSharingManager.NetConnectionProps(Item)
szMsg = "Name: " & objNCProps.Name & vbCRLF & _
"Guid: " & objNCProps.Guid & vbCRLF & _
"DeviceName: " & objNCProps.DeviceName & vbCRLF & _
"Status: " & objNCProps.Status & vbCRLF & _
"MediaType: " & objNCProps.MediaType
EveryConnection.DisableSharing
if EveryConnection.SharingEnabled then
szMsg = szMsg & vbCRLF & _
"SharingEnabled" & vbCRLF & _
"SharingType: " & ConvertConnectionTypeToString(EveryConnection.SharingConnectionType)
end if

第一次執行
C:\>cscript ics1.vbs
Microsoft (R) Windows Script Host Version 5.7
Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.

1 objects for connection type public
1 objects for connection type private
2 objects for connection type all



Name: 區域連線
Guid: {26929BF2-EA24-402B-85DE-ECE9304EBA98}
DeviceName: VMware Accelerated AMD PCNet Adapter
Status: 2
MediaType: 3


Name: test
Guid: {BCE2EE8D-2556-4FE9-B44C-03AD76810E13}
DeviceName: WAN 迷你連接埠 (PPTP)
Status: 0
MediaType: 5


To share your internet connection, please provide the name of the private and pu
blic connections as the argument.

Usage:
ics1.vbs "Private Connection Name" "Public Connection Name"


第二次執行
C:\>cscript ics1.vbs
Microsoft (R) Windows Script Host Version 5.7
Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.

0 objects for connection type public
0 objects for connection type private
3 objects for connection type all



Name: 區域連線
Guid: {26929BF2-EA24-402B-85DE-ECE9304EBA98}
DeviceName: VMware Accelerated AMD PCNet Adapter
Status: 2
MediaType: 3


Name: test
Guid: {BCE2EE8D-2556-4FE9-B44C-03AD76810E13}
DeviceName: WAN 迷你連接埠 (PPTP)
Status: 0
MediaType: 5


Name: 網際網路連線
Guid: {BA126AE2-2166-11D1-B1D0-00805FC1270E}
DeviceName: 網際網路連線
Status: 2
MediaType: 8


To share your internet connection, please provide the name of the private and pu
blic connections as the argument.

Usage:
ics1.vbs "Private Connection Name" "Public Connection Name"

關掉了.

bx2aa
2009-07-23, 12:29 AM
改成這樣

for each Item in EveryConnectionCollection
set EveryConnection = NetSharingManager.INetSharingConfigurationForINetConnection(Item)
set objNCProps = NetSharingManager.NetConnectionProps(Item)
szMsg = "Name: " & objNCProps.Name & vbCRLF & _
"Guid: " & objNCProps.Guid & vbCRLF & _
"DeviceName: " & objNCProps.DeviceName & vbCRLF & _
"Status: " & objNCProps.Status & vbCRLF & _
"MediaType: " & objNCProps.MediaType
priv_con = objArgs(0)
if ( priv_con = "off" ) then
EveryConnection.DisableSharing
end if
if EveryConnection.SharingEnabled then
szMsg = szMsg & vbCRLF & _
"SharingEnabled" & vbCRLF & _
"SharingType: " & ConvertConnectionTypeToString(EveryConnection.SharingConnectionType)
end if

則 cscript ics1.vbs 只會列出不會關
下 cscript ics1.vbs off 就全關了.

rain
2009-07-24, 02:05 PM
感謝bx2aa提供兩個改寫方式

來寫一下測試心得,第一個方式我發現,假設有LAN1、LAN2、LAN3這三個NIC,當ICS-WAN為LAN1時,要改為LAN2或LAN3可以直接改,因為跑vbs會先對於LAN1下EveryConnection.DisableSharing,但假設要從LAN2或LAN3改回LAN1,就會失效了,因為EveryConnection.DisableSharing還沒關閉LAN2或LAN3就已經要EnableSharing給LAN1,而ics1.vbs的設計又不像正常的對話窗方式勾選,當它偵測到有其他介面有啟動ICS,只是多一個提示訊息,按確定之後會幫你把原來的關閉ICS,替換成新的介面。

而第二個方式,卻還是要寫個批次檔,先跑一次ics1.vbs off再跑一次ics1.vbs "lan" "wan",一開始在dos模式可以這樣做 ics1.vbs off & ics1.vbs "lan" "wan",一行搞定,不過當我是用捷徑的方式建立,卻不吃&這一套

哈~這種需求我看是在做實驗才用的到吧,實際誰會那麼無聊改ICS改來改去:D

bx2aa
2009-07-24, 03:57 PM
感謝bx2aa提供兩個改寫方式

來寫一下測試心得,第一個方式我發現,假設有LAN1、LAN2、LAN3這三個NIC,當ICS-WAN為LAN1時,要改為LAN2或LAN3可以直接改,因為跑vbs會先對於LAN1下EveryConnection.DisableSharing,但假設要從LAN2或LAN3改回LAN1,就會失效了,因為EveryConnection.DisableSharing還沒關閉LAN2或LAN3就已經要EnableSharing給LAN1,而ics1.vbs的設計又不像正常的對話窗方式勾選,當它偵測到有其他介面有啟動ICS,只是多一個提示訊息,按確定之後會幫你把原來的關閉ICS,替換成新的介面。

那再改一下.

在原程式行數的 157 166 下各加一行.

set PublicConnection = NetSharingManager.INetSharingConfigurationForINetConnection(Item)
PublicConnection.DisableSharing

set PrivateConnection = NetSharingManager.INetSharingConfigurationForINetConnection(Item)
PrivateConnection.DisableSharing