gifts2017

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

Опубликовал Дмитрий Соломатин (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) 23.05.14 15:09
А Вы администрируете локальную сеть под правами пользователя? В заголовке же есть для кого данная обработка, для администраторов...
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа