среда, 8 января 2020 г.

Добавление Windows Boot Manager вручную

Решил поставить в свой старенький ноутбук Asus U45J диск SSD Samsung 860 EVO и перенести на него систему.
В ноутбуке стоит диск Western Digital WD750BPKX с двумя разделами - на первом система(установлена в режиме UEFI), на втором рабочие файлы, дистрибутивы, загрузки и т.д. Чтобы не тратить время на переустановку Windows и всего софта, решил клонировать раздел с системой с помощью утилиты Macrium Reflect  (как обычно и делаю у клиентов, когда переношу систему на SSD), а вторым разделом пользоваться со старого диска, переустановив его вместо DVD-дисковода, с помощью адаптера Espada SS90.
Однако после клонирования в BIOS почему-то не появилась еще одна опция Windows Boot Manager для нового диска. Соответственно загрузиться с него нельзя.
Решил добавить опцию вручную - Add New Boot Option, на следующем шаге нужно задать имя опции(оно может быть любым, главное чтобы вы понимали, что это такое), затем выбрать раздел, с которого будем грузиться - Select Filesystem (выбираем раздел на новом диске) и путь загрузки - Path for boot option. Этот путь можно посмотреть в рабочей системе, запустив в командной строке от имени администратора команду bcdedit:
  
Итак, в поле Path for boot option пишем \EFI\Microsoft\Boot\bootmgfw.efi, сохраняем и выбираем грузиться по умолчанию с этого пункта. Загрузка произошла успешно уже с раздела с системой на SSD.
Таким образом удалось вручную добавить опцию Windows Boot Manager.

понедельник, 23 декабря 2019 г.

Sysprep ошибка 0x80073cf2

На днях столкнулся с задачей - нужно заменить большое количество компьютеров(компьютерный класс в школе). Все новые компьютеры на замену типовой конфигурации(у всех одинаковое железо), на компьютерах должен стоять большой набор пользовательского софта. Для экономии времени и сил решил подготовить эталонный образ системы при помощи утилиты sysprep, а затем клонировать его на все компьютеры.
Установил чистую систему, выполнил первичную настройку после установки, под новым пользователем установил все необходимые программы, драйвера и актуальные обновления, подкорректировал в системе некоторые настройки(переключение языка, размер файла подкачки, ярлыки на рабочем столе, разрешение удалённого доступа и т.д.). После этого запустил sysprep и попытался подготовить образ к использованию. Утилита после недолгих раздумий выдала окно с ошибкой и сообщением о том, что выполнить подготовку не удаётся и советом поискать причину в логах.
В логах нашел ошибку 0x80073cf2 а так же сообщение о том, что у учётной записи установлены пакеты, которые недоступны для других пользователей. В Интернете нашел несколько тем с такой же ошибкой, но без нормального решения. Суть этой ошибки в том, что когда под новым пользователем скачиваются обновления, автоматически для этого же пользователя устанавливается приложение Microsoft Store(в моём случае это был языковой пакет), которое потом и мешает sysprep. Удаление пользователя или удаление этого приложения через PowerShell в режиме аудита проблему не решает. На Technet предлагают отключить через реестр обновление приложений Windows Store, чтобы не устанавливался пакет, но такое решение выглядит сомнительным.
Методом проб и ошибок(систему и весь софт пришлось переустанавливать 3 раза) нашел решение:
Установку всех драйверов, ПО и обновлений следует выполнять в режиме аудита. При этом в режим аудита нужно заходить на завершающем этапе установки системы. Для этого в момент выбора региона, который появляется сразу после установки Windows, нужно нажать Ctrl+Shift+F3. Система перезагрузится и вы попадёте в режим аудита под встроенной учетной записью Администратора(которая по умолчанию выключена), без создания каких-либо других учётных записей. Именно в этом режиме нужно установить всё, что вы хотите видеть в эталонном образе - драйверы, обновления и всё необходимое ПО, после чего уже подготовить утилитой sysprep образ к использованию, а затем клонировать его на другие компьютеры.
Таким образом подготовка, клонирование и дальнейшая настройка уже клонированной системы на других компьютерах проходит без проблем. Проверено на Windows 10 сборки 1909 - установлены драйверы, обновления на момент 21.12.2019 и много разного софта - офис, архиваторы, графические редакторы, языки программирования и т.д.

четверг, 14 ноября 2019 г.

Обновление до Windows 10 1909(19H2) через WSUS

