Saturday, 21 April 2018

Узнаем версию Office по папке.

Всем привет.

Случается что на одном ПК уживаются по две версии MS Office. Разумеется по умолчанию он воюют, но если администратор или разработчик при установке постарается то работать будут обе. Почему так? Лично мне знаком один случай когда написанный макрос ни за что не захотел выполняться в Office 2007 хотя на ура работал в Office 2003. Так как автор макроса был в отпуску то решено было, чтобы соблюсти распоряжение свыше, новую версию Office-а ставить, но и старую не удалять. К чему это я? К тому что потом очень проблематично обновлять такой зоопарк офисных пакетов. Вот какой у кого? Конечно можно через WSUS или SССM зарядить обновления для всех версий на все ПК, нужное установится, ненужное просто ляжет на диск. Но зачем же загружать сеть?

Самое простое прочитать наличие нужной папки на диске "С" если Office ставился по умолчанию. И сделать нужную поправку при раздаче пакетов обновления. Ниже справка по версиям:

Office XP
Windows 64-bit:
C:\Program Files\Microsoft Office\Office10\
Windows 32-bit:
C:\Program Files (x86)\Microsoft Office\Office10\

Office 2003
Windows 64-bit:
C:\Program Files\Microsoft Office\Office11\
Windows 32-bit:
C:\Program Files (x86)\Microsoft Office\Office11\

Office 2007
Windows 64-bit:
C:\Program Files\Microsoft Office\Office12\
Windows 32-bit:
C:\Program Files (x86)\Microsoft Office\Office12\

Office 2010
Windows 64-bit:
C:\Program Files\Microsoft Office\Office14\
Windows 32-bit:
C:\Program Files (x86)\Microsoft Office\Office14\

Office 2013
Windows 64-bit:
C:\Program Files\Microsoft Office\Office15\
Windows 32-bit:
C:\Program Files (x86)\Microsoft Office\Office15\

Office 2016
Windows 64-bit:
C:\Program Files\Microsoft Office\Office16\
Windows 32-bit:
C:\Program Files (x86)\Microsoft Office\Office16\

Может и не совсем идеальное решение. Тогда жду ваше.

Monday, 16 April 2018

Уязвимость в PDF.

Всем привет.

Мне настоятельно советуют не пересылать почтой документы в формате PDF. И дело даже не в встроенной поддержке JavaScript. Оказывается может быть случай когда вредоносное приложение может запустить себя даже не открывая сам файл. Например при использовании уязвимости при обработке JBIG2Decode в файлах формата PDF запускается даже без открытия документа. Ничего себе!

Как может сработать эксплоит даже тогда когда пользователь не открывает документ? Ответ кроется в использовании расширений оболочки Windows Explorer. Когда мы устанавливаем Adobe Reader, вместе с ним устанавливается и расширение оболочки Column Handler. Оно представляет собой специальную программу (объект COM), которая позволяет Windows Explorer считывать дополнительную информацию о файлах, такую как имя автора документа и так далее. И когда файл отображается в окнах Windows Explorer, данное расширение может быть вызвано для получения информации о файле. Расширение обращается к файлу и... результат.

Жизнь не стоит на месте. Прислушаться? Возможно. Но формат PDF уже стал де факто стандартом для финальных версий документов. Поэтому отказываться от его использования мы не будем. Для начала попробуем открывать такие документы только в браузере Chrome. А для надежности не будем ставить себе Adobe Reader, а воспользуемся чудесным ридером Sumatra PDF. Sumatra PDF - свободная программа, предназначенная для просмотра и печати документов в форматах PDF, DjVu, FB2, ePub, MOBI, CHM, XPS, CBR/CBZ для платформы Windows. Программа разрабатывается на базе движка MuPDF, имеет открытый исходный код и свободно распространяется на условиях лицензии GNU GPL. В моей практике не раз были случаи когда Sumatra PDF корректно отображала и печатала  PDF-файлы,  в то время как с Adobe Reader-ом нужно было колдовать.

Успехов.

Saturday, 14 April 2018

EncodedCommand in Powershell.


Hi all.

I have discovered one cool feature in Poweshell. So  Powershell can execute code as encoded 64Base text. And this encoded command we can insert in our script directly. We have to use the -EncodedCommand parameter.


