28 окт. 2013 г.

Улучшение Event Viewer Task.

Как известно, функционал Event Viewer-а (Просмотр событий, по-нашему) в Windows Server 2008 позволяет навешивать на факт прихода события действия, такие как послать e-mail сообщение по указанному адресу или запустить заданную программу. Настроить сие можно как на весь лог (System, Application и так далее), так и на отдельный отфильтрованный Custom View. Однако проблема в том, что при создании такого задания нет возможности добавить в тело письма, которое формируется при событии, информацию о собственно событии. 
Однако не все так плохо, и технически Event Viewer такое умеет, и лишь GUI-интерфейс решить подобную задачу не позволяет.
Итак, для создания инфомативного шаблона e-mail, необходимы, очевидно, внутренние переменные Event Viewer-а, которые будут разрешаться в соответствующие событию-триггеру значения. Штатный мастер сделать подобное не позволяет, поэтому открываем Task Scheduler, в котором находим папку Event Viewer Tasks, где должно быть созданное ранее задание, и экспортируем его. На выходе получаем XML-файл, где описаны все внесенные нами при создании этого задания настройки.
Далее следует добавить в XML описания переменных, значения которых нам пригодятся для формирования письма:

  <ValueQueries>
   <Value name="EventChannel">Event/System/Channel</Value>
   <Value name="EventComputer">Event/System/Computer</Value>
   <Value name="EventData">Event/EventData/Data</Value>
   <Value name="EventID">Event/System/EventID</Value>
   <Value name="EventRecordID">Event/System/EventRecordID</Value>
   <Value name="EventSeverity">Event/System/Level</Value>
   <Value name="Message">Event/RenderingInfo/Message</Value>
  </ValueQueries>
Я добавлял это в секцию <EventTrigger>, сразу под <Subscription>. После этого можно использовать определенные переменные в e-mail шаблоне. Например, так:

<Actions Context="Author">
    <SendEmail>
      <Server>mail.example.org</Server>
      <Subject>Event ($(EventID)) from $(EventComputer)</Subject>
      <To>user@example.org</To>
      <From>eventlog@example.org</From>
      <Body>
  $(EventComputer) reports event $(EventID) in $(EventChannel), record $(EventRecordID), severety $(EventSeverity):
  $(EventData)
  $(Message)
   </Body>
      <HeaderFields />
      <Attachments />
    </SendEmail>
  </Actions>
</Task>
Источник мудрости тут.

23 окт. 2013 г.

VMWare VCA-DCV

Выдали вот такую штуку. Шпециалист, типа, ага. И вот это стоит 90 евро!

22 окт. 2013 г.

1Cv8.2 - Консоль управления кластером

Пришлось тут столкнуться с проблемой подключения консолью управления кластером 1С к непосредственно кластеру (то есть к серверу приложений, по сути): для каждого релиза 1С-ной платформы поставляется своя версия этой консоли, и подключение возможно только при полном соответствии версий платформы клиентской 1С и сервера приложений. В случае, когда имеется несколько разноплатформенных кластеров, имеется проблема несоответствия версий и, как следствие, невозможность подключения к серверам приложений.
Решение отыскалось на Инфостарте и оказалось очень простым: несмотря на то, что сам файл консоли (это оснастка к Microsoft Management Console - .msс-файл) всегда один (даже при наличии нескольких установленных релизов платформ), он при работе пользуется платформозависимой библиотекой C:\Program Files\1cv82\<номер_релиза>\bin\radmin.dll. Именно ее версия и сравнивается при подключении к серверу приложений. 
Таким образом, если у нас есть два релиза и один ярлык консоли управления, то регулировать версию платформы можно простой регистрацией библиотеки: 
regsvr32  C:\Program Files\1cv82\<номер_релиза>\bin\radmin.dll
UPD: Посредством обратной связи специалисты, владеющие сакральными 1С-ными знаниями и навыками сообщают, что вышеописанное есть по сути велосипед, ибо в каждой установленной версии платформы в bin\ есть ярлычок REGMSC.cmd, внутрях которого практически та же мантра по регистрации radmin.dll. Таким образом, легким движением мышки мы всегда имеем актуальную версию библиотеки для нужной версии консоли.

11 окт. 2013 г.

Windows - показать отключенные устройства

Постоянно забываю, что нужно добавить в переменные среды в Windows, чтобы диспетчер устройств показал неподключенные устройства:
DEVMGR_SHOW_NONPRESENT_DEVICES = 1

10 окт. 2013 г.

