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>
Однако после такой правки вход включился анонимный, который так и остался(.

Friday, 30 March 2018

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

Всем привет. 

Недавно у меня появилась возможность попробовать руками СI/CD. Мне поручили развернуть полигон Docker+Zabbix+Jenkins. Это было мое тестовое задание.

Вкратце оно звучало так:
1. Развернуть машину на Centos 7.
1.1 Установить базовый софт и обновления.
1.2 Настроить доступ ssh по публичным ключам
2. Установить и настроить запуск docker
3. Поднять докер контейнер с zabbix внутри
4. Настроить zabbix на мониторинг localhost
5. Поднять контейнер с jenkins внутри
6. После настройки jenkins создать job который при запуске будет ротировать логи localhost
7. Настроить sftp доступ к логам zabbix (readonly)

По правде говоря для меня все было в новинку, кроме первого пункта. Далее я покажу мои шаги с возможными проблемами и попытками их решения. Скажу сразу что как для полного новичка в СI/CD у меня не все получалось. И скорее всего другие кандидаты его выполнили быстрее.

Старт.

1. Развернуть на виртуальном хосте Centos 7.
Тут элементарно. Можно использовать VirtualBox. Однако помните что 7-я Centos любит 64-х разрядную ОС и аппаратную поддержку виртуализации VT-x или AMD-V. Если ваш ЦП не поддерживает инструкции VT-x или AMD-V, то VirtualBox не предложит вам эмуляцию 64-х разрядной ОС.

1.1 Установить базовый софт и обновления.
Под базовым софтом подразумевается установка утилит
mc, nano, htop, ncdu    Ok
yum install bind-utils  Ok

1.2 Настроить доступ ssh по публичным ключам
На эту тему у меня получился пост ранее, читаем здесь.

2. Установить и настроить docker
docker search zabbix
docker pull zabbix

Tuesday, 20 March 2018

Как подключить внешний монитор к ноутбуку.

Всем привет.

Рано или поздно каждый пользователь задумывается над улучшением отдачи от возможностей своего ноутбука. Наиболее часто встречающийся и довольно простой способ модернизации - это подключить к ноутбуку второй монитор через разъем VGA. В этой же теме можно рассмотреть и как подключить проектор к ноутбуку, так как алгоритм действий в этих двух ситуациях абсолютно одинаковый.

Работая над очередным проектом онлайн я решил себе сделать два монитора чтобы в одном у меня был сеанс PuTTY, а на другом я мог бы вычитывать инструкции по настройке.

Для начала следует уточнить какие интерфейсы присутствуют у вашего ноутбука:
  • VGA – данный интерфейс относится к устаревшим, но все еще часто встречается в ноутбуках.
  • DVI – более современный разъем, встречается практически во всех моделях, может немного отличаться по конструкции.
  • HDMI – современный высокоскоростной интерфейс передачи данных высокого качества, его особенность в том, что он передает видео и аудио,  используя один кабель. Это полезно для передачи сигналов на телевизор, хотя бывают и модели мониторов со встроенным звуком.
  • DisplayPort – часто используемый интерфейс, по своим параметрам схож с HDMI.

После этого надо провести ревизию разъемов у вашего большого монитора. Возможно что-то из них занято, например, на десктоп. У меня десктоп видеосигнал отдает по DVI, поэтому мне в мониторе достался только свободным VGA. К сожалению интерфейса HDMI в моем ноутбуке нет.

Saturday, 17 March 2018

PuTTY - отключение аутентификации по паролю.

Всем привет.

На днях я писал как создать доступ по SSH-ключу. Все получилось замечательно кроме одной фишки - для тех кто хотел избавиться от ввода пароля новость оказалась не очень Ибо вместо одного пароля пользователя теперь система начала запрашивать парафразу самого ключа.

И вот я натыкаюсь на заметку где описана процедура отключения аутентификации по паролю.

В двух словах предлагают следующее. 
  • подключитесь к серверу по SSH, используя пароль, и откройте файл sshd_config для редактирования: sudo vi /etc/ssh/sshd_config.
  • убедитесь, что указан правильный путь к открытым ключам SSH, поставьте значение параметра PasswordAuthentication no.
  • перезапустите службу sshd: service sshd restart

Все готово. Можете подключится к серверу по SSH без использования пароля пользователя. 

Например, запустите PuTTY, проверьте, что во вкладке Connections -> Auth содержится путь к закрытому ключу (ppk) и откройте подключение.

В случае успешной аутентификации по SSH-ключу вы получите доступ к командной строке сервера и сообщение вида Authenticating with public key "rsa-key-20170510", где rsa-key-20170510 - имя примененного закрытого ключа, указанное вами в файле authorized_keys.

Так вот эта процедура НЕ ОТМЕНЯЕТ ввода парафразы. Более того, если вы решите отказаться от входа по SSH и удалите путь к закрытому ключу (ppk) в PuTTY, то система вас вообще теперь не пустит - приглашение к вводу пароля пользователя не появится.

Такие дела.

Thursday, 15 March 2018

Implementing Windows PowerShell Security.

Hi there.

Recently I have well done online great course about PowerShell Security. This course is on EDX web-portal and his name is "INF251x: Implementing Windows PowerShell Security".

To my mind it was one of the best free courses about PowerShell. I got many new features about scripting technology. 

The Windows PowerShell team has put significant effort into securing and hardening its product. This effort included a comparative analysis of security across most popular shells and scripting languages. The analysis was based on the following criteria:
  • Event Logging – The engine logs audit events of important operational events.
  • Transcription – The engine logs application inputs and outputs.
  • Dynamic Evaluation Logging – The engine logs the content of all content evaluation, including those generated or composed at runtime.
  • Application Whitelisting – The engine allows enforcement of code integrity / application whitelisting policies, including user-authored documents / scripts.
  • Antimalware Integration – The engine actively integrates with antimalware software to evaluate the safety of code generated at runtime.
  • Local Sandboxing – The engine allows sandboxing of behavior for local and interactive use.
  • Remote Sandboxing – The engine allows sandboxing of behavior when accessed remotely.
  • Untrusted Input Tracking – The engine allows script developers to track and make security decisions based on whether a variable or input was influenced by user input.


Also I would like to pay your attention to one moment - authors of course give us some examples about PowerShell penetration cases. It's wonderful. 

Monday, 12 March 2018

Не найден необходимый драйвер носителя при установке Windows 7.

Всем привет.

При установке Windows 7 на современный компьютер или ноутбук пользователь может столкнуться с ошибкой типа «Не найден необходимый драйвер для дисковода оптических дисков. Если у вас есть дискета, CD, DVD или флэш-накопитель USB с этим драйверов, вставьте этот носитель». 

А нужен ли этот драйвер? В нем ли дело?

Столкнулся и я с этим вопросом на днях. Проведя апдгрейд ПК сыну я по привычке попытался переустановить Windows 7, на материнку MSI H110M PRO-D. Неплохая такая системная плата со всеми наворотами. Поскольку до этого был IDE DVD-RAM (а материнка поддерживает только SATA), то я решил использовать внешний USB DVD-привод. И получил то самое сообщение которое я никогда ранее не видел. Чему был несказанно удивлен.(


Причина этого, которая озвучена в Интернет - отсутствие поддержки USB версии 3.1 в Windows 7.  По обилию решений этой проблемы я понял что положительного результата может и не быть.) Все способы преодоление кризиса в недрах Windows 7 по отношению к USB версии 3.1 похожи на авось. Ни игры с BIOS, ни переключение на разъемы USB 2.0, ни использование загрузочной флешки не поменяли сообщение на моем экране. Windows 7 упорно стояла на своем - она хотела некий мифический драйвер, и что самое интересное, никак не давала возможность его ей подкинуть (для поддержки USB 3.1, мало ли). Ни оптики, ни флешки как накопителя в обзоре инсталятора не значилось... Т.е. инсталятор вас просто приглашал на выход.

Sunday, 11 March 2018

Значение NULL или просто Нет Данных.

Привет.

В SQL-запросах все хорошо до тех пор пока не попадается значение NULL. Значение NULL или просто Нет Данных.

Основная особенность NULL-а заключается в том, что он не равен ничему, даже другому NULLу. С ним нельзя сравнить какое-либо значение с помощью любых операторов: =, <, >, like… Даже выражение NULL != NULL не будет истинным, ведь нельзя однозначно сравнить одну неизвестность с другой. Кстати, ложным это выражение тоже не будет, потому что при вычислении условий Oracle, например, не ограничивается состояниями ИСТИНА и ЛОЖЬ. Из-за наличия элемента неопределённости в виде NULLа существует ещё одно состояние - НЕИЗВЕСТНО. Красота, а вы думали что логика это только черное или белое?)

