<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; VBS или JS: wake on lan - как включить удаленный комп?]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=4986</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=4986&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «VBS или JS: wake on lan - как включить удаленный комп?».]]></description>
		<lastBuildDate>Fri, 15 Oct 2010 06:15:22 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: VBS или JS: wake on lan - как включить удаленный комп?]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=40454#p40454</link>
			<description><![CDATA[<div class="quotebox"><cite>Rom5 пишет:</cite><blockquote><p>К примеру, что в BIOSе &quot;Remote Wake Up&quot; переключен из Off в On. Драйвера сетевой карты по идее про это должны &quot;знать&quot;, т.е. каким-то макаром может можно удаленную систему как-то опросить по этому поводу?..</p></blockquote></div><p>Rom5,</p><p>поделюсь своим опытом в этом вопросе.</p><p>Скажу сразу - пока от этой идеи отказался в силу того, что вопрос в конечном итоге упирается не в программные решения, а в железо.<br />Т.е. можно написать работающий скрипт, но вероятность его работоспособности на другой машине под большим вопросом.</p><p>1. BIOS должен поддерживать возможность Wake on LAN (WoL). Но определять, а уж тем более самому устанавливать параметры BIOS универсально невозможно. К материнским платам могут прикладываться утилиты работы с <span class="bbu">данной платой и данным BIOS </span>- но универсального способа нет.<br />Я считаю, что это не самая большая проблема. Более того - установка BIOS, на мой взгляд, принципиально ручная операция. &quot;Программно&quot; такого наворотить можно - комп умрет.</p><p>2. Хуже всего, что WoL должна поддерживать еще и сетевая плата. Я проводил эксперименты на не самой, казалось бы, ацтойной сетевухе - 3COM&nbsp; EtherLink. Но у неё как раз этого свойства и не оказалось.<br />В этом вопросе я наткнулся на такие грабли. Если войти в свойства сетевой платы, то на закладке <em>Управление электропитанием</em> можно выставить галочку <em>Разрешить устройству вывод компьютера из ждущего режима</em>. Сделать это можно в том числе и программно - соответствующий скрипт в конце моего поста.<br />Но! Если на вкладке <em>Дополнительно</em> вашего сетевого девайса нет что-то типа <em>WakeOnLan from PowerOff - Enable</em> - то ваш комп по &quot;магическому пакету&quot; никогда не проснется. Будь этот пакет хоть трижды &quot;магическим&quot;.</p><p>Понятно, что моно сменить сетевую плату - если она не на матери, кстати. Но это не комильфо.</p><p>Скрипт разрешения всем сетевым устройствам локального компа Wake On Lan:</p><div class="codebox"><pre><code>Option Explicit 

Dim colNetworkAdapters 
Dim objNetworkAdapter 

Dim strDevInstanceName 
Dim strNetworkAdapterID

&#039;Query for all of the Win32_NetworkAdapters that are wired Ethernet (AdapterTypeId=0 corresponds to Ethernet 802.3) 
Set colNetworkAdapters = GetObject(&quot;WinMgmts:{impersonationLevel=impersonate}//./root/Cimv2&quot;)_ 
.ExecQuery(&quot;SELECT * FROM Win32_NetworkAdapter WHERE AdapterTypeId=0&quot;) 

WScript.Echo &quot;Enabling WoL for the following adapters:&quot; 

For Each objNetworkAdapter In colNetworkAdapters 
            WScript.Echo &quot;  &quot; &amp; objNetworkAdapter.Name &amp; &quot; [&quot; &amp; objNetworkAdapter.MACAddress &amp; &quot;]&quot; 

            strNetworkAdapterID = UCase(objNetworkAdapter.PNPDeviceID) 

            &#039;Query for all of the MSPower_DeviceWakeEnable classes 
            Dim colPowerWakeEnables 
            Dim objPowerWakeEnable 

            Set colPowerWakeEnables = GetObject(&quot;WinMgmts:{impersonationLevel=impersonate}//./root/wmi&quot;)_ 
            .ExecQuery(&quot;SELECT * FROM MSPower_DeviceWakeEnable&quot;) 
            &#039;Compare the PNP Device ID from the network adapter against the MSPower_DeviceEnabled instances 
            For Each objPowerWakeEnable In colPowerWakeEnables 
                        &#039;We have to compare the leftmost part as MSPower_DeviceEnabled.InstanceName contains an instance suffix 
                        strDevInstanceName = UCase(Left(objPowerWakeEnable.InstanceName, Len(strNetworkAdapterID))) 
                        &#039;Match found, enable WOL 
                        If StrComp(strDevInstanceName, strNetworkAdapterID)=0 Then 
                                    objPowerWakeEnable.Enable = True 
                                    objPowerWakeEnable.Put_           &#039;Required to write the value back to the object 
                        End     If 
            Next 
            &#039;Query for all of the MSNdis_DeviceWakeOnMagicPacketOnly classes 
            Dim colMagicPacketOnlys 
            Dim objMagicPacketOnly 
            Set colMagicPacketOnlys = GetObject(&quot;WinMgmts:{impersonationLevel=impersonate}//./root/wmi&quot;)_ 
            .ExecQuery(&quot;SELECT * FROM MSNdis_DeviceWakeOnMagicPacketOnly&quot;) 
            &#039;Compare the PNP Device ID from the network adapter against the MSNdis_DeviceWakeOnMagicPacketOnly instances 
            For Each objMagicPacketOnly In colMagicPacketOnlys 
                        &#039;We have to compare the leftmost part as MSNdis_DeviceWakeOnMagicPacketOnly.InstanceName contains an instance suffix 
                        strDevInstanceName = UCase(Left(objMagicPacketOnly.InstanceName, Len(strNetworkAdapterID))) 
                        &#039;Match found, enable WOL for Magic Packets only 
                        If StrComp(strDevInstanceName, strNetworkAdapterID)=0 Then 
                                    objMagicPacketOnly.EnableWakeOnMagicPacketOnly = True  &#039;Set to false if you wish to wake on magic packets AND wake patterns 
                                    objMagicPacketOnly.Put_             &#039;Required to write the value back to the object 
                        End     If 
            Next 
Next</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Slav)]]></author>
			<pubDate>Fri, 15 Oct 2010 06:15:22 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=40454#p40454</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBS или JS: wake on lan - как включить удаленный комп?]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=40453#p40453</link>
			<description><![CDATA[<p>К примеру, что в BIOSе &quot;Remote Wake Up&quot; переключен из Off в On. Драйвера сетевой карты по идее про это должны &quot;знать&quot;, т.е. каким-то макаром может можно удаленную систему как-то опросить по этому поводу?..</p>]]></description>
			<author><![CDATA[null@example.com (Rom5)]]></author>
			<pubDate>Fri, 15 Oct 2010 05:41:01 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=40453#p40453</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBS или JS: wake on lan - как включить удаленный комп?]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=40434#p40434</link>
			<description><![CDATA[<p>Какие именно настройки?</p>]]></description>
			<author><![CDATA[null@example.com (alexii)]]></author>
			<pubDate>Thu, 14 Oct 2010 15:21:04 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=40434#p40434</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBS или JS: wake on lan - как включить удаленный комп?]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=40429#p40429</link>
			<description><![CDATA[<p>Уважаемые, как думаете - реально ли вообще скриптами определить наличие настройки wake up on lan на удаленных машинах (домен)?</p>]]></description>
			<author><![CDATA[null@example.com (Rom5)]]></author>
			<pubDate>Thu, 14 Oct 2010 14:30:40 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=40429#p40429</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBS или JS: wake on lan - как включить удаленный комп?]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=39860#p39860</link>
			<description><![CDATA[<p>Например вот прога: <a href="http://bolshe.shacknet.nu/woncli.html">http://bolshe.shacknet.nu/woncli.html</a></p>]]></description>
			<author><![CDATA[null@example.com (DnsIs)]]></author>
			<pubDate>Mon, 04 Oct 2010 04:42:10 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=39860#p39860</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBS или JS: wake on lan - как включить удаленный комп?]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=39840#p39840</link>
			<description><![CDATA[<p>Полно утилит командной строки, которые это реализуют. Вызывайте их из скрипта.</p>]]></description>
			<author><![CDATA[null@example.com (dsb)]]></author>
			<pubDate>Sun, 03 Oct 2010 07:18:02 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=39840#p39840</guid>
		</item>
		<item>
			<title><![CDATA[VBS или JS: wake on lan - как включить удаленный комп?]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=39791#p39791</link>
			<description><![CDATA[<p>Хотелось бы написать скрипт включения удаленного компа.<br />Компы в локальной сети.<br />Функция Wake on LAN в BIOS есть - во всяком случае заявлена.</p><p>Спасибо за идеи.</p>]]></description>
			<author><![CDATA[null@example.com (Slav)]]></author>
			<pubDate>Fri, 01 Oct 2010 10:28:28 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=39791#p39791</guid>
		</item>
	</channel>
</rss>
