Имя: Пароль:
1C
 
WMI и 1С удаленный выполнение команды
0 Drufa
 
10.11.09
15:34
Вот такой вот код.

Locator = Новый COMОбъект("WbemScripting.SWbemLocator");
Locator.Security_.AuthenticationLevel = 6;
Locator.Security_.ImpersonationLevel = 3;
Service = Locator.ConnectServer("Server2","Root\CIMV2","admin","admin");
   
// Эта команда отрабатывает.
ТекстКоманды = "cmd.exe /c md c:\UK";
objClass = Service.Get("Win32_Process");
Res = objClass.Create(ТекстКоманды, Null, Null, PID);
   
// Эта нет.
ТекстКоманды = "cmd.exe /c md \\Server1\Exchange\UK";
objClass = Service.Get("Win32_Process");
Res = objClass.Create(ТекстКоманды, Null, Null, PID);

Народ подскажите почему первая команда создает каталог на Server2, а 2-я нет?
1 Вовик007
 
10.11.09
15:38
cmd не поддерживает пути unc
2 Drufa
 
10.11.09
15:54
(1) Если выполнить эту команду (cmd.exe /c md \\Server1\Exchange\UK)непосредственно на Server2 то все ОК
3 Лефмихалыч
 
10.11.09
16:03
(0) создавай каталоги при помощи WSH
(1) сфегале это?! это md не поддерживает, а cmd-то, как нефиг петь.
4 Лефмихалыч
 
10.11.09
16:05
кстати, md тоже все нормально понимает и создает каталоги. Только надо, чтобы прав хватило, и чтобы промежуточные каталоги существовали.
Проверил только что
5 Лефмихалыч
 
10.11.09
16:06
а вот такой еще вопрос - какой смысл запускать на машине server2 скрипт, который создает каталог на этом же сервере через UNC-путь?
6 Drufa
 
10.11.09
16:10
(3) Можешь кусок кода кинуть.
(5) скрипт на Server2 а каталог на Server1
(4) У меня очень большие подозрения на доступ. Только я незнаю где его устанавливать.
7 Вовик007
 
10.11.09
16:12
(3) с таволе , открой cmd напиши эту команду он тебе сам ответит .
8 Ковычки
 
11.11.09
00:49
нет сеанса и нужны права на бач
9 Drufa
 
11.11.09
09:48
Вовик,
Вот этот код запущенный на любом компе создает процесс CMD.exe на server2 от пользователя admin. Результат выполнения команды Res = 0.
НО ПАПКА НА Server1 НЕ СОЗДАЕТСЯ.
Если выполнить команду непосредственно на Server2 под учеткой admin то папка СОЗДАЕТСЯ.

ТекстКоманды = "cmd.exe /c md \\Server1\Exchange\UK";
objClass = Service.Get("Win32_Process");
Res = objClass.Create(ТекстКоманды, Null, Null, PID);
10 Лефмихалыч
 
11.11.09
09:54
(7) смотри и плач :)
http://slil.ru/28188795
11 Вовик007
 
11.11.09
09:54
(9)  ]:->  по русски написал веть , открой cmd на любом компе Не сервере , введи туда команду свою , и посмотри что тебе ответит окно .
12 Drufa
 
11.11.09
09:55
Я полагаю что DCOM не видит сеть.
13 Лефмихалыч
 
11.11.09
09:55
(10) мягкей знаг обыл, чурка
14 Drufa
 
11.11.09
09:56
(11) Эта команда выполняется на на любом компе "cmd.exe /c md \\Server1\Exchange\UK"
15 Лефмихалыч
 
11.11.09
09:56
+(10) мувик, 106Кб
16 Drufa
 
11.11.09
10:00
Резюме. Походу WMI работает только с локальными ресурсами.
Если кто сможет заставить это код работать буду примного благодарен.
17 Лефмихалыч
 
11.11.09
10:02
(16) да нормально все работает, у тебя просто правей не хватает
18 Drufa
 
11.11.09
10:05
(17) Как их дать?
19 Лефмихалыч
 
11.11.09
10:09
(18) одмину певас поставь
20 Drufa
 
11.11.09
10:17
(19) Он уже месяц из запоя пивного выйти не может :)
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.