alecsandrb
Junior Member | Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору В ходе экспериментов с WSH смог сделать следующий скрипт, смысл которог в следующем: в зависимости от пользователя ему подключаются несколько общих и один личный сетевой диск, путь к личному диску прописан в строке <Профиль> и оттуда считывается. На сервере для самого Администратора скрипт работает и все делает, а когда я указываю его в политике домена в автозагрузке (GPO(Defaul Domain Policy)->Конфигурация пользователя->Конфигурация Windows->Сценарии входа\выхода->Вход) то на другом ПК домена при входе любым пользователем домена не срабатывает, по крайней мере дисков после входа нет. После запуска этого скрипта вручную с сервера на рабочей станции получаю такую ошибку: Сценарий: \\domain\netlogon\script.vbs Строка: 18 Символ: 3 Ошибка: Table does not exist Код: 80040E37 Источник: Provider Кто-нибудь может помочь разобраться почему скрипт не срабатывает или же выдает сообщение о ошибке? script.vbs --------------------------------------- Option Explicit Dim oArgs,oDrives,WshNetwork,i, ss, objUser, homepath, username, WshShell dim objConnection, objRecordSet, CommandText, strUsers ' определение текущего UserName Set WshShell = CreateObject("Wscript.Shell") UserName = WshShell.ExpandEnvironmentStrings("%username%") ' получаем distinguishedName для текущего пользователя Set objConnection = CreateObject("ADODB.Connection") objConnection.provider = "ADsDSOObject" objConnection.Open ("Active Directory Provider") ' Запрос информации по учетной записи пользователя CommandText = "Select cn, name, distinguishedName, canonicalName, sAMAccountName" CommandText = CommandText + " from 'LDAP://dc=dom1,dc=dom2,dc=dom3'" CommandText = CommandText + " where sAMAccountName='" + UserName + "'" Set objRecordset = CreateObject("ADODB.Recordset") objRecordset.Open CommandText, objConnection strUsers = objRecordset.fields("distinguishedName").Value ' получаем данные запроса о конкретном пользователе set objUser = GetObject("LDAP://" & strUsers) homepath = objUser.Get("profilePath") ' переменная profilePath = "\\domain\personals\ou1\ou2\$username" ' структура каталогов создана, права на эту папку ($username) - полный доступ ' подключаем сетевые диски для пользователя Set WshNetwork = WScript.CreateObject("WScript.Network") Set oArgs=WScript.Arguments Set oDrives = WshNetwork.EnumNetworkDrives on error resume next WshNetwork.MapNetworkDrive "Y:", homepath WshNetwork.MapNetworkDrive "W:", "\\domain\common" WshNetwork.MapNetworkDrive "Z:", "\\domain\programs" '*** End |