Il peut arriver que l'on se retrouve avec des fichiers partagés verrouillés par certains utilisateurs après que le document se soit mal refermé.
Il est possible de voir les fichiers ouverts depuis la console « Gestion de l'ordinateur ». Néanmoins la liste peut être longue et il peut être difficile de retrouver un élément précis.
La commande PowerShell « Get-SmbOpenFile », permet de lister les fichiers ouverts. LA commande ci-dessous listera tous les fichiers ouverts par des utilisateurs dont le nom contient les lettres « pba ».
Get-SmbOpenFile -ClientUserName *pba*
Il est également possible de filtrer sur l'IP de la machine source avec « -ClientComputerName ».
Si vous souhaitez filtrer sur une propriété qui n'est pas disponible en paramètre vous pouvez utiliser la condition « Where ».
Get-SmbOpenFile | where { $_.ClientUSerName -eq "Domaine\utilisateur" } `
| select fileid,path
Il est possible de fermer un fichier verrouillé avec la commande suivante « Close-SmbOpenFile ». Il suffit d'indiquer le « FileID » du fichier en question.
Close-SmbOpenFile 530160029405 -confirm:$false
Il est possible d'enchainer les deux commandes précédentes. La commande suivante fermera l'ensemble des fichiers de l'utilisateur.
Get-SmbOpenFile | where { $_.ClientUSerName -eq "Domaine\utilisateur" } `
| Close-SmbOpenFile -confirm:$false
PowerShell propose donc une solution simple et rapide pour gérer les fichiers mal refermés et verrouillés par un utilisateur.