Наконец-то вышло очередное осеннее обновление для Windows 10 1909(19H2).
На WSUS обновление доступно в двух вариантах:
1) Обновление компонентов для Windows 10 версии 1909 ...(с помощью пакета Enablement). Доступно для установки на Windows 10 предыдущей версии 1903. Установка происходит в режиме обычных ежемесячных обновлений и занимает совсем немного времени.
2) Обновление до функций Windows 10 ..., версия 1909, ... Для установки на Windows 10 более ранних версий (1809 и старше). Устанавливается в режиме "полноценного" обновления до новой версии и как обычно, займет какое-то время.

Так же доступно Обновление Windows 7 и 8.1 до Windows 10, версия 1909, ... Соответственно - для обновления Windows 7 и 8.1.
Как настроить обновление через WSUS старых версии Windows до Windows 10, чтобы при этом не возникало ошибок, я уже ранее описывал.

понедельник, 4 ноября 2019 г.

Обновление до Windows 10 через WSUS. Ошибка 0xC1900208

Из всей линейки Windows для рабочих станций, Windows 10 на данный момент является самой актуальной. Расширенная поддержка Windows 7 SP1 заканчивается 14 января 2020 года, Windows 8.1 - 10 января 2023 года. Это значит, что для этих операционных систем перестанут выпускаться критические обновления и обновления безопасности. Со временем производители оборудования перестанут выпускать драйвера, а производители программного обеспечения - софт с их поддержкой.
Если у вас еще остались компьютеры с Windows 7 SP1 и Windows 8.1 и вы собираетесь в будущем поддерживать свой парк компьютеров в актуальном состоянии, то довольно скоро вам придется перевести их под управление Windows 10. К счастью, для этого вовсе не обязательно переустанавливать ОС. У Windows 10 имеется очень удобная возможность обновления с уже установленной Windows с сохранением документов, установленных программ и настроек. И если компьютер удовлетворяет минимальным системным требованиям, а так же проходит проверку на совместимость, то такое обновление, как правило, проходит удачно.
Для запуска процесса обновления нужно подключить к компьютеру флешку с дистрибутивом(или вставить компакт-диск), запустить файл установки, а далее следовать указаниям, появляющемся на экране.
Но если в сети несколько десятков, а то и сотен компьютеров, то такой способ обновления становится не удобным. Для облегчения этой задачи есть возможность установки обновления до Windows 10 через WSUS.
На первый взгляд кажется все просто:
1. создаём на WSUS отдельную группу для компьютеров,  которые мы хотим обновить.
2. одобряем для этой группы обновление до Windows 10 (в моём случае это Обновление Windows 7 и 8.1 до Windows 10, версия 1903, ru-ru x64 ).
3. Включаем в созданную группу нужные нам компьютеры и пытаемся на них получить обновление.
Но не тут-то было. В Центре Обновления на компьютерах никаких уведомлений о доступности обновления не появляется. Идем в журнал событий Windows. Там видим, что обновление доступно и будет установлено, согласно расписанию в такое-то время. Однако в указанное время ничего не происходит и в логах появляется ошибка 0xC1900208. Далее всё повторяется по кругу. На WSUS для указанных компьютеров так же отображается ошибка:

При вводе кода ошибки в поисковик, выдается много результатов. Например страница с кодами ошибок на официальном сайте Microsoft . В большинстве случаев пишется, что данный код ошибки означает наличие на обновляемом компьютере несовместимого ПО. Однако если попытаться обновиться на компьютере с флешки или диска, то обновление пройдет без проблем и ни о каком несовместимом ПО сообщений не будет.
В результате поисков в Интернете, мной всё-таки было найдено решение этой проблемы. Для того, чтобы этой ошибки не возникало, в реестре обновляемого компьютера должен быть прописан следующий параметр:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\OSUpgrade]
"AllowOSUpgrade"=dword:00000001
Файл реестра с этим параметром можно скачать с Яндекс-диска (пароль на архив - 1). Далее, для удобства, применяем этот файл на обновляемых компьютерах через GPO. Как это сделать, можно прочитать например здесь .
После применения политики, на компьютере будет доступно к установке обновление до Windows 10.
Для установки обновления, нужно, чтобы пользователь компьютера обладал правами администратора, либо нужно будет ввести пароль администратора, когда это потребуется на одном из этапов. Далее можно просто контролировать процесс обновления с помощью какой-нибудь утилиты удалённого администрирования.
Конечно такой способ не позволяет полностью автоматизировать процесс обновления, но он явно удобнее, чем обновление с дистрибутива с подключением физического носителя.

четверг, 10 октября 2019 г.

Регулярное автоматическое резервное копирование баз АИСУ "Параграф"

