Exporter liste user pour revue des droits

Fermé
smake - 9 juil. 2009 à 12:10
 smake - 15 juil. 2009 à 10:57
Bonjour,

Depuis peu je dois fair une revue des droits d'accès donc une fois par an je dois envoyer la liste des utilisateurs à chaque propriétaire des répertoires.

J'aimerais savoir si parmis vous une personne à déjà fait cela et si c'est le cas je souhaiterais de l'aide de ça part.

Merci d'avance si vous souhaitez plus d'information que j'aurais oublié faites moi signe merci encore.

7 réponses

shetan Messages postés 611 Date d'inscription lundi 4 mai 2009 Statut Membre Dernière intervention 19 août 2009 62
9 juil. 2009 à 12:24
Ceci pourra peut être t'aider si j'ai à peu près compris ton problème :
http://www.laboratoire-microsoft.org/articles/win/csvde/
0
Merci pour la réponse si rapide.

Je pense que ceci va m'aider, il ne me reste plus qu'à tester.


Merci encore
0
jjsteing Messages postés 1669 Date d'inscription vendredi 11 mai 2007 Statut Contributeur Dernière intervention 21 mai 2012 181
9 juil. 2009 à 16:20
c'est sur un reseau AD (Active Directory) ??

Si c est le cas, voila mon script qui peut lui aussi t etre utile ;)

'*******Determin Active Directory Account Information by binding to the user object in AD***********

' Constants for the NameTranslate object.

Const ADS_NAME_INITTYPE_DOMAIN = 1
Const ADS_NAME_TYPE_NT4 = 3
Const ADS_NAME_TYPE_1179 = 1

Dim Filesystem
Dim InPutFile
Dim arrname

Dim clPrinters
Dim strPrinterName
Dim printer_file

Dim network_share_file
Dim strNetworkShare
Dim strDriveLetter
Dim clshares

'Dim objRootDSE

On Error Resume Next


Set objNetwork = CreateObject("Wscript.Network")

'Retrieve Computer Name
strComputerName = objNetwork.ComputerName

' Retrieve user NT logon name.
strNTName = objNetwork.UserName

' Determine DNS domain name from RootDSE object.
Set objRootDSE = GetObject("LDAP://RootDSE")
strDNSDomain = objRootDSE.Get("defaultNamingContext")

' Use the NameTranslate object to find the NetBIOS domain name from the
' DNS domain name.
Set objTrans = CreateObject("NameTranslate")
objTrans.Init ADS_NAME_TYPE_NT4, strDNSDomain
objTrans.Set ADS_NAME_TYPE_1179, strDNSDomain
strNetBIOSDomain = objTrans.Get(ADS_NAME_TYPE_NT4)
' Remove trailing backslash.
strNetBIOSDomain = Left(strNetBIOSDomain, Len(strNetBIOSDomain) - 1)

' Use the NameTranslate object to convert the NT user name to the
' Distinguished Name required for the LDAP provider.
objTrans.Init ADS_NAME_INITTYPE_DOMAIN, strNetBIOSDomain
objTrans.Set ADS_NAME_TYPE_NT4, strNetBIOSDomain & "\" & strNTName
strUserDN = objTrans.Get(ADS_NAME_TYPE_1179)

' Bind to the user object in Active Directory with the LDAP provider.
Set objUser = GetObject("LDAP://" & strUserDN)

'msgbox "strUserDN = " & strUserDN
'msgbox "objUserName = " & objUserName

'msgbox "objUser.distinguishedName = " & objUser.distinguishedName

'msgbox "objUser.Country=" & objUser.countryCode



' Display various names.

'************** Find current time and date and display login prompt****************************

On Error Resume Next

strComputer = "."

Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_LocalTime")

For Each objItem in colItems
intMonth = objItem.Month
intDay = objItem.Day
intYear = objItem.Year

dtmDate = intMonth & "/" & intDay & "/" & intYear

