Настройка резервного копирования в Elastix 2.4

Пришел день столкнуться мне с данной АТС и задача была настроить резервное копирование. Заходим в web-интерфейс в System — Backup/Restore и видим скудные настройки.

По-умолчанию система может бекапить ежедневно, еженедельно и ежемесячно, но только в локальную папку «/var/www/backup» Из этой же папки, по-умолчанию, веб-интерфейс отображает список сделанных резервных копий. Можно подключить FTP-сервер, но на него резервные копии переносить надо вручную. Поэтому было решено настроить резервное копирование по NFS на другой сервер. Для этого необходимо:

  1. Настраиваем NFS-сервер. Я его поднимал на Windows. Для этого устанавливаем компонент «Сервер для NFS«, который является частью роли «Файловые службы и службы хранилища»
    После установки роли создаем папку, например, «NFS» и для нее задал права:
    Все сервера вписал по короткому и полным именами, с возможностью чтения и записи и разрешил доступ с правами root. Для всех остальных компьютеров настроен был запрет.
    Что касается настроек NFS для этой папки, то они выглядят так:
  2. Теперь переходим к серверу с Elastix. На нем уже есть NFS-клиент. В терминале выполняем
    mkdir /nfs/
    echo "10.150.1.15:/NFS /nfs/backup nfs defaults 0 0" >> /etc/fstab
    mount -a
    10.150.1.15:/NFS — это NFS-сервер и расшаренная по nfs папка «NFS»
    /nfs/backup — это папка, куда будет подключена по nfs расшаренная папка.
  3. В Elastix в System — Backup/Restore выбираем «Daily» и нажимаем «Set Automatic Backup». После этого в директории  /etc/cron.d/ создастся файл «automatic_backup.cron»

    В моем случае в этом файле изменено время запуска скрипта на 14:27, вы можете поставить свое. Это время ежедневного запуска скрипта.
  4. Переходим к файлу /var/www/backup/automatic_backup.php, в нем на 36 строке изменяем переменную $sBackupDir. Указываем в ней директорию, куда скрипт будет сохранять резервную копию, в нашем случае это /nfs/backup/
  5. В файле /usr/share/elastix/privileged/backupengine в строке 76 меняем директорию по-умолчанию для создания резервных копий.
  6. В терминале я выполнил chmod –R 777 /nfs/иначе без этого в браузере не будет отображаться список сделанных резервных копий.
  7. Теперь настроим, чтобы в административной панели Elastix скрипты искали резервные копии в нужной нам директории, для этого заходим в файл /var/www/html/modules/backup_restore/configs/default.conf.php и в строке 33 меняем директорию
  8. Если нужно, чтобы при запуске резервного копирования через web-интерфейс резервные копии складировались на NFS-шару, то тогда заходим в файл /var/www/html/modules/backup_restore/index.php и в строке 365 изменяем уже знакомую нам переменную на нужную директорию.
  9. Вообщем-то всё. Остался еще момент со временем на сервере. Elastix 2.4 работает на старом Centos 5.10 и в нём используются старые временные зоны для России. Чтобы исправить этот недочет необходимо:
    wget http://people.centos.org/hughesjr/tzdata-2014g-1.el5/i386/RPMS/tzdata-2014g-1.el5.i386.rpm --no-check-certificate
    rpm -Uvh tzdata-2014g-1.el5.i386.rpm
    После этого в файле /etc/php.ini после секции [PHP] прописываем нужную нам временную зону:
    date.timezone = Europe/Samara
    После этого перезапускаем сервис httpd
    service httpd restart
    Теперь в самом Elastix выставляем нужное время и часовой пояс. Заходим в System — Preferences — Date/Time
    На этом всё.

Настройка браузера по-умолчанию для образа Windows 10

