<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; VBScript: перечисление сетевых подключений]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=743</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=743&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «VBScript: перечисление сетевых подключений».]]></description>
		<lastBuildDate>Mon, 27 Jul 2009 17:02:13 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: VBScript: перечисление сетевых подключений]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=26492#p26492</link>
			<description><![CDATA[<p>Скрипт переключает состояние указанного сетевого подключения компьютера (если включено - отключает, и наоборот). Без использования WMI.</p><p>Отличия от скрипта, представленного в предыдущем посте:<br />* упрощена схема получения объекта Folder «Сетевые подключения»: объект получается напрямую, указанием соответствующего CSIDL_xxx (и, возможно, вследствие этого не будет работать ниже W2K);<br />* упрощена логика работы; соответственно, выкинуты лишние объекты objEnable, objDisable и переменная bEnabled;<br />* вместо простого ожидания «WScript.Sleep 1000», времени которого может оказаться недостаточно (см. <a href="http://forum.script-coding.com/viewtopic.php?id=982">VBScript: запуск файлов ассоциированным приложением</a>), ждём действительной отработки глагола (процедура «WaitForVerb») и выходим из ожидания только по свершившемуся факту.<br />* результат переключения возвращаем как ERRORLEVEL: 0 — успешное переключение, всё, что больше — неудача.<br /></p><div class="codebox"><pre><code>Option Explicit

Const CSIDL_NetworkConnections = &amp;H31


Dim strNetworkConnectionsName
Dim strVerbName_Enable
Dim strVerbName_Disable

Dim objShell
Dim objFolder_NetworkConnections
Dim objFolderItem
Dim objFolderItem_NetworkConnections

Dim objVerb


strNetworkConnectionsName = &quot;Подключение по локальной сети&quot; &#039; Имя сетевого соединения
strVerbName_Enable        = &quot;&amp;Включить&quot;                     &#039; En&amp;able для англ. версии ОС
strVerbName_Disable       = &quot;&amp;Отключить&quot;                    &#039; Disa&amp;ble для англ. версии ОС

Set objShell = WScript.CreateObject(&quot;Shell.Application&quot;)
Set objFolder_NetworkConnections = objShell.Namespace(CSIDL_NetworkConnections)

If objFolder_NetworkConnections Is Nothing Then
    WScript.Echo &quot;Virtual Folder [Network Connections] not found.&quot;
    
    WScript.Quit 1
End If

For Each objFolderItem In objFolder_NetworkConnections.Items
    If UCase(objFolderItem.Name) = UCase(strNetworkConnectionsName) Then
        Set objFolderItem_NetworkConnections = objFolderItem
        
        Exit For
    End If
Next

If objFolderItem_NetworkConnections Is Nothing Then
    WScript.Echo &quot;Connection [&quot; &amp; strNetworkConnectionsName &amp; &quot;] not found.&quot;
    
    WScript.Quit 2
End If

For Each objVerb In objFolderItem_NetworkConnections.Verbs
    If objVerb.Name = strVerbName_Enable Then
        objVerb.DoIt
        WaitForVerb objFolderItem_NetworkConnections, strVerbName_Disable
        
        Exit For
    End If
    
    If objVerb.Name = strVerbName_Disable Then
        objVerb.DoIt
        WaitForVerb objFolderItem_NetworkConnections, strVerbName_Enable
        
        Exit For
    End If
Next

Set objFolderItem_NetworkConnections = Nothing
Set objFolder_NetworkConnections     = Nothing
Set objShell                         = Nothing

WScript.Quit 0
&#039;=============================================================================

&#039;=============================================================================
Sub WaitForVerb(objFolderItem, strVerb)
    Dim objVerb
    
    Do
        For Each objVerb In objFolderItem.Verbs
            If objVerb.Name = strVerb Then
                Exit Do
            End If
        Next
        
        WScript.Sleep 100
    Loop
End Sub
&#039;=============================================================================</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (alexii)]]></author>
			<pubDate>Mon, 27 Jul 2009 17:02:13 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=26492#p26492</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBScript: перечисление сетевых подключений]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=5536#p5536</link>
			<description><![CDATA[<p>Скрипт переключает состояние указанного сетевого подключения компьютера (если включено - отключает, и наоборот). Без использования WMI.<br />Идею опубликовал <strong>dmitry_a</strong>.<br /></p><div class="codebox"><pre><code>strNetConn = &quot;Сетевые подключения&quot; &#039; Network Connections для англ. версии ОС
strConn = &quot;Подключение по локальной сети&quot; &#039; имя или часть имени подключения
strEnable = &quot;&amp;Включить&quot; &#039; En&amp;able для англ. версии ОС
strDisable = &quot;&amp;Отключить&quot; &#039; Disa&amp;ble для англ. версии ОС

Set objShell = CreateObject(&quot;Shell.Application&quot;)
Set objCP = objShell.Namespace(3) &#039; Панель управления
For Each elem in objCP.Items
    If elem.Name = strNetConn Then
        &#039; получение папки &quot;Сетевые подключения&quot;
        Set colNetwork = elem.GetFolder
        Exit For
    End If
Next

Set Conn = Nothing
For Each clsConn in colNetwork.Items
    If Instr(LCase(clsConn.name), LCase(strConn)) Then
        &#039; получение указанного подключения
        Set Conn = clsConn
        Exit For
    End If
Next
If Conn Is Nothing Then
    WScript.Echo &quot;Network Connection not found&quot;
    WScript.Quit
End If

bEnabled = True
Set objEnable = Nothing
Set objDisable = Nothing
For Each clsVerb in Conn.verbs
    &#039; если доступен глагол &quot;Enable&quot;, подключение отключено
    If clsVerb.Name = strEnable Then
        Set objEnable = clsVerb
        bEnabled = False
    End If
    &#039; если доступен глагол &quot;Disable&quot;, подключение подключено
    If clsVerb.name = strDisable Then
        Set objDisable = clsVerb
    End If
Next

If bEnabled Then
    objDisable.DoIt
    strStatus = &quot;disabled.&quot;
Else
    objEnable.DoIt
    strStatus = &quot;enabled.&quot;
End If
WScript.Sleep 1000

WScript.Echo Conn.Name &amp; &quot; &quot; &amp; strStatus</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (The gray Cardinal)]]></author>
			<pubDate>Tue, 16 Oct 2007 17:06:34 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=5536#p5536</guid>
		</item>
		<item>
			<title><![CDATA[VBScript: перечисление сетевых подключений]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=5257#p5257</link>
			<description><![CDATA[<p>WMI-скрипт перечисляет сетевые подключения компьютера, определяет их статус (подключено, отключено и т.п.).<br /></p><div class="codebox"><pre><code>strComputer = &quot;.&quot;
Set objWMIService = GetObject(&quot;winmgmts:{impersonationLevel=impersonate}!\\&quot; &amp; strComputer &amp; &quot;\root\cimv2&quot;)
Set colShares = objWMIService.ExecQuery(&quot;SELECT * FROM Win32_NetworkAdapter&quot;)
Set NetConnStat = CreateObject(&quot;Scripting.Dictionary&quot;)
NetConnStat.Add 0, &quot;Disconnected&quot;
NetConnStat.Add 1, &quot;Connecting&quot;
NetConnStat.Add 2, &quot;Connected&quot;
NetConnStat.Add 3, &quot;Disconnecting&quot;
NetConnStat.Add 4, &quot;Hardware not present&quot;
NetConnStat.Add 5, &quot;Hardware disabled&quot;
NetConnStat.Add 6, &quot;Hardware malfunction&quot;
NetConnStat.Add 7, &quot;Media disconnected&quot;
NetConnStat.Add 8, &quot;Authenticating&quot;
NetConnStat.Add 9, &quot;Authentication succeeded&quot;
NetConnStat.Add 10, &quot;Authentication failed&quot;
NetConnStat.Add 11, &quot;Invalid address&quot;
NetConnStat.Add 12, &quot;Credentials required&quot;
NetConnStat.Add Null, &quot;Null&quot;
For Each objShare In colShares
    Wscript.Echo NetConnStat.Item(objshare.NetConnectionStatus)
    Wscript.Echo objshare.AdapterType
    Wscript.Echo objshare.PNPDeviceID
    Wscript.Echo objshare.Description
    Wscript.Echo objshare.NetConnectionID
    Wscript.Echo
Next</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (The gray Cardinal)]]></author>
			<pubDate>Tue, 02 Oct 2007 18:14:40 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=5257#p5257</guid>
		</item>
	</channel>
</rss>
