Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: 6465
Последний выпуск: 19.06.2015

Запустить файл от другого пользователя

287
19 апреля
Virtuoso
331 / / 31.07.2005
Здравствуйте.
Пишу на VS2017, VB.net.
Задача - запустить файл в сетевой папке. Делаю через Process.Start.
Но доступ в папку пользователь операционной системы не имеет. Ну т.е. в диспетчере учётных данных нет записи для этого сервера.
Программой я туда попадаю, используя Impersonate.
Так вот в рамках этого Impersonate работают, например, такие вещи как IO.File... или My.Computer.FileSystem ...
А Process.Start игнорирует impersonate (если я корректно выражаюсь, но суть думаю ясна) и не может достучаться, конечно до запускаемого файла.
Как быть?
Либо как-то его можно заставить лезть под нужным пользователем? Либо есть аналог для Process.Start, который будет работать как надо?

Очень нужна помощь!

PS: лезть в папку именно под другим пользователем, который неизвестен человеку-пользователю - обязательно.
287
20 апреля
Virtuoso
331 / / 31.07.2005
Попробовал в Total Commander. Работает именно так как мне нужно.
Он при попытке доступа в сеть вызывает окно авторизации от Windows. Вводишь, работает. Но при этом через проводник когда пытаешь зайти туда же, не пускает, просит опять ввести логин/пароль (как и нужно).
А через тотал файлы открываются, ИЗМЕНЕНИЕ/СОХРАНЕНИЕ ИХ ТОЖЕ РАБОТАЕТ. Даже если тотал закрыть (ну это я так, для справки). Даже если скопировать в тотале что-то в буфер, потом в проводнике он вставляет это. Значит при "вставлении" система лезет в сетевое расположение с логином и паролем. НО, если что-то скопировать в буфер, потом закрыть тотал, буфер очищается (тоталом или системой интересно).
Тотал закрываешь-открываешь доступ есть. Прекращается только при выходе из системы.
Напрашивается у меня такой вывод: в винде регистрируется логин и пароль для доступа на нужный узел ДЛЯ КОНКРЕТНОГО ПРИЛОЖЕНИЯ!? Или вроде того.
Прав ли я, кто знает?
Ну и, конечно, вопрос - как сделать так же? Именно такая модель доступа мне и нужна.
287
20 апреля
Virtuoso
331 / / 31.07.2005
Продолжаю общаться сам с собой)
В PowerShell "такие же результаты" даёт команда "net use". Авторизуешься, потом лазишь по сети, открываешь файлы, при этом через проводник доступ не появляется. Таким образом обнаружено направление, куда рыть)
287
20 апреля
Virtuoso
331 / / 31.07.2005
Я просто в шоке какое простое решение я "натыкал"!
Просто выполняю
 
Код:
Shell("net use \\DOMAIN /user:DOMAIN\USERNAME PASSWORD")
После этого МОЕЙ ПРОГРАММЕ есть доступ куда указал.
Работает и копирование в буфер, и вставка оттуда даже после закрытия программы (видимо тотал всё-таки сам очищает буфер... может в вопросах безопасности). И работа с файлами, как я описывал выше.
А я 3 дня вожусь с Impersonate. Код весь перекурочил...

Остаётся надеяться только, что пользуясь таким методом, я не организую дырку в запрете доступа человеку-пользователю. :)

Спасибо мне за помощь!)
322
20 апреля
UserNet2008
744 / / 03.04.2010
Вы можете получить доступ к общей папке с помощью uri, например
 
Код:
Dim sh_dir As DirectoryInfo = New DirectoryInfo("\xxx.xxx.xxx.xxx\Out-Shared\")
        For Each fi As FileInfo In sh_dir.GetFiles()
            fi.CopyTo("C:\temp\" + fi.Name)
        Next
57K
06 июля
ЗАРАБОТОК КРИПТОВАЛЮТЫ
204 / / 06.07.2018
____________________
Заработок от 20 000 рублей в день !!!
- Вам нужен готовый, уже настроенный метод заработка?
- Без сложных курсов, в которых вы не можете разобраться.
- Без рутинной работы.
- Без обмана и чтобы деньги были достойные.
- Именно готовый заработок, а не бесполезный курс!
Подробности на сaйте http://mod-servis.ru

____________________
Заработок от 20 000 рублей в день !!!

- Вам нужен готовый, уже настроенный метод заработка?
- Без сложных курсов, в которых вы не можете разобраться.
- Без рутинной работы.
- Без обмана и чтобы деньги были достойные.
- Именно готовый заработок, а не бесполезный курс!
Подробности на сaйте http://mod-servis.ru

____________________

76407

Знаете кого-то, кто может ответить? Поделитесь с ним ссылкой.

Ваш ответ

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог