Изменения в настройке папки-свидетеля в Windows Server 2019

Начиная с Windows Server 2019 общую папку-свидетель (File Share Witness) для работы кластера больше нельзя создать на DFS ресурсе. При попытке создать такого свидетеля появится сообщение об ошибке:

То же самое будет, если создавать папку через Powershell:
Set-ClusterQuorum : There was an error configuring the file share witness ‘\\contoso.com\dfs-share’.
Unable to save property changes for ‘File Share Witness’.
The request is not supported

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

Хорошая новость:  теперь папку-свидетель можно создать на компьютере, не включенном в домен. Теперь можно подключить папку-свидетель так:

Set-ClusterQuorum -FileShareWitness \\SERVER\SHARE -Credential $(Get-Credential)
и ввести после этого локальную учетную запись — это сработает!

Kerio Connect 9.2 Резервное копирование

В процессе эксплуатация почтового сервера Kerio выяснилось, что резервные копии, который он делает своими скриптами (настроенными из графического интерфейса), хранятся вечно и их нужно самим периодически очищать. То есть получается параметр «число сохраняемых резервных копий» не работает.

Я позвонил в службу поддержки и мне подтвердили, что этот функционал не работает как надо. Не стал уточнять на каких платформах не работает, у меня же почтовый сервер настроен на Debian 8.9 x64. Они посоветовали добавить в Cron скрипт по очистке дискового пространства от старых резервных копий. И вот что получилось:

В файле /etc/crontab добавляем строчку, где добавляется ежедневный запуск скрипта, который ищет в директории с резервными копиями файлы старше 40 дней и удаляет их.

Ошибка принтера Xerox: 07-500 Bypass Tray is empty.

Подключаю несколько принтеров Xerox к принт-серверу, у которых в статусе горят ошибки: «07-500 Bypass Tray is empty», пытался их устранить — обновлял прошивки, менял настройки, но ничего не помогало — состояние очереди к этому принтеру на сервере было «Отключен». Помогла информация из сети интернет — нужно зайти в свойства принтера во вкладку «Порты», выбрать настроенный порт и нажать «Настроить порт» и снять галочку с пункта «Состояние SNMP разрешено»

После этого состояние очереди принтера перешла в статус «Готов» и принтер запечатал.

Video Socket Error: Abnormal Termination

Такая ошибка у меня появилась при подключении к новому серверу через Java-апплет в iKVM ASMB8.

Решение этой проблемы оказывается простое, нужно в iKVM зайти в раздел Configuration — Remote Session. И выставить настройки в соответствии со скриншотом ниже:В моем случае нужно было выставить параметры «Media Encryption» и «KVM Encryption» в Enable.

Kerio Connect: «Не удалось получить личный контакт пользователя»

Если столкнулись с подобной ошибкой, то ничего страшного. Заходим на контроллер домена, где у вас установлена утилита «Active Directory Extension for Kerio Connect» и в оснастке «Пользователи и компьютеры домена» находим проблемного пользователя, кликаем по нему правой кнопкой мыши и выбираем «Kerio Connect Tasks». Выбираем задачу «Delete MailBox.» После этого таким же способом создаем новый почтовый ящик и после этого с большой вероятностью проблема исчезнет.

Настройка резервного копирования в 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()

    Если кому-то все же понадобится создать именно символическую ссылку через 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 – это размер файла в байтах.

Вот и все!