Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Старожил


Сообщения: 150
Благодарности: 9

Профиль | Отправить PM | Цитировать


Telepuzik, Group Policy Infrastructure, Registry, Scripts - везде success. Похоже, что если зайти под другим пользователем, юзер всё же становится админом, т.к. делать можно всё. Однако диски не мапятся и по RDP проблемы.
ko4evneg, Ошибок нет. Скрипт ниже.
Код: Выделить весь код
 ' Позволяет подключать различные папки, в зависимости от групп безопасности, 
 ' к которым принадлежит пользователь. Настройка параметров - отредактировать 
 ' элеметы массива arrShares: "ИмяГруппы", "БукваДиска", "ПутьКОбщейПапке". 
 ' Если имя группы "", то ресурс подключается всем пользователям.
 '========================================================================= 

 ' Допустимо использовать русские буквы и пробелы в элементах массива. 
 ' X - Общая папка
  '
 arrShares = Array ("", "X:","\\W2k3R2\Folder$\Share") 

 '------------------------------------------------------------------------- 
 Set objWshShell = WScript.CreateObject("WScript.Shell") 
 Set objNetwork  = WScript.CreateObject("Wscript.Network") 
 Set objSysInfo  = WScript.CreateObject("ADSystemInfo") 
 '------------------------------------------------------------------------- 
 strUserDN = objSysInfo.userName 
 Set objUser = GetObject("LDAP://" & strUserDN) 
 '------------------------------------------------------------------------- 

 lngSharesCounter = UBound(arrShares) 

 If (((UBound(arrShares) + 1) / 3) = Fix ((UBound(arrShares) + 1) / 3)) And  lngSharesCounter > 0 Then 
    'Количество элементов массива д.б. кратно 3 
     
    For lngI = 0 To lngSharesCounter Step 3 
       strShareGroup  = arrShares (lngI) 
       strShareLetter = arrShares (lngI + 1) 
       strSharePath   = arrShares (lngI + 2) 

       If strShareGroup  = "" Then 
          fMap = True 
       Else 
          fMap = IsMember (strShareGroup) 
       End If 
        
       If fMap Then 
          On Error Resume Next 
          objNetwork.MapNetworkDrive strShareLetter, strSharePath 
       End If 
    Next 
 Else 
    MsgBox "Ошибки в описании параметров массива в скрипте 'mapdrives.vbs'. Пожалуйста сообщите об этой ошибке администратору сети." 
 End If 

 '------------------------------------------------------------------------- 
 Function IsMember(strGroup) 
 ' Function to test one user for group membership. 
 ' objUser is the user object with global scope. 
 ' strGroup is the NT Name of the group to test. 
 ' objGroupList is a dictionary object with global scope. 
 ' Returns True if the user is a member of the group. 

   Dim objGroup 
   
   If IsEmpty(objGroupList) Then 
     Set objGroupList = CreateObject("Scripting.Dictionary") 
     objGroupList.CompareMode = vbTextCompare 
     For Each objGroup In objUser.Groups 
       objGroupList(objGroup.sAMAccountName) = True 
     Next 
   End If 
   
   IsMember = objGroupList.Exists(strGroup) 
 End Function 
 '-------------------------------------------------------------------------

Отправлено: 09:29, 29-07-2016 | #6