Сравнение с NULLом.

Существуют специальные операторы IS NULL и IS NOT NULL, которые позволяют производить сравнения с NULL-ами. IS NULL вернёт истину, если операнд имеет значение NULL и ложь, если он им не является. 

Соответственно, IS NOT NULL действует наоборот: вернёт истину, если значение операнда отлично от NULL-а и ложь, если он является NULL-ом.

Кроме того, есть пара исключений из правил, касающихся сравнений с отсутствующими значениями. Во-первых, это функция DECODE, которая считает два NULL-а эквивалентными друг другу. Во-вторых, это составные индексы: если два ключа содержат пустые поля, но все их непустые поля равны, то Oracle считает эти два ключа эквивалентными.

Оператор NVL(value, new_value) помогает явно бороться с неизвестностью. Если value есть NULL, то возвращаемый результат будет new_value. Например NVL(NULL, 0) вернет 0.

Логические операции и NULL.

Обычно, состояние НЕИЗВЕСТНО обрабатывается так же, как ЛОЖЬ. Например, если вы выбираете строки из таблицы и вычисление условия x = NULL в предложении WHERE дало результат НЕИЗВЕСТНО, то вы не получите ни одной строки. Однако, есть и отличие: если выражение НЕ(ЛОЖЬ) вернёт истину, то НЕ(НЕИЗВЕСТНО) вернёт НЕИЗВЕСТНО.

С отрицанием NOT:
not(null  = null) - UNKNOWN
not(null != null) - UNKNOWN
not(null  = 'a')  - UNKNOWN
not(null != 'a')  - UNKNOWN
not(null <> 'a')  - UNKNOWN

С оператором OR:
null or true    - TRUE    
null or false   - UNKNOWN
null or null    - UNKNOWN

С оператором AND:
null and true   - UNKNOWN
null and false  - FALSE   
null and null   - UNKNOWN

Запомнить легко, всего лишь в 2-х случаях неизвестность (UNKNOWN) переходит в определенность. Кстати из-за особенностей трёхзначной логики NOT IN вообще не дружит с NULL-ами: как только NULL попал в условия отбора, данных на выходе не будет.

