|
Как программно получить путь к каталогу журнала регистрации? | ☑ | ||
---|---|---|---|---|
0
karabas11
28.12.14
✎
21:34
|
Как можно программно получить путь к каталогу журнала регистрации сервера 8.2?
ИЛИ Как программно получить путь к каталогу системных файлов сервера 1с, который указан в строке запуска для ragent. (например -d "C:\Program Files (x86)\1cv82\srvinfo") ИЛИ Как сократить журналы регистрации 100500 серверных баз БЕЗ ЗАХОДА в конфигуратор? ЗЫ Вариант такого плана C:\Program Files\1cv8\bin\1cv8.exe" CONFIG /F"C:\DemoTrd2" /N"Федоров (администратор)" /P"" /OutD:\my\log.txt /ReduceEventLogSize 2004-12-26 -saveAsC:\OldLog.elf не предлагать, т.к. тут условие незахода в конфигуратор не выполняется |
|||
1
karabas11
28.12.14
✎
22:36
|
Частично решилось кодом отсюда http://infostart.ru/public/165702/
Из службы сервера можно вытащить путь к каталогу системных файлов сервера (тот который после ключа -d) Это конечно через одно место, но другого способа пока никто не подсказал :( // Функция, позволяющая получить информацию о службах на локальном/удаленном компьютере. // Параметры: // Computer - Имя компьютера. // Возвращаемое значение: // Таблица значений. // // Рекомендация: // Перед применением проверить на компьютерах // Windows Management Instrumentation (WMI): // 1. Состояние служб. // 2. Разрешение в брандмауэре. // &НаСервереБезКонтекста Функция Computer_SystemService(Computer = ".") Win32_ServiceInfo = Новый ТаблицаЗначений; Win32_ServiceInfo.Колонки.Добавить("Name"); Win32_ServiceInfo.Колонки.Добавить("Caption"); Win32_ServiceInfo.Колонки.Добавить("Description"); Win32_ServiceInfo.Колонки.Добавить("PathName"); Win32_ServiceInfo.Колонки.Добавить("StartMode"); Win32_ServiceInfo.Колонки.Добавить("StartName"); Win32_ServiceInfo.Колонки.Добавить("State"); Win32_ServiceInfo.Колонки.Добавить("ProcessID"); Win32_ServiceInfo.Колонки.Добавить("SystemName"); Попытка WinMGMT = ПолучитьCOMОбъект("winmgmts:\\" + Computer + "\root\cimv2"); Win32_Service = WinMGMT.ExecQuery("SELECT * FROM Win32_Service"); Для Каждого Service ИЗ Win32_Service Цикл ServiceInfo = Win32_ServiceInfo.Добавить(); ServiceInfo.Name = Service.Name; ServiceInfo.Caption = Service.Caption; ServiceInfo.Description = Service.Description; ServiceInfo.PathName = Service.PathName; ServiceInfo.StartMode = Service.StartMode; ServiceInfo.StartName = Service.StartName; ServiceInfo.State = Service.State; ServiceInfo.ProcessID = Service.ProcessID; ServiceInfo.SystemName = Service.SystemName; КонецЦикла; Исключение КонецПопытки; Возврат Win32_ServiceInfo; КонецФункции // Функция, позволяющая получить информацию о процессах на локальном/удаленном компьютере. // Параметры: // Computer - Имя компьютера. // Возвращаемое значение: // Таблица значений. // // Рекомендация: // Перед применением проверить на компьютерах // Windows Management Instrumentation (WMI): // 1. Состояние служб. // 2. Разрешение в брандмауэре. // &НаСервереБезКонтекста Функция Computer_SystemProcess(Computer = ".") Win32_ProcessInfo = Новый ТаблицаЗначений; Win32_ProcessInfo.Колонки.Добавить("Caption"); Win32_ProcessInfo.Колонки.Добавить("CommandLine"); Win32_ProcessInfo.Колонки.Добавить("CreationDate"); Win32_ProcessInfo.Колонки.Добавить("CSName"); Win32_ProcessInfo.Колонки.Добавить("ExecutablePath"); Win32_ProcessInfo.Колонки.Добавить("OSName"); Win32_ProcessInfo.Колонки.Добавить("ParentProcessId"); Win32_ProcessInfo.Колонки.Добавить("ProcessId"); Win32_ProcessInfo.Колонки.Добавить("WindowsVersion"); Win32_ProcessInfo.Колонки.Добавить("Owner"); Попытка WinMGMT = ПолучитьCOMОбъект("winmgmts:\\" + Computer + "\root\cimv2"); Win32_Process = WinMGMT.ExecQuery("SELECT * FROM Win32_Process"); Для Каждого Proccess ИЗ Win32_Process Цикл ProccessInfo = Win32_ProcessInfo.Добавить(); ProccessInfo.Caption = Proccess.Caption; ProccessInfo.CommandLine = Proccess.CommandLine; Попытка ProccessInfo.CreationDate = Дата(Лев(Proccess.CreationDate,14)); Исключение КонецПопытки; ProccessInfo.CSName = Proccess.CSName; ProccessInfo.ExecutablePath = Proccess.ExecutablePath; ProccessInfo.OSName = Proccess.OSName; ProccessInfo.ParentProcessID = Proccess.ParentProcessID; ProccessInfo.ProcessID = Proccess.ProcessID; ProccessInfo.WindowsVersion = Proccess.WindowsVersion; User = ""; Domain = ""; Owner = Proccess.GetOwner(User, Domain); Если User = NULL И Domain = NULL Тогда ProccessInfo.Owner = "System"; Иначе ProccessInfo.Owner = Domain + "\" + User; КонецЕсли; КонецЦикла; Исключение КонецПопытки; Возврат Win32_ProcessInfo; КонецФункции |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |