Следующий скрипт PowerShell выведет список всех файлов в каталоге или каталогах с ключом -recurse. В нем будет указано имя файла, будь то обычный файл или файл с жесткими ссылками, а также размер, разделенный двоеточиями.
Он должен запускаться из командной строки PowerShell. Не имеет значения, из какого каталога вы его запускаете, так как это задано в скрипте.
Он использует утилиту fslink, поставляемую с Windows, и запускает ее для каждого файла с помощью переключателей hardlink и list и подсчитывает строки вывода. Если два или больше, это файл с жесткой ссылкой.
Конечно, вы можете изменить каталог, с которого начинается поиск, изменив c:\windows\system
в команде. Кроме того, скрипт просто записывает результаты в файл c:\hardlinks.txt
. Вы можете изменить имя или просто удалить все, начиная с символа>, и оно будет выведено на экран.
Get-ChildItem -path C:\Windows\system -file -recurse -force |
foreach-object {
if ((fsutil hardlink list $_.fullname).count -ge 2) {
$_.PSChildname + ":Hardlinked:" + $_.Length
} else {
$_.PSChildname + ":RegularFile:" + $_.Length
}
} > c:\hardlinks.txt