Eu estava fazendo um script do PowerShell para uma maneira mais rápida de fechar arquivos bloqueados em um grande servidor de arquivos do Windows Server 2008 R2 (mais de 2.500 arquivos abertos neste momento e o horário de pico foi de 3 a 4 horas atrás) e eu para escolher entre net files
ou openfiles
. Então eu fui openfiles
como é mais recente e pode fornecer o caminho completo do arquivo ( net files
também pode fazer isso, mas você deve consultar cada ID).
Eu estava tendo problemas com isso: alguns arquivos não fecham. Eu verifiquei com os arquivos da rede e estava tudo bem ... Então comecei a dar uma olhada mais de perto e isso é (um trecho de) o que encontrei:
C:\> net files
ID Path User name # Locks
-------------------------------------------------------------------------------
3221368833 G:\Users\... SomeUser 3
2550215683 G:\Users\... SomeUser 3
3422797829 G:\Users\... SomeUser 0
805310474 F:\Recursos\... SomeUser 3
335585292 G:\Users\SomeUser\My Documents SomeUser 0
4026636306 G:\Users\SomeUser\Desktop SomeUser 0
2684396568 G:\Users\... SomeUser 0
2952839192 G:\Users\...\EXCEL\SomeFolder2016 SomeUser 0
4160993304 G:\Users\... SomeUser 0
1610613364 F:\Recursos\Suministros SomeUser 0
The command completed successfully.
C:\> openfiles /query /v
Files opened remotely via local share points:
---------------------------------------------
Hostname ID Accessed By Type #Locks Open Mode Open File (Path\executable)
=============== ======== ==================== ========== ========== =============== ============================================================================
MyServer 32213688 SomeUser Windows 3 Write + Read G:\Users\SomeUser\My Documents\[SomePath].XLS
MyServer 25502156 SomeUser Windows 3 Write + Read G:\Users\SomeUser\My Documents\[SomePath].xls
MyServer 34227978 SomeUser Windows 0 Write + Read G:\Users\SomeUser\My Documents\[SomePath].xls
MyServer 80531047 SomeUser Windows 3 Write + Read F:\Recursos\Suministros\[SomePath].xls
MyServer 33558529 SomeUser Windows 0 Read G:\Users\SomeUser\My Documents
MyServer 40266363 SomeUser Windows 0 Read G:\Users\SomeUser\Desktop
MyServer 26843965 SomeUser Windows 0 Write + Read G:\Users\SomeUser\My Documents\[SomePath].XLS
MyServer 29528391 SomeUser Windows 0 Read G:\Users\SomeUser\My Documents\EXCEL\SomeFolder2016
MyServer 41609933 SomeUser Windows 0 Write + Read G:\Users\SomeUser\My Documents\[SomePath].XLS
MyServer 16106133 SomeUser Windows 0 Read F:\Recursos\Suministros
Espere, os IDs são diferentes... Droga, não, os openfiles
IDs estão truncados!!
Obviamente, para o script em si, no momento estou indo para net files
, obter os IDs, consultar cada ID individual para obter o caminho completo e, a partir daí, posso reutilizar o restante do script.
Mas pelo bem da minha sanidade: isso é um bug? Uma característica? O Windows Server 2008 R2 não é novo e não consegui encontrar nenhuma referência a isso, para não falar de um hotfix!
Então, três anos depois, encontrei uma resposta e uma solução, ou solução alternativa: esse é um bug da saída padrão de
openfiles
, que étable
. Se você especificar as opções/FO CSV
ou/FO List
, os IDs estarão completos.