Taille de Dossiers - Access Denied
Bonjour à tous/toutes,
meilleurs voeux pour cette nouvelle année!
J'aimerai réaliser un petit programme permettant de récupérer la taille d'un dossier et de son contenu (ou d'un partition d'ailleurs). Tout fonctionne pour le mieux grâce à cette fonction qui me renvois la taille que je souhaite :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
Public Function GetFolderSize(ByVal dirPath As String, ByVal includeSubFolders As Boolean) As String
Try
Dim Size As Long = 0
Dim diBase As New DirectoryInfo(dirPath)
Dim Files() As FileInfo
If includeSubFolders Then
Files = diBase.GetFiles(("*"), SearchOption.AllDirectories)
Else
Files = diBase.GetFiles(("*"), SearchOption.TopDirectoryOnly)
End If
Dim ie As IEnumerator = Files.GetEnumerator
While ie.MoveNext
Size += DirectCast(ie.Current, FileInfo).Length
End While
Return Size
Catch ex As Exception
GetFolderSize = ("error: " & ex.Message)
End Try
End Function |
Malheureusement lorsque je "scan" une partition contenant des dossiers profils de certains utilisateurs du domaine, j'ai un "access denied" puisque le user en question est le seul à avoir l'accés sur son dossier.
En cherchant à droite et à gauche j'ai pu voir qu'il est possible de se donner d'avantage de droits afin de faire des actions qui normalement ne sont pas permises.
Dans mon cas il semblerait que le privilege "SeBackupPrivilege" me permettrait de lire les informations que je souhaite des dossiers/fichiers non accessibles.
Cette page explique la procédure en C++ :
http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx
Voila un certains temps que je suis sur ce problème sans trouver la solution exacte puisque je ne comprends pas vraiment le principe du Token et sur quoi il s'applique.
Une bonne âme pourrait elle éclairer ma lanterne et m'aider pour la suite? :ccool:
En vous remerciant par avance!! :P
Cz
TreeSize Personnel - Assignation de Privileges
Salut,
merci pour ta réponse Pol mais j'avais déjà essaye de trouver des choses qui pourraient me servir dans l'impersonnification sans en être vraiment satisfait.
J'ai donc poursuivit mes recherches du cote des privilèges, a après plusieurs tentatives infructueuses, j'ai pu enfin parcourir l'intégralité des dossiers auxquelles je n'avais pas accès auparavant.
C'est en tombant sur ce topic que j'ai pu trouver la solution :
http://www.experts-exchange.com/Prog..._25235488.html
En s'octroyant donc certains privileges il est possible de parcourir des chemins
et donc de récupérer les tailles des fichiers/dossiers.
Mon but premier était de faire un petit programme permettant d'afficher les
taille d'une liste de chemins précis : par exemple connaitre la taille en Mo des
dossiers Home d'une cinquantaine d'utilisateur du domaine. Voici de que ca donne :
--->on met les chemins dans un fichier Excel, c:\malist.xls (ou Texte)
--->on choisit le GUI ou on execute la commande:
getfoldersize.exe /path=c:\malist.xls /wsin=1 /clin=1 /subd=no
Et on obtient dans malist.xls, onglet 1, colonne 2, la taille des homes
des cinquante utilisateurs.
Ceci fonctionne également sur un Netapp dans lequel vous n'auriez pas acces
au dossier Prive d'un utilisateur...;)
Voila, voila, si vous voulez tester mon petit GetFolderSize c'est ici :
http://hotfile.com/dl/94369677/1eba3...ze1.2.zip.html
Bon code a vous!!
Cz