Powershell - Проверьте, используется ли файл - PullRequest
4 голосов
/ 26 августа 2010

Есть ли команда Powershell, чтобы проверить, используется ли файл другим пользователем? Если нет, что бы написать сценарий, который может?

Ответы [ 3 ]

4 голосов
/ 26 августа 2010

Вы никогда не сможете определить, используется ли файл в данный момент, только то, что он использовался недавно. Причина в том, что в тот момент, когда скрипт возвращает файл, он может быть закрыт любой программой, которая использовала его ранее. Написание таких сценариев приведет только к нестабильному поведению.

Гораздо лучший подход - просто делать то, что собирался делать сценарий, если файл не использовался, и перехватывать исключения, возникающие в результате конфликта использования. Конечным результатом будет гораздо более простая и надежная программа.

4 голосов
/ 26 августа 2010

Я не знаю встроенной команды, однако есть несколько инструментов, которые вы можете использовать для этого:

net file

С SysInternals на Technet ( psfile и handle ):

psfile.exe # lists and allows you to close remotely opened files

handle.exe | select-string ': File'
1 голос
/ 09 августа 2013

Я считаю, что использовать SysInternals "ListDlls.exe" довольно легко и удобно:

c:\SysInternals\Listdlls.exe -d AssemblyInUse.dll

ListDLLs v3.1 - List loaded DLLs
Copyright (C) 1997-2011 Mark Russinovich
Sysinternals - www.sysinternals.com

----------------------------------------------------------------------------
powershell.exe pid: 7296
Command line: "C:\WINDOWS\system32\WindowsPowerShell\v1.0\powershell.exe"

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...