For example:
# first step
     $command = 'dir "c:\program files" '
     $bytes = [System.Text.Encoding]::Unicode.GetBytes($command)
     $myEncodedCommand = [Convert]::ToBase64String($bytes)
# second step
  powershell.exe -EncodedCommand $myEncodedCommand
This is the same code as
powershell -EncodedCommand MQAuAC4AMQAwACAAfAAgACUAIAB7ACAAIgBQAG8A
dwBlAHIAUwBoAGUAbABsACAAUgBvAGMAawBzACIAIAB9AA==

Wow, it can be use for hide my command against, maybe, antivirus software).

For decoding our encoded command we can use this example:
     $decodedCommand =
[System.Text.Encoding]::Unicode.GetString([System.Convert]::FromBase64String($encodedCommand));
     $decodedCommand

Good luck.

Tuesday, 10 April 2018

Формат OVF и OVA, в чем разница?

Всем привет.

Разворачивая очередной полигон тренер предложил нам скачать образ виртуальной машины в формате OVA (или OVF). Такие образы VM мне еще не попадались. Что же это?

Пишут что пакет OVF обычно содержит один или несколько образов диска и может включать файлы сертификатов и другие файлы. Весь каталог может быть распространен в виде пакета Open Virtual Appliance (OVA), который представляет собой файл архива TAR с внутренним каталогом OVF.

Есть такая фирма DMTF, которая занимается развитием стандартов в области управления ИТ-системами. Она, например, имеет свои спецификации по открытому стандарту распространения виртуальных модулей OVF, который в будущем должны стать единым стандартом развертывания ПО в виртуальных машинах. В данной инициативе принимали участие компании Dell, HP, IBM, Microsoft, VMware и XenSource.

Основная идея такова, что независимые разработчики ПО должны прежде всего ориентироваться на формат OVF/OVA при распространения своего ПО в виртуальных машинах. 

По своей сути стандарт OVF подразумевает кросс-платформенность, но на деле этого нет, так как он весьма скудно описывает сам образ виртуального диска (VMDK, VHD и пр.), уделяя большее внимание метаданным. Но так как каждая платформа виртуализации работает только со своим форматом виртуальных дисков, то есть некоторые проблемы с распространение данного "открытого" формата.

Виртуальный модуль в формате OVF представляет собой набор файлов, куда входят виртуальные диски (например, VMDK) и файл с расширением *.ovf, реализующий открытое описание файлов конфигурации виртуального модуля. Есть также подвид OVF - файл *.ova, который является TAR-архивом файлов OVF-пакета. То есть, ova-файлы идут по одному для каждого виртуального модуля, поэтому их проще распространять. С точки зрения размера и быстродействия OVA/OVF примерно одинаковы.

Когда вы делаете экспорт виртуальной машины, например, из vSphere Client для создания виртуального модуля (Export OVF Template), вам как раз предлагают выбрать нужный формат OVF/OVA:



Честно говоря я так и не понял какой формат лучше и почему их два. Но вот один специалист хотел добавить кое что из личного опыта для нашего выбора - при экспорте в формат OVA и дальнейшем его импорте на другую VM у сложных программных пакетов слетала регистрация, даже если пытаться восстановить ключи посредством скана реестра всё равно ничего не выходит, и пакет приходилось перерегистрировать. А вот если экспортировать в OVF то после импорта прибегать к перерегистрации программ не приходится. Так что он советует сохранять только в OVF.

Успехов.

Sunday, 8 April 2018

Анонимный поиск работы в ИТ, кто же в тренде?

Всем привет.

Сегодня актуальная статистика от Джинна.

Джинн проанализировал, каким кандидатам больше всего пишут рекрутеры. 

На первом месте JS-разработчики, с большим отрывом. Самые горячие сейчас React и Node.js, но и Angular и традиционный JavaScript там же в топе. На втором месте Java/.NET и технологии веб-разработки – PHP/Python/Ruby. На третьем месте уважаемый DevOps и С++(!).

Во “второй лиге” идут тестировщики (QA) и мобильная разработка – у iOS/Android почти паритет, но iOS немножко впереди. В аутсайдерах традиционно менеджеры проектов (PM) и бизнес-аналитики (BA).

