Wie finden Sie die Kontingentdateien aller Benutzer in einem Windows Server 2003?

2244
Radolino

Ich habe einen Windows Server 2003 R1 mit 150 Benutzern, die einige Ordner auf einer durch Quoten begrenzten Festplatte verwenden. Ich fordere Benutzer auf, alte Dateien zu löschen, aber es kommt vor, dass sie nicht wissen, welche Dateien sie besitzen, um sie zu löschen. Wie kann ich eine Liste mit den pro Benutzer gehörenden Dateien in einem Ordner oder einer Festplatte anzeigen? Gibt es ein Windows-Verwaltungsprogramm, das ich von einem Windows 7 oder 8 oder einem anderen (Linux-) PC verwenden kann, um dies zu erreichen?

3
Hallo Rob, suchst du nach Speicherplatz pro Benutzer (basierend auf den Dateien, die sich im Besitz befinden)? Fazer87 vor 9 Jahren 0
Hallo Fazer87, nein ich suche nach den Dateien, die Teil des Angebots des Benutzers sind. Ich habe die volle Berechtigung, alles zu tun, was ich will, aber ich kann Benutzern nicht helfen, die sehen, dass sie keinen Speicherplatz mehr haben (Quote wird zu 100% verwendet). Normalerweise wissen sie nicht, welche Dateien ihnen gehören, und ich kann ihnen nicht helfen! Radolino vor 9 Jahren 0
Mögliches Duplikat auf Serverfault: http://serverfault.com/questions/195945/how-to-find-files-affecting-your-disk-quota-in-windows-server-2003-or-2008 Thomas Weller vor 9 Jahren 0

2 Antworten auf die Frage

1
harrymc

Eine einfache Möglichkeit, Dateien anzuzeigen und Konten zu besitzen, besteht darin, den -qParameter des dir Befehls in einer Eingabeaufforderung zu verwenden. Eine selektivere Anzeige kann erfolgen über:

dir /q | find "Administrator" 

Um jeden Ordnernamen gefolgt von allen Dateien (falls vorhanden) des Administratorkontos anzuzeigen, leiten Sie den Befehl wie folgt weiter:

dir /q /s | findstr "Administrator Directory" 

Eine andere Lösung ist über den Windows Explorer: Klicken Sie mit der rechten Maustaste auf eine Spalte, und wählen Sie die Anzeige Owner.

Sobald die Spalte Besitzer angezeigt wird, können Sie die Dateien nach dem Eigentümer sortieren. Wenn Sie Dateien auswählen, wird die Gesamtgröße der ausgewählten Dateien im unteren Bereich angezeigt.

Sie können auch nur Dateien anzeigen, die einem Benutzer gehören, indem Sie owner:<user-name>beispielsweise die Abfrage in das Suchfeld (oben rechts) eingeben owner:administrator.

Ich habe versucht, dir / q mit meinem Benutzernamen zu richten, und es wurde nichts gefunden. Auch AccessEnum findet Gruppen und keine Benutzer (oder mir fehlt etwas). Radolino vor 9 Jahren 0
Versuchen Sie 'dir / q' ohne findstr, um den genauen Namen des Kontos zu sehen, das den Besitzer besitzt. Ich habe AccessEnum aus meiner Antwort gelöscht, da nur Dateien angezeigt werden, deren Berechtigungen sich von ihrem übergeordneten Ordner (Sicherheitstool) unterscheiden. Frage: Was ist falsch an der Verwendung von Windows Explorer? Klicken Sie mit der rechten Maustaste auf eine Spalte, und wählen Sie Besitzer anzeigen. harrymc vor 9 Jahren 0
Netter Tipp (die Spalte eins) Ich wusste nicht, dass es existiert! Ich brauche jedoch eine Liste mit den Dateien pro Benutzerkonto. Und dir / q | find "myaccount" gibt nichts zurück. Radolino vor 9 Jahren 0
Es ist nicht möglich, dass "dir / q" nichts zurückgibt. Könnten Sie ein Beispiel für "dir / q" ohne findstr angeben? harrymc vor 9 Jahren 0
es tut. In meinem Stammverzeichnis C: \ Laufwerk, dir / q | find "Benutzername" wird leer zurückgegeben. Radolino vor 9 Jahren 0
Bitte geben Sie den Befehl "dir / q" alleine so ein, wie er hier geschrieben wurde (6 Zeichen), ohne findstr hinzuzufügen. Andernfalls wird die Ausgabe von dir in ein anderes Programm namens findstr geleitet. Findstr ist kein Parameter des Befehls dir, sondern ein separater Befehl. Hinweis: In Windows Explorer können Sie nach Besitzer sortieren und einige Dateien auswählen, um die Gesamtgröße im unteren Bereich anzuzeigen. Sobald Besitzer angezeigt wird, können Sie in das Suchfeld (oben rechts) den Text "owner: administrator" eingeben, um nur Dateien mit diesem Eigentümer anzuzeigen. harrymc vor 9 Jahren 1
Der "Besitzer: Administrator" ist das, wonach ich gesucht habe und das seine Arbeit zu 100% macht. Sie können zu dem gewünschten Ordner navigieren, dieses Tag in die Suchleiste eingeben und Sie erhalten alle Dateien des Benutzers auf einmal! Für die meisten Leute, die Windows verwenden, ist das ein ziemlicher Hacker .... Bitte ändern Sie Ihre Antwort oder senden Sie sie erneut, damit ich sie annehmen kann. Vielen Dank. Radolino vor 9 Jahren 0
0
Fazer87