Мне на работе недавно пришлось настраивать образ Windows 10, чтобы потом его можно было развернуть на компьютерах в автоматическом режиме. Поэтому поводу ранее была статья. В ней настройка производилась через Deployment Workbench. К сожалению эта программа не позволяет легко настроить образ Windows 10 так, чтобы браузером по умолчанию для всех пользователей был Internet Explorer или какой-либо другой на ваше усмотрение. В данный момент в Windows 10 Pro браузером по умолчанию является Microsoft Edge, что не всегда удобно для корпоративной среды. Что же нужно сделать, чтобы при развертывании образа, назначался автоматически другой браузер?

Для начала нам нужен дистрибутив Windows 10. Те, кто разворачивал образ через Deployment Workbench, скорее всего найдут его в папке С:\DeploymentShare\Operating Systems\. У меня, например, там есть папка «Windows 10 Pro x64». В папках системой заходим в «sources» и удостоверяемся что образ установки «install.wim» у нас на месте. Далее по шагам:

  1. открываем командную строку от имени Администратора и переходим в нужную нам директорию «sources»
    cd "D:\DeploymentShare\Operating Systems\Windows 10 Pro x64\sources"
  2. командой Dism /get-wiminfo /wimFile:install.wim узнаем индексы систем вложенных в дистрибутив. В моем случае мне нужно настроить Windows 10 Pro и мой индекс оказался равен 3.
  3. создаем директорию, куда будем монтировать wim-образ
    mkdir C:\WIM\
  4. командой Dism /Mount-Image /ImageFile:install.wim /index:3 /MountDir:C:\WIM\ производим монтирование образа, не забываем правильно указать индекс системы
  5. командой Dism /Image:C:\WIM\ /Export-DefaultAppAssociations:C:\AppAssociations.xml выполняем экспорт файловых ассоциаций
  6. открываем в текстовом редакторе файл AppAssociations.xml и меняем настройки по свои нужды, у меня он, например, выглядит так (взято из просторов сети):
    <?xml version=»1.0″ encoding=»UTF-8″?>
    <DefaultAssociations>
    <Association Identifier=».htm» ProgId=»IE.AssocFile.HTM» ApplicationName=»Internet Explorer» />
    <Association Identifier=».html» ProgId=»IE.AssocFile.HTM» ApplicationName=»Internet Explorer» />
    <Association Identifier=».mht» ProgId=»IE.AssocFile.MHT» ApplicationName=»Internet Explorer» />
    <Association Identifier=».mhtml» ProgId=»IE.AssocFile.MHT» ApplicationName=»Internet Explorer» />
    <Association Identifier=».partial» ProgId=»IE.AssocFile.PARTIAL» ApplicationName=»Internet Explorer» />
    <Association Identifier=».svg» ProgId=»IE.AssocFile.SVG» ApplicationName=»Internet Explorer» />
    <Association Identifier=».url» ProgId=»IE.AssocFile.URL» ApplicationName=»Internet Browser» />
    <Association Identifier=».website» ProgId=»IE.AssocFile.WEBSITE» ApplicationName=»Internet Explorer» />
    <Association Identifier=».xht» ProgId=»IE.AssocFile.XHT» ApplicationName=»Internet Explorer» />
    <Association Identifier=».xhtml» ProgId=»IE.AssocFile.XHT» ApplicationName=»Internet Explorer» />
    <Association Identifier=»ftp» ProgId=»IE.FTP» ApplicationName=»Internet Explorer» />
    <Association Identifier=»http» ProgId=»IE.HTTP» ApplicationName=»Internet Explorer» />
    <Association Identifier=»https» ProgId=»IE.HTTPS» ApplicationName=»Internet Explorer» />
    <Association Identifier=»mk» ProgId=»IE.HTTP» ApplicationName=»Internet Explorer» />
    <Association Identifier=»res» ProgId=»IE.HTTP» ApplicationName=»Internet Explorer» />
    </DefaultAssociations>
  7. делаем импорт ассоциаций в образ Dism /Image:C:\WIM\ /Import-DefaultAppAssociations:C:\AppAssociations.xml
  8. проверяем, что изменения сохранились Dism /Image:C:\WIM /Get-DefaultAppAssociations
  9. если всё правильно, то делаем коммит изменений командой Dism /Unmount-Image /MountDir:C:\WIM\ /Commit

