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 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92
| 'Group Drive Mappings Script
Const HKEY_CURRENT_USER = &H80000001
Dim WshNetwork, WshShell
Dim oDrives, fUser, fDomain, oGroupDict
Dim ScriptLogName
ScriptLogName = "_LoginScript.log"
Set WshNetwork = WScript.CreateObject("WScript.Network")
Set WshShell = WScript.CreateObject("WScript.Shell")
Set oDrives = WshNetwork.EnumNetworkDrives
'Set fso = WScript.CreateObject("Scripting.FileSystemObject")
'Set inputFile = fso.OpenTextFile(fTMP & "\" & ScriptLogName, 2, True)
fTMP = WshShell.ExpandEnvironmentStrings("%TEMP%")
WshShell.ExpandEnvironmentStrings("%COMPUTERNAME%")
'WriteLog(Now() & ": ****** Start Login Script ******")
fUser = WshNetwork.UserName
fDomain = WshNetwork.UserDomain
'****** Group Drives ******
'WriteLog("Starting personal drive mapping")
MapDrive "P:", "\\snoopy\" & wshNetwork.Username
'WriteLog("Starting Group Script Area")
if isMember("eqp-gestion") then
MapDrive "G:", "\\snoopy\Gestion"
end if
'***** use elseif for mapping multiple groups to the same share*******
'if isMember("IT Infrastructure") then
'MapDrive "S:", "\\server\it"
'elseif isMember("Helpdesk Staff") then
'MapDrive "S:", "\\server\it"
'elseif isMember("Data Services") then
'MapDrive "S:", "\\server\it"
'end if
'WriteLog("Ending Group Script Area")
'WriteLog(Now() & ": ****** Login Script Complete ******")
'WriteLog("")
Function IsMember(sGroup)
Dim sAdsPath, oUser, oGroup
If IsEmpty(oGroupDict) Then
Set oGroupDict = CreateObject("Scripting.Dictionary")
oGroupDict.CompareMode = vbTextCompare
sAdsPath = WshNetwork.UserDomain & "/" & WshNetwork.UserName
Set oUser = GetObject("WinNT://" & sAdsPath & ",user")
For Each oGroup In oUser.Groups
oGroupDict.Add oGroup.Name, "-"
Next
Set oUser = Nothing
End If
IsMember = CBool(oGroupDict.Exists(sGroup))
if (IsMember) then
'WriteLog(Now() & " User is member of " & sGroup)
end if
End Function
Sub MapDrive(sLetter,sUNC)
Dim oNetwork
Set oNetwork = WScript.CreateObject("WScript.Network")
For i = 0 to oDrives.Count -1 Step 2
if LCase(sLetter) = LCase(oDrives.Item(i)) then
oNetwork.RemoveNetworkDrive sLetter, true, true
'WriteLog(Now() & ": Removed drive """ & sLetter & """ from share """ & sUNC & " (already connected) " & "")
end if
Next
oNetwork.MapNetworkDrive sLetter,sUNC
If Err.Number = 0 Then
'WriteLog(Now() & ": Connect """ & sLetter & """ to share """ & sUNC & """")
else
'WriteLog(Now() & ": Failed to Connect """ & sLetter & """ to share """ & sUNC & """")
end if
on error goto 0
End Sub
sub WriteLog(strEntry)
inputFile.WriteLine(strEntry)
End Sub |
Partager