Dateien in einem Kontingent werden davon bestimmt, wer die Datei besitzt. Die Kontingentnutzung ist die Summe aller Dateien, die dem Benutzer "Domäne \ Benutzername" gehören. Vor diesem Hintergrund kann man am besten feststellen, wer den Speicherplatz missbraucht, wer was in seinem Kontingent hat usw., alle Dateien mit ihrer Größe, ihrem Besitzer und dem zuletzt verwendeten Datum aufzulisten.

Wenn Sie diese Informationen abrufen und nach CSV exportieren, können Sie die Dateien in Excel gruppieren, um zu sehen, was zu groß ist, was zu ungenutzt ist und wer eine Million Dateien mehr hat, als sie sollten.

Als ich eine ähnliche Aufgabe erfüllen musste, verwendete ich das folgende Stück VBS. Dieses Skript fordert Sie zur Eingabe eines Basisordners auf und rekursiert alles darunter. Nach Abschluss wird eine CSV in demselben Ordner erstellt, in dem sich das Skript selbst befindet:

on error resume next  ' Flags for browse dialog Const BIF_returnonlyfsdirs = &H0001 Const BIF_dontgobelowdomain = &H0002 Const BIF_statustext = &H0004 Const BIF_returnfsancestors = &H0008 Const BIF_editbox = &H0010 Const BIF_validate = &H0020 Const BIF_browseforcomputer = &H1000 Const BIF_browseforprinter = &H2000 Const BIF_browseincludefiles = &H4000  Const ForReading = 1 Const ForWriting = 2 Const ForAppending = 8  Set objFSO = CreateObject("Scripting.FileSystemObject") Set objDlg = WScript.CreateObject("Shell.Application") Set objShell = CreateObject("WScript.Shell") Set objNetwork = CreateObject("WScript.Network")   'Get the Source Folder ' Use the BrowseForFolder method. Set objStartFolder = objDlg.BrowseForFolder (&H0, _ "Please select the FOLDER to report on.", BIF_editbox + BIF_returnonlyfsdirs)  ' Here we use TypeName to detect the result. If InStr(1, TypeName(objStartFolder), "Folder") > 0 Then sourceFolder = objStartFolder.ParentFolder.ParseName(objStartFolder.Title).Path Else MsgBox "An error has occured: Unable to read destination folder" End if  'Ask to open the report now or just close strMbox = MsgBox("Are youn sure you want to run the report of: " & sourceFolder & chr(13) & chr(10) & chr(13) & chr(10) & "If you continue this may take an exteneded period of time, a message will be displayed when complete, continue?",4,"Are you sure?")  if strMbox = 6 Then currentScriptPath = Replace(WScript.ScriptFullName, WScript.ScriptName, "")  reportFile = currentScriptPath & "File_Properties_Report.csv"  'OpenTextFile(destination, forwriting, createnew, open as Unicode)  Set objReportFile = objFSO.OpenTextFile(reportFile, ForWriting, True, True)  'Add headers objReportFile.Write("Path, Size(kb), Type, Created, Last Accessed, Last Modified, Owner" & chr(13) & chr(10))  'Run though file report process ReportFiles sourceFolder  'Close the file  objReportFile.Close  'Compete strMbox = MsgBox("Report Complete") End if  Function ReportFiles(currentFolder) Dim objFolder, objFile, fileCollection, folderCollection, subFolder  Set objFolder = objFSO.GetFolder(currentFolder) Set fileCollection = objFolder.Files  For Each objFile In fileCollection  'Get File Properties strFilePath = objFile.Path strFileName = objFile.Name strFileSize = objFile.Size / 1024 strFileType = objFile.Type strFileDateCreated = objFile.DateCreated strFileDateLastAccessed = objFile.DateLastAccessed strFileDateLastModified = objFile.DateLastModified  'Get File owner strFileOwnerDomain = "" strFileOwner = ""  strComputer = "." Set objWMIService = GetObject("winmgmts:" _ & "!\\" & strComputer & "\root\cimv2")  if strFileType <> "Shortcut" or InStr(1,strFileName, "AlbumArt",1) = 0 or InStr(1,strFileName, "£",1) Then Set colItems = objWMIService.ExecQuery ("ASSOCIATORS OF " & " WHERE AssocClass=Win32_LogicalFileOwner ResultRole=Owner")  For Each objItem in colItems strFileOwnerDomain = objItem.ReferencedDomainName strFileOwner = objItem.AccountName Next End If  objReportFile.Write(chr(34) & strFilePath & chr(34) & ", " _ & Round(strFileSize,2) & ", " _ & chr(34) & strFileType & chr(34) & "," _ & strFileDateCreated & "," _ & strFileDateLastAccessed & "," _ & strFileDateLastModified & "," _ & chr(34) & strFileOwnerDomain & "\" & strFileOwner & chr(34) & "," _ & chr(13) & chr(10))  Next  'Loop for each sub folder Set folderCollection = objFolder.SubFolders  For Each subFolder In folderCollection ReportFiles subFolder.Path Next End Function 

Wenn Sie Ihren Benutzern helfen möchten, würde ich dies über Nacht ausführen und dann am nächsten Tag mit einem Benutzer sprechen, um festzustellen, was er reduzieren / entfernen kann.

Wenn Sie nur Informationen für einen bestimmten Benutzer wünschen, können Sie die VBS immer anweisen, nur eine Übereinstimmung zu schreiben, die der folgenden ähnelt:

strTargetUser = "domain\person" if strFileOwnerDomain & "\" & strFileOwner = strTargetUser then objReportFile.Write(chr(34) & strFilePath & chr(34) & ", " _ & Round(strFileSize,2) & ", " _ & chr(34) & strFileType & chr(34) & "," _ & strFileDateCreated & "," _ & strFileDateLastAccessed & "," _ & strFileDateLastModified & "," _ & chr(34) & strFileOwnerDomain & "\" & strFileOwner & chr(34) & "," _ & chr(13) & chr(10))  end if 
Danke für die Antwort, aber wie wird mir das helfen? Sie posten ein paar "VBS" -Codes? Sorry, aber das ist ein bisschen außerhalb des Themas. Ich kann wirklich nicht verstehen, wie mir das helfen wird. Radolino vor 9 Jahren 0
Sie haben gefragt "Wie kann ich eine Liste mit den pro Benutzer gehörenden Dateien in einem Ordner oder einer Festplatte anzeigen?". Führen Sie dies aus und es wird Ihnen diese Ansicht generiert, da sie nicht nativ durch Fenster verfügbar ist! Fazer87 vor 9 Jahren 0
Abgesehen davon gibt es nicht viele gute Werkzeuge, um dies zu tun, außer vielleicht etwas wie Treesize Pro - während dies genau die Informationen liefert, die Sie in einem Format benötigen, mit dem Sie sofort arbeiten können Fazer87 vor 9 Jahren 0
Ich habe Ihren Code als VBS-Datei ausgeführt und nichts wurde gemeldet. Ich brauche den Pfad \ Dateien, die zu jedem Benutzer gehören und sein Kontingent auffressen. Ich weiß auch nicht, ob Bäume das tun, aber ich werde es versuchen (Probe). Radolino vor 9 Jahren 0
Ist dies ein Problem, wenn alle 150 Benutzer einen Ordner freigeben? Joey vor 9 Jahren 0
Es ist kein "Problem", sondern eine Anforderung. Stellen Sie sich vor, die Quote der Nutzer füllt sich und sie fragen: "Kann ich bitte etwas mehr Platz haben?" Die Antwort lautet "Nein, bitte löschen Sie etwas aus Ihren alten Dateien". Und sie antworten "Ich habe keine Dateien, ich habe sie gelöscht". Ich gehe ihre Quote durch und sehe, dass es zu 95% gefüllt ist, und ich kann ihnen nicht helfen, weil es ein riesiges Netzlaufwerk ist, in dem Tausende von Dateien zwischen den Benutzern geteilt werden! Radolino vor 9 Jahren 1