NULL и пустая строка эквивалентны:
'' is null = TRUE

Также:
NULL+NULL=NULL
NULL+100=NULL

Такие дела.

Friday, 9 March 2018

Доступ SSH по публичному ключу.

Всем привет.

У меня есть линуксовый полигон. Надо включить на него безопасное соединение по SSH-ключам.

SSH-ключи обеспечивают более безопасный вход на виртуальный выделенный сервер, чем при использовании пароля. Если пароль можно взломать во время атаки методом подбора ключа, SSH-ключи расшифровать таким образом практически невозможно. Создав пару ключей, вы получаете две длинные строки символов: открытый и закрытый ключ. Открытый ключ можно разместить на любом сервере, а потом разблокировать его при помощи клиента, у которого есть закрытый ключ. Когда ключи совпадают, система пустит вас без запроса пароля. Можно усилить безопасность, защитив закрытый ключ идентификационной фразой (passphrase).

Как создать пару SSH-ключей, где их хранить совершенно не секрет. Вот здесь например описано подробно. Даже если у вас Windows то можете воспользоваться для генерации либо PuttyGen либо Git-клиентом.

Для полигона мне нужен был локальный Git поэтому ключик я делал в нем. Если вы не хотите в будущем вводить пароль при входе то passphrase лучше не вводить.) При копировании открытого  ключа на целевой ПК (сервер) командой
ssh-copy-id username@123.45.56.78
в вашей папке .ssh должен появится файлик known_hosts. Есть? Отлично. 


Используем Putty для логина. И получаю сообщение:
Unable to use key file "D:\.ssh\id_rsa" (OpenSSH SSH-2 private key)

Sunday, 4 March 2018

PortReporter - бесплатный сниффер сети.

Всем привет.

В заметке "PortQry - бесплатный сканер сетевых портов" было описано одно из двух средств Microsoft, которые могут помочь определить, какие программы обращаются к сетевым портам вашего компьютера. Подобные средства важны, если вам требуется наладить работу сетевых служб или обнаружить нежелательные программы. Средство PortQry является ориентированным на Microsoft сканером сетевых портов с функциями наблюдения за локальным узлом. 

Сегодня я хочу рассказать о средстве PortReporter (устанавливается как служба), которое позволяет контролировать сетевую активность на отдельном компьютере в течение длительного времени. В отличие от средства PortQry, обеспечивающего возможность просмотра в реальном времени работающих сетевых приложений и их поиск в сети, служба PortReporter протоколирует активность портов TCP и UDP, собирает хронику сетевой активности и работы соответствующих приложений в течение некоторого периода времени, так что вы можете просмотреть результаты позже. PortReporter также предоставляет возможность многословного протоколирования в случаях, когда основные приложения меняют сетевые соединения, например, когда они принимают новое соединение. Можно вручную просмотреть эту информацию, чтобы установить, например, какие приложения принимают или порождают сетевые соединения. Служба PortReporter также отмечает библиотеки DLL, используемые приложениями, так что вы будете точно знать, какой код обращается к сети.

В зависимости от объема трафика, журналы службы PortReporter часто становятся слишком большими для анализа. Для таких журналов можно использовать другое бесплатное средство Microsoft PortReporterParser - чтобы интерпретировать и анализировать данные и представлять их в удобном формате. Давайте познакомимся с этими двумя средствами.

Friday, 2 March 2018

Комбінація подорожі.

Всім туристам привіт!

