Назад | Перейти на главную страницу

Получить количество жестких ссылок для файла в Windows (без fsutil, для которого требуется администратор)

У меня есть различные файлы, которые я создал как жесткие ссылки для других, используя mklink. Мне нужна команда, которую я могу использовать в пакетном файле, чтобы определить, какие файлы в данном каталоге имеют только одну ссылку на него. Я знаю fsutil hardlink list может показать мне ссылки, но мне нужно иметь возможность запускать командный файл как обычный пользователь, тогда как указанная выше команда не будет работать без прав администратора. Ищу способ сделать это без установки сторонних приложений.

Я не знаю ни одного способа в пакетном режиме, но для PowerShell Функция Win32 API GetFileInformationByHandle возвращает BY_HANDLE_FILE_INFORMATION структура, который содержит nNumberOfLinks member, который представляет собой числовое значение, указывающее количество жестких ссылок на файл. (1 означает отсутствие жестких ссылок, поэтому возвращаемое число равно количеству жестких ссылок + 1).

FindLinks от Sysinternals - это альтернатива fsutil, которая покажет вам жесткие ссылки. https://docs.microsoft.com/en-us/sysinternals/downloads/findlinks