Kaspersky Endpoint Security for Linux

В испытательно-лабораторных целях, а также во исполнение корпоративной политики в области защиты информации взгромоздил на свою linux-машину (Debian Sid) антивайрус Kaspersky Endpoint Security For Linux Workstations. Ну и агента администрирования до кучи. 
Установились они на пару без лишних вопросов, после установки попросили себя сконфигурировать - агент сразу, сам KES через запуск отдельного перлового скрипта - ничего необычного.
С агентом все ровно - параметры центра администрирования указал, запускаться разрешил, оно работает и не шуршит; центр администрирования компьютер подцепил и видит. А вот с KES-ом возникло две непонятки. 
Во-первых, ему не понравились установленные linux-headers:
Warning: The Linux kernel source code found in
/lib/modules/3.9-1-686-pae/build is not configured correctly. You need to
configure it to build the kernel-level real-time protection module.
То есть найти нашел, но не всосал. Возможно, стоит обновиться до более свежего linux-image-3.11, для которого есть доступный пакет linux-sources, и натравить на него. Неясно.
Второй момент - в процессе интерактивной настройки нет возможности указать ни ключевой файл с лицензией, ни источник обновления. А так как выкачивать несколько сотен метров обновлений мне не улыбается, а без баз KES разумно отказывается работать, то возникают вилы.
Эту проблему достаточно легко можно порешать с помощью файла ответов (или файла автонастройки), так как по непонятным причинам количеством ответов там больше, чем вопросов при запуска скрипта настройки KES в интерактивном режиме. Вот его вид:
EULA_AGREED=yes
SERVICE_LOCALE=ru_RU.utf8
INSTALL_KEY_FILE=/opt/kaspersky/license.key
UPDATER_SOURCE=AKServer
UPDATER_PROXY=no
UPDATER_EXECUTE=yes
UPDATER_ENABLE_AUTO=no
RTP_BUILD_KERNEL_MODULE=no
RTP_BUILD_KERNEL_SRCS=auto
RTP_SAMBA_ENABLE=yes
RTP_SAMBA_CONF=/etc/samba/smb.conf
RTP_SAMBA_VFS=/usr/lib/samba/vfs/
RTP_SAMBA_VFS_MODULE=/opt/kaspersky/kes4lwks/lib/samba/kes4lwks-smb-vfs28.so
RTP_START=yes
GUI_ENABLE=yes
 По-хорошему, собирать ядерный модуль бы надо ( RTP_BUILD_KERNEL_MODULE=no ), но пока отключил, чтобы не ругалось. Если это дело скормить скрипту настройки,
 /opt/kaspersky/kes4lwks/bin/kes4lwks-setup.pl --auto-install=./kes_file
то KES настроится на сервер администрирования, утащит оттуда все обновления, сконфигурируется, запустится и положит ярлыки в нужные места.

И, напоследок, страшный скриншот:
 

9 окт. 2013 г.

Установка .NET3.5 в Windows 8/8.1/2012/2012R2

Без .Net Framework сегодня в win-среде никуда, вот и потребовалось установить в развернутной в виртуальной (безинтернетной, что важно) среде Windows 8 x64 Ent. Должно было быть все просто - как мы знаем, начиная с Windows 7 / 2k8, версия 3.5 фреймворка поставляется вместе с ОС и доступна как компонент Windows. Однако есть вилы - в отличие от вышеупомянутых версий ОС в Windows 8 установка фреймворка как компонента доступна, однако сами файлы отсутствуют. То есть "винда галимая" (с) ломится в интернет, получает отлуп и обижается. Что делать?
Выход есть.
Отсутствующие файлы установки фреймворка можно найти на установочном диске ОС (и не спрашивайте, почему они в процессе этой самой установки не были скопированы). Добыть их достаточно сложно - все находится внутри .wim-образа. Однако есть возможность подключить этот образ в качестве источника установки и установить необходимый нам компонент (и любой другой доступный компонент Windows) с помощью DISM:
DISM /Online /Enable-Feature /FeatureName:NetFx3 /All /LimitAccess /Source:d:\sources\sxs
В случае, если установочный диск вставлен в привод с другой буквой (или используется iso-образ), следует внести в "/Source:" необходимые изменения.
И, чтобы два раза не вставать, с помощью этого инструмента можно устанавливать любые другие компоненты (изменив параметр "/FeatureName:"). Полный список компонентов Windows вместе с их статусами можно получить, набрав
 DISM /Online /GET-Features
Информация получена отсюда.