В работе государственных образовательных учреждений некоторых регионов(и в Санкт-Петербурге в том числе) централизованно используется АИСУ "Параграф", основанная на системе управления базами данных Firebird. "Параграф" постоянно развивается, за последние несколько лет в нем появилось много новых модулей и функций. Несомненно, это важный элемент работы школ и потеря хранимых в нём данных будет очень критична для учреждения. Сам "Параграф", к сожалению, до сих пор не располагает никакими инструментами для выполнения регулярного резервного копирования своих баз в автоматическом режиме. Сделать резервные копии можно лишь вручную через менеджер баз данных. Думаю, не нужно объяснять, насколько неудобно делать резервные копии руками, а тем более - делать их так регулярно. Поэтому чаще всего их делают от случая к случаю. В лучшем случае - перед очередным обновлением серверной части.
Тем не менее, очень удобно иметь в наличии регулярные бекапы, чтобы в случае чего была возможность поднять базу из недавней копии, а не копии, сделанной 2-3 месяца(а то и полгода-год) назад и потом восстанавливать данные за весь потерянный период.
Для решения этой задачи был написан скрипт, который использует встроенную в Firebird утилиту резервного копирования gbak.exe. Скрипт с комментариями располагается на Яндекс-диске и его можно свободно скачать по этой ссылке(пароль на архив - 1).
Для корректной работы скрипта должен быть установлен свободно распространяемый архиватор 7zip (www.7-zip.org) . Он используется для упаковывания резервных копий баз в архив формата ZIP с максимальной степенью сжатия. Это увеличивает время создания резервных копий(чуть больше получаса на процессоре Core2 Quad Q9400 с ОЗУ 8 Gb DDR3), но при этом позволяет уменьшить размер резервной копии примерно на 10% по сравнению со сжатием встроенными средствами Windows(этот вариант использует менеджер баз данных). Поскольку предполагается, что скрипт будет запускаться ночью автоматически, то бОльшее время выполнения не критично, при этом уменьшение размера хранимых резервных копий важно.
Скрипт написан для 64-битной операционной системы Windows и для 64-битных версий приложений Firebird и 7zip. Поэтому если у вас стоят 32-битные версии, вам нужно будет поменять соответствующие пути к программам в скрипте, либо переустановить их на 64-битные.
Для настройки регулярного резервного копирования запускаем планировщик заданий(нажимаем "Пуск" и набираем "Планировщик заданий):

В колонке "Действие" нажимаем "Создать задачу":

На вкладке "Триггеры" задаём интервал выполнения задачи и время выполнения. В примере это ежедневно, в 12 часов ночи. Нажимаем "ОК".:

На вкладке "Действия" нажимаем "Создать", в поле "Действие" выбираем "Запуск программы", в поле "Программа или сценарий" задаём путь к скрипту, нажимаем "ОК".
 

В открывшемся окне на вкладке "Общие" в поле "Имя" задаем имя создаваемой задаче, ставим галочку "Выполнять вне зависимости от регистрации пользователя"(чтобы задание выполнялось даже, когда не выполнен вход в систему, например после перезагрузки сервера), нажимаем ОК:

В появившемся окне задаем пароль для учетной записи, под которой будет выполняться скрипт, нажимаем "ОК":

Таким образом было создано задание, по которому каждую ночь автоматически в 12 часов будет запускаться скрипт, который делает резервные копии баз Параграфа, а затем упаковывает их в архивы ZIP с датой и временем создания в имени файла.
Скрипт проверен и успешно работает на Windows 7 x64 SP1 Professional. Создаваемые скриптом бекапы проверены на предмет восстановления менеджером баз данных АИСУ "Параграф". Восстановление проходит без ошибок, Параграф после восстановления работают корректно.
Помимо выполнения регулярного резервного копирования очень важно правильно хранить созданные копии данных. Не стоит забывать о правиле «3-2-1»
 
Обновление от июня 2022 года:
В связи с обновлением Firebird с версии 2.5 на 4 изменился путь к утилите gbak.exe.
Обновленный скрипт для работы с Firebird 4-й версии доступен по этой ссылке(пароль на архив - 1).

среда, 1 июля 2015 г.

MikroTik SSTP VPN, ошибка сертификата 0x800B010F

Недавно появилась задача настроить SSTP VPN на базе роутера MikroTik 951Ui 2HnD таким образом, чтобы к нему мог подключаться другой роутер MicroTik2 750 GL, а так же чтобы могли подключаться "одиночные" клиенты с рабочих станций.
Туннель между двумя роутерами был мной настроен ранее, в этом ни чего сложного нет, все подробно описано в базе знаний Mikrotik(на этой же странице описан процесс настройки сервера с возможностью подключения "одиночных" пользователей). По скольку на тот момент не стоял вопрос о подключении "одиночных" пользователей, то сертификаты я не создавал и подключение было настроено без них. Когда же появилась необходимость подключения таких пользователей, стало очевидно, что нужно генерировать и устанавливать сертификаты. Этот процесс так же подробно описан в базе знаний.
Для большей наглядности я нашел в Интернете видео , где настраивается соединение между двумя роутерами с использованием сертификатов. Подобным образом я сгенерировал сертификаты у себя, экспортировал их и установил на "клиентский" роутер. Туннель между роутерами после этого поднялся без проблем.
Сложности начались при настройки клиентского подключения в Windows. Может быть я плохо искал, но в Интернете не очень много описаний того, как настраивать клиентское SSTP подключение на Windows. Первым делом учетной записи компьютера нужно установить корневой и клиентский сертификаты. Затем создать новое клиентское подключение, в настройках задать его тип(SSTP), протокол шифрования(я оставил только mschap2), адрес сервера, куда будет подключаться клиент(внешний IP-адрес роутера, где настроен SSTP-сервер), ввести логин и пароль пользователя. После всего этого я попробовал подключиться, но получил ошибку 0x80070320. В базе знаний MikroTik на странице, где описан процесс настройки SSTP-сервера, сказано, что чтобы этой ошибки не появлялось, нужно на сервере отключить пункт verify-client-certificate. После этого при подключении стала появляться ошибка 0x800B010F "CN имя сертификата не совпадает с полученным значением". В процессе поиска примеров настройки в Windows удачного клиентского подключения я нашел вот это видео . На нем при создании сертификата в поле CN прописывается внешний IP-адрес роутера, к которому подключаются(в первом видео туда прописывается название сертификата, аналогично полю Name и я у себя сделал так же). Пришлось по новой перегенерировать и переустанавливать сертификаты. У корневого и серверного сертификата в поле CN я поставил внешний IP адрес роутера, у клиентского сертификата оставил его как раньше. Далее установил эти сертификаты на клиентский роутер и компьютер. Туннель на роутере, как и ранее, поднялся без проблем, подключение с компьютера тоже установилось без проблем.

P.S.:
Позже выяснилось, что для подключения клиента Windows достаточно лишь установки корневого сертификата. Наличие или отсутствие в системе клиентского сертификата на успешность подключения никак не влияет(очевидно в силу того, что в настройках сервера снята галочка в verify-client-certificate).

О необходимости антивирусной защиты

На днях обратились за помощью - вирус зашифровал на компьютере все документы, фотографии, базы(закончилась лицензия на антивирус, новую решили не покупать, да и сам антивирус стоял старой версии). На все про все(удаление вируса и расшифровку) в общей сложности ушла пара дней и частично ночей(документов было много). Пользуясь случаем хотел бы посоветовать всем друзьям и знакомым не пренебрегать мерами защиты своих компьютеров, ноутбуков, планшетов, смартфонов и т.д. К сожалению сейчас существуют такие вирусы-шифровальщики, ключ к которым технически просто невозможно подобрать(поэтому нет утилит, способных расшифровать такие файлы), а за расшифровку злоумышленники требуют большую сумму денег, которая не у всех есть. В таком случае встает выбор - либо заплатить им, либо(скорее всего навсегда) попрощаться со своими файлами.
- Не пожалейте денег на какой-нибудь хороший антивирус(AVG, Avast, Avira и еже с ними не в счет). Это в итоге выходит дешевле, чем вызов специалиста для устранения вирусов и их последствий;
- По мере выхода новых версий антивируса не забывайте переходить на них, т.к. новые версии зачастую более устойчивы к угрозам и лучше их распознают;
- Помните, что для надёжной защиты недостаточно просто установить антивирус, необходимо его так же правильно настроить(чтобы адекватно реагировал на возникающие угрозы и не тормозил);
- Не открывайте вложения из писем от незнакомых адресатов, не подключайте к себе непонятные флешки и прочие съемные носители(помимо всего прочего могут вам спалить оборудование);
- Ну и не забывайте делать резервные копии важных для вас данных и лучше на два разных носителя(это помимо всего прочего снизит риск потери данных при выходе из строя жесткого диска, например).

P.S.:
И не надо думать, что если у вас не Windows, a Android, MacOS, iOS или какой-нибудь Unix, то вирусы вам не грозят. Во первых это не так, вирусы, как и приложения, пишут подо все, что популярно в использовании. Во вторых даже если бы это было так, то все равно вы время от времени пересылаете файлы от себя кому-то другому. Таким образом получается, что если к вам попался зараженный файл, то вирус на ваше устройство может и не подействует, но от вас он может попасть кому-то, у кого сработает.