вторник, 29 января 2013 г.

Удаление ключей Microsoft Office 2003 из системы

Дано: WinXp, на ней был когда-то поставлен офис, после чего снесен. Лицензия на него потеряна. Чтобы не было никаких проблем при проверках решено было снести его ключи. Лежат они по адресу HKEY_LOCAL_MACHINE \Software\Microsoft\Office\11.0\Registration. Если офисом пользоваться не планируется, можно удалить всю папку 11.0.
По материалам: Изменение ключа продукта для Office XP, Office 2003 и выпуска 2007 системы Microsoft Office

понедельник, 28 января 2013 г.

Распаковать msi пакет

Иногда требуется распаковать msi пакет без его установки, например чтобы вытащить из него нужные файлы или оценить его содержание. Это можно сделать командой:
msiexec /a путь_к_файлу_c_расширением_msi /qb TARGETDIR=путь_к_директории_для_извлечения_данных
По материалам: 

пятница, 25 января 2013 г.

Список пользователей в Linux

Существует 2 способа узнать список пользователей в Linux:
cat /etc/passwd
и
getent passwd
Вторая команда предпочтительнее т.к. при этом будут показаны все пользователи, а не только локальные.

Удаленные приложения в Linux. Организация RemoteApp

Часто может потребоваться использовать на своей машине приложения, запущенные на сервере. Это экономит ресурсы клиентской машины и позволяет не устанавливать приложения на весь парк машин. Например, таким образом может быть организована работа с   1с.
Что мы имеем - сервер Windows Server 2008R2, настроенная служба терминалов, установленное приложение.
Организация доступа из под Windows хорошо описана, например здесь и здесь.
Нам же необходимо получить тот же функционал на Linux.
Для начала нам необходимо установить клиент rdp:
sudo apt-get install freerdp
После этого нам необходимо узнать полный путь к нашему приложению на сервере. После этого запускаем клиент:
xfreerdp -u Administrator -p password --app --plugin rail.so --data "notepad.exe" -- 192.168.0.1
Эта команда откроет нам окно с запущенным notepad.exe на сервере 192.168.0.1, причем клиент сам залогинится с переданными ему в параметрах логином и паролем. Окно будет декорировано как и все остальные и разницы с локальными приложениями во внешнем виде не будет.
По материалам:
1. Windows, meet Linux. Linux, meet RemoteApp. - статья о том, как организовать полную интеграцию удаленных приложений в систему на примере открытия офисных файлов программами их набора Microsoft Office, установленных на удаленном сервере.
2. Подробное описание технологии RemoteApp.

Русская справка man в консоли

Для русификации справки в linux - man - необходимо установить пакет manpages-ru командой

sudo apt-get install manpages-ru
Однако перевод не полный и не всегда актуальный, однако может помочь понять в общих чертах назначение конкретной команды.

Как удалить все файлы в директории по маске

Cron был запущен с заданием каждую минуту загружать определенный файл в директорию. Со временем там скопилось несколько тысяч однотипных файлов вида "имя_файла.номер". Потребовалось их удалить. Вручную удалять не вариант. С этим может справиться стандартная утилита find.
Исходная команда:

root@FILESERVER:~# find . -type f -name "order_load.*" -delete
Разберем ее параметры:
. - директория где мы будем искать
-type f - какого типа файлы нам искать (f - обычные файлы)
-name "order_load.*" - маска названия файла 
-delete - удалять найденные файлы

четверг, 24 января 2013 г.

Решение проблемы "CMAKE_CXX_COMPILER-NOTFOUND" при использовании cmake

Дано: чистая система (ubuntu в моем случае). Потребовалось собрать пакет из исходников. При запуске cmake он ругался на отсутствие в системе C++ компилятора. Пакет gcc был уже установлен. Может показаться, что если установлен gcc (GNU compiler collection), можно будет сразу же собирать на машине программы из исходных кодов. Это не так. Для сборки нам надо будет поставить пакет build-essential командой:
sudo apt-get install build-essential -y
который, собственно, и установит нам в систему libstdc++ и g++.

вторник, 22 января 2013 г.

Организация нескольких серверов посредством виртуальных машин

