понедельник, 26 марта 2012 г.

Подключение сетевых дисков через GPO

1й вариант: Через файл netdisks.bat

REM все
net use t: /delete
net use t: \\dc-1\day_drive
REM IT
IF INGROUP("Asup.all")
  net use L: /delete
  net use L: \\dc-1\G$\IT
ENDIF


2й вариант. Через скрипт MapDrv.vbs .
'========================================================================== 

' VBScript Source File 

' NAME: MapDrivesInGroup.vbs

' AUTHOR: SergeyCVS 

' COMMENT: Подключение сетевых дисков на основе групп с записью ошибок в EventLog 

'========================================================================== 

Option Explicit 
'On Error Resume Next 

Dim WshShell, WshNetwork 
Dim strUserDN, objSysInfo, GroupObj, UserGroups, UserObj

UserGroups=""   


Set WshShell = WScript.CreateObject("WScript.Shell") 
Set objSysInfo = CreateObject("ADSystemInfo") 

strUserDN = objSysInfo.userName 

Set UserObj = GetObject("LDAP://" & strUserDN) 

For Each GroupObj In UserObj.Groups   
        UserGroups=UserGroups & "[" & GroupObj.Name & "]"   
Next   

'MsgBox "Member of "& UserGroups   

if InGroup("asup.all") then   
        MapDrv "L:", "\\DC-1\G$\IT" 
end if 

if InGroup("Пользователи домена") then   
        MapDrv "T:", "\\DC-1\DAY_DRIVE" 
end if 


'========================================================================== 

' Function MapDrv(DrvLet, UNCPath) 

' DrvLet -  Буква устройства 
' UNCPath - Сетевой путь 

' COMMENT: Подключение сетевых дисков с записью ошибок в EventLog 

'========================================================================== 


Function MapDrv(DrvLet, UNCPath) 

    Dim WshNetwork,objFSO          ' Object variable 
    Dim Msg 

    Set WshNetwork = WScript.CreateObject("WScript.Network") 
    Set objFSO = CreateObject("Scripting.FileSystemObject")

    On Error Resume Next 

    If objFSO.DriveExists(DrvLet) Then 
        WshNetwork.RemoveNetworkDrive DrvLet 
    End If

    WshNetwork.MapNetworkDrive DrvLet, UNCPath 
    
    Select Case Err.Number 
        Case 0            ' No error 

        Case -2147023694 
            WshNetwork.RemoveNetworkDrive DrvLet 
            WshNetwork.MapNetworkDrive DrvLet, UNCPath 
              
        Case -2147024811 
            WshNetwork.RemoveNetworkDrive DrvLet 
            WshNetwork.MapNetworkDrive DrvLet, UNCPath 

        Case Else 

            Msg = "Mapping network drive error: " & _ 
                   CStr(Err.Number) & " 0x" & Hex(Err.Number) & vbCrLf & _ 
                  "Error description: " & Err.Description & vbCrLf 
            Msg = Msg & "Domain: " & WshNetwork.UserDomain & vbCrLf 
            Msg = Msg & "Computer Name: " & WshNetwork.ComputerName & vbCrLf 
            Msg = Msg & "User Name: " & WshNetwork.UserName & vbCrLf & vbCrLf 
            Msg = Msg & "Device name: " & DrvLet & vbCrLf 
            Msg = Msg & "Map path: " & UNCPath 

            WshShell.LogEvent 1, Msg, "\\SRV"
    End Select 
End Function


'========================================================================== 

' Function InGroup(strGroup)

' strGroup - группа, принадлежность к которой проверяем

' COMMENT: проверка принадлежности пользователя к группе

'========================================================================== 

Function InGroup(strGroup)   
        InGroup=False   
        If InStr(UserGroups,"[CN=" & strGroup & "]") Then   
                InGroup=True   
        End If   
End Function

3й вариант. Возможен в 2008 через Сопоставление дисков
Конфигурация пользователя
└ Настройка
└ Конфигурация Windows
└Подключение дисков
http://blogs.technet.com/b/askds/archive/2009/01/07/using-group-policy-preferences-to-map-drives-based-on-group-membership.aspx

2 комментария:

  1. А если мне нужно подключать диски пользователям состоящим в AD группе или структуре, например

    ИМЯ_ДОМЕНА
    Имя_Структуры1
    Имя_СтруктурыХ
    Computers
    Contacts
    Groups
    Servers
    Structure
    users

    так вот в подразделениях Groups и Structure находятся названия соответственно этих самых групп/подразделений, большой разницы через что цеплять (через первые или через вторые) нет, вопрос заключается лишь в том - как? Т.к. каждый отдел/подразделение будут иметь доступ только к конкретным ресурсам сервера.

    ОтветитьУдалить
    Ответы
    1. для этого есть фильтры безопасности в области применения,
      также в 2008 есть Расширение сопоставлений дисков

      Конфигурация пользователя

      └ Настройка

      └ Конфигурация Windows

      └Подключение дисков

      если я Вас правильно понял.

      Удалить