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 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169
| Dim WshShell
Dim objNet
Dim objRootDSE
Dim Tab
Dim DN
Dim i
Dim strComputer
DN = ""
Set WshShell = WScript.CreateObject("WScript.Shell")
Set objNet = WScript.CreateObject("WScript.Network")' create network object for vars
Set objRootDSE = GetObject("LDAP://rootDSE")' bind to the rootDSE for portability
strADsConfPath = "LDAP://" & objRootDSE.Get("configurationNamingContext")' bind to configuration to get Domain Controllers later
strRootDSE = objRootDSE.Get("defaultNamingContext")' bind to the defaultContext for portability
strUserName = UCase(objNet.UserName)' pull user name from environment variable
Tab = Split(GetDNUser(strUserName,"person"),",")
Set WshNetwork = WScript.CreateObject("WScript.Network")
For i=1 to UBound(Tab)
If i = Ubound(Tab) Then
DN = DN + Tab(i)
Else
DN = DN + Tab(i) + ","
End If
Next
'MsgBox DN
Const ADS_SCOPE_SUBTREE = 2
Set objConnection = CreateObject("ADODB.Connection")
Set objCommand = CreateObject("ADODB.Command")
objConnection.Provider = "ADsDSOObject"
objConnection.Open "Active Directory Provider"
Set objCommand.ActiveConnection = objConnection
objCommand.CommandText = "Select Name, unCName, ManagedBy from " _
& "'LDAP://"&DN&"' where objectClass='volume'"
objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE
Set objRecordSet = objCommand.Execute
objRecordSet.MoveFirst
Dim oNet
Set oNet = CreateObject("Wscript.Network")
Do Until objRecordSet.EOF
'Wscript.Echo "Share Name: " & objRecordSet.Fields("Name").Value
'msgbox objRecordSet.Fields("Name").Value
'msgbox objRecordSet.Fields("uNCName").Value
On Error Resume next
oNet.RemoveNetworkDrive objRecordSet.Fields("Name").Value,True,True
On Error Goto 0
oNet.MapNetworkDrive objRecordSet.Fields("Name").Value, objRecordSet.Fields("uNCName").Value
objRecordSet.MoveNext
Loop
Function GetDNUser(param1,param2)
Set objDSE = GetObject("LDAP://rootDSE")
ON ERROR RESUME NEXT
Set objConnection = CreateObject("ADODB.Connection")
objConnection.Open "Provider=ADsDSOObject;"
Set objCommand = CreateObject("ADODB.Command")
objCommand.ActiveConnection = objConnection
objCommand.CommandText = "SELECT distinguishedName, Sn " & "FROM 'LDAP://" & objDSE.Get("defaultNamingContext") & "' " & "WHERE objectCategory='" & param2 & "' AND sAMAccountName='" & param1 & "' " & "ORDER BY sAMAccountName"
Set objRecordSet = objCommand.Execute
GetDNUser = objRecordSet.Fields("distinguishedName")
objConnection.Close
if err.number <> 0 then
'msgbox "ERREUR: le nom renseigné n'existe pas dans l'AD.",16,Wscript.ScriptName & " " & version
ERR.CLEAR
wscript.quit
end if
End Function
set WshShell = CreateObject("WScript.Shell")
Set WshNetwork = WScript.CreateObject("WScript.Network")
if WshShell.ExpandEnvironmentStrings("%OS%") <> "Windows_NT" then
WshShell.Run "COMMAND.EXE /C NET TIME \\BTW-USER1 /SET /Y >NUL:"
DomainName=WshShell.RegRead("HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\MSNP32\NetworkProvider\AuthenticatingAgent")
Set UserObj = GetObject("WinNT://" & DomainName & "/" & WshNetwork.username)
'msgbox (UserObj.homeDrive)
'msgbox (UserObj.HomeDirectory)
else
DomainName=WshShell.ExpandEnvironmentStrings("%USERDOMAIN%")
Set UserObj = GetObject("WinNT://" & DomainName & "/" & WshNetwork.username)
end if
'wscript.echo "Bonjour "&WshNetwork.username&" connecté sur "&WshNetwork.computername
'Init Groups
Dim UserGroups
Dim GroupObj
UserGroups=""
For Each GroupObj In UserObj.Groups
UserGroups=UserGroups & "[" & GroupObj.Name & "]"
Next
'wscript.echo "Membre de "&UserGroups
if InGroup("Nom du groupe") Then
On Error Resume next
oNet.RemoveNetworkDrive objRecordSet.Fields("Name").Value,True,True
WshNetwork.MapNetworkDrive "Z:","\\mon serveur\mon partage"
On Error Goto 0
End if
if InGroup("Nom du groupe") Then
On Error Resume next
oNet.RemoveNetworkDrive objRecordSet.Fields("Name").Value,True,True
WshNetwork.MapNetworkDrive "K:","\\mon serveur\mon partage"
On Error Goto 0
End If
if InGroup("Nom du groupe") Then
On Error Resume next
oNet.RemoveNetworkDrive objRecordSet.Fields("Name").Value,True,True
WshNetwork.MapNetworkDrive "P:","\\mon serveur\mon partage"
On Error Goto 0
End If
if InGroup("Nom du groupe") Then
On Error Resume next
oNet.RemoveNetworkDrive objRecordSet.Fields("Name").Value,True,True
WshNetwork.MapNetworkDrive "V:","\\mon serveur\mon partage"
On Error Goto 0
End if
if InGroup("Nom du groupe") Then
On Error Resume next
oNet.RemoveNetworkDrive objRecordSet.Fields("Name").Value,True,True
WshNetwork.MapNetworkDrive "V:","\\mon serveur\mon partage"
On Error Goto 0
End if
'
Function InGroup(strGroup)
InGroup=False
If InStr(UserGroups,"[" & strGroup & "]") Then
InGroup=True
End If
End Function
'MsgBox "Mappage effectué" |
Partager