Как оказалось, сделать это средствами VirtualBox довольно легко. Имеется такая конфигурация - сеть, в которой есть сервер на Windows Server 2008R2, он же раздает DHCP. Моя машина (kutsd-desktop 192.168.0.173). На ней стоит VirtualBox, в котором поднят Debian. Необходимо иметь доступ к этой системе с любой машины сети. Заходим в настройки виртуальной машины, открываем параметры сетевого адаптера и выставляем тип подключения в "Сетевой мост". После этого виртуальная машина сама предоставит имеющийся сетевой интерфейс (в моем случае eth0) виртуальной системе. Система сама получит настройки от DHCP сервера. В моем случае виртуальная система получила ip 192.168.0.183 .

kutsd@kutsd-desktop:/$ ifconfig | grep "inet addr"
          inet addr:192.168.0.173  Bcast:192.168.0.255  Mask:255.255.255.0


kutsd@kutsd-desktop:/$ ping 192.168.0.183
PING 192.168.0.183 (192.168.0.183) 56(84) bytes of data.
...
^C
--- 192.168.0.183 ping statistics ---
9 packets transmitted, 9 received, 0% packet loss, time 8000ms
rtt min/avg/max/mdev = 0.251/0.402/0.865/0.190 ms
kutsd@kutsd-desktop:/$ ssh 192.168.0.183
kutsd@192.168.0.183's password: 
kutsd@debian-virtual:~$ uname -a
Linux debian-virtual 2.6.32-5-686 #1 SMP Sun Sep 23 09:49:36 UTC 2012 i686 GNU/Linux

Установка Skype в Ubuntu 12.10

Установка Skype в Linux оказалась не такой уж и тривиальной, как могло показаться на первый взгляд. Первым делом я зашел на официальный сайт скайпа и скачал там .deb пакет. Однако установка его провалилась. Хотя инсталлятор и выводл сообщение об успешной установке, физически же файлы не копировались в нужные папки.
Для ручной установки необходимо добавить в список репозиториев (/etc/apt/sources.list) официальный репозиторий скайпа:
deb http://download.skype.com/linux/repos/debian/ stable non-free
Затем обновляем кэш пакетов и устанавливаем Skype:
sudo apt-get update

sudo apt-get install skype

По материалам: Тема: Как установить skype


среда, 16 января 2013 г.

Решение ошибки 0x0000007B при установке Windows XP

При установке Windows XP на определенном этапе вылетает синий экран (BSOD) с кодом 0x0000007B. Оказалось, уставновщик XP  не имеет на борты SATA драйверов. Если они так необходимы, можно вшить их в дистрибутив. Если нет - достаточно в BIOS отключить AHCI - строчки типа:
  • Configure SATA as: IDE
  • AHCI Mode: Disabled
  • SATA Controller Mode: Compatibility
  • SATA Operation: ATA
  • SATA Native Mode: Disable
(В разных версиях BIOS для разных материнских плат по разному).
По материалам:

вторник, 15 января 2013 г.

Настройка прокси-сервера для обновления продуктов лаборатории Касперского

Столкнулся с небольшой проблемой - обновление антивируса Касперского не работает через прокси-сервер. Для пользователей возникают некоторые неудобства - постоянно всплывает окно с требованием ввести логин/пароль для прокси. И хотя введенные данные валидны, антивирус не может соединиться со своим сервером обновлений и поэтому считает что эта пара логин/пароль не действительно и снова требует их ввести.
Оказалось, что адреса серверов обновления не добавлены в разрешающие правила. Официальная техподдержка Касперского выдает следующий список серверов обновления. По ip добавить не получится, поскольку ip-адреса серверов могут меняться.
Я, чтобы не добавлять весь этот список отдельным ACL, просто разрешил домен kaspersky.com в SQUIDе со всеми поддоменами. Обновление заработало, пользователи счастливы.
По материалам:
Касперский не работает через Squid  
Где хранится список серверов обновлений лаборатории касперского

понедельник, 14 января 2013 г.

Смешанный доступ к шаре в SAMBA

