Познавательный PowerShell

Публикация № 1658244 13.05.22

Приемы и методы разработки - Языки и среды

PowerShell скрипты автоматизация администрирование скрипт script

Еще немного PowerShell нам в помощь.

Мы снова здесь!

В прошлогодней статье "Занимательный PowerShell" мы уже говорили про применение мощного скриптового языка PowerShell для решения насущных задач.

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

В этот раз мы не будем рассматривать настройку окружения, различных инструментов для разработки скриптов на PowerShell и связанные с этим темы. Все это Вы можете посмотреть в предыдущей статье.

Итак, ближе к делу!

Удаляйте журналы вовремя

Все мы знаем, что журналы регистрации платформа 1С хранит в каталоге кластера, а точнее в подкаталогах каждой информационной базы. Это не относится к файловым базам, но они нам не интересны.

С учетом того, что остается только текстовый вариант журнала, ведь из-за известных проблем SQLite-формата сама фирма "1С" отказывается от него (но это не точно?), встает задача периодической очистки файлов для освобождения места.

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

 

Тогда на каждый день мы будем получать новые файлы. В большинстве случаев старые файлы не будут заняты серверными процессами платформы 1С и могут быть спокойно удалены.

Затем берем скрипт очистки от файлов журнала регистрации.

 
 Очистка от старых файлов журнала регистрации

Для регулярного запуска можно использовать планировщик Windows, создав в нем задачу с подобной командой:

powershell.exe -NoProfile -ExecutionPolicy Bypass -File "<ПутьКФайлуСоСкриптом>.ps1"

Задача решена, теперь поехали дальше.

Ох уж эти COM-объекты

В прошлой статье мы уже рассматривали действия по регистрации, удалению регистрации и проверке работы COM-компоненты платформы 1С. Теперь перейдем на другой уровень!

Всем известно, что на одном сервере могут быть зарегистрированы COM-компоненты разных версий платформы 1С. Есть даже замечательные инструкции по этому поводу:

Но почему бы не автоматизировать этот процесс и выполнять регистрацию COM-компонентов по одному щелчку.

 
 Регистрация множества COM-компонентов разных версий платформы 1С

Таким образом, одним кликом можно устанавливать множество COM-компонентов разных версий платформ 1С. И доустанавливать новые версии тоже. Не забывайте запускать скрипт с нужными привилегиями. Классная картина, не правда ли.

 

Но зарегистрировать и установить - это одно дело. Иногда нужно еще и узнать какие COM-компоненты уже зарегистрированы в системе. И тут могут быть сложности, ведь регистрацию можно выполнить как с помощью утилиты "regsvr32.exe", так и с помощь оснастки "Службы компонентов" (та, что на скрине выше). Так узнаем же!

 
 Список всех зарегистрированных COM-компонетов

Вот такой результат мы можем получить.

 

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

 
 Удаление всех зарегистрированных COM-компонентов

Теперь Вы можете массово регистрировать и удалять COM-компоненты платформы 1С разных версий, а также просто получать список всех зарегистрированных компонентов на сервере.

Немного Outlook

Что мы все об 1С?! Давайте посмотрим на другие задачи. Например, работу с Microsoft Outlook. Этот замечательный почтовый клиент из пакета MS Office есть во многих компаниях. И частенько можно получить задачу по загрузке контактов и групп контактов в почтовый клиент из файлов или других источников.

Ниже пример скрипта как загружать контакты и группы.

 
 Загрузка контактов в Outlook

Да, это намного проще, чем регистрировать COM-компоненты 1С разных версий :).

Работаем с сервисами Yandex

У компании "Яндекс" множество полезных сервисов. С ними можно работать из bash, 1С и любых других языков и платформ, в том числе и из PowerShell.

В скрипте ниже пример обращения к сервису перевода из Яндекс.Облака.

 
 Работа с Яндекс.Облаком из PowerShell

Используя этот пример можно обращаться и к другим сервисом Яндекса.

Заблокирован ли файл?

Еще задачей может быть проверка заблокирован ли файл другим приложением.

 
 Заблокирован ли файл?

Надежное копирование файлов

Для надежного копирования файлов по сети можно использовать утилиты Robocopy. Из PowerShell это выглядит так.

 
 Использование Robocopy из PowerShell