На этом всё. Если нужно поменять другую программу по-умолчанию в образе, то делаем аналогичные действия. Если программа не входит в образ по- умолчанию, то не забываем ее в этот образ внедрить.

Поиск по реестру Windows через командную строку или powershell

Иногда очень нужно в скриптах выполнить поиск определенного ключа и например поменять его. Для того чтобы осуществить поиск в Windows есть команда reg query. Ее нужно запускать с определенными ключами. У меня эта команда обычно выглядит следующим образом:

reg query HKCU\Software\Microsoft /f "test" /s /d /e

HKCU\Software\Microsoft — ветка реестра, по которой осуществляется поиск; после ключа /f вписываем в кавычках шаблон для поиска; ключ /s осуществляет поиск по вложенным подразделам и их параметрам; ключ /d указываем на поиск только по данным, а не по названию ключей и наконец ключ /e, говорит, что надо возвращать только точные совпадения.

Создание ярлыка и символической ссылки через powershell

Недавно мне понадобилось создать через Deployment Workbench в Task Sequense ярлыки на рабочем столе пользователей при установке Windows 10. Казалось что может быть проще? На самом деле пришлось повозиться.

Я всегда думал, что символическая ссылка и обыкновенный ярлык в проводнике Windows — это одно и тоже. Чем же отличаются ярлык и символическая ссылка?

  1. для создания символической ссылки требуются права администратора
  2. если скопировать символическую ссылку в другую директорию, то вместо символической ссылки окажется файл, на который ссылается ссылка, но без расширения. Например сделаем так:
    cp "Internet Explorer" .\test2\
    и вот что можно увидеть в папке test2
  3. В проводнике Windows отображает эти ресурсы по-разному:
    Поэтому для сценариев развертывания Windows лучше всего подойдет возможность создания ярлыков: их можно и скопировать и прав администратора они не будут запрашивать. Создавать только их сложнее: необходимо вписать следующие строчки в ваш скрипт:
    $Install_Path = "C:\Users\AVIvanov\Desktop\test"
    $WSShell = New-Object -com WScript.Shell
    $ShortcutPath = Join-Path -Path $Install_Path -ChildPath "Internet Explorer.lnk"
    $NewShortcut = $WSShell.CreateShortcut($ShortcutPath)
    $NewShortcut.TargetPath = "C:\Program Files\Internet Explorer\iexplore.exe"
    $NewShortcut.Save()
    Так мы создадим ярлык на Internet Explorer в папке «test» на моем рабочем столе.

    Если нужно создать ярлык на URL-адрес, то это будет выглядеть немного по другому:
    $Install_Path = "C:\Users\AVIvanov\Desktop\test"
    $WSShell = New-Object -com WScript.Shell
    $ShortcutPath = Join-Path -Path $Install_Path -ChildPath "Яндекс.url"
    $NewShortcut = $WSShell.CreateShortcut($ShortcutPath)
    $NewShortcut.TargetPath = "https://yandex.ru"
    $NewShortcut.Save()

    Ещё пример: скрипт, который будет открывать в Google Chrome сайт mail.ru:
    $Install_Path = "C:\Users\onix\Desktop"
    $WSShell = New-Object -com WScript.Shell
    $ShortcutPath = Join-Path -Path $Install_Path -ChildPath "MAILRU.lnk"
    $NewShortcut = $WSShell.CreateShortcut($ShortcutPath)
    $NewShortcut.TargetPath = "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"
    $NewShortcut.Arguments = "https://mail.ru"
    $NewShortcut.Save()

    Если кому-то все же понадобится создать именно символическую ссылку через powershell, то такая возможность появилась совсем недавно в Windows 10 1703:
    New-Item -Path "C:\Users\AVIvanov\Desktop\test\Internet Explorer" -value "C:\Program Files\Internet Explorer\iexplore.exe" -ItemType symboliclink -в той же папка «test» на рабочем столе

