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
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
А если мне нужно подключать диски пользователям состоящим в AD группе или структуре, например
ОтветитьУдалитьИМЯ_ДОМЕНА
Имя_Структуры1
Имя_СтруктурыХ
Computers
Contacts
Groups
Servers
Structure
users
так вот в подразделениях Groups и Structure находятся названия соответственно этих самых групп/подразделений, большой разницы через что цеплять (через первые или через вторые) нет, вопрос заключается лишь в том - как? Т.к. каждый отдел/подразделение будут иметь доступ только к конкретным ресурсам сервера.
для этого есть фильтры безопасности в области применения,
Удалитьтакже в 2008 есть Расширение сопоставлений дисков
Конфигурация пользователя
└ Настройка
└ Конфигурация Windows
└Подключение дисков
если я Вас правильно понял.