powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Проверка учётной записи
1 сообщений из 1, страница 1 из 1
Проверка учётной записи
    #35695544
marinius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте. У меня Access 2003. Хочу через код VBA копировать из локальной папки на компьютер в сети файлы, но для этого прежде мне нужно проверить проходит ли имя пользователя и пароль. Допустим, есть 2-е коллекции: имён польз-ей и паролей, которые друг с другом нужно перепробовать. Проблем с копированием не возникает, когда я использую одно имя польз. и один пороль. А сам код реализую примерно так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
 1 :   Dim UserPC As New Collection 'Коллекции имён пользователей
 2 :   Dim PassPC As New Collection 'Коллекция паролей
 3 :   Dim FSO
 4 :   Dim WshShell As Object   'Подключаем библиотеку C:\winnt\system32\wshome.ocx

 5 :   Set WshShell = CreateObject("WScript.Shell")    'Создание объекта командной строки

 6 :   Call UserPC.Add("Administrator", "User")
 7 :   Call PassPC.Add("12345", "678912")
 8 :   q = "q1.q2."
 9 :   strSrcPath = "D:\folderName"  'Путь на локальной машине, откуда будут копироваться файлы
 10 : strDestShare = "C$"                 'Пункт назначения: папка
 11 : srtDevLetter = "X:"                 'Имя подсоединяемого сетевого диска
 12 : 'strDestPC -                        'Пункт назначения: IP-адрес (куда)
 13 : 'strDestUser -                      'Пункт назначения: имя пользователя
 14 : 'strDestPass -                      'Пункт назначения: пароль

 15 : For i = n1 To n2
 16 :    For j =  1  To  254 
 17 :       For k =  1  To UserPC.Count
 18 :          For l =  1  To PassPC.Count
 19 :             strDestUser = UserPC(k)
 20 :             strDestPass = PassPC(l)
 21 :             strDestPC = q & CStr(i) & "." & CStr(j)
        
'Пингуем компьютер с полученным IP адресом ' некая процедура...
 22 : If Alive(strDestPC) = False Then 'не пингуется
       ... 
 23 : Else
 24 :   WshShell.Run ("net use " & srtDevLetter & " \\" & strDestPC & "\" & strDestShare & " " & strDestPass & " /USER:" & strDestUser)
 25 :   'WScript.Echo Err.Number & " " & Err.Description 'Object reqired выдаёт ошибку
 26 :   Sleep  3000 
 27 :   Set FSO = CreateObject("Scripting.FileSystemObject")
 28 :   Sleep  3000 
 29 :   Source = strSrcPath & "\*.*"
 30 :   Target = srtDevLetter & "\"
 31 :   Call FSO.CopyFile(Source, Target)   'Копирует по сети (откуда/куда)
 32 : End If
 33 :         Next
 34 :       Next
 35 :     Next
 36 : Next
 37 : WshShell.Run ("net use " & srtDevLetter & " /DELETE")       'Удаляет сетевое подключение
 38 : MsgBox "Операция завершена. Проверьте список непингуемых машин C:\LogFaildIP"

На строчке 24 выдаёт ошибку, что неверный путь, хотя дело в том, что не проходит учётка. Мне бы хотелось отловить ошибку выводимую на консоль и только в случае успешной авторизации двигаться дальше, как это сделать?
В Access подключены библиотеки: Windows Script Host (ver. 5.6) и Microsoft WMI Scripting v.1.2 Library. Заранее спасибо тем, кто откликнется по теме.
...
Рейтинг: 0 / 0
1 сообщений из 1, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Проверка учётной записи
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]