Сессии Windows

И под конец самый простой пример - получаем список сессий Windows и завершаем их по необходимости.

 
 Работа с сессиями Windows

Хватит, пожалуй

Порция примеров работы с PowerShell закончена. Но кейсов использования этого прекрасного инструмента бесконечное количество. Все самое интересное можно найти в официальной документации, GitHub и на других просторах интернета.

И никакого кода 1С в статье!

PowerShell еще вернется! Удачи в делах и хорошего настроения!

Другие ссылки

Авторские разработки

 
 Другие разработки (бесплатные и за $m)

Специальные предложения

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. itoptimum 20 13.05.22 04:50 Сейчас в теме
"1С великолепна!!!"
Будет переведен вот в этот:

Результат перевода:
.NET is awesome!!!


серьезно?
2. frkbvfnjh 684 13.05.22 06:08 Сейчас в теме
В этом скриптовом языке слишком много знака доллара - постепенно начинаешь все больше ненавидеть доллары и омерику :)
3. YPermitin 12200 13.05.22 07:01 Сейчас в теме
(2) загнивающий запад и все такое? :))))
4. Obertone 58 13.05.22 07:13 Сейчас в теме
Было ли применение нажатия клавиш через PowerShell-скрипт или нет, но PowerShell-скрипт имитации нажатия клавиш помог сделать полноценным открытие сессии окон 1С: https://infostart.ru/public/1523127/
YPermitin; +1 Ответить
5. sapervodichka 5412 13.05.22 11:53 Сейчас в теме
+100500
Прикрепленные файлы:
user1433102; +1 Ответить
7. CheBurator 3068 14.05.22 19:39 Сейчас в теме
а почему нельзя сразу через cmd запустить robocopy с параметрами, а делаем такое извращение?
SerVer1C; +1 Ответить
9. YPermitin 12200 14.05.22 20:21 Сейчас в теме
(7) А зачем нужен PowerShell, если можно все через cmd делать? :)))

Если ответить на этот вопрос, то подобные вопросы все отпадут.
8. SerVer1C 477 14.05.22 19:47 Сейчас в теме
PS очень мутный язык (как и bash, batch скрипты). Уж лучше python использовать.
10. YPermitin 12200 14.05.22 20:25 Сейчас в теме
(8) вообще разные инструменты с разными целями, задачами.

Это как на 1С задачи администрирования решать.

Но тут, конечно, бывают и исключения.
11. VitaliyCeban 436 16.05.22 14:15 Сейчас в теме
(8) Я подобные задачи решаю через dotnet-script https://github.com/filipw/dotnet-script.
Нормальный C# 10 (.NET 6), возможность отладки. А у PS язык отталкивающий.
12. sergey_s_ 18.05.22 06:13 Сейчас в теме
Добрый день!

Подскажите (не пинайте сильно) как изменить "скрипт очистки от файлов журнала регистрации"
что-бы он чистил логи на 2-х серверах 1С порты: 1540 и 2540
При запуске данного скрипта очищаются логи только на сервере 1С на порту 2540
13. sergvagner2018 24.05.22 19:17 Сейчас в теме
Статья взята на заметку!
Оставьте свое сообщение

См. также

Просмотр и анализ журнала регистрации (отчет на СКД) Промо

Журнал регистрации v8::УФ v8::СКД 1cv8.cf Абонемент ($m)

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

5 стартмани

25.07.2013    79979    1148    YPermitin    60    

Осваиваем протокол gRPC по HTTP/2 в 1С

Языки и среды v8 1cv8.cf Бесплатно (free)

Не так давно на форуме была заведена тема по интеграции с распределенным реестром под 1С, и был выявлен следующий момент, что текущие релизы платформы не поддерживают соединение по HTTP/2 для протокола gRPC. В этой публикации разберем, как удалось решить этот вопрос.

вчера в 13:30    224    JetBrain    5    

Генератор представлений для базы данных 1С

Инструментарий разработчика v8 1cv8.cf Абонемент ($m)

Обработка для генерации скриптов создания представлений баз данных 1С. Поддержка SQL Server + некоторые служебные функции.

10 стартмани

20.02.2022    4852    4    YPermitin    0    

С конфигуратора на EDT. Привычки, которые придется поменять