intHour = objItem.Hour
dim Txt1(2),Txt2(2),Txt3(2),Txt4(2),Txt5(2),Txt6(2),Txt7(2),Txt8(2),Txt9(2)

If intHour < 12 Then

Txt1(0) = "Good morning"
Txt1(1) = "Bonjour"

ElseIf intHour => 12 And intHour < 18 Then

Txt1(0) = "Good afternoon"
Txt1(1) = "Bon aprs-midi"

ElseIf intHour > 18 Then

Txt1(0) = "Good evening"
Txt1(1) = "Bonsoir"

End If

intMinutes = objItem.Minute
If intMinutes < 10 Then
intMinutes = "0" & intMinutes
End If

intSeconds = objItem.Second
If intSeconds < 10 Then
intSeconds = "0" & intSeconds
End If

dtmTime = intHour & ":" & intMinutes & ":" & intSeconds
Next

'Langue de l utilisateur
indice=0
if objUser.countryCode = 250 then
indice=1
end if

'Texte afficher
Txt2(0) = " and welcome to the GIAT-EAU Network."
Txt2(1) = " et bienvenue sur le rseau GIAT-EAU."

Txt3(0) = "You are logging into computer "
Txt3(1) = "Vous tes logu sur l'ordinateur "

Txt4(0) = "The current date and time is: "
Txt4(1) = "La date et l'heure actuelle sont : "

Txt5(0) = "Please note that all system usage is monitored and that by clicking OK below, you"
Txt5(1) = "Veuillez noter que toute utilisation du systme est control et qu'en cliquant OK ci-dessous"

Txt6(0) = "confirm that you understand & accept this as part of the GIAT-EAU IT User Policy."
Txt6(1) = "vous confirmez que vous comprennez et acceptez entirement la charte utilisateur GIAT-EAU."

Txt7(0) = "Please note that this policy is subject to periodic update and you are advised"
Txt7(1) = "Veuillez noter que cette charte peut tre assujetie des changements et que vous devez"

Txt8(0) = "to refresh yourselves with the contents of the policy on a regular basis."
Txt8(1) = "vous mme vous informer de son contenu rgulirement."

Txt9(0) = "A copy of the IT User Policy can be found in:"
Txt9(1) = "Une copie de cette charte est disponible sur :"

'Envoie du message
MsgBox (Txt1(indice) & " " & objUser.givenName & " " _
& objUser.sn & Txt2(indice) _
& vbCRLF _
& vbCRLF & Txt3(indice) & strNetBIOSDomain _
& "\" & strComputerName & "." & vbCRLF _
& vbCRLF & Txt4(indice) & dtmDate & " " & dtmTime _
& vbCRLF & vbCRLF _
& Txt5(indice) _
& vbCRLF & Txt6(indice) _
& vbCRLF & Txt7(indice) _
& vbCRLF & Txt8(indice) _
& vbCRLF _
& vbCRLF & Txt9(indice) _
& vbCRLF & "U:\ disposition\Procdures informatique\EAU Exigences de scurit.doc")

'Suppression des anciens lecteurs
objNetwork.RemoveNetworkDrive "Q:", True, True
objNetwork.RemoveNetworkDrive "R:", True, True
objNetwork.RemoveNetworkDrive "S:", True, True
objNetwork.RemoveNetworkDrive "T:", True, True
objNetwork.RemoveNetworkDrive "U:", True, True
objNetwork.RemoveNetworkDrive "V:", True, True

'Ajout des lecteurs communs
objNetwork.MapNetworkDrive "Q:", "\\srv\Applications"
objNetwork.MapNetworkDrive "S:", "\\srv\Scanner"
objNetwork.MapNetworkDrive "U:", "\\srv\users"
objNetwork.MapNetworkDrive "V:", "\\srv\userb"

'Ajout des imprimantes communes
objNetwork.AddWindowsPrinterConnection "\\srv\ImpHermes"
objNetwork.AddWindowsPrinterConnection "\\srv\Kyocera"
objNetwork.AddWindowsPrinterConnection "\\PcImprimante\HP_A3_Couleur"

