bdd2

Получение локального пути сетевой папки удаленного компьютера

Опубликовал Дмитрий Соломатин (sdf1979) в раздел Администрирование - Системное

Иногда бывает необходимо при выборе сетевого пути на удаленном компьютере получить его локальное представление. Локальное представление можно получить с помощью команды net share, только ее необходимо запустить в окружении удаленного компьютера.

Для запуска команды в окружении удаленного компьютера используем утилиту Марка Русиновича PsExec.exe. Данная утилита сохранена в макете формы обработки. Учетная запись, под которой будет запускаться обработка должна иметь права администратора на удаленной машине.

Описание функции

&НаСервере
Функция ПолучитьЛокальныйПутьСетевойПапкиОСWindows(ИмяСетевойПапки) Экспорт
ЛокальныйПуть = Неопределено;

Попытка
ИмяДляРазбора = СтрЗаменить(ИмяСетевойПапки, "\\", "$$");
Если Прав(ИмяДляРазбора, 1) = "\" Тогда
ИмяДляРазбора = Лев(ИмяДляРазбора, СтрДлина(ИмяДляРазбора) - 1);
КонецЕсли;

ПервыйРазделитель = Найти(ИмяДляРазбора, "\");

Сервер = СтрЗаменить(Лев(ИмяДляРазбора, ПервыйРазделитель - 1), "$$", "\\");
Каталог = Прав(ИмяДляРазбора, СтрДлина(ИмяДляРазбора) - ПервыйРазделитель);

PsExec = РеквизитФормыВЗначение("Объект").ПолучитьМакет("PsExec");
КаталогВременныхФайлов = КаталогВременныхФайлов() + Новый УникальныйИдентификатор() + "\";
СоздатьКаталог(КаталогВременныхФайлов);

ИсполняемыйФайл = КаталогВременныхФайлов + "PsExec.exe";
ФайлРезультата = КаталогВременныхФайлов + "result.txt";
PsExec.Записать(ИсполняемыйФайл);

Команда = ИсполняемыйФайл + " " +Сервер + " net share " + Каталог + " > " + ФайлРезультата;
Shell = Новый COMObject("WScript.Shell");
Shell.Run("cmd /C """ + Команда + """", 0 , 1);

Результат = Новый ИзвлечениеТекста(ФайлРезультата);
РезультатТекст = Результат.ПолучитьТекст();
ЛокальныйПуть = СтрПолучитьСтроку(РезультатТекст, 2);
ЛокальныйПуть = СтрЗаменить(ЛокальныйПуть, "Path", "");
ЛокальныйПуть = СокрЛП(ЛокальныйПуть);

УдалитьФайлы(КаталогВременныхФайлов);
Исключение
КонецПопытки;

Возврат ЛокальныйПуть;
КонецФункции

Скачать файлы

Наименование Файл Версия Размер
Обработка Получение локального пути файла
.epf 273,38Kb
22.05.14
0
.epf 273,38Kb Скачать

См. также

PowerTools от 1 000
Добавить вознаграждение
Комментарии
1. Дмитрий Елисеев (w-divin) 23.05.14 12:55 Сейчас в теме
Учетная запись, под которой будет запускаться обработка должна иметь права администратора на удаленной машине.
вот только за это убил бы.... хотя не только...
2. Дмитрий Соломатин (sdf1979) 66 23.05.14 15:09 Сейчас в теме
А Вы администрируете локальную сеть под правами пользователя? В заголовке же есть для кого данная обработка, для администраторов...