З отриманням безвізу до Європи у нас з`явилася чудова можливість подорожувати будь-коли. Я розумію що не всі готові це робити самостійно. Тобто хто робив це самостійно (на мультивізі) той так і продовжує, а хто користувався пакетними турами то має вибір. Тому і тур-агенства подорожей стараються як можуть, щоб не залишитись без прибутку.

Уявимо що у вас вже є біо-паспорт. Бінго. Що може зараз пакетний турист?  

По перше, як на мене, нема сенсу хапатися за "раннє бронювання". Навіщо ризикувати своїми грошима та наражатися на "група не зібралась". Економія грошей? Аж ніяк. Ось приклад.

В тур-оператора Танго-тревел берем пакетний тур "L'amour en trois: ти, я і Париж". Відпускна ціна 199 євро. Знижка на раннє бронювання за 2 місяці 8%, що становить ціну 183 євро.

А тепер переходимо в розділ Акції і знаходмио цей тур за 150 євро. Виїзд через 3 дні. Ось так. Все чим ви ризикуєте це місцем десь в другій половині автобуса. І то не факт). Але ви точно знаєте що тур відбудеться! І ваша економія до 25% від вартості туру! Встигнете владнати собі відпустку? Впевнений що так).

По друге, подивимися на це з і ншого боку. Названий тур має маршурт "Львів - Берлін - Париж - Disneyland - Прага - Краків - Львів". Головная атракція це Париж. Давайте зкомбінуємо щоб отримати той самий результат. Летимо Киев, Жуляны (IEV)  в Кельн (CGN) за 1689 грн лоукостом WizzAir, тільки ручна валіза. А на місці берем знову ж таки пакетний тур в Париж на 2 дні від локального оператора Victoria Resien. Поточна ціна 108 євро. Покаталися, подивилися, і гайда додому тим же WizzAir-ом. Що в нас накапає в підсумку? Якщо нам пощастить з авіарейсами то це буде не більше 250 євро. Трохи дорожче за додатковий комфорт. І треба гратися з бронюванням рейсу та туру.

Але тут вам відкривається інша можливість - ви можете з того ж таки Кельну обрати більше ніж один одноденний тур, чи довше. Виїзди вранці. І побачити більше справжньої Європи з середини. Не витрачаючі два-три на переїзди дорогами.

Варто спробувати!


Thursday, 1 March 2018

Фразовые глаголы как не логические пары.

Привет.

Все мы в Английском приходим к фразовым глаголам. Они украшают язык и делают нашу речь более богатой. Как же их запомнить?

Многие утверждают что фразовые глаголы похожи на смысловые (логические) пары и поэтому о назначении многих можно просто догадаться. Например put on. Что значит "надеть" на себя. Логично? Без вопросов. Так и многие другие.

Но есть такие которые имели ввиду нашу логичность в паре. Особенно сбивает с толку пары с up. Наречие up должно повышать или поднимать что-либо, как нам кажется. 

Однако смотрим:
act up - болеть, мучить
blow up - ругать
give up - бросать, сдаваться
screw up - испортить
put up with - мириться с
back up - задний ход.

Кто бы мог подумать? Такие вот фишки фразовых глаголов.

Monday, 26 February 2018

SQL - разница между INNER JOIN и OUTER JOIN.

Всем привет.

Совсем недавно на собеседовании мне был задан вопрос по SQL. Ну кто же его, или про него, не знает. Чаще всего строится ассоциация с запросами типа SELECT. Но оператор SELECT весьма многогранен. Лично меня часто смущали условия типа JOIN, как внешние так и внутренние. Поэтому я решил прояснить это вопрос. Может и вам пригодиться.

В чем же разница между INNER JOIN и OUTER JOIN?

В SQL есть два типа оператора JOIN: INNER JOIN и OUTER JOIN. OUTER JOIN тоже может быть двух видов: LEFT JOIN и RIGHT JOIN. Главная разница между INNER JOIN и LEFT JOIN в том, что в первом случае из обеих таблиц выбираются только подходящие записи, а во втором случае из первой таблицы выбираются все записи, а из второй только подходящие. Всегда обращайте внимание на запросы с «ALL», потому что они, как правило, требуют LEFT JOIN, например, запрос, который требует найти все отделения и количество работников в них. Если вы используете INNER JOIN, то пропустите пустые отделения, в которых никто не работает. FULL JOIN логично объединяет обе таблицы. Существует еще запись CROSS JOIN, но она используется редко.

А теперь наглядно.

В тексте запроса можно опускать INNER если указан только JOIN. И OUTER если используете LEFT JOIN или RIGHT JOIN.

Также бывает полезно знать командную строку логина к популярным СУБД. Ниже маленькая справка.

Oracle: default port 1521
Connection: sqlplus username/pass@host:port/service

MSSQL: default port 1433
Connections:
до 2005-го: osql.exe -U <login> -P <password> -i <inputfile> - выполнить файл используя указанный login/password
C 2005-го:  sqlcmd -S server1\SQLExpress -U SqlUserAccount -P SqlPassword

MySQL: default port 3306
Connection: mysql -h host -u user -p

Firebird: default port 3050
Connection: isql [режимы] [имя-базы-данных] [-u[ser] <имя-пользователя> -pas[sword] <пароль>]

Успехов.

Monday, 19 February 2018

PortQry - бесплатный сканер сетевых портов.

Всем привет.

Некоторые проекты в недрах Microsoft могут быть отложены или даже стать историей. Иногда не заслуженно. Одним из них был проект по созданию простого сканера сетевых портов под публичным названием PortQry. Последний релиз про Portqry 2.0 Features and Functionality был здесь http://support.microsoft.com/?id=832919.

Остановимся на характеристиках PortQry и методах его использования. Кто знает, может это именно тот инструмент которого нам не хватает в нужную минуту).

Для большинства соединений в компьютерных системах используются протоколы TCP и UDP. Все версии Windows открывают множество портов, обеспечивающих возможность выполнения полезных функций, в частности совместное использование файлов и вызов удаленных процедур (RPC). Однако программы-"трояны" могут злоупотреблять портами, открывая лазейки для нападения на компьютеры. Как для диагностики необходимых сетевых служб, так и для обнаружения вредных программ нужно уметь управлять трафиком между компьютерами сети. Первый шаг к этому - обнаружить программы, прослушивающие сетевые порты в компьютерах.

С помощью анализатора сетевых портов, такого как Nmap, можно выявить приложения и сетевые службы, установленные на компьютере, и слушающие порты. Например, при сканировании Web-сервера будут обнаружены открытые порты 80 и 443. Некоторые анализаторы портов позволяют запросить из открытого порта информацию о прослушивающем приложении. Обычно в ответ на запрос поступает текстовый баннер, который содержит информацию о приложении. Однако баннер может быть ложным. Например, захватив баннер, сканер анализатора может сообщить, что порт 80 прослушивается программой Apache. Если используется только Microsoft IIS, это сообщение должно вызвать подозрение, что какая-то другая программа маскируется под Apache. В зависимости от результатов проверки может возникнуть необходимость зарегистрироваться в системе и непосредственно определить приложение, прослушивающее этот порт.

Windows Server 2003 и Windows XP позволяют установить соответствие идентификаторов процессов (processidentifier, PID) с открытыми сетевыми портами. С версии XP, компания Microsoft модернизировала Netstat, которая поддерживает корреляцию PID - сетевое соединение, однако в программе по-прежнему есть изъяны. Например, Netstat показывает только PID, но не имя процесса. Чтобы узнать имя процесса, необходимо установить соответствие имени и PID с помощью такого инструмента, как TaskManager.

Менее известный инструмент поможет осуществить исследование и анализ сети. Это PortQry, сканер сетевых портов, ориентированный на продукты Microsoft и располагающий функциями мониторинга хостов локальной сети.

Обзор PortQry

PortQry 2.0 совместим с Windows 2003 и выше. Он отображает состояние портов TCP и UDP на локальной или удаленной машине. По функциональности PortQry уступает большинству других сканеров сетевых портов, таких как Nmap или бесплатные SuperScan и ScanLine компании Foundstone. Но если запустить PortQry в локальном режиме на Windows 2003, то программа установит соответствие между открытыми портами и сетевыми приложениями-слушателями вплоть до уровня DLL. Кроме того, отчеты PortQry более насыщены информацией, чем отчеты Netstat.

При работе в дистанционном режиме PortQry показывает, закрыт или открыт данный порт. Для некоторых портов, например, LDAP (LightweightDirectoryAccessProtocol — упрощенный протокол доступа к сетевым каталогам) и RPC, PortQry выдает дополнительную информацию о прослушивающей службе. Например, при запросе LDAP порта UDP 389 PortQry передает полезную информацию о службе LDAP, в том числе о ее схеме, конфигурации и контекстах именования корневого домена; версии LDAP; хост-имени DNS.

PortQry - инструмент командной строки. Однако отдельно распространяемая программа PortQueryUI, которая рассматривается ниже, дополнена графическим интерфейсом для PortQry и несколькими функциями, облегчающими работу с продуктом.

Thursday, 15 February 2018

Баланс торрента.

Привет.

Хозяйке на заметку. 

Многие из нас любят торренты. Не только из-за того что так можно быстренько скачать нужный фильм для домашнего просмотра, но также для того что только так, к сожалению, можно оперативно найти и оценить нужный видео-курс. С этим активно борются правообладатели, но цель моего поста не очередное бла-бла про копирайт, а про баланс вашего торрент-клиента между скачиванием и раздачей.

К чему такой баланс, спросите вы. А дело в том что торренты доступны везде, даже в Европе. А там любят блюсти законы цифровых продуктов. Так что, мне нельзя там этим пользоваться? Или мой провайдер их закроет для меня? А вот и нет, пользоваться можно. Т.е. скачивать для внутреннего употребления. А вот раздавать не следует. Как же так? Ведь суть торрента  в том что первый же закаченный килобайт становится на раздачу. Даже не дожидаясь конца всей закачки. В том то и дело что ваш торрент-клиент должен быть настроен так чтобы раздача не велась с вашего адреса.

Часто в сети попадаются советы как просто сказать текущему торренту Stop сразу после окончания загрузки или установить что-нибудь из области "Auto-shutdown when complete". Это не подходит по причине которую я вам назвал чуть выше. Первые килобайты уже убежали.

Ограничить скорость раздачи до нуля? Настройки клиента, mTorrent к примеру, такого не предусматривают.



Saturday, 3 February 2018

Калькулятор расчета диагонали LCD телевизора.

Всем привет.

Несмотря на то что такая вещь дома как телевизор сейчас уступает место интернету он все равно есть. Редкая семья его не имеет. Можно и не смотреть наши новости, но телик все равно есть. Тем более что его функционал сейчас используют как угодно, особенно если есть функция SmartTV. Но большое значение имеет размер этой самой диагонали. И совсем не обязательно полагать что чем больше тем лучше. У нас дома же не царские хоромы. Правильный размер диагонали телевизора зависит от его разрешения и расстояния с которого вы его будет смотреть. Если пренебречь чем то из этих двух параметров то у вас будет либо дискомфорт просмотра либо вы легко испортите себе зрение. 

Поэтому вот вам онлайн калькулятор расчета необходимой диагонали вашего телика:



За основу расчета берем следующее. Если у вас есть уже телевизор, то введите размер его диагонали в дюймах (Screen size) и выберите разрешения входного сигнала который поступает на ваш телевизор (Choose resolution). Внизу вы увидите лучшее расстояние для просмотра.

У вас именно так? Поздравляю. Если нет, есть повод задуматься. Или переставить(перевесить) мебель, или купить.. новый телевизор. Какой размер?

Возвращаемся к калькулятору. Вводим разрешение входного сигнала (Choose resolution) и желаемую диагональ будущей покупки. Вы же его давно присмотрели в интернете. Получаем расстояние для просмотра. Есть такая возможность? Отлично. Если нет то пробуйте исходить из вашего удобного расстояния (Siting distance до дивана) и тогда получите оптимальную диагональ будущего "друга" на вечер. А там решите что вам важнее, ваш бюджет или комфорт.

Успехов.

Friday, 2 February 2018

Изменения в партнерке Youtube.

Всем привет.

Вот нам везет. Недавно Youtube принял решение обновить свою экосистему и таким образом отсеять слабо-прибыльные каналы. Бизнес есть бизнес.)

В оригинале это звучит так -
Today we are announcing changes to the YouTube Partner Program (YPP). While our goal remains to keep the YPP open to as many channels as possible, we recognize we need more safeguards in place to protect creator revenue across the YouTube ecosystem. 

What's Changing
Under the new eligibility requirements announced today, your YouTube channel, Nyukers, is no longer eligible for monetization because it doesn’t meet the new threshold of 4,000 hours of watchtime within the past 12 months and 1,000 subscribers. As a result, your channel will lose access to all monetization tools and features associated with the YouTube Partner Program on February 20, 2018 unless you surpass this threshold in the next 30 days. Accordingly, this email serves as 30 days notice that your YouTube Partner Program terms are terminated. 

В переводе это звучит так - ваш канал должен иметь не менее 1000 подписчиков и 4000 часов просмотра за год. Как минимум! Если есть такое то подаете заявку, которая будет рассмотрена в течение месяца и вам вернут статус партнера. Если нет, то после 20-го февраля статус с вас снимается и соответственно вы не сможете больше зарабатывать на своих видео показом рекламы. Если в перспективе выполните эти два требования то опять же сможете подать заявку.

Не нашел я ответа, что же будет с той суммой дохода которая уже набежала до 20-го февраля. Неужели как раньше, просто свистнут? Ну это уже ни в какие ворота.(

Поживем увидим.

Thursday, 1 February 2018

Табличный вывод в LogParser-е.

Всем привет.

Все таки Microsoft LogParser вещь стоящая. Плюс к этому такой инструмент еще и бесплатен. Его изучают даже в курсе этического хакинга.

Проходя по своим SQL-скриптам  LogParser-a, обновляя некоторые встроенные функции я обнаружил интересный вывод, т.е. табличный вывод.  Задается он просто параметром DATAGRID.

Пример запуска: LogParser.exe file:%1 -i:FS -o:DATAGRID

где сам SQL-запрос:
SELECT TOP 10 *
FROM D:\oracle92\*.*
ORDER BY Size DESC

И получаем всплывающее окно


Красиво? Возможно. Полезно? Увы, полезного тут ничего не оказалось. Ни сортировать данные, ни фильтровать данные здесь как в  Out-GridView Powershell возможности нет.

Такие дела.


Friday, 26 January 2018

Разрешение на запись DVD в Windows.


Всем привет.

Сегодня моя информация не уникальна, но обычно про нее забывают. А именно - по умолчанию запись на DVD в Windows для пользователя запрещена. Многие дома себя видят адмнистраторами и с этим запретом не встречаются, а вот в офисе это может быть совсем не так.

Поэтому нужна небольшая манипуляция с реестром. Конечно если это не противоречит внутренней политике вашей компании.

Я это делал через утилиту SecEdit вот так:
secedit /validate cddvd.inf
secedit /configure /DB dvd.sdb /CFG cddvd.inf /LOG dvd.log
notepad dvd.log
pause
del dvd.*

Где файл cddvd.inf имел такое содержание:
[Unicode]
Unicode=yes
[Version]
signature="$CHICAGO$"
Revision=1
[Profile Description]
Description=user write enable
[Registry Values]
MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\AllocateCDRoms=1,"1"

Это все, теперь и пользователь сможет писать на DVD.
Успехов.

Friday, 19 January 2018

Форматированный вывод WMIC.


Всем привет.

Пару дней назад я отвлекался на использование WMIC. Так вот, эта штука имеет в своем арсенале форматированный вывод. А не только на консоль. Т.е. можно получить на выходе CSV файл, и даже HTML. Всего лишь добавляем  два параметра в строку output и format:

wmic /output:"e:\my.html" OS Get /format:hform

и при первом старте вы, скорее всего, получите сообщение об ошибке Invalid XSL format (or) file name. Как и я.

Дело в том что в неанглоязычных версиях Windows WMIC не находит свои шаблоны для вывода. Поэтому правильно будет писать так:

wmic /output:"e:\my.html" OS Get /format:"%WINDIR%\System32\wbem\ru-Ru\hform"

И вауля, наш файлик готов. Не меняйте последовательность output и format.

У вывода много разных форматов, также легко создаем файл CSV:

wmic /output:"e:\MACs.csv" path Win32_NetworkAdapterConfiguration Where IPEnabled=True get MACAddress /format:"%WINDIR%\System32\wbem\ru-Ru\csv"

Успехов.

Wednesday, 17 January 2018

Как найти оптимальный размер MTU.

Всем привет.

Один из простых и наиболее точных способов определения оптимального размера MTU (Maximum Transmission Unit)  - пинг тест. Вы просто отправляете запросы и постепенно снижаете размер пакета до тех пор, пока пакет больше не подвергается фрагментации. Кроме того, этот простой тест подходит для точного тестирования конечных точек, пользователи могут найти более маленький размер MTU более удобным для себя. 

Как найти правильный размер MTU для домашней сети с роутером TP-Link хорошо рассказано здесь http://www.tp-link.ua/ru/FAQ-190.html.

В связи с дополнительными сложностями, в VPN (виртуальные частные сети) необходим иной способ тестирования MTU. Если у вас сеть с несколькими компьютерами, то каждый компьютер должен быть настроен с одинаковым размером MTU. Кроме того, некоторые компьютеры могут использовать несколько сетевых адаптеров или адаптер клиента VPN на одном компьютере. Удостоверьтесь, что вы изменяете сетевой адаптер, имеющий отношение к службе широкополосного вещания или VPN клиенту.

А теперь узнаем как выполнить тоже самое в сети с маршрутизатором Cisco.

Если от маршрутизатора посылается обычная команда ping, адрес источника этой команды ping является IP-адресом интерфейса, который используется пакетом для выхода из маршрутизатора. При использовании расширенной команды ping IP-адрес источника может быть изменен на любой IP-адрес в маршрутизаторе. Расширенная команда ping используется для более тщательной проверки доступности хоста и возможности сетевого подключения. Расширенная команда ping работает только в привилегированной командной строке EXEC. Обычная команда ping работает как в пользовательском, так и в привилегированном режиме EXEC.

Saturday, 13 January 2018

The protection of Powershell script.

Hi there.
 
If you know the obfuscation for VBScript files was with tiny tool as Script Encoder from Microsoft. We could get VBE file instead VBS file. VBE file could be run easy as VBS: cscript file.vbe. This was poor protection for VBS scripts. Anybody could find in Internet decoder for VBE.
 
And what is situation about such protection for Powershell script?
 
For example, I know fine GUI tool as PowerGUI.
 
Script compilation to executable files (binary exe) is one of the features we have added in PowerGUI version 3.0 or above. You would likely want to use compile a script when you want to share it in the enterprise environment and you are not sure whether the other person is comfortable running scripts or you simply don’t want risking someone modifying the your code.
 
To compile a PowerShell script:
  • open the script in PowerGUI Script Editor,
  • on the Tools menu, click Compile Script,
  • then specify the name and path for the exe file you want to create EXE-file.
 
The additional options you get are:
  • show or hide the PowerShell Console window when executing the script,
  • automatically close or keep the console window,
  • protect the script source code by obfuscating it using a password you specify,
  • add other PowerShell scripts  to the exe (if you have another script which your main script is using).
However you shouldn't to be calm. You have to know some moments. You have to type Password each time for running your exe-file. So you can't to share your exe-file without password. And if your exe-file take any error during execution, so your powershell script will be locate in PowerGUI temporary folder in clear type.

Be careful.
 
 
 

Thursday, 11 January 2018

Как управлять Wanscam камерой с помощью Powershell?

Всем привет.

Как управлять Wanscam камерой с помощью Powershell?

Автор идеи купил китайскую wanscam вебкамеру с wifi, инфракрасной подсветкой, микрофоном, динамиком, поворотным механизмом и web-интерфейсом. И решил автор сделать из этой web-камеры что-то вроде домашней видео-охраны.

Как он пишет идея была следующая: пингуем смартфоны или ноутбуки дома, если пингуются - значит кто-то есть дома, если не пингуются - значит дома, скорее всего, никого нет, или они просто забыты. Когда дома никого нет - камера поворачивается в сторону, например, двери и включается в режим "motion alarm", то есть оповещает нас если что-либо в кадре начинает двигаться. Если же дома кто-то есть - отключаем "motion alarm" и поворачиваем камеру в стенку.

Что делать с любимой кошкой?) Ограничить область сканирования уровнем выше полуметра от пола. Или ничего не делать, ибо кошки не так активны днем как нам кажется.


А вот его Powershell скрипт с помощью которого это все было реализовано:


#Общие параметры
$hour = (Get-Date).Hour #текущее время
$date = Get-Date -format dd-MM-yyyy
$file_temp = "C:\Temp\WebCam\camera.txt"
$file_log =  "C:\Temp\WebCam\Camera_log-" + $date + ".txt"
$ping = new-object System.Net.NetworkInformation.Ping


#Сетевые параметры
#увы, но пароль к камере здесь в открытом виде
$camera_user_pass = "user=CameraUser&pwd=CameraPassword"
$camera_ip = "192.168.2.30"
$camera_ip_port = "http://"+$camera_ip+":8888/"
$mail_username = "MyHouse"
$mail_from = $mail_username+"@gmail.com"
$mail_to = "HugMe@gmail.com"
#пароль к gmail тоже в открытом виде
$mail_pass = "mail_password"
$wifi_ip = "192.168.2.10"  #телефон автора
$wifi_ip2 = "192.168.2.11" #резервный
$wifi_ip3 = "192.168.2.12" #ноут


#А доступна ли web-камера по ping?
$i = 0;$time = 'timeout'
While (($i -lt 3) -and ($time -eq 'timeout')) {
 $i++
 $reply = $ping.send($camera_ip) #пинг в адрес камеры
 $time = $reply.RoundtripTime
#Упс, а наша камера недоступна. Надо об этом срочно сообщить мне!
 if (($reply.status -ne "Success") -and ($i -eq 3)){
  write-host "send mail"
#заголовки сообщения
  $SMTPServer = "smtp.gmail.com"
  $SMTPPort = "587"
  $subject = "Camera Timeout"
  $body = "Camera Timeout"
#текст в формате HTML
  $message = New-Object System.Net.Mail.MailMessage $mail_from, $mail_to
  $message.Subject = $subject
  $message.IsBodyHTML = $true
  $message.Body = $body
  $smtp = New-Object System.Net.Mail.SmtpClient($SMTPServer, $SMTPPort)
  $smtp.EnableSSL = $true
  $smtp.Credentials = New-Object System.Net.NetworkCredential($mail_username, $mail_pass)
отправляем сообщение
  $smtp.Send($message)
 }
}

Wednesday, 10 January 2018

Системные требования для ABBYY Recognition Server.

Привет.

Лет пять тому наравне с ABBYY Fine Reader мне довелось внедрять для нашей канцелярии еще один продукт компании ABBYY. Это ABBYY Recognition Server.

Это было весьма актуально ибо ABBYY Recognition Server обеспечивает полный перевод бумажного архива в электронный вид.

ABBYY Recognition Server позволяет автоматически перевести архив бумажных документов  в электронный вид: распознает бумажные документы и сохранит их в электронный архив в необходимом формате – текстовом или в виде изображения. Сканирование и распознавание документов происходит в автоматическом режиме, требуется лишь правильно настроить сценарии обработки.

Появилась новая возможность доступности сервиса распознавания документов для каждого сотрудника не сходя с его рабочего места. Для этого надо было установить в локальной сети ABBYY Recognition Server - и сервис распознавания стал доступен всем сотрудникам организации через ABBYY Recognition Client. Каждый сотрудник получил возможность за несколько минут распознать нужный ему для работы документ.

Однако при установке и запуске самого сервера пришлось малость повозиться. Обычное дело, ибо сам продукт пришел без каких либо ценных указаний сверху. Но ведь и политику безопасности в компании никто не отменял. Очень быстро я пришел к выводу что без компромиссов с определенными запретами мой ABBYY Recognition Server работать не будет. Поэтому для экономии вашего времени ниже привожу список опций которых без которых сервер не хотел запускаться.

При установке ABBYY Recognition Server 2.0 на сервер Microsoft Windows необходимо было выбрать опции COM и Web services.

Кроме того на сервере должны быть запущены службы "Локатор удаленного вызова процедур" и "Удаленный вызов процедур (RPC)".

На сервере должны быть также установлены IIS и NET Framework 2.0+.

И последнее - в сетевых настройках должны быть активны "Клиент для сетей Microsoft" и "Служба доступа к файлам и принтерам сетей Microsoft".

Вот такая была ситуация. Скажу вам честно что ABBYY Recognition Server потребовал некоторых уступок в плане безопасности от сервера Microsoft Windows. Возможно 4-я версия в этом отношении менее требовательна.

Успехов.

Tuesday, 9 January 2018

Cпособ замены имени компьютера в OSD MS SCCM.


Всем привет.


При установке (замене) ОС пользователя, пожалуй, самой востребованным является желание в явном виде указать те или иные параметры перед началом установки самой ОС. Чаще всего таким параметром является имя компьютера (hostname). На самом деле пользователю глубоко все равно почему его компьютер называется SWEETCAKE, а не CMPBOSS0014. Но далеко не все равно это может быть сетевому администратору или офицеру информационной безопасности. Тем более если на предприятии существует политика, которая предписывает именовать все компьютеры, опираясь на их роль и территориальную принадлежность. Например DBI-F01-0014. Особенно это актуально при перемещении пользователя со своим табельным номером. Или новое штатное расписание переписало его в новое подчинение. Ну не бегать же каждый раз и менять имя компьютера по таким «пустякам». Тем более что такая операция влечет за собой как минимум вывод ПК из домена, перезагрузку ОС, замена имени, перезагрузку, ввод ПК в домен, и еще одну перезагрузку. Ничего не забыли?

Одним из оптимальных способов решения данной проблемы является заведение записи компьютера в базе MS SCCM. В этом нам поможет механизм Computer Association, смысл которого заключается в ручном добавлении пары Имя компьютера – MAC адрес в базу данных SCCM.

Для того чтобы вручную добавить компьютер в базу данных SCCM необходимо перейти к пункту: Configuration Manager Console – Site Database – Computer Management – Operating System Deployment – Computer Association – Actions: Import Computer Information. В появившемся мастере доступны два способа добавления записей: Import computer using file (добавление группы компьютеров с помощью CSV файла) и Import single computer (добавление одиночного компьютера).



Для примера добавим одиночный компьютер с желаемым именем W-TST-0001 и MAC-адресом 00:E0:4C:62:02:B0. Если мы добавляем новый, ранее не известный SCCM компьютер, то поле SMSBIOS GUID можно не заполнять, оно будет заполнено автоматически. Для существующего ПК эти параметры можно узнать запросом Powershell:

Get-WmiObject win32_computersystemproduct -Property 'UUID'
Get-WmiObject Win32_NetworkAdapterConfiguration -Property 'MACAddress'

Или более точнее:

$MyMac = Get-WmiObject -query "Select * from Win32_NetworkAdapterConfiguration Where IPEnabled = True"
$MyMac.MACAddress

Или c помощью WMIC:

wmic path win32_computersystemproduct get uuid
wmic path Win32_NetworkAdapterConfiguration Where IPEnabled=True get MACAddress

Параметром Source computer мы можем указать уже существующую запись в базе данных SCCM, с которой будет ассоциирована новые данные (имя и MAC-адрес).

Далее указываем коллекцию в которую будет добавлена запись.


Теперь рассмотрим способ добавление группы компьютеров через файл.
Для начала необходимо сформировать сам файл comp.csv:
W-TST-0001, 03000200-0400-0500-0006-000600090009,0A:00:27:00:00:0F
W-TST-0021, 03000200-0400-0500-0006-000600090008,05:06:07:08:FD:1A
Затем выбираем пункт: Import computer using a file. Указываем место нахождение файла, и соответствие столбцов файла и полей базы данных.


Но такой способ (Computer Association) приемлем, только если у вас малое количество компьютеров (до 100) и при этом он требует значительных трудозатрат, предварительно необходимо собрать MAC и UUID компьютеров компании и внести их в файл.

Приблизительно так мы и поступили чтобы решить последствия последней оптимизации нашего коллектива.

Удачи.

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

Популярное

Медиа облако