Мои извинения за столь длительное отсутствие, конец полугодия — дел по горло
Судя по последним постам Шеридана в различных топиках, день его очередной бани — не за горами, посему поспешу продолжить баттл, пока он еще тут:
Задача на третий раунд нетривиальная, но вполне реальная. Скажу сразу, в 2006 году, когда довелось ее решать, я воспользовался иными средствами по причине отсутствия PS как такового, сейчас вот — переписываю решение на нем, чтобы закинуть сюда. Задача следующая:
Имея доступ к каталогу (LDAP), содержащему списки пользователей и компьютеров, но не хранящему информацию о поле пользователей, обеспечить на всех компьютерах сети, вывод на экран поздравления с 8-ым марта в момент интерактивного входа пользователя женского пола.
kochetkov.vladimir однажды (02 июля 2008 [Среда] 13:06) писал в rsdn.flame.comp:
> Имея доступ к каталогу (LDAP), содержащему списки пользователей и компьютеров, но не хранящему информацию о поле пользователей, обеспечить на всех компьютерах сети, вывод на > экран поздравления с 8-ым марта в момент интерактивного входа пользователя женского пола.
Думаю задача сведется к копипасту (+ небольшая переделка) твоего решения для использования с линуховым клиентом лдапа, потому как с лдапом я не работал никогда
Рассылка поздравлений — через самбу, корпоративный жаббер, почту...
kochetkov.vladimir однажды (02 июля 2008 [Среда] 13:06) писал в rsdn.flame.comp:
> Судя по последним постам Шеридана в различных топиках, день его очередной бани — не за горами, посему поспешу продолжить баттл, пока он еще тут:
Неправда, я хороший
Здравствуйте, Sheridan, Вы писали:
S>kochetkov.vladimir однажды (02 июля 2008 [Среда] 13:06) писал в rsdn.flame.comp:
>> Имея доступ к каталогу (LDAP), содержащему списки пользователей и компьютеров, но не хранящему информацию о поле пользователей, обеспечить на всех компьютерах сети, вывод на >> экран поздравления с 8-ым марта в момент интерактивного входа пользователя женского пола. S>Думаю задача сведется к копипасту (+ небольшая переделка) твоего решения для использования с линуховым клиентом лдапа, потому как с лдапом я не работал никогда S>Рассылка поздравлений — через самбу, корпоративный жаббер, почту...
Не-не-не. Поздравление — суть красивая открытка, выполненная в виде бинарника и проигрывающаяся всем женщинам при входе в систему на любом компьютере, в т.ч. и 9,10,11 и т.п. марта всем, кто ее еще не видел
kochetkov.vladimir однажды (02 июля 2008 [Среда] 13:33) писал в rsdn.flame.comp:
> Не-не-не. Поздравление — суть красивая открытка, выполненная в виде бинарника и проигрывающаяся всем женщинам при входе в систему на любом компьютере, в т.ч. и 9,10,11 и > т.п. марта всем, кто ее еще не видел
На почтовый ящик придет письмо в html с flash'кой. Рассылка один раз, например 8го числа в час ночи.
Прочтут как увидят, хоть через 8 лет сразу 8 поздравлений прочтут
Эффект тотже, средства другие
--
...belive in the matrix...
Здравствуйте, Sheridan, Вы писали:
S>Эффект тотже, средства другие
Слушай, если бы я в ответ на твою задачу о выключении монитора выдал:
echo "Пожалуйста, выключите монитор!"
это прокатило бы?
В общем случае — выполнение какого-либо бинарника / скрипта / команд на удаленных компах, попадающих под определенное условие — довольно распространенная задача среднестатистического сисадмина. Поэтому — давай отталкиваться от нее
Здравствуйте, kochetkov.vladimir, Вы писали:
KV>Имея доступ к каталогу (LDAP), содержащему списки пользователей и компьютеров, но не хранящему информацию о поле пользователей, обеспечить на всех компьютерах сети, вывод на экран поздравления с 8-ым марта в момент интерактивного входа пользователя женского пола.
Если пол не хранится нигде, то никакая PowerShell тебя не спасет :-)
Одного не пойму: что это имеет общего с командной оболочкой?
Здравствуйте, kochetkov.vladimir, Вы писали:
KV>В общем случае — выполнение какого-либо бинарника / скрипта / команд на удаленных компах, попадающих под определенное условие — довольно распространенная задача среднестатистического сисадмина. Поэтому — давай отталкиваться от нее ;)
Ладно, твой случай.
Нужно что-нибудь для LDAP: aptitude install lib*ldap*-perl<Tab>, aptitude install libnet-ldap-perl, man Net::LDAP.
Из примера в мане:
use Net::LDAP;
$ldap = Net::LDAP->new( 'ldap.bigfoot.com' ) or die"$@";
$mesg = $ldap->bind ; # an anonymous bind
$mesg = $ldap->search( # perform a search
base => "c=US",
filter => "(&(sn=Barr) (o=Texas Instruments))"
);
$mesg->code && die $mesg->error;
foreach $entry ($mesg->entries) { $entry->dump; }
$mesg = $ldap->unbind; # take down session
Положить скрипт в ~/.kde/Autostart, или в /etc/kderc, или в bashrc, или еще куда-нибудь, и сделать нужное действие — дело техники.
kochetkov.vladimir однажды (02 июля 2008 [Среда] 14:24) писал в rsdn.flame.comp:
> В общем случае — выполнение какого-либо бинарника / скрипта / команд на удаленных компах, попадающих под определенное условие — довольно распространенная задача > среднестатистического сисадмина. Поэтому — давай отталкиваться от нее
Согласен.
Ежели так, то мне проще будет перегенерировать .cmd файл, который исполняется у всех при логине.
То, о чем мы с тобой говорим сейчас — для тебя только виндовое, а для меня — кроссОСное решение. Хотябы потому как в качестве открытки ты предлагаеш exe'шник, который мне нужно доставить пользователь каким-либо образом.
Хотя спасибо что помог родить мысль о перегенерации logon скрипта, применю у себя обязательно
Здравствуйте, Roman Odaisky, Вы писали:
RO>Здравствуйте, kochetkov.vladimir, Вы писали:
KV>>Имея доступ к каталогу (LDAP), содержащему списки пользователей и компьютеров, но не хранящему информацию о поле пользователей, обеспечить на всех компьютерах сети, вывод на экран поздравления с 8-ым марта в момент интерактивного входа пользователя женского пола.
RO>Если пол не хранится нигде, то никакая PowerShell тебя не спасет
Уже спасло, т.к. пол хранится в полном имени пользователя
RO>Одного не пойму: что это имеет общего с командной оболочкой?
Здравствуйте, kochetkov.vladimir, Вы писали:
KV>Да? Хочешь сказать, что содержимое каталога легче и проще обрабатывать в виде plain-text, нежели в виде связного списка или хэш-таблицы?
Ну как правило обработка идет по мере чтения. Это раз.
Ну а второе — а perl -e это еще шелл ?
Здравствуйте, TK, Вы писали:
TK>Можно сделать задачку более реалистичной. например, обновление фотоархива. есть фотоаппарат (допустим какой-нибудь cannon ixus — как storage не монтируется) надо сравнить его содержимое с содержимым медиа сервера который, доступен в сети через UPnP.
Замечательно. Давай теперь еще спросим где проще создать нод символьного устройства в шелле или PS
За выделенное фотоаппарат можно на помойку, UPnP кроме MS'а так никто и не признал, ибо не нужно (банально есть более развитое SLP). Так что задача в корне не корректна.
Ну а ImageMagick один фиг уделает по возможностям то, что встроено в PS.
Здравствуйте, kochetkov.vladimir, Вы писали:
KV>Здравствуйте, Sheridan, Вы писали:
S>>Лезеш в ядро, ищеш исходник драйвера видеокарточки, открываеш в редакторе и правиш в нужную сторону
KV>А мне что делать? Нет, я серьезно... У меня вот на ноуте PCMCIA EDGE-модем в линуксе глючит, я уже писал об этом. Навыков программирования драйверов под линукс — у меня нет, тема — слишком серьезная для меня как для непрограммера, чтобы заняться ее изучением ради настройки модема. Что делать-то?
Напиши в саппорт этой фирмы, что вы уроды и я ваш модем выкину на помойку, ибо он в линуксе не работает. Потом купи нормальный
Здравствуйте, Sheridan, Вы писали:
S>Roman Odaisky однажды (26 июня 2008 00:03) писал в rsdn.flame.comp:
>> Но это же совсем ничего не говорит о предмете обсуждения. S>Сама возможность начудить подобное говорит о многом. S>Пусть это будет винапи или wsh — мне не важно, важна возможность.
Ну он это сделает wmic (в смысле при помощи WMI консоли, команда wmic).
Здравствуйте, kochetkov.vladimir, Вы писали:
KV>Но увы и ах — провайдера в общем случае нет. Поэтому пойдем вторым путем, предложенным Романом и воспользуемся WinAPI. Чуть расширим задачу: вызвать произвольную функцию из произвольной DLL, не против?
KV>Потратим немного времени на написание универсального "запускателя" нативных функций из dll'ек:
[скипнуто много кода]
KV>Писать пришлось много, таки-да. Зато у нас теперь в распоряжении — полноценный доступ не только к API всей системы, но и всех доступных для использования dll-библиотек из обычных скриптов, не дотягивающих до уровня bash
Здравствуйте, kochetkov.vladimir, Вы писали:
KV>Уже спасло, т.к. пол хранится в полном имени пользователя
Ну и какой критерий? Задача банальна, если вот без этого функционала...
Только правильно написали — тут все сводится к ldapsearch с нужными параметрами, возможно ldapmodify. Запуск через логон скрипт — его положить для нужной GPO прямо на SYSVOL, дальше дело техники (ну возможно еще что-то надо в самом объекте политики поменять) — тут основная сложность, что под линуксом (очевидным образом) нет готового инструмента для работы с GPO.