Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
При сохранении указать логин и пароль доступа к серверу
 
Макросом сохраняю копию текущего файла на сервер.
Как при сохранении явно указать логин и пароль доступа к серверу?

================================
Sub Backup_Active_Workbook()

       ActiveWorkbook.SaveCopyAs Filename:="\\192.168.0.33\X\Пример 1.xlsm"

End Sub
 
кроме как использовать NET USE  через SHELL и использовать пользователя и пароля. После луше сбросить коннект тем же net use
При этом, если к этому серверу уже есть соединение, то подключение под другим пользователем в этой сессии не пройдет. Нужно удалять сперва текущее, что может быть чревато для обычной работы.
 
Совсем с эти незнаком.
А можно чуть поподробнее? Или в виде примера?
 
Доброе время суток.
Цитата
Nel1 написал:
А можно чуть поподробнее? Или в виде примера?
Что за проблема - бан в поисковых системах? NET USE - подключение к общим сетевым ресурсам
 
Вопрос вызывает как использовать эту команду в скрипте?
напрямую? или запустить внешнее приложение (cmd) и далее туда передавать net use?
 
Что-то подобное и ошибки прав доступа или просто отсутствия ресурса я не проверял.
Код
Sub Backup_Active_Workbook()
    Const strNetworkPath = "\\192.168.0.33\X"
    Const strUser = "MyDomain\User"
    Const strPassword = "12345"
    Dim shell As Object
    Dim commandString As String
       
    Set shell = CreateObject("WScript.shell")
    commandString = shell.ExpandEnvironmentStrings("%WINDIR%") & "\system32\net.exe use " & strNetworkPath & " /User:" & strUser & " " & strPassword
    shell.Run (commandString), 0, True
    ' WScript.Sleep 500 может потребоваться, но тогда надо это менять на то, что работает в excel
    ActiveWorkbook.SaveCopyAs Filename:=strNetworkPath & "\Пример 1.xlsm"
    commandString = shell.ExpandEnvironmentStrings("%WINDIR%") & "\system32\net.exe use " & strNetworkPath & " /D"
    shell.Run (commandString), 0, False
    Set shell = Nothing
End Sub
Только вот пароль открытым текстом.

Также с одной стороны правильнее получить  системный путь
Код
Dim objFSO, strWindowsFolder
 Set objFSO = CreateObject("Scripting.FileSystemObject")
 strSystemFolder = objFSO.GetSpecialFolder(1)
а не через переменную окружения и довесок, но смысла особого нет.
Изменено: БМВ - 23 Мар 2018 13:25:03
 
Спасибо,
вникаю и разбираюсь.
 
Не понял что за переменная  pathNetwork. Это тоже что и strNetworkPath?
 
Nel1,  да, это опечатка. Исправил
Страницы: 1
Читают тему (гостей: 1)
Наверх