1С и Windows Script Host (WSH) и Windows Management Instrumentation (WMI). ОТ ТЕОРИИ К ПРАКТИКЕ. Часть II

20.10.13

База данных - Администрирование СУБД

Описание возможностей Windows Script Host и Windows Management Instrumentation. Подборка "скриптовых" функций и процедур.

Другие части:

1С и WSH и WMI. ОТ ТЕОРИИ К ПРАКТИКЕ. Часть I: //infostart.ru/public/165702/
1С и WSH и WMI. ОТ ТЕОРИИ К ПРАКТИКЕ. Часть III: //infostart.ru/public/166440/

Практическая реализация:

Обработка 1С:Системный Администратор (WSH&WMI): //infostart.ru/public/172189/


ТЕОРИЯ


Microsoft Windows Script Host (WSH) - сервер сценариев Windows.

Используется в качестве инструмента разработки и выполнения специальных сценариев для операционной системы Windows.
Сценарии WSH пишутся на специализированных языках: Microsoft Visual Basic Script Edition (VBScript) или Microsoft JScript.
Свойства и методы объектов Microsoft WSH доступны также в приложениях, способных выступить в роли OLE-клиента.

WSH позволяет работать с:

    - Файловой системой;
    - Ресурсами локальной сети;
    - Реестром;
    - Специальными папками и ярлыками Windows;
    - Процессами. Запускать и контролировать их выполнение.

WSH позволяет взаимодействовать с Microsoft ActiveX:

    - ActiveX Data Object (ADO) — Доступ к базам данных;
    - Active Directory Service Interface (ADSI) — Службы каталогов;
    - Windows Management Instrumentation (WMI) — Инструментарий управления Windows.


Подробно свойства и методы объектов MS Windows Script Host изложены в файле Automation.chm, доступном в ссылках на скачивание.

Windows Management Instrumentation (WMI) - инструментарий управления Windows.

WMI - это одна из базовых технологий для централизованного наблюдения и управления компьютерной инфраструктуры под управлением платформы Windows.
WMI – это расширенная и адаптированная компанией Microsoft реализация стандарта WBEM (WebBased Enterprise Management) компании DMTF Inc.
Основа WBEM - Common Information Model (CIM), реализующая объектно-ориентированный подход к представлению компонентов системы.

WMI позволяет работать с:
    - Системой;
    - Приложениями;
    - Оборудованием;
    - Сетями;
    др. управляемыми компонентами.

Подробно о Windows Management Instrumentation (англ.): http://msdn.microsoft.com/en-us/library/windows/desktop/aa394572%28v=vs.85%29.aspx


ПРАКТИКА


Список процедур и функций:

- GetDriveInfo() - Ф., позволяющая получить информацию о дисковой подсистеме лок. компьютера.- Computer_PhysicalDisk() - Ф., позволяющая получить информацию о физических дисках лок./уд. компьютера.- Computer_LogicalDisk() - Ф., позволяющая получить информацию о логических дисках лок./уд. компьютера.- GetFolderInfo() - Ф., позволяющая получить значения атрибутов каталога лок. компьютера.- GetFileInfo() - Ф., позволяющая получить значения атрибутов файла лок. компьютера.- ПрочитатьТекстовыйФайл() - Ф.: Пример чтения текстового файла.- СоздатьТекстовыйФайл() - Ф.: Пример создания файла (с проверкой: перезаписать/не перезаписать существующий файл).- СоздатьЯрлыкБлокнотНаРабочемСтоле() - Ф. создает ярлык "Блокнот" на рабочем столе.- МоиДокументы() - Ф. возвращает путь к папке пользователя "Мои документы".

// Функция, позволяющая получить информацию о дисковой подсистеме локального компьютера.
//
&НаСервереБезКонтекста

