MAPPAGE RESEAU:Problème avec mon script
Bonjour,
Le script suivant cherche les lecteurs à mapper selon mon OU et mappe les lecteurs à l'ouverture de session
Donc avec mon script
Code:
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
| 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"),",")
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
Do Until objRecordSet.EOF
'Wscript.Echo "Share Name: " & objRecordSet.Fields("Name").Value
msgbox objRecordSet.Fields("Name").Value
msgbox objRecordSet.Fields("uNCName").Value
Dim oNet
Set oNet = CreateObject("Wscript.Network")
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
MsgBox "Mappage effectué" |
j'ai mes lecteurs qui sont bien mappé mais mon soucis c'est que j'ai ce message qui arrive quand je me reloge
( windows script host):
Script: \\chemin de mon script
Line:36
Char:1
Error: Either BOF or EOF is true, or the current record has been deleted.request operation requires a current record.
Code: 800A0BCD
Source: ADODB.Recordest
Je suis nulle en vbscript, ce n'est pas moi qui l'ai fait mais on m'a dit que je peux oté les msgbox j'en ai oté et depuis j'ai ce message à l'ouverture de session.
( windows script host):
Script: \\chemin de mon script
Line: 41
Char:1
Error: the local device name is already in use
Code: 80070055
Source: WSHNetwork.MapNetworkDrive
et voici le nouveau script qui me donne le message d'erreur ci dessus:
Code:
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
| 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"),",")
For i=1 to UBound(Tab)
If i = Ubound(Tab) Then
DN = DN + Tab(i)
Else
DN = DN + Tab(i) + ","
End If
Next
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
Do Until objRecordSet.EOF
Dim oNet
Set oNet = CreateObject("Wscript.Network")
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 |
Je souhaiterai enlever toutes les msgbox, puisque le script fonctionne tous mes lecteurs sont mappés et j'y ai accès correctement