EDT Языки и среды v8 1cv8.cf Бесплатно (free)

Решил перейти на EDT, чтобы повысить эффективность разработки? А теперь приостановись и выдохни! Я расскажу сейчас о том, из-за чего многие новички в EDT (будучи матёрыми кодерами в конфигураторе) воспринимают встречу с новшествами так, будто их с велосипеда пересадили за штурвал Боинга.

16.09.2021    7094    stas_ganiev    19    

Занимательный PowerShell

Языки и среды Бесплатно (free)

PowerShell. Что, зачем, как и почему? И причем тут 1С?

16.05.2021    10798    YPermitin    31    

Экспорт технологического журнала. Набор инструментов (приложения + исходный код)

Технологический журнал Абонемент ($m)

Набор инструментов для экспорта данных технологического журнала во внешнее хранилище на базе ClickHouse для Windows и Linux. Готовое приложение и исходный код.

10 стартмани

09.05.2021    7845    18    YPermitin    32    

Чем воспользоваться для распознавания котиков в 1С?

Математика и алгоритмы Языки и среды v8 Бесплатно (free)

На митапе по инструментам для расширения возможностей 1С выступил Олег Филиппов. Он сравнил подходы Native API, COM, Docker и Serverless, и рассказал, как упростить использование в 1С алгоритмов, реализованных на других языках, с помощью облачной технологии «Функция как сервис».

12.04.2021    3934    comol    10    

Использование JavaScript для обработки данных в 1с

Языки и среды v8 1cv8.cf Бесплатно (free)

В статье мы передадим данные в JavaScript и получим результат обратно в 1С-объекты средствами JSON. Также "поиграем" с переданными данными.

02.01.2021    8584    John_d    21    

Приложение двенадцати факторов

Языки и среды Бесплатно (free)

Тенденции современности - это SaaS и микросервисы. Про SaaS не слышал только ленивый, но на всякий случай, Ленивый, это для тебя: SaaS это облачная модель работы с сервисами по подписке. У 1С это технология 1С:Фреш. Но мы поговорим не о SaaS и не об 1С:Фреш, а о методологии "Приложение двенадцати факторов", которая родилась для облегчения жизни разработчикам SaaS приложений. Вы спросите: "А где здесь про 1С?". Давайте разберемся.

19.11.2020    993    Lars Ulrich    0    

Мастер создания копии информационной базы для отчетности

HighLoad оптимизация Администрирование СУБД v8 1cv8.cf Абонемент ($m)

Прототип инструмента для подготовки реплики в режиме только для чтения к использованию. Позволяет использовать "read-only" реплики как обычные информационные базы 1С.

10 стартмани

28.08.2020    11746    12    YPermitin    13    

Диагностика контекста выполнения (внешняя компонента)

Разработка внешних компонент v8 1cv8.cf Абонемент ($m)

Небольшая экспериментальная внешняя компонента для получения дополнительной информации о контексте выполнения.

1 стартмани

24.07.2020    10906    2    YPermitin    14    

Hello, Executor! Познакомимся с языком 1С:Исполнитель и сразу попытаемся его усовершенствовать

Языки и среды v8 Бесплатно (free)

На прошлой неделе произошел долгожданный громкий релиз в мире 1С: вышла бета версия 1С:Исполнителя. И пусть не оправдались все ожидания после анонса, пусть язык еще сырой, что-то сделать на нем очень интересно. Посмотрим, что это такое, и даже произведем небольшую модернизацию языка (Velocity-pad Costilization).

23.06.2020    14008    CyberCerber    294    

Экспорт журнала регистрации. Набор инструментов (приложения + исходный код)

Инструментарий разработчика v8 Абонемент ($m)

Набор инструментов для экспорта данных журнала регистрации во внешние хранилища для Windows и Linux (SQL Server, PostgreSQL, MySQL). Готовые приложения и исходный код.

10 стартмани

26.05.2020    16080    112    YPermitin    0    

Сбор информации об изменении состояния и вывод в виде направленного графа с помощью vis.js

Работа с интерфейсом Языки и среды v8 1cv8.cf Бесплатно (free)

В публикации опишу схему данных сбора истории изменения реквизита и вывода в виде графа.

29.03.2020    1965    malikov_pro    2    

