{"id":22951590,"url":"https://github.com/lifailon/itinvent-sql-alert","last_synced_at":"2026-04-22T23:35:24.008Z","repository":{"id":140732695,"uuid":"589692008","full_name":"Lifailon/ITInvent-SQL-Alert","owner":"Lifailon","description":"Add-on for license end alert","archived":false,"fork":false,"pushed_at":"2023-01-31T09:31:19.000Z","size":789,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"rsa","last_synced_at":"2025-10-20T05:38:23.316Z","etag":null,"topics":["alert","itinvent","mssql","powershell"],"latest_commit_sha":null,"homepage":"","language":"PowerShell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Lifailon.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2023-01-16T17:58:47.000Z","updated_at":"2025-03-06T08:19:54.000Z","dependencies_parsed_at":null,"dependency_job_id":"8947bee2-d311-4f38-9cbf-97006701171c","html_url":"https://github.com/Lifailon/ITInvent-SQL-Alert","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Lifailon/ITInvent-SQL-Alert","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lifailon%2FITInvent-SQL-Alert","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lifailon%2FITInvent-SQL-Alert/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lifailon%2FITInvent-SQL-Alert/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lifailon%2FITInvent-SQL-Alert/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Lifailon","download_url":"https://codeload.github.com/Lifailon/ITInvent-SQL-Alert/tar.gz/refs/heads/rsa","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lifailon%2FITInvent-SQL-Alert/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32159959,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-22T17:06:48.269Z","status":"ssl_error","status_checked_at":"2026-04-22T17:06:19.037Z","response_time":58,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["alert","itinvent","mssql","powershell"],"created_at":"2024-12-14T15:16:53.788Z","updated_at":"2026-04-22T23:35:23.995Z","avatar_url":"https://github.com/Lifailon.png","language":"PowerShell","funding_links":[],"categories":[],"sub_categories":[],"readme":"## ITInvent-SQL-Alert - реализация оповещений о истечении срока действия лицензий.\n\n\u003e **Для программы ITInvent, которая использует СУБД MS SQL.**\n\nОписание некоторых таблиц: \\\n**BRANCHES** - Филиалы; \\\n**VENDORS** - Общие - Производители; \\\n**CI_TYPES** - Оборудование - Типы; \\\n**CI_MODELS** - Оборудование - Модели; \\\n**OWNERS** - Общие - Сотрудники; \\\n**USERS** - Общие - Пользователи (учетные записи); \\\n**CI_HISTORY** - история изменений в карточках (CH_USER, CH_DATE, CH_COMMENT, SERIAL_NO_OLD, SERIAL_NO_NEW, INV_NO_OLD, INV_NO_NEW).\n\nТаблица, которая нас интересует - **ITEMS**. Содержимое столбцов: \\\n**DESCR** - Описание карточки; \\\n**ADDINFO** - Примечание (вкладка Дополнительно); \\\n**SERIAL_NO** - Серийный номер; \\\n**INV_NO** - Инвентарный номер; \\\n**LICENCE_DATE** - Лицензия До; \\\n**LICENCE_NO** - Порядковый номер лицензии; \\\n**LICENCE_MAX** - Общее количество лицензий; \\\n**CREATE_DATE** - дата создания (первая дата изменения в истории, т.е. добавления); \\\n**CH_DATE** - Дата Изменения (вкладка История); \\\n**CH_USER** - Изменил (вкладка История, имя пользователя); \\\n**PRODUCT_KEY** - Ключ продукта/Рег. имя; \\\n**ACTIVATION_CODE** - Код активации.\n\n**Зависимые столбцы**: \\\n**CI_TYPE** - Номер 2, означает тип \"Программы\"; \\\n**TYPE_NO** - Название. Значение (39), которое ссылается на значене столбца **TYPE_NAME** (Adobe) в таблице **CI_TYPES** по такому же номеру стобца **TYPE_NO** (39) и фильтрует по номеру столбца **CI_TYPE** (2); \\\n**MODEL_NO** - Версия. Значение, которое ссылается на значене столбца **MODEL_NAME** в таблице **CI_MODELS** по такому же номеру стобца **MODEL_NO** и **TYPE_NO**.\n\n### 1. Получение данных.\n\nДля формирования таблицы, в которой содержится название и версия программы, необходимо собрать значения из нескольки таблиц.\n\nОтфильтровать таблицу **TYPE_NO** по номеру типа \"Программы\" (**CI_TYPE**), т.к. номера для тругих типов (оборудование, комплектующие и т.п.) повторяются и соот-но пересекаются:\n` SELECT TYPE_NO,TYPE_NAME FROM ITINVENT.dbo.CI_TYPES where CI_TYPE like '2' `\n\nОтфильтровать таблицу **CI_MODELS**:\n` SELECT MODEL_NO,MODEL_NAME FROM ITINVENT.dbo.CI_MODELS where CI_TYPE like '2' `\n\nОтфильтрвоать таблицу **ITEMS**, где отсутствует пустые значения в стобце **LICENCE_DATE**:\n` SELECT LICENCE_DATE,ADDINFO,DESCR FROM ITINVENT.dbo.ITEMS where LICENCE_DATE IS NOT NULL `\n\n### 2. Постобработка в powershell.\nВыбираем модуль, я использую **System.Data.SqlClient**, который присутствует в классе .NET (не требует установки). Так же выбираем метод аутентификации, по умолчанию подключение к БД будет происходить из под доменной учетной записи, от которой запущен powershell (с применением **Integrated Security=True**), или, можно указать учетную запись в самом скрипте. Забираем две таблицы: **$db_type** и **$db_model**, при формировании итоговой таблицы **ITEMS** (переменная **$db_date**) удаляем время и подставляем значения из первых двух, заменив содержимое значений с помощью select.\n\nДанные в ITInvent (которые используются в текущем примере):\n\n![Image alt](https://github.com/Lifailon/ITInvent-SQL-Alert/blob/rsa/Screen/ITInvent.jpg)\n\n[ITInvent-SQL-Alert-Table.ps1](https://github.com/Lifailon/ITInvent-SQL-Alert/blob/rsa/Scripts-Public/ITInvent-SQL-Alert-Table.ps1) - вывести полученные данные в Out-GridView:\n\n![Image alt](https://github.com/Lifailon/ITInvent-SQL-Alert/blob/rsa/Screen/Table.jpg)\n\n### 3. Настройка оповещений.\n\nЗа основу беру [метод оповещений из Excel](https://github.com/Lifailon/Excel-Date-Report). Проверяется четыре триггерных значения: 30, 14, 7 и 3 дня (дата, на момент проверки: 17.01.2023).\n\n#### 3.1. Отправка в Telgeram:\n\n[ITInvent-SQL-Alert-Telegram.ps1](https://github.com/Lifailon/ITInvent-SQL-Alert/blob/rsa/Scripts-Public/ITInvent-SQL-Alert-Telegram.ps1)\n\n\u003e Если срок действия уже просрочен (дата имеет отрицательное значение), то отправка оповещений будет производиться ежедневно.\n\n![Image alt](https://github.com/Lifailon/ITInvent-SQL-Alert/blob/rsa/Screen/Telegram.jpg)\n\n#### 3.2. Вывод в консоль (для предварительной проверки триггерных значений):\n\n[ITInvent-SQL-Alert-Console.ps1](https://github.com/Lifailon/ITInvent-SQL-Alert/blob/rsa/Scripts-Public/ITInvent-SQL-Alert-Console.ps1).\n\n![Image alt](https://github.com/Lifailon/ITInvent-SQL-Alert/blob/rsa/Screen/Console.jpg)\n\n#### 3.3. Отправка на почту:\n\n[ITInvent-SQL-Alert-Telegram.ps1](https://github.com/Lifailon/ITInvent-SQL-Alert/blob/rsa/Scripts-Public/ITInvent-SQL-Alert-Mail.ps1)\n\n![Image alt](https://github.com/Lifailon/ITInvent-SQL-Alert/blob/rsa/Screen/Mail.jpg)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flifailon%2Fitinvent-sql-alert","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flifailon%2Fitinvent-sql-alert","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flifailon%2Fitinvent-sql-alert/lists"}