Быстрое создание файла нужного размера в Windows

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

fsutil file createnew testfile1.txt 1000

В данном случае testfile1.txt – это название файла, а 1000 – это размер файла в байтах.

Вот и все!

Доступ WebDAV к утилитам sysinternals

Знали ли Вы, что утилиты Sysinternals можно запускать напрямую из сети Интернет, не скачивая их себе на компьютер? Очень ведь удобно, правда? Ведь часто приходится иметь с ними дело, так как они очень полезны в нелегкой работе администратора ?
Для того, чтобы получить такой доступ нужно сопоставить адрес https://live.sysinternals.com/ букве диска. Никакого логина и пароля при подключении вводить не надо. В результате получится примерно следующее.

Баг с RemoteApp в Windows 10

Привет! Делаю сейчас проект с публикацией приложения 1C через RemoteApp в терминальных службах Microsoft RDS и обнаружил такой баг в последней версии терминального клиента на Windows 10 1709

Как видно надпись «Запуск приложения» съехала вниз и поменялся цвет фона. Как потом выяснилось цвет фона и должен был поменяться, потому что в английской версии Windows 10 1709 запуск клиента RemoteApp выглядит так:


Судя по всему так должно выглядеть подключение и в русской версии, но что-то пошло не так.. «это фиаско, братан» ! 🙂

В версии Windows 10 1703 Rus выглядит подключение по-старому:

Чтобы проверить этот баг не надо настраивать службы удаленных столов на сервере, достаточно создать файл со следующим содержимым и сохранить его под расширением .rdp

remoteapplicationmode:i:1
full address:s:1.1.1.1
remoteapplicationprogram:s:||test

 

Настройка Let’s Encrypt в Microsoft Azure

К сожалению, в Chrome 57 сертификаты, выданные STARTSSL, перестали быть валидными. Таким образом, пришло время переходить на Let’s Encrypt , как единственный источник бесплатных сертификатов.

Что необходимо для этого?

  1. Сервисный план обслуживания нашего веб-приложения в Azure должен быть не ниже «Стандартного»
  2. URL-адрес приложения должен содержать ваш домен, а не технический домен Azure .azurewebsites.net
  3. В Powershell на Windows 10 выполняем команду Install-Module AzureRM. Для остальных компьютеров используем инструкции на https://www.powershellgallery.com/ , скачивая последнюю версию Windows Management Framework и модуль для включения функции PackageManagement в PowerShell.
  4. Скачиваем и запускаем скрипт, доступный по адресу https://github.com/Microsoft/vsts-rm-documentation/blob/master/Azure/SPNCreation.ps1 После запуска скрипт спрашивает имя подписки (subscription name)— вводим то, которое у вас используется для публикации сайта. В моем случае это: 
  5. После требуется ввести пароль. Создаем новый, который будет использоваться для будущего приложения. Далее запросится учетная запись и пароль для доступа в Microsoft Azure .
  6. Если всё ввели правильно на предыдущем шаге, то создастся новое веб-приложение и после строк «SPN role assignment completed successfully» будут данные для подключения к этому приложению. Скопируем их куда-нибудь себе. 

  7. Устанавливаем приложение Let’s Encrypt , для этого зайдя в консоль SCM по адресу https://{your site name}.scm.azurewebsites.net/SiteExtensions/#gallery и устанавливаем там приложение «Azure Let’s Encrypt» 32-ух битной разрядности и после этого нажимаем «Restart Site«.
    Название сайта можно увидеть в консоли Azure.

    Поэтому у меня ссылка на консоль SCM выглядит как https://www-onix-me.scm.azurewebsites.net/SiteExtensions/#gallery
  8. Запускаем  «Azure Let’s Encrypt»: далее нам потребуется заполнить несколько полей:
    Tenant — это Tenant ID из 6 шага.
    SubscriptionId — это Subscription Id из 6 шага
    ClientId — это Service Principal Id из 6 шага
    ClientSecret — это тот пароль, который спрашивается в самом начале запуска скрипта из 5 шага.
    ResourceGroupName и ServicePlanResourceGroupName — это Default-Web-NorthEurope , то есть там, где расположены мои ресурсы в Azure, у вас может быть другое наименование. Нажимаем галочку «Update Application Settings» и нажимаем «Next».
  9. Если всё было сделано правильно, то на следующем шаге появится возможность выбрать название хоста и прописать почтовый адрес администратора. Ставим галочку «Use Staging«, чтобы была возможность еще раз запросить сертификат, в случае, если мы с первого раза не справимся. 
  10. Спустя несколько мгновений сертификат будет установлен на хостинге. Остается в админке Azure привязать его к сайту.
  11. Если требуется доступ к сайту только по безопасному протоколу, то не забываем включить «HTTPS Only» в Azure
  12. Остается только в WordPress включить доступ только по HTTPS, для этого заходим по FTP на сайт и меняем файл wp-config.php в корне сайта: вместе «http» прописываем «https»

