Die Frage " Benutzer ermitteln, die mit PowerShell auf einen freigegebenen Ordner zugreifen" hat eine gute Antwort. Fahren Sie fort. Wie trennen Sie die Benutzer, die mit einem Powershell-Skript auf die Freigabe zugreifen?
Es gibt ein Windows-Befehlszeilenprogramm namens OpenFiles, aber ich würde eine PowerShell / WMI-Lösung bevorzugen.
windows
powershell
network-share
Martin Hollingsworth
quelle
quelle
net files
scheinen ohne großen Aufwand Ihren Bedürfnissen zu entsprechen.Antworten:
Bis ich eine WMI-Lösung (z. B. basierend auf Win32_ServerConnection) oder eine .NET-Objektlösung finde, mit der ich die Liste der Verbindungen als erstklassige Objekte behandeln kann, anstatt die Textausgabe zu analysieren, habe ich diese Lösung basierend auf den OpenFiles entwickelt Nützlichkeit. Ich bin ziemlich besorgt, dass es fragil und nicht so offensichtlich ist, für unterschiedliche Bedürfnisse zu modifizieren, aber es scheint im Moment für mein enges Szenario zu funktionieren. Ich habe den regulären Ausdruck mit benannten Erfassungen für die anderen Teile der Ausgabe als Referenz beibehalten, wenn Sie für OpenFiles / Disconnect (/ A / ID / OP) andere Parameter verwenden müssen.
Beachten Sie, dass die wiederholte Verwendung von Select-String etwas ist, das ich nicht vollständig verstehe, aber damit zu tun hat, dass dies erforderlich ist, um Zugriff auf die genannten Captures zu erhalten. Weitere Informationen finden Sie in dieser RegEx Named Groups mit Select-String- Veröffentlichung. Gerne ändern, wenn mir jemand sagen kann wie!
quelle
Openfiles funktioniert gut für mich. Obwohl Sie nicht alle offenen Dateien / Abfragen speichern und dann einzeln trennen müssen, da der Platzhalter "*" verwendet werden kann, um alle offenen Sitzungen zu trennen, können Sie Folgendes tun:
Dadurch werden alle offenen Verbindungen beendet
quelle