Finden Sie Benutzer, die mit einer Netzwerkfreigabe verbunden sind

18

Auf meinem Windows 2008 Server habe ich eine Netzwerkfreigabe. Ich bin mit vollen Administratorrechten am Server angemeldet. Ich möchte wissen, welche Benutzer aktive Verbindungen zu dieser Freigabe haben.

Wie finde ich diese Informationen?

Mark Arnott
quelle

Antworten:

24

Ich weiß, ob es zwei Möglichkeiten gibt, dies zu tun. Man ist unzuverlässig, aber wahrscheinlich gut genug für die meisten Szenarien. Eine davon ist umfangreich, aber in einem Umfang, der eine Handvoll Benutzerverbindungen übersteigt, schwer zu implementieren.

Auf eine Art und Weise sortieren: Wählen Sie Systemprogramme >> Freigegebene Ordner >> Dateien öffnen, um zu sehen, welche Dateien auf dem Dateiserver geöffnet sind. Von dort aus können Sie die Benutzerkonten mit geöffneten Dateien mit den Freigaben korrelieren, mit denen sie verbunden sind.

Dies kann jedoch unzureichend sein. Glaubst du mir nicht? Gehen Sie in die Computerverwaltung und wählen Sie Systemprogramme >> Freigegebene Ordner >> Sitzungen, um zu sehen, wer verbunden ist. Dann schauen Sie sich die # open filesSäule an. In einigen Sitzungen sollten 0 Dateien geöffnet sein. Woher weißt du, mit welchem ​​Anteil sie technisch verbunden sind? Ich bin froh, dass du gefragt hast ...

Umfangreich, aber schwer zu skalieren: Führen Sie net share [sharename]für jede fragliche Freigabe eine Ausführung durch, um eine Liste der Benutzer zu erhalten, die mit ihr verbunden sind. In meinen Tests werden auch Benutzer aufgelistet, die keine geöffnete Datei haben.

Sie können auch das Share and Storage Manager-Verwaltungstool in Server 2008 und höher anstelle der Computerverwaltung verwenden. Suchen Sie die Freigabe in der Liste der Freigaben und klicken Sie dann im Aktionsbereich mit der rechten Maustaste auf "Sitzungen verwalten". Sie sehen eine Liste der Sitzungen, einschließlich derer, bei denen keine Dateien geöffnet sind.

Aber ... aber ... ich möchte einen bestimmten Benutzer finden, ohne jede Freigabe abzufragen! Wenn Sie einen bestimmten Benutzer haben, den Sie aufspüren möchten, besteht Ihre einzige Möglichkeit, diese Informationen zu finden, darin, die einzelnen Freigaben abzufragen und den gewünschten Benutzer zu suchen. Und mit Augapfel meine ich das Leiten der Ausgabe zu findstroder select-string. Man könnte den Workflow auf ein Skript extrapolieren, das alle verfügbaren Freigaben auflistet, nach verbundenen Benutzern fragt und die Ausgabe nach dem betreffenden Benutzer durchsucht. Dies scheint jedoch eine Übung für den Leser zu sein und nichts, was Microsoft als systemeigenes Feature aufgenommen hat .

Wesley
quelle
Die angegebenen Informationen sind in Sitzungen oder Freigaben nicht ausreichend. Es wird nicht speziell angezeigt, welche Benutzer mit welcher Freigabe verbunden sind. Ich sehe oft mehrere Verbindungen zu einer Netzwerkfreigabe, aber wenn ein Benutzer keine Datei geöffnet hat, kann ich nicht sagen, wer verbunden ist. Ich kann nur sagen, dass eine bestimmte Anzahl von Verbindungen offen ist. Nicht wer hat die Verbindung offen. Also ist Rick in diesem Fall einfach richtig.
Ich sehe die spezifische Situation, die bestehen könnte, wenn ein Benutzer eine offene Sitzung, aber keine offene Datei hat. Daher sind Sie sich nicht sicher, für welche spezifische Freigabe eine gespenstische Sitzung geöffnet ist. In diesem Szenario kann ich keine Sitzungen mit 0 Dateien mit der Freigabe verknüpfen, mit der sie verbunden sind.
Wesley
Oder über eine Befehlszeile: NET SHARE <SHARENAME>
Simon Catlin
@ SimonCatlin Gerade auf einem Server 2008-Computer getestet. Ich hatte einen Benutzer ohne offene Dateien, wurde aber als offene Sitzung aufgeführt. Ich musste jede der Freigaben auf dem Server mit abfragen net share sharename, fand aber schließlich die Freigabe, mit der die Sitzung verbunden war. Ich weiß nicht, ob man die Abfrage rückgängig machen und mit dem Benutzer beginnen kann, an dem Sie interessiert sind, und sie dann zu der Freigabe verfolgen kann, zu der sie eine Verbindung haben. Benötigt möglicherweise benutzerdefiniertes PowerShelling.
Wesley
4