Настройка списка надежных сайтов в Internet Explorer через групповые политики

Привет! Казалось бы что может быть проще настроить список “Надежных сайтов” в Internet Explorer используя GPO? А все оказалось не так-то просто. Всё началось с того, имеется несколько сот компьютеров и терминальный сервер. Для пользователей была развернута политика, которая настраивала Internet Explorer на клиентских компьютерах.
Но почему-то эта политика не отрабатывала не терминальном сервере. На нем была включена “Усиленная безопасность”.
Путем долгих попыток настроить этот сервер было выяснено, что политика, которая настраивает зоны в Internet Explorer, вносит свои изменения в ветку реестра, которая не читается, если Explorer работает в режиме усиленной безопасности. Что в таком случае делать? Я отключил эту настройку в политике и создал новую, которая настраивает соответствующие ветки реестра, используемые IE во всех режимах работы.
Прежде чем создавать такую политику, советую создать файл с расширением .reg с нужными строками, чтобы удостовериться, что вы нигде не ошиблись.

Windows Registry Editor Version 5.00[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\EscDomains\security_1cv8.exe]
"about"=dword:00000002
[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\EscDomains\security_1cv8c.exe]
"about"=dword:00000002
[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains\kontur.ru]
"https"=dword:00000002
[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains\security_1cv8.exe]
"about"=dword:00000002
[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains\security_1cv8c.exe]
"about"=dword:00000002

Чтобы IE мог видеть список сайтов в режиме усиленной безопасности, необходимо добавлять их в ветку реестра “EscDomains”, для обычного режима работы – в ветку “Domains”.
Благодаря этому удалось настроить доступ к странице security_1cv8.exe и security_1cv8c.exe в 1C на терминальном сервере в режиме усиленной безопасности браузера.
Казалось бы задача простая, но пришлось долго с этим провозиться.

Синий экран на Windows XP. Ошибка 0x0000007B

Недавно столкнулся на компьютере с Windows XP с ошибкой  0x0000007B. Bluescreen был на старом ноутбуке Toshiba MK2552GSX.
Как оказалось такая ошибка возникла после сброса настроек  BIOS. В случае проблем с загрузкой и выпаданием в синий экран в первую очередь надо вам заглянуть в настройки BIOS в раздел Advanced. Там будет пункт, который будет называться что-то вроде SATA Mode. Попробуйте выбрать другой режим (IDE, AHCI или Compatible). По умолчанию, Windows XP не содержит в себе драйверов SATA и возможно она была установлена в режиме IDE. Если же переключить на режим AHCI, то система перестанет грузиться – это касается и новых систем. Поэтому будьте осторожны, когда заходите в настройки компьютера!