'Ajouts des imprimantes et lecteurs spcifiques
arrMembersOf = objUser.GetEx("memberOf")

For Each strMemberOf in arrMembersOf
LGrp = LCase(right(strMemberOf,len(strMemberOf) -3))
LGrp = left(LGrp,InStr(LGrp,",cn") -1 )

Select case (LGrp)
Case "rav":
objNetwork.AddWindowsPrinterConnection "\\srv\ImpRav"
Case "flux":
objNetwork.AddWindowsPrinterConnection "\\srv\ImpFlux"
Case "dg":
objNetwork.AddWindowsPrinterConnection "\\srv\ImpDG"
Case "rh":
objNetwork.AddWindowsPrinterConnection "\\srv\ImpRH"
objNetwork.AddWindowsPrinterConnection "\\srv\ImpTahsin"
Case "btq":
objNetwork.AddWindowsPrinterConnection "\\srv\ImpBTQ"
Case "contrat eau":
objNetwork.MapNetworkDrive "R:", "\\srv\Ressource"
Case "compta":
objNetwork.MapNetworkDrive "T:", "\\Srvsage\soc001"
objNetwork.AddWindowsPrinterConnection "\\srv\ImpCompta"
Case "admins du domaine":
objNetwork.AddWindowsPrinterConnection "\\srv\ImpBTQ"
objNetwork.AddWindowsPrinterConnection "\\srv\ImpRH"
objNetwork.AddWindowsPrinterConnection "\\srv\ImpDG"
objNetwork.AddWindowsPrinterConnection "\\srv\ImpFlux"
objNetwork.AddWindowsPrinterConnection "\\srv\ImpRav"
objNetwork.MapNetworkDrive "R:", "\\srv\Ressource"
objNetwork.MapNetworkDrive "T:", "\\Srvsage\soc001"
end select

Next

'Vrification Outlook
set fs = CreateObject("Scripting.FileSystemObject")
nRep = "d:\donnees\outlook"
set MonRep = fs.GetFolder(nRep)
for each oFile in MonRep.files
if lcase(right(oFile.path,3)) = "pst" and (oFile.Size / 1024 /1024) > 1024 then
msgbox "Votre fichier outlook " & oFile.path & " est bien trop important " & round(oFile.Size / 1024 /1024) _
& " Mo." & vbCRLF & "Veuillez contacter l'administrateur de votre systme."
end if
next
set ColFiles = nothing
set MonRep = nothing
set fs = nothing

'Suppression des imprimantes de l ancien rseau
Set oPrt = objNetwork.EnumPrinterConnections
For i = 0 to oPrt.Count - 1 Step 2
If lcase(Left (oPrt.Item(i+1), 7)) = "\\srv1\" Then
objNetwork.RemovePrinterConnection oPrt.Item(i+1)
End If
next

if indice =0 then
Msgbox "Your computer is ready. Thanks."
else
Msgbox "Votre ordinateur est prt. Merci."
End if
0
JeromeTechie Messages postés 97 Date d'inscription lundi 22 juin 2009 Statut Membre Dernière intervention 11 juillet 2011 5
9 juil. 2009 à 16:24
Environement AD?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
shetan Messages postés 611 Date d'inscription lundi 4 mai 2009 Statut Membre Dernière intervention 19 août 2009 62
9 juil. 2009 à 16:26
Active Directory
0
jjsteing Messages postés 1669 Date d'inscription vendredi 11 mai 2007 Statut Contributeur Dernière intervention 21 mai 2012 181
9 juil. 2009 à 16:29
Ben decortique mon code... je sais il est un peu long, et comme je bosse dans une boite internationnale, je gere du francais et de l anglais.. mais ca donne des idees supplémentaires ;)

@++
0
Désoler du retard dans ma réponse.

Oui c'est un environement AD avec windows Server 2003.

Je vais décortiquer ton code et encore merci bcpppppppp.
0