Иногда возникают такие ситуации, что необходимо предоставить пользователям общие папки, при этом закрыв некоторые расшаренные папки паролем.
По умолчанию в последних версиях SAMBA security mode bit стоит в значении user. Это соответсвует строки конфига smb.conf security = user. Это значит, что сервер не будет обрабатывать входящие запросы до тех пор, пока пользователь не авторизуется. А нам требуется как раз таки вход в папку без ввода логина и пароля.
Данная проблема имеет решение. Для этого нам надо будет настроить параметр Map to guest в значение Bad User (строка конфига "Map to guest = Bad User"). Это значит, что запросы с неправильным паролем будут отклонены, если такое имя пользователя существует. Если не существует, то такие запросы будут считаться как попытки зайти гостем (guest account).
Поскольку в Windows и Linux имена гостей различаются, надо настроить оображение между ними. Для этого необходимо в файл "smbusers" записать строку "nobody = guest" и в конфиге SAMBA в в секции "global" дописать строку "username map = /etc/samba/smbusers", которая, собственно, и указывает на файл с отображениями.
После этого в нужной нам секции достаточно будет указать "guest ok = yes".
Следует также учитывать, что этот метод не работает с опцией "valid users".
Итого у нас были произведены изменения в 2х файлах:
smbusers
nobody = guest
smb.conf

[global]
...
security = user
Map to guest = Bad User
username map = /etc/samba/smbusers
...
[testshare]
...
guest ok = yes
...



По материалам:
Samba and guest shares with "security = user"
Описание параметра Map to guest
Описание параметра security

четверг, 10 января 2013 г.

Устранение проблемы ошибки 0xc000005 при печати

Данная ошибка довольно распространена (1 2 3 4). Чаще всего она возникает с сетевыми принтерами HP. Предложенные в обсуждениях, указанных выше, решения являются половинчатыми и не исправляют ситуацию в 100% случаев. Самой распространенной версией о происхождении ошибки является версия о корявых драйверах.
Решить ее можно просто - удалить сетевой принтер и установить локальный, создав новый TCP/IP порт. После следует указать лишь IP адрес принтера (его можно узнать, распечатав тестовую страницу с сетевыми настройками). После этого печать вылетать не будет.

вторник, 8 января 2013 г.

Настройка Qt Creator для использования OpenMP

Для настройки работы Qt Creator (при использовании компилятора msvc от Microsoft Vusial Studio) с OpenMP необходимо в конфигурационном файле проекта (.pro) добавить следующие строчки:
LIBS += -openmp
QMAKE_CXXFLAGS += -openmp
QMAKE_LFLAGS += -openmp

Доступ к логическим дискам при использовании Ubuntu LiveUSB

При работе в LiveUSB системе Ubuntu при попытке доступа к логическим дискам машины может возникать ошибка монтирования вида:
Adding read ACL for uid 999 to `/media/ubuntu' failed: Operation not supported (g-io-error-quark, 15)
Эта ошибка известна и задокументирована. Возникает она потому, что система пытается получить доступ к  каталогу`/media/ubuntu', который не создан. (В данном случае ubuntu - имя пользователя.) Для решения данной проблемы достаточно создать этот каталог командой:
sudo mkdir /media/ubuntu

Инициализация многомерного массива в C++

Довольно популярная проблема, с который сталкиваются начинающие программисты, пытаясь выделить в куче двумерный массив строчкой типа:
int A[10][10] = new int[100][0];
В C++ такой фокус не прокатит, поэтому необходимо сперва объявить А как массив указателей, а для каждого указателя уже выделить память:
int** A = new int* [100];
for(int i=0; i<100; i++)
    A[i] = new int[50];
 

пятница, 4 января 2013 г.

Настройка Firefox через групповые политики AD

Для настройки Firefox необходимо установить специальную версию, поддержкой которой занимается FrontMotion . На странице http://www.frontmotion.com/FMFirefoxCE/download_fmfirefoxce.htm есть актуальный локализованный дистрибутив и (внизу страницы) шаблоны групповой политики. После развертывания Firefox на локальных машинах можно управлять настройками через групповые политики.
Источники:
Описание процесса установки
Описание процесса настройки
Справочная информация от Microsoft

См. также:
Описание процесса развертывания и настройки Chrome