Назначение и возможности
В некоторых ситуациях может появиться необходимость выполнения некоторых команд от имени платформы 1С. Чаще всего это задачи по проверке доступа сервера 1С к определенному каталогу, проверить качество связи с каким-либо узлом, получить список запущенных процессов или служб и др. Все это можно сделать стандартными средствами администрирования, но иногда это не представляется возможным, или может занять значительно больше времени. Ведь не всегда администраторы считают своей проблемой то, что у 1Ски нет доступа и им нужно это доказать / показать / объяснить / обосновать. В этих случаях эта обработка может помочь, но с условием, что у Вас есть права в информационной базе для открытия внешней обработки или прикрепления ее в справочник дополнительных отчетов и обработок.
В конце демонстрации Выше была выполнена команда для завершения всех рабочих процессов (rphost). Никогда так не делайте на рабочем окружении! Это только для примера.
Инструмент ни в коем случае не является заменой стандартных средств администрирования, а лишь является небольшим дополнением к ним в особых случаях.
Проверено на 8.3.10, на всякий случай также на 8.3.6.
Основные возможности инструмента:
- Интерактивное выполнение произвольных команд / скриптов из 1С (поддерживается CMD и PowerShell).
- Привычное оформление консоли (почти).
- Защита от большинства причин зависаний с помощью таймаута выполнения (при выполнении "бесконечных" команд или ожидании интерактивных действий).
- Выбор контекста выполнения скрипта (на клиенте или на сервере).
- Сделано с душой 🙂
Только для тех, кто понимает что и для чего он делает. Метод "тыка" тут не приветствуется.
Примеры использования
Вот несколько примеров, для чего мне пригодилась обработка в свое время.
Проверка доступа к каталогу
Проверка подключения к ресурсу по сети
Проверка регистрации COM-компоненты на сервере
Получить размер сеансовых данных
Все зависит от конкретной ситуации и потребностей.
Если Вы случайно запустите скрипт, который требует интерактивных действий для завершения, то он, конечно, не будет выполнен. Вместо этого по истечению таймаута ожидания команды будет выдана ошибка.
Используйте так как Вам нужно!
Пока что все
Повторюсь, инструмент не является заменой стандартных возможностей для администрирования и должен использоваться только в особых случаях.
В случае, если к разработке будет интерес, то в будущем можно добавить поддержку Linux.
Есть что сказать? Добро пожаловать в комментарии!
P.S. Если Вы дочитали до конца, то по возможности прошу написать интересен ли Вам PowerShell и стоит ли делать публикации по нему? Ваше мнение?
Авторские разработки
-
Анализ производительности APDEX — отчет для просмотра и анализа замеров производительности в конфигурациях на базе БСП.
-
Путеводитель по истории релизов — отчет по истории выпуска релизов продуктов фирмы "1С" и анализа информации по обновлениям.
-
Просмотр и анализ структуры базы данных (отчет на СКД) — отчет для просмотра и анализа структуры базы данных с поддержкой файловых баз (ограниченный режим), а также баз на SQL Server и PostgreSQL.
-
Просмотр и анализ журнала регистрации (отчет на СКД) — отчет на базе системы компоновки данных (СКД) для просмотра записей журнала регистрации.
-
Обозреватель криптографии — отчет для просмотра доступных провайдеров и сертификатов криптографии на сервере и клиенте.
-
Пакетная выгрузка / загрузка внешних отчетов и обработок — пакетная выгрузка / загрузка внешних отчетов и обработок для массовый манипуляций с ними.
+1. Прорекламирую и свою обработку, если можно.https://infostart.ru/public/1114012/
(1) хорошая разработка.
PowerShell наше все!
(поклонникам OneScript не бить :))
Было бы классно увидеть в списке bash/sh. При установке git (mingw) даже на Windows-сервере bash уже будет доступен как другие инструменты командной стоки. А есть еще Linux Subsystem на Windows. Поддержка bash сделала бы инструмент более вездеходным, как впрочем и применяемые скрипты, а разработать и отладить работу с ним можно и без доступа к Linux.
Нет ли планов расширить функционал?
(3) у меня 80% времени — это работа с Windows, поэтому пока не стал на Linux портировать.
Но в конце публикации сделал ремарку, что если интерес будет к Linux, то сделаю.
Может на январских выходных «побалуюсь».
Что за особые случаи, когда штатного функционала не хватает?
(4) Спасибо. Если появится возможность, то будет отлично. На Linux не обязательно портировать, достаточно git установить )) Ну или если версия Windows позволяет, то в ней соответствующие возможности включить.
(6) если делать, то хардкор. Чтобы даже на сервере 1С под линуксом заработало )))
(5) обычно это ситуации из разряда «мы все настроили, это Ваша 1С не работает» и приходится смотреть детальней.
Чаще как-раз в связке со стандартными инструментами.
(2)
А поклонникам xterm-а бить можно, значит? )
(9) пощадите 🙂
отличная тема обязательно скачаю когда добавите bash
(11) спасибо!
Ждать только до следующего года придется…. (:
(12) этоничего
Какая технология в основе?
(12) а так можно будет ?
cat Справочники.Контрагенты | grep ООО Ромашка
🙂
Командную строку, то пилить фигня. А повершел через активпош?
Или что-то свое?
Это как рассказать что умеете, но не сказать как.
(15) фантастика 🙂
Думаю, что сделаю, как на пенсию выйду :))))))
(14) технология?
Просто скрипты и ничего больше. Т.к. разработка ориентирована на Windows была, то используется старый добрый WshShell для управления процессами, запуском скрипта, управление выводом и другим.
Зачем усложнять такую простую задачу. Для Linux потребуется уже другой подход.
(16) ответ выше.
(19) выходит одноразовое использование? Результат программно использовать можно?
(20) Вы можете взять из обработки ту часть кода, что выполняет скрипт и делать с результатом все что посчитаете нужным.
У меня уже не разовое использование, поэтому обработка и появилась 🙂
(21) тогда осталось только в публикации упомянуть выше названное ограничение.
Единственное не знаю использует ли скрипт как компонента, либо он в ядро винды вшит?
(22) это не ограничение, а скорее незаявленная функциональность. В публикации об этом ни слова.
(18)
Т.е. у Вас COM-объекты. Потому и спросил о том, что в основе.
Если не сложно — пожалуйста добавьте пару строк об этом, чтобы было сразу понятно.
(24) без проблем)
(3)На тему bash/sh можно посмотреть:
https://infostart.ru/public/1078030/
https://infostart.ru/public/1054911/
https://www.powershelladmin.com/wiki/SSH_from_PowerShell_using_the_SSH.NET_library
или просто
из того же PowerShell
(2) Я павершелл не смог осилить. Ну негуманоидный он, блин (((
Юрий, отличный инструмент!
Пользуюсь подобным самодельным, очень выручает. Самый частый вариант использования — когда нужно что-то проверить или сделать на сервере, к которому нет доступа. Администраторы Заказчиков зачастую очень ревностно относятся к предоставлению доступа к серверам. При этом, добиться от них получения какой-то информации или, например, изменения настроек ТЖ, стоит каких-то неимоверных усилий и дней переписки. В таких случаях данный инструмент становится просто незаменимым. Разумеется, дальше всё зависит от прав пользователя, под которым работают процессы. Практически всегда это «стандартный» USR1CV8, создаваемый при установке Сервера.
Насчет PowerShell — несомненно интересно! На мой взгляд, очень недооцененный аспект работы. Позволяет многие действия заскриптовать. А также, сделать что-то, что по-другому или просто невозможно, или затруднительно, напримерЗагрузка-выгрузка файлов по RDP с докачкой
(28) Благодарю на добром слове!
Подобные кейсы у меня также встречались.
Думал написать статью про использование PS для 1Сника. Может и сделать…
(27) дело привычки, но без практики с ним можно и правда запутаться 🙂
(28)
Т.е. Вы не ставя в известность админов заказчика (или вопреки их мнению) что-то делаете на серверах заказчиков :)?
И если что-то идет не так — оно само :)?
(31) это жесть, если менять конфигурацию сервера без согласования.
А проверить доступ к каталогу это вроде не страшно 🙂
(32)
Каталоги и разрешения к ним не возникают просто так 🙂 Как правило — они необходимы для решения какой-либо задачи и их наличие и доступ к ним определенных аккаунтов известны заранее и должны-бы быть документированы.
В любом случае можно написать электронное письмо людям, которые отвечают за поддержку сервера. Я полагаю, что в 99% эти люди не звери и ответят на ваш запрос (если это не беспорядочные вопросы каждые 5 минут).
И если Вы не все в одном лице — надо работать в команде.
(33) вы не совсем поняли.
Админ пишет что доступ предоставлен, но все равно не работает. Он говорит что проблема в 1С. Вы проверяете доступ. Пишите админу.
Профит)
(34)
В нормальной ситуации — вероятность того, что доступ не предоставлен стремится к нулю. Конечно все мы люди и можем ошибиться. Можно попросить перепроверить и прислать скриншот. Полагаю, что это не займет много времени и решит проблему.
Опять-таки нужно уметь/желать работать в команде и выстраивать отношения с коллегами. В конце концов, Вам могут при необходимости делегировать соответствующие привилегии.
(31)
И если что-то идет не так — оно само :)?
Юрий, мне не хотелось бы углубляться в диалог в предлагаемом Вами направлении, но всё же отвечу:
Любой инструмент можно использовать во благо или во зло. Скажем, топором можно что-то построить, а можно убить. К счастью, я знаю что, как и зачем я использую.
Если Администраторы адекватные, необходимости в таком подходе не возникает.
Но если для того, чтобы включить/изменить ТЖ на таком сервере, да еще и в нерабочее (для админов) время, нужно несколько дней переписки, у меня не остается другого выхода.
Если для того, чтобы проверить, есть ли со стороны сервера доступ к необходимому ресурсу (внешнему или внутри сети), например из-за того, что встали регламентные операции, опять требуется затяжная переписка, у меня нет другого выхода, кроме как использовать такой подход.
Примеры можно продолжать и продолжать..
Приведенные примеры — из разряда, когда ответственность за работу Системы несем мы (Подрядчик), но при этом все технические средства сосредоточены в руках Заказчика. На высшем уровне принято решение что все необходимые действия будут выполнять сотрудники Заказчика, потому что «безопасность». При этом те самые сотрудники Заказчика либо не обладают достаточными компетенциями, либо слишком заняты, либо просто игнорят просьбы.
Опять же, если «Администратор» (именно в кавычках) запустил службу сервера 1С с административными правами, из-за того, что что-то у него не получалось настроить, и я могу пользователем USR1CV8 сделать что-то «нехорошее», то вообще-то надо такого гнать.
На правильно настроенном сервере, пользователь процессов 1С не должен иметь возможности сделать «нехорошее». Но мне такие не попадались пока.
По поводу правильно настроенного сервера, рекомендую посмотреть доклад Антона Дорошкевича «Взломать за 60 секунд».
>И если что-то идет не так — оно само :)?
Обычно меня подключают, когда что-то уже пошло не так и нужно выяснить что, почему и когда.
PS. На «нормальных» проектах, где под нашу Систему строится полный контур с продуктивной, тестовой, разработочной зонами (при этом продуктивный и тестовый — это кластеры из нескольких серверов, плюс СУБД), эти сервера целиком находятся в моем ведении.
Подобного плана проблемы возникают на проектах, где в силу недостаточности ресурсов, начинаются совмещения вида «вот у нас уже есть сервер 1С, давайте мы просто туда добавим нужные базы и обслуживать будем сами».
(35) увы, жизнь не такая простая
(36)
И этим все сказано. Это одно из условий вашего контракта.
(38)
Юрий, нет смысла спорить. Выше автор уже отвечал что «жизнь не такая простая».
Никто в здравом уме не меняет критичных параметров. Речь о проверках доступов, проверки состояния процессов, изменении настроек ТЖ и других «безобидных» вещах. Кавычки из-за того, что неграмотными настройками ТЖ можно положить сервер (но админам, чаще всего, об этом ничего не известно).
Возможно, именно в Вашей Компании все организационные процессы работают как нужно. Но это не означает что так у всех.