Полная таблица с рейтингом:
Технология / опыт работыменьше года1-22-33-55-1010+
.NET5.011.318.226.926.221.8
Android2.45.911.613.914.6н/д
Business Analyst3.55.09.310.49.610.1
C++3.98.013.115.923.024.3
DevOps8.110.513.123.524.221.9
iOS4.49.112.614.814.0н/д
Java2.37.518.928.128.227.9
JavaScript4.112.424.633.531.527.0
React.js8.920.929.449.136.028.6
Angular.js7.616.428.933.631.034.7
Node.js6.120.429.044.031.027.2
PHP6.714.023.324.123.921.7
Project Manager4.65.87.88.98.38.5
Python4.011.118.424.023.223.1
QA3.08.313.615.215.011.6
Ruby5.911.213.918.823.1н/д

Как они считали:
  1. В качестве рейтинга считали, сколько предложений в среднем получил профиль кандидата выбранного уровня. Например, С++ разработчик с опытом от двух лет получает в среднем 13.1 предложений, а с опытом 5+ почти вдвое больше, 23 предложения.
  2. Рейтинг напрямую не связан с количеством предложений или профилей, а только с их соотношением. Например, тестировщики получили в сумме предложений в несколько раз больше, чем C++ или DevOps, но и профилей тестировщиков на Джинне в разы больше. Поэтому и общий рейтинг у них ниже.
  3. “Нет данных” (н/д) означает, что в эту выборку попало меньше 20 профилей кандидатов.
  4. Количество лет опыта означает общий опыт кандидата из профиля, он не обязательно совпадает с опытом разработки на выбранной технологии. “1-2 лет опыта” означает “как минимум год опыта, но меньше двух лет”. Аналогично для других вилок, верхняя граница не включается.
  5. Для анализа использовали 240 тыс. предложений, которые разослали рекрутеры кандидатам с 1 октября 2017 по 31 марта 2018 и примерно 20 тыс профилей, которые были активны в это время. Учитывались только данные по кандидатам из Украины.
А где ваше место?

Tuesday, 3 April 2018

Перевод WiFi-роутера в режим повторителя WISP.

Всем привет.

В современных домашних маршрутизаторах появились новые режимы раздачи (ретрансляции) интернета не только от провайдера, но и с любого другого устройства, например вашего смартфона который уже вовсю шарит в LTE. В этом случае ваш WiFi-роутер переходит в режим повторителя или клиента. Более продвинутый вариант такого режима имеет приставку WISP что значит Wireless Internet Service Provider.

Впервые я с этим режимом познакомился на роутере Vinga WR-N150. Особо представлять его не буду, подробно про линейку Vinga роутеров сказано здесь.

На входе в админку видно что маршрутизатор поддерживает до 6-ти режимов работы:


  • точка доступа: режим полезен, когда нужно просто получить Интернет сигнал от основного устройства и раздать его по Wi-Fi.
  • маршрутизатор: режим работы по умолчанию. 
  • повторитель (+ режим WISP). Режим используется для расширения "зоны действия" Wi-Fi сети.
  • клиент (+ режим WISP): режим полезен, когда имеется устройство с сетевым интерфейсом, но без Wi-Fi. В таком случае, маршрутизатор настраивается в режим "клиента", тогда он будет принимать Интернет сигнал по Wi-Fi и передавать его через витую пару (LAN) на нужные устройства.

Настройка режима Client (с WISP или без) требует выполнения последовательных шагов.

Sunday, 1 April 2018

Тестовый полигон Docker с Zabbix и Jenkins, продолжение.

Всем привет.

Продолжим наши фокусы. Начало здесь.

5. Поднять контейнер с jenkins внутри
docker pull jenkins

Стартуем новый контейнер:
Внимание! В таком старте jenkins захватит консоль ssh. Два пути отсюда, либо с ключом -d демон либо stop/start из другой консоли

docker run --name myjenkins -p 8080:8080 jenkins
-OR-
docker run --name myjenkins -p 8080:8080 -p 50000:50000 -v /home/user00:/var/jenkins_home jenkins

Первый вход в frontend jenkins:
http://IP_адрес_хоста:8080
Создаем пользователя для frontend jenkins.

Была проблема  с повторным входом в frontend jenkins.
Решение нашел такое:
Just change the "useSecurity" element to false in the /var/lib/jenkins/config.xml file. 
This way you will be able to login and reset the password if needed.
<useSecurity>false</useSecurity>
Однако после такой правки вход включился анонимный, который так и остался(.

Версия на печать

Популярное