Hello, unfortunately not all of the site is translated into English, or is poorly translated. I apologize and ask you to help me. Notify errors, send me translations, together we will build a free service certainly helpful to many!
| script puntamento risorse condivise LDAP |
|
|
|
| Written by Massimiliano Pasqualoni | |||
| Tuesday, 26 April 2005 10:21 | |||
|
There are no translations available. Il bello di ActiveDirectory è la possibilità di fornire agli utenti appertenenti ad un gruppo uno spazio di collaborazione e di scambio file. Generalmente le autorizzazioni all'accesso in queste aree dipendono dal gruppo di protezione di cui l'utente è membro. In situazioni aziendali dove spesso si cambia di incarico è utile un programma che faccia il puntamento alle risorse condivise in modo automatico, così che, qualora un utente venga spostato da un gruppo all'altro, l'amministratore non deve eliminare la condivisione per ricrearne una nuova. Vedimo come fare: '============================================================= ' Collegamento dischi di rete ' di Massimiliano PASQUALONI ' vers 2.0.1 del 11/10/04 ' massimiliano@pasqualoni.it '============================================================= 'DICHIARO LE SHARE DEGLI APPLICATIVI App_SHARE_1 = "Share_1" App_SHARE_2 = "Share_2" ..... App_SHARE_N = "Share_N" 'DICHIARO I Server SU CUI FARE IL PUNTAMENTOConst USER_SERVER = "USR_SERVER" Const GROUP_SERVER = "GROUP_SERVER" App_SERVER _1 = "APP_SERVER_1" App_SERVER _2 = "APP_SERVER_2" ... App_SERVER _N = "APP_SERVER_N" on error resume next 'DICHIARO LE LABEL PER I DISCHI DI RETE 'il disco USER_PATH andrà a puntare la directory utente condivisa 'il disco GROUP_PATH andrà a puntare la directory del gruppo di appartenenza condivisa App_PATH_1 = "X:" App_PATH_2 = "Y:" ..... App_PATH_N = "Z:" 'istanzio gli oggetti Set WshNetwork = WScript.CreateObject("WScript.Network") 'LIBERO LE LABEL 'Enumero i mapping Set oDrives = WshNetwork.EnumNetworkDrives 'per ogni mapping attivo For i = 0 to oDrives.Count - 1 Step 2 'controllo che non siano già usate le label necessarie if oDrives.Item(i) = USER_PATH or oDrives.Item(i) = App_PATH_1 or oDrives.Item(i) = App_PATH_2 ... or oDrives.Item(i) = App_PATH_N then 'in tal caso rimuovo il mapping per liberare la label WshNetwork.RemoveNetworkDrive oDrives.Item(i) end if Next 'MAPPO IL DISCO DELL'UTENTE 'ricavo il nome dell'utente UserName = wshNetwork.UserName 'leggo la proprietà UserName dell'oggetto Windows Script Host 'costruisco la stringa di connessione USER_DRIVE = "\\" & USER_SERVER & "\" & UserName 'mappo il disco wshNetwork.MapNetworkDrive USER_PATH , USER_DRIVE 'MAPPO I DISCHI APPLICATIVI 'costruisco le stringhe di connessione App_DRIVE_1 = "\\" & App_SERVER_1 & "\" & App_SHARE_1 App_DRIVE_2 = "\\" & App_SERVER_2 & "\" & App_SHARE_2 ..... App_DRIVE_N = "\\" & App_SERVER_N & "\" & App_SHARE_N 'mappo le disco wshNetwork.MapNetworkDrive App_PATH_1 , App_DRIVE_1 wshNetwork.MapNetworkDrive App_PATH_2 , App_DRIVE_2 .... wshNetwork.MapNetworkDrive App_PATH_N , App_DRIVE_N 'MAPPO I DISCHI DI GRUPPO DELL'UTENTE 'creo la connessione Set ADSysInfo = CreateObject("ADSystemInfo") 'ricavo il nome dell'utente Set CurrentUser = GetObject("LDAP://" & ADSysInfo.UserName) 'ricavo i gruppi aMemberOf = CurrentUser.MemberOf 'i gruppi vengono restituite in un rs composto da più elementi, con le rige successive pulisco i gruppi.... if isarray(aMemberOf) then for each gruppi in aMemberOf aGroups = split(gruppi , ",") for each gruppo in aGroups if left(gruppo, 3) = "CN=" then if gruppo <> "CN=Users" then '...fino ad ottenere il nome pulito del gruppo di appartenenza. gruppo = right(gruppo,len(gruppo) - 3) 'RECUPERO LE INFO SUI DISCHI GIà MAPPATI 'Creo un nuovo oggetto di rete Set NewNetwork = WScript.CreateObject("WScript.Network") Set oDrives = NewNetwork.EnumNetworkDrives 'per ogni elemento nella lista delle unità di rete.. For i = 0 to oDrives.Count -1 Step 2 'controllo che esista il mapping if oDrives(i) <> "" then 'metto in memoria la label alredy_label = alredy_label & oDrives(i) & ", " 'metto in memoria il path Mappati= Mappati & oDrives(i + 1) & ", " end if next 'se il gruppo non è nella path dei dischi mappati if InStr(Mappati, gruppo) = 0 then 'genero label GROUP_PATH = "" 'il contatore parte da 90 che in ascii corrisponde alla Z i = 90 'ripeto finchè non torvi una label non utilizzata o finchè non arrivi alla lettera E do while InStr(alredy_label, GROUP_PATH) <> 0 or i < 68 'converto in carattere il contatore label = chr(i) 'costruisco la label GROUP_PATH = label & ":" 'decremento il contatore i = i - 1 loop 'genero la stringa del path GROUP_DRIVE = "\\" & GROUP_SERVER & "\" & gruppo 'mappo gruppo wshNetwork.MapNetworkDrive GROUP_PATH , GROUP_DRIVE 'msgbox GROUP_DRIVE end if end if end if next next else aGroups = split(aMemberOf, ",") for each gruppo in aGroups if left(gruppo, 3) = "CN=" then if gruppo <> "CN=Users" then '...fino ad ottenere il nome pulito del gruppo di appartenenza. gruppo = right(gruppo,len(gruppo) - 3) 'RECUPERO LE INFO SUI DISCHI GIà MAPPATI 'Creo un nuovo oggetto di rete Set NewNetwork = WScript.CreateObject("WScript.Network") Set oDrives = NewNetwork.EnumNetworkDrives 'per ogni elemento nella lista delle unità di rete.. For i = 0 to oDrives.Count -1 Step 2 'controllo che esista il mapping if oDrives(i) <> "" then 'metto in memoria la label alredy_label = alredy_label & oDrives(i) & ", " 'metto in memoria il path Mappati= Mappati & oDrives(i + 1) & ", " end if next 'se il gruppo non è nella path dei dischi mappati if InStr(Mappati, gruppo) = 0 then 'genero label GROUP_PATH = "" 'il contatore parte da 90 che in ascii corrisponde alla Z i = 90 'ripeto finchè non torvi una label non utilizzata o finchè non arrivi alla lettera E do while InStr(alredy_label, GROUP_PATH) <> 0 or i < 68 'converto in carattere il contatore label = chr(i) 'costruisco la label GROUP_PATH = label & ":" 'decremento il contatore i = i - 1 loop 'genero la stringa del path GROUP_DRIVE = "\\" & GROUP_SERVER & "\" & gruppo 'mappo gruppo wshNetwork.MapNetworkDrive GROUP_PATH , GROUP_DRIVE end if end if end if next end if
|
|||
| Last Updated on Friday, 06 May 2005 13:42 |


















































Server