Функция GetDriveInfo()

    DriveInfo = Новый ТаблицаЗначений;
    // Буква диска (C, D, ...).
    DriveInfo.Колонки.Добавить("DriveLetter");
    // Тип диска.
    // 0 = Unknown, 1 = Removable, 2 = Fixed, 3 = Network, 4 = CD-ROM, 5 = RAM Disk.
    DriveInfo.Колонки.Добавить("DriveType");
    // Тип файловой системы диска.
    DriveInfo.Колонки.Добавить("FileSystem");
    // Метка тома.
    DriveInfo.Колонки.Добавить("VolumeName");
    // Полный размер диска.
    DriveInfo.Колонки.Добавить("TotalSize");
    // Свободное пространство на диске.
    DriveInfo.Колонки.Добавить("FreeSpace");
    // Готовность устройства (имеет смысл для съемных дисков или CD/DVD).
    DriveInfo.Колонки.Добавить("IsReady");
    // Путь до указанного диска (C:, D:, ...).    
    DriveInfo.Колонки.Добавить("Path");
    // Корневой каталог диска.
    DriveInfo.Колонки.Добавить("RootFolder");
    // Серийный номер диска.
    DriveInfo.Колонки.Добавить("SerialNumber");
    // Сетевой путь диска или "" для локального.
    DriveInfo

Вступайте в нашу телеграмм-группу Инфостарт

Windows Windows Script Host WSH Windows Management Instrumentation WMI VBS скрипт script реестр управление конфигурация системная информация удаленный компьютер

Вы можете заказать платную адаптацию этой статьи под ваши задачи на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

См. также

Администрирование СУБД Системный администратор Программист Бесплатно (free)

5,5 тысячи пользователей в единой базе 1С, розница в режиме 24/7 и SLA 99,98% – в таких условиях любая авария быстро превращается в очереди на кассах, потерю денег и давление со стороны бизнеса. Показываем, как выстроить процесс аварийно-восстановительных работ: от первых алертов и базового скрининга системы до подключения команды, проверки гипотез и дебрифа после инцидента. Разбираем, как метрики, дашборды, техжурнал, Zabbix, Prometheus, Grafana, Telegram-боты и скрипты помогают не гадать, а быстро находить причину проблемы. На реальных авариях объясняем, почему «быстро» не должно означать «рискованно», как работа над ошибками снижает панику и почему каждая авария может сделать систему надежнее.

11.08.2026    1646    jul.dolganova    8    

21

Администрирование СУБД Пароли Системный администратор 1С 8.3 1С:Розница 2 1С:Управление производственным предприятием Абонемент ($m)

Пароль пользователя СУБД лежит в 1CV8Clst.lst обратимо: кто читает папку srvinfo - достаёт пароли SQL всех баз кластера, минуя права 1С. Обработка показывает, у каких баз пароль извлекается, помечает слабые и выдаёт план защиты. К СУБД не подключается, ничего не пишет - только читает файл.

10 стартмани

06.08.2026    727    12    nedomolkov.ivan    0    

7

Администрирование СУБД Системный администратор 1С 8.3 Бесплатно (free)

Прогнал набор диагностических скриптов на двух рабочих базах: боевой с 580 сеансами и малонагруженной. Разбираю пять находок: статистика 97-дневной давности, 598 запросов со сканами, журнал транзакций в 73 % от данных, tempdb в один файл и 81 % ожиданий на параллелизме, который чинить не надо. Плюс три грабли, из-за которых самописный диагностический скрипт падает на чужом сервере. Семь рабочих скриптов внутри, копируются в SSMS как есть.

05.08.2026    1013    nedomolkov.ivan    8    

7

Администрирование СУБД Журнал регистрации Системный администратор Программист 1С 8.3 Бесплатно (free)

Журнал регистрации на нагруженной базе перестаёт открываться: файлы растут на гигабайты в день, просмотр виснет, история недоступна. Рассказываю, как мы вынесли журнал трёх продуктивных баз в ClickHouse: 35 млрд событий, поиск всех ошибок за сутки — 0,11 секунды, привычная форма журнала для пользователей и падение числа ошибок в проде в 23 раза за полгода. Архитектура, схема таблицы, грабли интеграции и все цифры с прода.

