Есть сеть из windows машин, доменная, в основном windows xp, физического доступа к компьютерам нет (лениво), WOL в бивайсах вряд ли включено, есть wheezy с доступом к домену, возможностью wmic (только просмотр) и luit ... telnet ..., есть реквизиты администратора домена - как просче включить WOL на максимальном количестве машин ?
MSPower_DeviceWakeEnable ? powercfg ? ... ?
Гуевого доступа нет, вернее так - можно получить тонелем, но не хотелось бы.
Как включить WOL на разношерстных компьютерах без физического доступа?
Ладно, что дальше ? (с експектом не стал развивать, нудно это, все в телнет перевел)
(потребовался експект и поправить луит, ну и локалдефайн добавить
если луит выкинуть, то и експект не нужен, но тогда отображение хромает)
Как узнать карточка без бивайса - может поднять плату или нет ?
#!/bin/bash
LANG=ru_RU.UTF-8
user=Администратор
pass=Пароль
domain=Домен
exclude='192\.168\.0\.100\|192\.168\.0\.200'
kbfix()
{
expect -f <(echo -e 'eval spawn -noecho $argv\ninteract {\n \\177 {send "\\010"}\n "\\033\\[3~" {send "\\177"}\n}\n') -- "$@"
}
smbtree -U "${domain}\\${user}%${pass}" smbtree 2>&1 | grep ^Connecti | grep 445 | awk '{ print $3 }' | sort -u | grep -v "${exclude}" |\
while read x; do
TERM=vt100
{
sleep 1
echo -e "${pass}\r"
sleep 1
echo -e "cmd /q /v:on /c \"for /f %x in ('wmic /namespace:\\\\\\\\root\\\\cimv2 path win32_networkadapterconfiguration where ipenabled^=true get index /value ^| find /i \"index^=\"') do (\
for /f \"delims=\" %z in ('echo %~x') do (\
set %~z & for /f %y in ('wmic /namespace:\\\\\\\\root\\\\cimv2 path win32_networkadapter where index^=!index! get PNPDeviceID /value ^| find /i \"PNPDeviceID^=\"') do (\
for /f \"delims=\" %a in ('echo \"%~y\"') do ( set \"%~a\" & set \"PNPDeviceID=!PNPDeviceID:\\=\\\\\\\\!\" & \
wmic /namespace:\\\\\\\\root\\wmi path MSPower_DeviceEnable where \"instancename like '!PNPDeviceID:^&=^&!%'\" set enable=true && \
wmic /namespace:\\\\\\\\root\\wmi path MSPower_DeviceWakeEnable where \"instancename like '!PNPDeviceID:^&=^&!%'\" set enable=true && \
wmic /namespace:\\\\\\\\root\\wmi path MSNdis_DeviceWakeOnMagicPacketOnly where \"instancename like '!PNPDeviceID:^&=^&!%'\" set EnableWakeOnMagicPacketOnly=true ) ) ) )\"\r"
sleep 10
echo -e "exit\r"
sleep 1
} | {
kbfix luit -encoding 'CP 866' -- telnet -l ${domain}\\`echo ${user} | iconv -t cp866` ${x}
}
# break
done
так и не найду метода, не считая новомодных "бивайсов" и прочих лио (
хотя отмечу, части карт пох на биос, все сами могут, но то известно ранее и не все.