samedi 12 février 2011

Mise en place d'un répertoire utilisateurs privé automapper par GPO dans un domaine ActiveDirectory Windows 2003

Dans un domaine ActiveDirectory, il peut être intéressant de centraliser un certains nombres d'information. Par exemple, les fichiers utilisateurs dispersés au 4 coins de l'entreprise et stocker sur chaque ordinateur complexifient la mise en place d'une sauvegarde efficace. Si les utilisateurs centralisent alors leurs fichiers sur un serveurs de fichiers, il est alors facile de faire une sauvegarde en une fois de l'intégralité des fichiers de tous les utilisateurs.

  • Commencer par créer un répertoire sur votre serveur puis partager le.

  • Ajouter/Modifier les droits NTFS pour le groupe "Utilisateurs du domaine"

  • Voici le source du script à mettre en place.
Ce script crée et place automatiquement les droits NTFS sur le répertoire utilisateur, ainsi on s'affranchie le la fastidieuse création de chaque répertoire. Il crée également un raccourci vers la lettre mappée.

' Version 1.0 - Septembre 2010
' ---------------------------------------------------------'
Option Explicit
Dim intRow, objExcel, objSheet, strPathExcel
Dim objFSO, objShell, intRunError, objNetwork
Dim objUser, CurrentUser
Dim Group
Dim WSHNetworkName


Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objShell = CreateObject("Wscript.Shell")
Set objNetwork = CreateObject("WScript.Network")
Set WSHNetworkName = CreateObject("Shell.Application" )

Dim strUser, strHomeFolder, strHomeUserPath, strHomeUserDriveLetter
strHomeUserPath = "\\DC1\USERSPRIVATE$\"
strHomeUserDriveLetter = "U:"

'Verifier si la lettre de lecteur strHomeUserDriveLetter n'est pas déjà utilisé
' si oui, supprimer le mappage pour mettre le notre
Dim AlreadyConnected, intDrive
Dim CheckDrive
Set CheckDrive = objNetwork.EnumNetworkDrives()
On Error Resume Next
AlreadyConnected = False
For intDrive = 0 To CheckDrive.Count - 1 Step 2
If CheckDrive.Item(intDrive) = strHomeUserDriveLetter _
Then AlreadyConnected = True
Next
If AlreadyConnected = True then
objNetwork.RemoveNetworkDrive strHomeUserDriveLetter, True, True
End if

'récup du login
strUser = objNetwork.UserName

'chemin réseau complet du répertoire persu utilisateurs
strHomeFolder = strHomeUserPath & strUser
If strHomeFolder <> "" Then
If Not objFSO.FolderExists(strHomeFolder) Then
On Error Resume Next
objFSO.CreateFolder strHomeFolder
If Err.Number <> 0 Then
On Error GoTo 0
wscript.Echo "Cannot create: " & strHomeFolder
End If
If objFSO.FolderExists(strHomeFolder) Then
' Assign user permission to home folder.
intRunError = objShell.Run("%COMSPEC% /c Echo Y
cacls " & strHomeFolder & " /t /c /g Administrateurs:f " & strUser & ":f", 2, True)
If intRunError <> 0 Then
Wscript.Echo "Error assigning permissions for user " _
& strUser & " to home folder " & strHomeFolder
End If
End If
Else
' Wscript.Echo "Fichier Exist"
End If
objNetwork.MapNetworkDrive strHomeUserDriveLetter, strHomeFolder
WshNetworkName.NameSpace(""&strHomeUserDriveLetter&"\" ).Self.Name = strUser & " - User Private"
End If
Dim objDesktop, objLink
Dim strAppPath, strWorkDir, strIconPath
' --------------------------------------------------

strWorkDir ="U:"
strAppPath = "U:"
strIconPath = "%SystemRoot%\system32\SHELL32.dll,9"
Set objShell = CreateObject("WScript.Shell")
objDesktop = objShell.SpecialFolders("Desktop")
Set objLink = objShell.CreateShortcut(objDesktop & "\Répertoire Utilisateur.lnk")
'---------------------------------------------------
' Section which adds the shortcut's key properties
objLink.Description = "Répertoire Perso"
objLink.HotKey = "CTRL+SHIFT+X"
objLink.IconLocation = strIconPath
objLink.TargetPath = strAppPath
objLink.WindowStyle = 3
objLink.WorkingDirectory = strWorkDir
objLink.Save

WScript.Quit
' End


  • Créer une GPO sur l'OU de vos utilisateurs pour y appliquer un script au login.

0 commentaires:

Enregistrer un commentaire