Информация о пользователях информационной базы (отчет на СКД)

Инструменты администратора БД Роли и права v8 v8::Права v8::СКД 1cv8.cf Абонемент ($m)

Два простых отчета по пользователям информационной базы и информации по ним.

1 стартмани

02.03.2020    12702    58    YPermitin    8    

Мастер полнотекстового поиска

Поиск данных v8 v8::УФ 1cv8.cf Абонемент ($m)

Набор инструментов для работы с полнотекстовым индексом платформы 1С. Стандартные и расширенные возможности.

2 стартмани

07.02.2020    20204    194    YPermitin    32    

Помощник работы с идентификаторами объектов

Инструментарий разработчика v8 1cv8.cf Абонемент ($m)

Инструмент для расширенного анализа идентификаторов объектов.

2 стартмани

24.01.2020    23193    88    YPermitin    33    

Командный интерпретатор для 1С

Инструментарий разработчика v8 1cv8.cf Абонемент ($m)

Инструмент для выполнения команд CMD / PowerShell из 1С.

2 стартмани

15.11.2019    21098    42    YPermitin    41    

Пакетная выгрузка / загрузка внешних отчетов и обработок

Инструментарий разработчика v8 1cv8.cf Абонемент ($m)

Пакетная выгрузка / загрузка внешних отчетов и обработок для массовый манипуляций с ними.

2 стартмани

04.11.2019    17427    107    YPermitin    21    

Обозреватель криптографии

Инструментарий разработчика v8 Абонемент ($m)

Отчет для просмотра доступных провайдеров и сертификатов криптографии на сервере и клиенте.

2 стартмани

21.10.2019    16396    24    YPermitin    10    

Анализ производительности APDEX

HighLoad оптимизация v8 1cv8.cf Бесплатно (free)

Отчет для просмотра и анализа замеров производительности в конфигурациях на базе БСП.

31.08.2019    20249    469    YPermitin    7    

1С и PowerShell - обновление из хранилища

Администрирование СУБД v8 Абонемент ($m)

Пример скрипта, упрощающего работу.

1 стартмани

29.08.2019    11074    Jokemas    31    

Путеводитель по истории релизов

WEB v8 1cv8.cf Абонемент ($m)

Отчет по истории выпуска релизов и анализа информации по обновлениям.

5 стартмани

13.08.2019    22466    13    YPermitin    18    

Просмотр и анализ структуры базы данных (отчет на СКД)

Инструментарий разработчика v8 v8::СКД 1cv8.cf Абонемент ($m)

Отчет для просмотра и анализа структуры базы данных с поддержкой файловых баз (ограниченный режим), а также баз на SQL Server и PostgreSQL.

5 стартмани

24.07.2019    34930    336    YPermitin    30    

Про js и 1С или как я ужа с ежом скрещивал

Языки и среды v8 Бесплатно (free)

Опыт создания динамического списка для обычной формы на js в html и подводных камнях, которые обязательно встретятся при написании оного.

20.02.2019    7387    ntemny    31    

Прокси soap-сервер. Когда 1С не может в SOAP

WEB Языки и среды v8 Бесплатно (free)

Думаю, многие сталкивались с проблемой "своеобразной" поддержки SOAP в 1с. То wsdl не парсится, то методы не вызываются, то xdto пакет толком не читается из-за вольностей (к слову, допустимых) в xsd. Ещё хуже дело обстоит, если в soap-сообщение нужно добавить заголовки - так называемые soap-headers, которые есть в стандарте soap 1.2, и которые конечно же не поддерживает 1С. Попробуем решить проблему и написать свой прокси-сервис "за 10 минут".

19.12.2018    13879    nixel    18    

Автозагрузка, установка платформы 1С (PowerShell)

Инструменты администратора БД v8::УФ 1cv8.cf Абонемент ($m)

Если у вас нет RDP, нет или не настроено AD, а обновить платформу на большом количестве ПК как-то надо, то Вам сюда.

1 стартмани

14.12.2018    6607    4    login1020    25    

Записки про metadata.js

Языки и среды Бесплатно (free)

Отличительные особенности разработки на metadata.js

31.07.2018    12482    1c-intelligence    59    

Мониторинг журнала регистрации при помощи Powershell

