<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; VBS или JS: wake on lan - как включить удаленный комп?]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=4986&amp;type=atom" />
	<updated>2010-10-15T06:15:22Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=4986</id>
		<entry>
			<title type="html"><![CDATA[Re: VBS или JS: wake on lan - как включить удаленный комп?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=40454#p40454" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[Slav]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=16491</uri>
			</author>
			<updated>2010-10-15T06:15:22Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=40454#p40454</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS или JS: wake on lan - как включить удаленный комп?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=40453#p40453" />
			<content type="html"><![CDATA[<p>К примеру, что в BIOSе &quot;Remote Wake Up&quot; переключен из Off в On. Драйвера сетевой карты по идее про это должны &quot;знать&quot;, т.е. каким-то макаром может можно удаленную систему как-то опросить по этому поводу?..</p>]]></content>
			<author>
				<name><![CDATA[Rom5]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=5724</uri>
			</author>
			<updated>2010-10-15T05:41:01Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=40453#p40453</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS или JS: wake on lan - как включить удаленный комп?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=40434#p40434" />
			<content type="html"><![CDATA[<p>Какие именно настройки?</p>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2010-10-14T15:21:04Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=40434#p40434</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS или JS: wake on lan - как включить удаленный комп?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=40429#p40429" />
			<content type="html"><![CDATA[<p>Уважаемые, как думаете - реально ли вообще скриптами определить наличие настройки wake up on lan на удаленных машинах (домен)?</p>]]></content>
			<author>
				<name><![CDATA[Rom5]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=5724</uri>
			</author>
			<updated>2010-10-14T14:30:40Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=40429#p40429</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS или JS: wake on lan - как включить удаленный комп?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=39860#p39860" />
			<content type="html"><![CDATA[<p>Например вот прога: <a href="http://bolshe.shacknet.nu/woncli.html">http://bolshe.shacknet.nu/woncli.html</a></p>]]></content>
			<author>
				<name><![CDATA[DnsIs]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26282</uri>
			</author>
			<updated>2010-10-04T04:42:10Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=39860#p39860</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS или JS: wake on lan - как включить удаленный комп?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=39840#p39840" />
			<content type="html"><![CDATA[<p>Полно утилит командной строки, которые это реализуют. Вызывайте их из скрипта.</p>]]></content>
			<author>
				<name><![CDATA[dsb]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24622</uri>
			</author>
			<updated>2010-10-03T07:18:02Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=39840#p39840</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[VBS или JS: wake on lan - как включить удаленный комп?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=39791#p39791" />
			<content type="html"><![CDATA[<p>Хотелось бы написать скрипт включения удаленного компа.<br />Компы в локальной сети.<br />Функция Wake on LAN в BIOS есть - во всяком случае заявлена.</p><p>Спасибо за идеи.</p>]]></content>
			<author>
				<name><![CDATA[Slav]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=16491</uri>
			</author>
			<updated>2010-10-01T10:28:28Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=39791#p39791</id>
		</entry>
</feed>