04.08.2026    1264    nedomolkov.ivan    0    

8

Администрирование СУБД 1С 8.3 1С:ERP Управление предприятием 2 Бесплатно (free)

База 1С:ERP размером 646 Гб, полное маскирование за 5 часов - без создания промежуточной незащищенной копии. Разбираем бесплатный pg_anon на сквозном примере с реального продуктива.

27.07.2026    2480    Tantor    16    

13

HighLoad оптимизация Администрирование СУБД Программист Россия Бесплатно (free)

Если вы работаете с 1С на PostgreSQL и жалуетесь на тормоза — скорее всего, дело в join predicate pushdown, которого в стандартном PostgreSQL нет. В MS SQL Server этот механизм работает «из коробки», и при миграции именно запросы к виртуальным таблицам 1С бьют по производительности сильнее всего. В этой статье — реальный кейс от Postgres Professional с разбором плана выполнения, ручным экспериментом и доработкой планировщика СУБД, которая ускорила запросы от 22 до 54 000 раз.

16.06.2026    8836    postgres_professional    13    

12

HighLoad оптимизация Администрирование СУБД Системный администратор Программист 1С:Предприятие 8 Бесплатно (free)

Вышел релиз СУБД Tantor Postgres 18, и мы хотим рассказать о его новых возможностях для работы с приложениями на платформе "1С:Предприятие". В обзоре разберем улучшения планировщика, по традиции коснемся работы временных таблиц и не обойдем вниманием вспомогательные утилиты, которые упрощают поиск и диагностику проблем в высоконагруженных системах. За каждым пунктом - реальные запросы 1С, реальные рабочие базы и сотни часов тестирования!

16.06.2026    3371    Tantor    7    

10

Администрирование СУБД Системный администратор Программист 1С:Предприятие 8 Россия Бесплатно (free)

База 1С за несколько лет эксплуатации разрослась, - стала большой, медленно работает, требует много места и времени для копирования и прочего обслуживания. Нужна ли обязательно свертка или можно обойтись более «мягкими» средствами. Делюсь своим опытном как для новых конфигураций, так и для старых УПП, УТ 10…

01.06.2026    8079    2ncom    30    

11
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. mzelensky 53 20.12.12 07:54 Сейчас в теме
2. Zas1402 20.12.12 17:13 Сейчас в теме
3. vec435 17 09.01.13 18:13 Сейчас в теме
может быть пропустил, поэтому добавлю к функции GetFolderInfo
//размер папки
FolderInfo.Вставить("Size", FileSystemObject_FOLDER.Size);
//количество подпапок
FolderInfo.Вставить("SubFoldersCount", FileSystemObject_FOLDER.SubFolders.Count);
//количество файлов
FolderInfo.Вставить("FilesCount", FileSystemObject_FOLDER.Files.Count);
help1Ckr; StepByStep; +2 Ответить
4. StepByStep 3703 10.01.13 09:59 Сейчас в теме
5. vec435 17 10.01.13 11:25 Сейчас в теме
можно продолжить статьи примерами по работе c WMI
6. StepByStep 3703 06.02.13 13:04 Сейчас в теме
Добавлены функции: Computer_PhysicalDisk(), Computer_LogicalDisk().
7. platon_ 10 09.11.18 17:09 Сейчас в теме
//количество подпапок
FolderInfo.Вставить("SubFoldersCount", FileSystemObject_FOLDER.SubFolders.Count);
//количество файлов
FolderInfo.Вставить("FilesCount", FileSystemObject_FOLDER.Files.Count);

я так понял они возвращают только то, что находится на 1 уровень ниже чем основная папка?

А как получить сколько всего папок и файлов в этой папке? в стандартном интерфейса виндоус такое показано.
Для отправки сообщения требуется регистрация/авторизация