🏠: Viacheslav

Oscar Peterson - A little jazz exercise

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

Открыли велосезон

Вчера привёл в порядок велосипеды, а сегодня с сыном открыли сезон. Погода чудесная, солнечно и тепло. Сначала планировали поехать на Фабричный пруд, но там закрыто напрочь, тогда решили объехать вокруг Новокосина.

Покачались на скрипучих качелях около Суздальского пруда, побывали в Салтыковском парке, где видели и слышали дятлов, долбящих сухие деревья, уже проснулись шмели. Скоро зазеленеет, и должно стать ещё лучше. Катались часа два, может, чуть больше.

Реально проехали 17,5 км

Что сделал - 6

Скрипт синхронизации данных из базы Microsoft SQL в Active Directory

Во многих компаниях существуют сервисы, дублирующие друг друга — это происходит отчасти из-за незнания о существовании уже имеющихся инструментов или неумения их настраивать, отчасти из-за сложных взаимоотношений или плохой координации между подразделениями, а отчасти из-за конъюнктурных стремлений различных начальников. К примеру, не раз я встречал разные реализации внутренних телефонных справочников, которые не связаны с Active Directory, хотя логично было бы всю первичную информацию держать именно там, и вся информация была бы доступна через адресную книгу Outlook, или, в крайнем случае, веб-версию справочника формировать из запросов в AD. Нет, так просто нельзя — в моей нынешней конторе телефонный справочник представляет собой отдельный сервис, причём разделённый на два сервера — древняя писанная на коленке веб-морда, которая крутится на Ubuntu 14.04, и база данных, которая работает — это радует отдельно в данной ситуации — на Microsoft SQL.

Данные в этот справочник заносятся вручную, причём бессистемно — телефоны могут быть написаны и 8-495-123, и 8 (495) 123, и ещё как бог на душу положит, а сотрудники, совмещающие несколько должностей, могут быть прописаны несколько раз, причём, у одной инкарнации телефоны и кабинет могут быть прописаны, а у другой — нет. И везде куча ошибок, пропуск пробелов и т. п.

На всё вышеперечисленное безобразие я никак повлиять не могу, однако, хотелось бы иметь актуальные телефоны в Active Directory, которой я управляю. Для этого я написал скрипт синхронизации данных из базы Microsoft SQL в Active Directory. Делается выгрузка из базы (Invoke-Sqlcmd) и из AD, затем для каждого пользователя базы ищется аналог в выгрузке AD, и при несовпадении значений полей они либо меняются, либо удаляются, отчёт по результатам изменений высылается в почту. У дублирующихся пользователей в базе данных информация берётся только из самого свежесозданного по ID.

Конечно, телефоны и прочую информацию я по возможности пытаюсь причёсывать, вот, например, строка обработки телефонных номеров из базы:

@{n='tel';e={($_.tel -split ',').trim() -replace "^49","+7 49" -replace "\)",') ' `
-replace "\s+",' ' -replace '^-$' -replace "^\(|^8 \(","+7 " -replace "\)" `
-replace "123045","123-45" -join ', '}},

Переделал отчёт по несмонтированным дискам Hyper-V в полноценный отчёт по Hyper-V в целом

Отчёт включает в себя:

  1. Таблицу по виртуальным машинам — имя машины, выделенная память, кол-во процессоров, состояние, хост, кластеризована или нет, версия конфигурации. В конце статистика, типа «Всего виртуальных машин 55, общий объём памяти 363 ГБ, всего виртуальных процессоров 134, включено машин 40, выключено 15, в ином статусе 0.»
  2. Таблицу по смонтированным дискам, в конце статистика.
  3. Таблицу по несмонтированным дискам, в конце статистика.

Сбор информации о состоянии жёстких дисков с пользовательских машин

Минимальную информацию об этом может давать и Windows, но хотелось сделать красиво, для этого я привлёк программу DiskSmartView, которая умеет выгружать отчёты в форматах CSV и HTML.

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

Локальная часть делает следующее: скрипт запускается после загрузки компьютера, смотрит во временный каталог, и если последний отчёт не старше недели, прерывает работу. Если отчёта нет или он старше, запускает DiskSmartView и делает отчёт во временный каталог в формате CSV, затем проверяет, есть ли в колонке статуса значения, отличные от «OK», «неизвестно» или пустых. Если нет, то работа завершается, а если да, то отчёт делается ещё раз, но уже в общий каталог на сервере и в формате HTML. Потом этот HTML открывается, оттуда выкидывается всё ненужное и вставляется имя компьютера и время составления отчёта. На этом локальная часть исчерпывается.

Серверная часть периодически смотрит в общий каталог, куда валятся отчёты с рабочих станций, и получает оттуда актуальный список файлов .html, сравнивая его со списком в файле smart.txt, который содержит список файлов .html по состоянию на прошлый запуск. На основании всех актуальных файлов .html, отсутствующих в smart.txt, формируются письма и отправляются в техподдержку, а затем актуальный список прописывается в smart.txt, чтобы в дальнейшем не слать дубли отчётов.

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

Уже опубликовал этот текст, как вспомнил ещё про один

Cкрипт, связанный с массовым переходом сотрудников на удалённую работу

Суть его в том, что он запускается при загрузке компьютера, ищет в AD пользователя, ФИО которого прописано в описании компьютера, и если находит, прописывает его в локальную группу «Пользователи удалённого рабочего стола», включает RDP через реестр, через реестр же отключает «проверку подлинности сети», прописывает правило файрволла под названием «Allow RDP COVID-2019», а потом по результатам — что было сделано — пишет отчёт в общий каталог на сервере.

Время;ФИО;Логин;Компьютер;Добавлен в группу;RDP;NLA;Правило файрволла
2020.03.25 15:05:55;Королёва Ирина Витальевна;koroleva;PC1384;Да;Включено;Отключено;Создано

Почему такой костыль — во-первых, чтобы можно было, используя статистику, откатить изменения, сделанные на пользовательских машинах, а во-вторых, когда возникла необходимость настраивать массовый удалённый доступ, обнаружилось, что групповые политики домена, касающиеся RDP, которые на протяжении ряда лет никто не трогал, были настроены чёрт-те как, и после того, как народ вернётся на рабочие места, надо будет привести всё это в нормальное контролируемое и понятное состояние.

Нутовые котлеты

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

IMG_20200323_203534.jpg
IMG_20200323_205357.jpg
IMG_20200323_210535.jpg

Торт для героя

Сын вычитал в комиксах рецепт торта:

IMG_20200317_201634.jpg IMG_20200317_201706.jpg

Вчера с ним воплотили этот рецепт в жизнь (флажками не заморачивались).

IMG_20200322_163832.jpg IMG_20200322_163849.jpg

Перемешать варёную сгущёнку с маслом без миксера — занятие не из лёгких, я даже погнул вилку, пришлось бросить это дело в кастрюлю и немного подогреть, чтобы растопить.

Тортик получился довольно-таки съедобным. Там вроде бы ещё был рецепт каких-то печений, так что надо быть готовым к дальнейшим кулинарным экспериментам.