Инструментарий разработчика v8 Абонемент ($m)

Работа с журналом регистрации в формате SQLite внешними средствами на примере мониторинга изменений в конфигурации базы данных.

1 стартмани

12.07.2018    13861    user768334    7    

COM соединения с базами 1С на различных версиях платформы "Без перерегистрации и СМС"

Инструменты администратора БД v8 1cv8.cf Абонемент ($m)

Описание способа подключения к базам 1С с помощью ComConnector, на различных версиях платформы.

1 стартмани

16.04.2017    120762    357    WizaXxX    73    

Кроссплатформенное использование классов .Net в 1С через Native ВК. Или замена COM на Linux II

Языки и среды v8 Бесплатно (free)

Это продолжение статьи http://infostart.ru/public/534901/ С того времени добавил поддержку методов с параметрами по умолчанию, вызов методов расширений, вывод типов для дженерик методов, поддержка объектов реализующих IDynamicMetaObjectProvider (ExpandoObject,DynamicObject), добавление синонимов к членам типа и асинхронное программирование на 1С!

09.08.2016    15198    Serginio    1    

Metadata.js для построения дешевых высоконагруженных сервисов

WEB Языки и среды Бесплатно (free)

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

08.08.2016    39118    unpete    100    

Кроссплатформенное использование классов .Net в 1С через Native ВК. Или замена COM на Linux

Языки и среды v8 Бесплатно (free)

С выходом .Net Core CLR стало возможным использование классов .Net не только на Windows, но и других операционных системах. Это особенно важно в разрезе импортозамещения. И главное - это аналог COM под Linux. Сейчас под Linux для расширения возможностей 1С используются Web сервисы. Данная разработка позволит использовать не только сборки входящие в состав .Net Core, но и пользовательские портативные сборки.

04.07.2016    21778    Serginio    33    

Полуавтоматическое обновление 1С посредством PowerShell

Инструменты администратора БД v8 1cv8.cf Россия Бесплатно (free)

Прошу не кидать камни, первая публикация. Итак, если вкратце: баз много, времени на обновление тратится безумно много. Решил автоматизировать часть работы посредством Powershell. Кому будет полезно, буду рад :)

09.10.2015    7088    virix    8    

Linq to EF. Практика использования. Часть III

Языки и среды v8 Бесплатно (free)

Эта статья является продолжением Code First и Linq to EF на примере 1С версии 7.7 и 8.3. Здесь приведены примеры построения запросов и ссылки на интересные материалы

25.09.2015    17380    Serginio    4    

Code First и Linq to EF на примере 1С версии 8.3. Часть II

Языки и среды v8 Бесплатно (free)

Эта статья - продолжение http://infostart.ru/public/393228/ Там же лежит и обработка для генерации C# файлов. Суть та же, что и для 7.7, но есть особенности.

24.09.2015    19078    Serginio    8    

Опыты с автоматическим переводом кода C# в 1С-код через Roslyn

Языки и среды v8 1cv8.cf Бесплатно (free)

Появилась идея посмотреть, как будет выглядеть объектно-ориентированный подход в 1С, язык которой очень ограничен в средствах и не предусматривает определение классов. Программа по автоматическому переводу определений классов C# в другой язык позволила бы менять генерируемый код по мере появления новых идей. Поиски средств реализации привели к проекту Roslyn - открытому компилятору C#.

26.12.2014    37588    Elisy    15    

C# + 1C. Урок 2. Обращение к 1С из C#

Языки и среды Бесплатно (free)

В рамках этого урока мы изучим интеграцию 1С языком программирования C# на примере обращения к функционалу 1С из программ на C#

27.06.2013    47701    megabax    10    

Visual C# для чайников. Урок 1. Напишем простейшую программу на C#

Языки и среды Россия Бесплатно (free)

В этом цикле уроков я постараюсь максимально просто и понятно изложить основы программирования на языке C# на примере Microsoft Visual Studio 2010 или аналогичной среде программирования.

02.04.2013    41645    megabax    59    

Код С# в bat-файле

Языки и среды Россия Бесплатно (free)

Маленькая забавность о том, как использовать все возможности dotNet в обычных bat-скриптах. Или сделать скриптовый язык из С#.

23.11.2010    16902    Душелов    26