Dies ist eine sehr alte Frage, aber die akzeptierte Antwort hat einen der besten Wege übersprungen, um die Informationen zu finden. Die Benutzeroberfläche kann anzeigen, dass "verbundene Clients" vorhanden sind, diese Verbindungen werden jedoch nicht unter "offene Dateien" angezeigt. In diesem Fall muss mithilfe von WMI ermittelt werden, wer mit einer Freigabe verbunden ist.

Hier ist der Powershell-Befehl, um zu sehen, wer mit einer bestimmten Freigabe und Beispielausgabe verbunden ist:

Get-WmiObject Win32_ServerConnection -ComputerName SERVER01 | Select-Object ShareName,UserName,ComputerName | Where-Object {$_.ShareName -eq "SHARENAME"}

Beispielausgabe:

ShareName        UserName        ComputerName
---------        --------        ------------
SHARENAME        user1           10.0.0.20
SHARENAME        user2           10.0.0.30
SHARENAME        user3           10.0.0.40
Brady Witbeck
quelle
Tolles Lob, ich hatte zwei Freigaben mit unterschiedlichen Namen für denselben lokalen Pfad und dies war das einzige, was es mir ermöglichte, die Benutzer und PCs mit einer der beiden Freigaben
einzugrenzen
0

Auf den Computer-Manager kann nicht auf dieselbe Weise wie in früheren Versionen zugegriffen werden. Sie erhalten den "Server-Manager", wenn Sie mit der rechten Maustaste auf Computer klicken und "Verwalten" auswählen. Geben Sie stattdessen einfach compmgmt.msc in das Feld "Programme und Dateien suchen" unter Start ein.

Gast
quelle
-3

Ich glaube nicht, dass die Antwort (en) tatsächlich die Frage beantworten. Wenn Sie Windows Server 2008 (NICHT R2) verwenden und mit der rechten Maustaste auf Computer klicken und Verwalten auswählen und die UAC-Meldung bestätigen, wird die Server Manager-MMC gestartet. Unter Server-Manager befinden sich die folgenden Elemente: Rollen, Funktionen, Diagnose, Konfiguration und Speicher. Keines dieser fünf Elemente scheint freigegebenen Namensverbindungen als Option zur Verfügung zu haben, was die ursprüngliche Frage war. Der Zusatz EDIT zur Antwort war nützlicher und erwähnte den Freigabe- und Speichermanager, scheint aber immer noch keine Antwort zu liefern. Es enthält eine umfassende Liste der Freigabenamen und -eigenschaften, aber auch hier werden keine aktiven Verbindungen angezeigt. In Windows Server 2003 gab es früher ein Dienstprogramm für Betriebssysteme, das Server, Freigaben und Verbindungen anzeigte. aber ich habe es auf WS2008 noch nicht gefunden. Es gab ein Drittanbieter-Dienstprogramm namens Hyena von Adkins Resource, von dem ich glaube, dass es noch in der Vermarktung ist, mit dem sich alle Arten von Informationen zu praktisch allen Aspekten des Serverzustands hervorragend anzeigen ließen.

Rick Ferris
quelle
2
Du liegst einfach falsch. Ich habe gerade eine 2008 R2 VM hochgefahren. Wenn Sie die Computerverwaltung öffnen (compmgmt.msc)und alles, was Wesley beschreibt, stimmt genau mit 2003 überein, einschließlich geöffneter Dateien und aktiver Sitzungen. Sehen Sie sich diesen Screenshot an, wenn Sie mir nicht glauben.
MDMarra
@ Rick Du hast recht, meine Antwort war nicht ganz richtig. Zwei Jahre später, als mich ein anderes Mitglied anspornte, habe ich meine Antwort erneut gegeben, um es richtig zu machen. Danke, dass du mich scharf hältst. =)
Wesley